(57)【要約】【課題】  通信装置からプリンタに送信される印刷実行コマンドの通信が妨げられるのを抑制する技術を提供すること。【解決手段】  通信装置は、外部装置から、プリンタの情報を識別する情報識別子を含む第１の情報要求を受信する場合に、印刷スクリプトで記述されたスクリプトコードを特定し、特定済みのスクリプトコードを含む要求コマンドを、印刷実行コマンドを記憶可能である所定のメモリ領域に供給する。要求コマンドは、情報識別子によって識別されるプリンタの情報の送信をプリンタに要求するためのコマンドである。通信装置は、所定のメモリ領域から要求コマンドがプリンタに送信されることに応じて、プリンタから、プリンタの情報を受信し、プリンタの情報を外部装置に送信する。【選択図】図３
2019067021.tif 000002
【特許請求の範囲】
【請求項１】
第１の通信インターフェースと第２の通信インターフェースと所定のメモリ領域とを備える通信装置のためのコンピュータプログラムであって、
前記所定のメモリ領域は、前記第１の通信インターフェースを介して前記通信装置に接続されるプリンタに印刷を実行させるための印刷指示が、前記通信装置によって取得される場合に、印刷スクリプトによって記述された印刷実行コマンドを記憶可能なメモリ領域であって、前記印刷スクリプトで記述された各コマンドを取得する場合に、前記各コマンドを取得した順に、前記第１の通信インターフェースを介して、前記各コマンドを前記プリンタに順次送信するために用いられるメモリ領域であり、
前記コンピュータプログラムは、前記通信装置のコンピュータを、
外部装置から、前記第２の通信インターフェースを介して、前記プリンタの情報を要求するための第１の情報要求を受信する第１の要求受信部であって、前記第１の情報要求は、前記プリンタの前記情報を識別する情報識別子を含む、前記第１の要求受信部と、
前記外部装置から前記第１の情報要求が受信される場合に、前記印刷スクリプトで記述されたスクリプトコードを特定する特定部であって、前記スクリプトコードは、前記第１の情報要求に含まれる前記情報識別子に対応する、前記特定部と、
特定済みの前記スクリプトコードを含む要求コマンドを、前記印刷実行コマンドを記憶可能である前記所定のメモリ領域に供給する供給部であって、前記要求コマンドは、特定済みの前記スクリプトコードに対応する前記情報識別子によって識別される前記プリンタの前記情報の送信を前記プリンタに要求するためのコマンドである、前記供給部と、
前記所定のメモリ領域から前記第１の通信インターフェースを介して前記要求コマンドが前記プリンタに送信されることに応じて、前記プリンタから、前記第１の通信インターフェースを介して、前記プリンタの前記情報を受信する情報受信部と、
前記プリンタから前記プリンタの前記情報が受信された後に、前記第２の通信インターフェースを介して、前記プリンタの前記情報を前記外部装置に送信する送信部と、
として機能させる、コンピュータプログラム。
【請求項２】
前記コンピュータプログラムは、前記コンピュータを、さらに、
特定済みの前記スクリプトコードに所定記号を付加して、特定済みの前記スクリプトコードを含む前記要求コマンドを生成する生成部として機能させる、請求項１に記載のコンピュータプログラム。
【請求項３】
前記印刷スクリプトは、ＰＪＬ（Printer Job Languageの略）である、請求項１又は２に記載のコンピュータプログラム。
【請求項４】
前記コンピュータプログラムは、前記コンピュータを、さらに、
前記プリンタから前記プリンタの前記情報が受信される場合に、前記第１の情報要求に含まれる前記情報識別子と、前記プリンタの前記情報と、を関連付けて、前記通信装置の第１のデータベースに記憶する第１の記憶制御部と、
前記情報識別子と前記プリンタの前記情報とが前記第１のデータベースに記憶された後に、前記外部装置から、前記第２の通信インターフェースを介して、前記プリンタの前記情報を要求するための第２の情報要求であって、前記情報識別子を含む前記第２の情報要求を受信する第２の要求受信部と、として機能させ、
前記送信部は、前記外部装置から前記第２の情報要求が受信される場合に、前記第１のデータベースに記憶されている前記プリンタの前記情報であって、前記第２の情報要求に含まれる前記情報識別子に関連付けられている前記プリンタの前記情報を前記外部装置に送信する、請求項１から３のいずれか一項に記載のコンピュータプログラム。
【請求項５】
前記コンピュータプログラムは、前記コンピュータを、さらに、
前記第１の情報要求に含まれる前記情報識別子と、特定済みの前記スクリプトコードを含む前記要求コマンドと、を関連付けて、前記通信装置の第２のデータベースに記憶する第２の記憶制御部として機能させ、
前記供給部は、所定タイミングが到来する毎に、前記第２のデータベースに記憶されている前記要求コマンドを前記所定のメモリ領域に供給する、請求項４に記載のコンピュータプログラム。
【請求項６】
前記第１の情報要求は、ＳＮＭＰ（Simple Network Management Protocolの略）に従ったＧｅｔリクエストであり、
前記第１の情報要求に含まれる前記情報識別子は、前記ＳＮＭＰに従ったＯＩＤ（Object IDの略）であり、
前記送信部は、前記ＳＮＭＰに従ったＧｅｔレスポンスであって、前記プリンタの前記情報を含む前記Ｇｅｔレスポンスを前記外部装置に送信する、請求項１から５のいずれか一項に記載のコンピュータプログラム。
【請求項７】
前記特定部は、前記通信装置の第３のデータベースから、前記第１の情報要求に含まれる前記ＯＩＤに関連付けられている前記スクリプトコードを特定し、
前記第３のデータベースは、複数個のＯＩＤのそれぞれについて、当該ＯＩＤと、当該ＯＩＤによって識別される前記プリンタの情報の送信を前記プリンタに要求するためのスクリプトコードと、を関連付けて記憶している、請求項６に記載のコンピュータプログラム。
【請求項８】
前記第１の情報要求は、前記プリンタの複数個の前記情報を識別する複数個の前記情報識別子を含み、
前記特定部は、前記複数個の情報識別子に対応する複数個の前記スクリプトコードを特定し、
前記供給部は、特定済みの前記複数個のスクリプトコードを含む複数個の前記要求コマンドを前記所定のメモリ領域に供給し、
前記情報受信部は、前記所定のメモリ領域から前記第１の通信インターフェースを介して前記複数個の要求コマンドが前記プリンタに順次送信されることに応じて、前記プリンタから、前記第１の通信インターフェースを介して、前記複数個の情報を順次受信し、
前記送信部は、前記プリンタから前記複数個の情報が受信された後に、前記第２の通信インターフェースを介して、前記複数個の情報を前記外部装置に送信する、請求項１から７のいずれか一項に記載のコンピュータプログラム。
【請求項９】
前記コンピュータプログラムは、前記コンピュータを、さらに、
前記外部装置から前記第１の情報要求が受信される場合に、前記第１の情報要求に含まれる前記複数個の情報識別子の組み合わせが、前記通信装置の第４のデータベースに記憶されているのか否かを判断する判断部であって、前記第４のデータベースは、前記プリンタの情報を管理すべき管理装置が利用する複数個の情報識別子の組み合わせを予め記憶している、前記判断部として機能させ、
前記第１の情報要求に含まれる前記複数個の情報識別子の組み合わせが前記第４のデータベースに記憶されていると判断される場合に、
前記特定部は、前記複数個のスクリプトコードを特定し、
前記供給部は、特定済みの前記複数個のスクリプトコードを含む前記複数個の要求コマンドを前記所定のメモリ領域に供給し、
前記情報受信部は、前記プリンタから前記複数個の情報を受信し、
前記送信部は、前記複数個の情報を前記外部装置に送信し、
前記第１の情報要求に含まれる前記複数個の情報識別子の組み合わせが前記第４のデータベースに記憶されていないと判断される場合に、
前記特定部は、前記複数個のスクリプトコードを特定せず、
前記供給部は、前記複数個の要求コマンドを前記所定のメモリ領域に供給しない、請求項８に記載のコンピュータプログラム。
【請求項１０】
前記第１の通信インターフェースは、第１種の通信規格に従った通信を実行するためのインターフェースであり、
前記第２の通信インターフェースは、前記第１種の通信規格とは異なる第２種の通信規格に従った通信を実行するためのインターフェースである、請求項１から９のいずれか一項に記載のコンピュータプログラム。
【請求項１１】
前記第１種の通信規格は、ＵＳＢ（Universal Serial Busの略）であり、
前記第２種の通信規格は、ＩＰ（Internet Protocolの略）である、請求項１０に記載のコンピュータプログラム。
【請求項１２】
前記プリンタの前記情報は、前記プリンタの現在の動作状態を示す情報と、前記プリンタに装着される消耗品の現在の残量を示す情報と、前記プリンタにおける印刷枚数を示す情報と、前記消耗品の交換回数を示す情報と、のうちの少なくとも１つを含む、請求項１から１１のいずれか一項に記載のコンピュータプログラム。
【請求項１３】
通信装置であって、
第１の通信インターフェースと、
第２の通信インターフェースと、
所定のメモリ領域であって、前記第１の通信インターフェースを介して前記通信装置に接続されるプリンタに印刷を実行させるための印刷指示が、前記通信装置によって取得される場合に、印刷スクリプトによって記述された印刷実行コマンドを記憶可能なメモリ領域であって、前記印刷スクリプトで記述された各コマンドを取得する場合に、前記各コマンドを取得した順に、前記第１の通信インターフェースを介して、前記各コマンドを前記プリンタに順次送信するために用いられるメモリ領域である、前記所定のメモリ領域と、
外部装置から、前記第２の通信インターフェースを介して、前記プリンタの情報を要求するための第１の情報要求を受信する第１の要求受信部であって、前記第１の情報要求は、前記プリンタの前記情報を識別する情報識別子を含む、前記第１の要求受信部と、
前記外部装置から前記第１の情報要求が受信される場合に、前記印刷スクリプトで記述されたスクリプトコードを特定する特定部であって、前記スクリプトコードは、前記第１の情報要求に含まれる前記情報識別子に対応する、前記特定部と、
特定済みの前記スクリプトコードを含む要求コマンドを、前記印刷実行コマンドを記憶可能である前記所定のメモリ領域に供給する供給部であって、前記要求コマンドは、特定済みの前記スクリプトコードに対応する前記情報識別子によって識別される前記プリンタの前記情報の送信を前記プリンタに要求するためのコマンドである、前記供給部と、
前記所定のメモリ領域から前記第１の通信インターフェースを介して前記要求コマンドが前記プリンタに送信されることに応じて、前記プリンタから、前記第１の通信インターフェースを介して、前記プリンタの前記情報を受信する情報受信部と、
前記プリンタから前記プリンタの前記情報が受信された後に、前記第２の通信インターフェースを介して、前記プリンタの前記情報を前記外部装置に送信する送信部と、
を備える、通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書では、プリンタから情報を受信して外部装置に送信する通信装置に関する技術を開示する。
【背景技術】
【０００２】
特許文献１には、ＳＮＭＰ（Simple Network Management Protocolの略）マネージャ機能を有するデータ処理装置（以下では「マネージャ装置」と呼ぶ）と、ＳＮＭＰエージェント機能を有するデータ処理装置（以下では「エージェント装置」と呼ぶ）と、エージェント装置に接続されているローカルプリンタと、を備える管理システムが開示されている。ローカルプリンタは、エージェント装置と通信可能であるが、マネージャ装置と通信不可能である。エージェント装置は、ローカルプリンタの状態が変化する場合に、ローカルプリンタから変化後の状態を示す情報を取得し、当該情報をマネージャ装置に送信する。これにより、マネージャ装置は、マネージャ装置と通信不可能であるローカルプリンタの状態を示す情報を管理することができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−２９３３２４号公報
【特許文献２】特開２００４−２６４９９５号公報
【特許文献３】特開２００５−３１９６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記の管理システムでは、エージェント装置が印刷データをローカルプリンタに送信する通信を実行している間に、エージェント装置がローカルプリンタから当該ローカルプリンタの情報を受信する通信が実行されると、印刷データの通信が妨げられる可能性がある。
【０００５】
本明細書では、通信装置からプリンタに送信される印刷実行コマンドの通信が妨げられるのを抑制する技術を開示する。
【課題を解決するための手段】
【０００６】
本明細書は、第１の通信インターフェースと第２通信のインターフェースと所定のメモリ領域とを備える通信装置のためのコンピュータプログラムを開示する。所定のメモリ領域は、前記第１の通信インターフェースを介して前記通信装置に接続されるプリンタに印刷を実行させるための印刷指示が、前記通信装置によって取得される場合に、印刷スクリプトによって記述された印刷実行コマンドを記憶可能なメモリ領域であって、前記印刷スクリプトで記述された各コマンドを取得する場合に、前記各コマンドを取得した順に、前記第１の通信インターフェースを介して、前記各コマンドを前記プリンタに順次送信するために用いられるメモリ領域である。コンピュータプログラムは、通信装置のコンピュータを、外部装置から、前記第２の通信インターフェースを介して、前記プリンタの情報を要求するための第１の情報要求を受信する第１の要求受信部であって、前記第１の情報要求は、前記プリンタの前記情報を識別する情報識別子を含む、前記第１の要求受信部と、前記外部装置から前記第１の情報要求が受信される場合に、前記印刷スクリプトで記述されたスクリプトコードを特定する特定部であって、前記スクリプトコードは、前記第１の情報要求に含まれる前記情報識別子に対応する、前記特定部と、特定済みの前記スクリプトコードを含む要求コマンドを、前記印刷実行コマンドを記憶可能である前記所定のメモリ領域に供給する供給部であって、前記要求コマンドは、特定済みの前記スクリプトコードに対応する前記情報識別子によって識別される前記プリンタの前記情報の送信を前記プリンタに要求するためのコマンドである、前記供給部と、前記所定のメモリ領域から前記第１の通信インターフェースを介して前記要求コマンドが前記プリンタに送信されることに応じて、前記プリンタから、前記第１の通信インターフェースを介して、前記プリンタの前記情報を受信する情報受信部と、前記プリンタから前記プリンタの前記情報が受信された後に、前記第２の通信インターフェースを介して、前記プリンタの前記情報を前記外部装置に送信する送信部と、として機能させてもよい。
【０００７】
上記の構成によると、通信装置は、外部装置から第１の情報要求を受信する場合に、印刷スクリプトで記述されたスクリプトコードを特定し、特定済みのスクリプトコードを含む要求コマンドを、印刷実行コマンドを記憶可能である所定のメモリ領域に供給する。このために、例えば、所定のメモリ領域から印刷実行コマンドがプリンタに送信されている間に、要求コマンドが所定のメモリ領域に供給される場合に、印刷実行コマンドがプリンタに送信された後に、要求コマンドがプリンタに送信される。このために、通信装置からプリンタに送信される印刷実行コマンドの通信が妨げられるのを抑制することができる。
【０００８】
上記の通信装置そのもの、及び、通信装置によって実行される方法も、新規で有用である。また、上記の通信装置と、他の装置（例えば外部装置、プリンタ）と、を備える通信システムも、新規で有用である。
【図面の簡単な説明】
【０００９】
【図１】通信システムの構成を示す。
【図２】ＰＣ内の各リストの一例を示す。
【図３】実施例の概略を説明するための説明図を示す。
【図４】ＰＣの応答処理のフローチャートを示す。
【図５】ＰＣの取得処理のフローチャートを示す。
【図６】各デバイスの具体的な処理のシーケンス図を示す。
【図７】図６の続きのシーケンス図を示す。
【図８】図７の続きのシーケンス図を示す。
【図９】図８の続きのシーケンス図を示す。
【発明を実施するための形態】
【００１０】
（通信システム２の構成；図１）
図１に示されるように、通信システム２は、複数個のＰＣ（Personal Computerの略）１０，８０と、複数個のプリンタ５０，７０と、管理装置６０と、を備える。各ＰＣ１０，８０と管理装置６０とプリンタ７０とはＬＡＮ４に接続されている。従って、各デバイス１０，６０，７０，８０は、ＬＡＮ４を介して、相互に通信可能である。プリンタ５０は、ＬＡＮ４に接続されておらず、ＬＡＮ４を介して、各デバイス１０，６０，７０，８０と通信することができない。プリンタ５０は、ＵＳＢ（Universal Serial Busの略）ケーブルを介して、ＰＣ１０に接続されている。従って、ＰＣ１０とプリンタ５０とは、ＵＳＢケーブルを介して、相互に通信可能である。
【００１１】
プリンタ５０は、ベンダＶ１によって提供されるプリンタであり、モデル名「Ｌ８９００ＣＤＷ」とシリアル番号「ＸＸＸ１２３４５６７８」とを有する。プリンタ５０は、ＵＳＢＩ／Ｆ（図示省略）を備えるが、ＬＡＮ４に接続するためのネットワークＩ／Ｆを備えない。このために、プリンタ５０の構成を簡易化することができる。一方、プリンタ７０は、ベンダＶ１とは異なるベンダＶ２によって提供されるプリンタであり、ＬＡＮ４に接続するためのネットワークＩ／Ｆ（図示省略）を備える。
【００１２】
管理装置６０は、ＰＣ、サーバ等のデバイスであり、各プリンタ５０，７０の情報（例えば、プリンタの現在の動作状態を示す情報）を管理する。具体的には、管理装置６０は、ＬＡＮ４を介して、ＳＮＭＰ（Simple Network Management Protocolの略）に従った通信をプリンタ７０と実行して、プリンタ７０から情報を受信して記憶する。即ち、管理装置６０がＳＮＭＰマネージャとして機能し、プリンタ７０がＳＮＭＰエージェントとして機能する。しかしながら、管理装置６０は、ＬＡＮ４を介してプリンタ５０と通信不可能であるので、プリンタ５０から情報を受信することができない。そこで、本実施例では、ＰＣ１０がプリンタ５０から情報を受信して記憶しておき、管理装置６０は、ＬＡＮ４を介して、ＳＮＭＰに従った通信をＰＣ１０と実行して、ＰＣ１０からプリンタ５０の情報を受信する。
【００１３】
例えば、管理装置６０が、ＳＮＭＰに従った通信ではなく、ベンダＶ１によって開発された独自プロトコルに従った通信をＰＣ１０と実行して、ＰＣ１０からプリンタ５０の情報を受信するという比較例の構成を想定する。この場合、ベンダＶ２によって提供されるプリンタ７０は、ベンダＶ１の独自プロトコルに従った通信を実行することができない。従って、管理装置６０は、独自プロトコルに従った通信をプリンタ７０と実行することができず、この結果、プリンタ７０から情報を受信することができない。これに対し、本実施例では、管理装置６０は、多くのプリンタが利用可能であるＳＮＭＰを利用するので、プリンタ７０から情報を適切に受信して管理することができる。
【００１４】
（ＰＣ１０の構成）
ＰＣ１０は、据置型のＰＣである。ＰＣ１０は、操作部１２と、表示部１４と、ＵＳＢインターフェース１６と、ネットワークインターフェース１８と、制御部３０と、を備える。各部１２〜３０は、バス線（符号省略）に接続されている。以下では、インターフェースのことを「Ｉ／Ｆ」と記載する。なお、変形例では、ＰＣ１０は、携帯電話（例えばスマートフォン）、ＰＤＡ、ノートＰＣ、タブレットＰＣ等の可搬型の端末装置であってもよい。
【００１５】
操作部１２は、複数のキーを備える。ユーザは、操作部１２を操作することによって、様々な指示をＰＣ１０に入力することができる。表示部１４は、様々な情報を表示するためのディスプレイである。ＵＳＢＩ／Ｆ１６には、ＵＳＢケーブルの一端が接続されている。ＵＳＢケーブルの他端は、プリンタ５０に接続されている。ネットワークＩ／Ｆ１８は、ＩＰ（Internet Protocolの略）に従った通信を実行するためのＩ／Ｆであり、ＬＡＮ４に接続されている。ＬＡＮ４は、有線ＬＡＮでもよいし、無線ＬＡＮでもよい。
【００１６】
制御部３０は、ＣＰＵ３２とメモリ３４とを備える。ＣＰＵ３２は、メモリ３４に格納されているプログラム３６，３８に従って、様々な処理を実行する。メモリ３４は、揮発性メモリ、不揮発性メモリ等によって構成される。ＯＳプログラム３６は、ＰＣ１０の基本的な動作を実現するためのプログラムであり、印刷スプーラ３７を含む。印刷スプーラ３７は、ＵＳＢＩ／Ｆ１６を介して、プリンタ５０に印刷を実行させるための印刷指示が、ＣＰＵ３２によって取得される場合に、プリンタ５０が解釈可能な印刷スクリプトであるＰＪＬ（Printer Job Languageの略）によって記述された印刷実行コマンドを記憶可能である。また、印刷スプーラ３７は、ＰＪＬによって記述されたＰＪＬコマンドを含む印刷ジョブを記憶可能である。ＰＪＬコマンドの例としては、例えば、印刷の実行をプリンタ５０に要求するコマンド、プリンタ５０の情報の送信をプリンタ５０に要求するコマンド等を挙げることができる。印刷スプーラ３７は、ＣＰＵ３２から印刷ジョブに含まれる各ＰＪＬコマンドを取得する場合に、各ＰＪＬコマンドを取得した順に、ＵＳＢＩ／Ｆ１６を介して、各ＰＪＬコマンドをプリンタ５０に順次送信する。
【００１７】
また、メモリ３４は、プリンタアプリケーション３８（以下では「アプリ３８」と呼ぶ）を格納する。アプリ３８は、プリンタ５０に送信されるべきＰＪＬコマンドを生成するためのアプリケーションであり、プリンタ５０のベンダによって提供される。アプリ３８は、例えば、プリンタ５０のベンダによって提供されるインターネット上のサーバからＰＣ１０にインストールされてもよいし、プリンタ５０と共に出荷されるメディアからＰＣ１０にインストールされてもよい。
【００１８】
アプリ３８は、ＰＪＬ変換リスト４０と、ＯＩＤ（Object IDの略）パターンリスト４２と、ＭＩＢ値リスト４４と、ＰＪＬ供給リスト４６と、管理装置領域４８と、をメモリ３４内に実現する。管理装置領域４８は、管理装置６０のＩＰアドレスを記憶するための領域である。管理装置領域４８は、アプリ３８がＰＣ１０にインストールされる段階ではＩＰアドレスを記憶しておらず、管理装置６０との通信が実行された後に、管理装置６０のＩＰアドレスを記憶する。
【００１９】
（各リスト４０，４２，４４，４６の内容；図２）
続いて、図２を参照して、メモリ３４内の各リスト４０，４２，４４，４６について説明する。ＰＪＬ変換リスト４０及びＯＩＤパターンリスト４２内の各情報は、アプリ３８がＰＣ１０にインストールされる際に、メモリ３４に記憶される。一方、ＭＩＢ値リスト４４及びＰＪＬ供給リスト４６は、アプリ３８がＰＣ１０にインストールされる際には、空の状態である。そして、アプリ３８に従った処理が実行される過程で、各リスト４４，４６に情報が記憶される。
【００２０】
ＰＪＬ変換リスト４０は、プリンタ５０の情報の名称（即ちＮａｍｅ）と、ＳＮＭＰに従った情報識別子であるＯＩＤと、ＰＪＬによって記述されるＰＪＬコードと、を関連付けて記憶している。ここで、ＯＩＤについて説明しておく。各プリンタ５０，７０は、ＭＩＢ（Management Information Baseの略）のツリー構造を利用して、モデル名、シリアル番号、ステータス（例えば印刷実行中、待機中）等の複数個の情報を記憶している。本実施例では、プリンタの各情報を識別する識別子のことを「ＯＩＤ」と呼び、ＯＩＤによって識別される情報を示す値のことを「ＭＩＢ値」と呼ぶ。ＰＪＬコードは、関連付けられているＯＩＤによって識別されるＭＩＢ値の送信をプリンタ５０に要求するためのコードである。例えば、ＯＩＤ「Ｘ１」に関連付けられているＰＪＬコード「ＭＯＤＥＬＮＡＭＥ」は、プリンタ５０のモデル名を示すＭＩＢ値の送信をプリンタ５０に要求するためのコードである。また、ＯＩＤ「Ｘ４」〜「Ｘ８」のそれぞれは、レーザー方式のプリンタに対応するＰＪＬコード（例えばＬＡＳＥＲ）と、インクジェット方式のプリンタに対応するＰＪＬコード（例えばＩＮＫ）と、の双方に関連付けられている。
【００２１】
ＯＩＤパターンリスト４２は、複数個のＯＩＤパターンを記憶している。各ＯＩＤパターンは、複数個のＯＩＤの組み合わせである。例えば、第１のＯＩＤパターンは、３個のＯＩＤ「Ｘ１」，「Ｘ２」，「Ｘ４」の組み合わせである。例えば、管理装置６０は、プリンタから情報（即ちＭＩＢ値）を受信することを望む場合に、まず、第１のＯＩＤパターンに含まれる３個のＯＩＤ「Ｘ１」，「Ｘ２」，「Ｘ４」を含むＧｅｔリクエストをプリンタに送信する。管理装置６０は、プリンタから当該３個のＯＩＤに対応する３個のＭＩＢ値を受信する場合に、さらに、他のＯＩＤを含むＧｅｔリクエストをプリンタに送信する。このように、管理装置６０は、Ｇｅｔリクエストをプリンタに送信することを繰り返して、プリンタから様々なＭＩＢ値を受信する。プリンタ５０のベンダは、管理装置６０によって最初に利用される３個のＯＩＤを調査しておき、当該３個のＯＩＤの組み合わせを第１のＯＩＤパターンとしてＯＩＤパターンリスト４２に記述する。同様に、ベンダは、他の様々な管理装置のそれぞれについて、当該管理装置によって最初に利用される複数個のＯＩＤの組み合わせを調査しておき、当該組み合わせを他のＯＩＤパターンとしてＯＩＤパターンリスト４２に記述する。これにより、アプリ３８は、Ｇｅｔリクエストを受信する場合に、当該Ｇｅｔリクエストに含まれる各ＯＩＤの組み合わせがＯＩＤパターンリスト４２に記憶されているのか否かを判断することによって、当該Ｇｅｔリクエストの送信元の装置が、管理装置（例えば６０）であるのか、管理装置以外の装置（例えばＰＣ８０）であるのか、を判断することができる。
【００２２】
ＭＩＢ値リスト４４は、情報の名称とＯＩＤとＰＪＬコードとＭＩＢ値とを関連付けて記憶するためのリストである。上述したように、ＭＩＢ値リスト４４は、初期状態では空の状態であり、プリンタ５０からＭＩＢ値が受信される際に、ＭＩＢ値を含む情報を記憶する。その後、管理装置６０からＧｅｔコマンドが受信されると、ＭＩＢ値が管理装置６０に送信される。
【００２３】
図２では図示省略しているが、ＰＪＬ供給リスト４６は、ＯＩＤとＰＪＬコマンドとを関連付けて記憶するためのリストである。上述したように、ＰＪＬ供給リスト４６は、初期状態では空の状態であり、管理装置６０からＧｅｔコマンドが受信される際に、当該Ｇｅｔコマンドに含まれるＯＩＤと、ＰＪＬ変換リスト４０において当該ＯＩＤに関連付けられているＰＪＬコードを含むＰＪＬコマンドと、を記憶する。その後、所定のタイミングにおいて、当該ＰＪＬコマンドを含む印刷ジョブが印刷スプーラ３７に供給される。
【００２４】
（実施例の概要；図３）
続いて、図３を参照して、本実施例の概略を説明する。（１）ＰＣ１０は、管理装置６０から、ネットワークＩ／Ｆ１８を介して、ＳＮＭＰに従ったＧｅｔリクエストを受信する。当該Ｇｅｔリクエストは、ＯＩＤ（以下では「対象ＯＩＤ」と呼ぶ）を含む。この時点では、ＭＩＢ値リスト４４が対象ＯＩＤによって識別されるＭＩＢ値をまだ記憶していないので、ＰＣ１０は、当該ＭＩＢ値を管理装置６０に送信することができず、ＭＩＢ値を送信不可能であることを示す文字列「Ｎｏ  Ｓｕｃｈ」を含むＧｅｔレスポンス（図示省略）を管理装置６０に送信する。
【００２５】
（２）ＰＣ１０は、ＰＪＬ変換リスト４０（図２参照）から、対象ＯＩＤに関連付けられているＰＪＬコード（以下では「対象ＰＪＬコード」と呼ぶ）を特定し、対象ＰＪＬコードに記号「＠ＰＪＬ」を付加してＰＪＬコマンド（以下では「対象ＰＪＬコマンド」と呼ぶ）を生成し、対象ＯＩＤと対象ＰＪＬコマンドとを関連付けてＰＪＬ供給リスト４６に登録する。
【００２６】
（３）ＰＣ１０は、所定タイミングでＰＪＬ供給リスト４６内の対象ＰＪＬコマンドを含む印刷ジョブを印刷スプーラ３７に供給する。この場合、（４）印刷スプーラ３７は、ＵＳＢＩ／Ｆ１６を介して、対象ＰＪＬコマンドをプリンタ５０に送信する。この結果、（５）ＰＣ１０は、プリンタ５０から、ＵＳＢＩ／Ｆ１６を介して、ＭＩＢ値を受信する。そして、ＰＣ１０は、名前と対象ＯＩＤと対象ＰＪＬコードと受信済みのＭＩＢ値とを関連付けてＭＩＢ値リスト４４に記憶する。
【００２７】
その後、（６）ＰＣ１０は、管理装置６０から、ネットワークＩ／Ｆ１８を介して、対象ＯＩＤを含むＧｅｔリクエストを再度受信する場合に、（７）ＭＩＢ値リスト４４から対象ＯＩＤに関連付けられているＭＩＢ値を特定し、特定済みのＭＩＢ値を含むＧｅｔレスポンスを管理装置６０に送信する。
【００２８】
上述した各処理が実行されるので、管理装置６０は、プリンタ５０との通信を実行不可能であるにも関わらず、ＰＣ１０からプリンタ５０の情報を受信して管理することができる。
【００２９】
（ＰＣ１０の応答処理；図４）
続いて、図４を参照して、ＰＣ１０のＣＰＵ３２がアプリ３８に従って実行する応答処理を説明する。応答処理は、外部装置（例えば管理装置６０、ＰＣ８０）から受信されるＧｅｔリクエストに対する応答を実行するための処理であり、ＰＣ１０においてアプリ３８が起動されると開始される。
【００３０】
Ｓ５では、ＣＰＵ３２は、外部装置から、ネットワークＩ／Ｆ１８を介して、Ｇｅｔリクエストを受信することを監視する。ＣＰＵ３２は、外部装置からＧｅｔリクエストを受信する場合（Ｓ５でＹＥＳ）に、Ｓ１０に進む。Ｇｅｔリクエストは、送信元の外部装置（以下では「対象外部装置」と呼ぶ）のＩＰアドレスと、１個以上のＯＩＤと、を含む。
【００３１】
Ｓ１０では、ＣＰＵ３２は、Ｇｅｔリクエスト内のＩＰアドレスが管理装置領域４８に登録されているのか否かを判断する。ＣＰＵ３２は、当該ＩＰアドレスが登録されていると判断する場合（Ｓ１０でＹＥＳ）に、Ｓ２５に進み、当該ＩＰアドレスが登録されていないと判断する場合（Ｓ１０でＮＯ）に、Ｓ１５に進む。
【００３２】
Ｓ１５では、ＣＰＵ３２は、Ｇｅｔリクエスト内の１個以上のＯＩＤの組み合わせがＯＩＤパターンリスト４２に記憶されているのか否かを判断する。ＣＰＵ３２は、１個以上のＯＩＤの組み合わせがＯＩＤパターンリスト４２に記憶されていると判断する場合（Ｓ１５でＹＥＳ）、即ち、対象外部装置が管理装置であると判断する場合に、Ｓ２０に進む。一方、ＣＰＵ３２は、１個以上のＯＩＤの組み合わせがＯＩＤパターンリスト４２に記憶されていないと判断する場合（Ｓ１５でＮＯ）、即ち、対象外部装置が管理装置以外の装置（例えばＰＣ８０）であると判断する場合に、Ｓ５０に進む。
【００３３】
Ｓ５０では、ＣＰＵ３２は、「Ｎｏ  Ｓｕｃｈ」を含むＧｅｔレスポンスを対象外部装置に送信する。このように、ＣＰＵ３２は、管理装置以外の装置からＧｅｔリクエストを受信する場合に、当該Ｇｅｔリクエストに応じてプリンタ５０からＭＩＢ値を受信するための処理を実行しない。このために、ＰＣ１０の処理負荷が増加するのを抑制できる。Ｓ５０が終了すると、Ｓ５に戻る。
【００３４】
Ｓ２０では、ＣＰＵ３２は、Ｇｅｔリクエスト内の対象外部装置のＩＰアドレス（例えば管理装置６０のＩＰアドレス）を管理装置領域４８に登録する。Ｓ２０が終了すると、Ｓ２５に進む。
【００３５】
Ｓ２５では、ＣＰＵ３２は、Ｇｅｔリクエスト内の１個以上のＯＩＤの全てがＭＩＢ値リスト４４に記憶されているのか否かを判断する。ＣＰＵ３２は、１個以上のＯＩＤの全てがＭＩＢ値リスト４４に記憶されていると判断する場合（Ｓ２５でＹＥＳ）に、Ｓ３０に進み、１個以上のＯＩＤのうちの少なくとも１個のＯＩＤがＭＩＢ値リスト４４に記憶されていないと判断する場合（Ｓ２５でＮＯ）に、Ｓ４０に進む。
【００３６】
Ｓ３０では、ＣＰＵ３２は、まず、ＭＩＢ値リスト４４から、Ｇｅｔリクエスト内の１個以上のＯＩＤに関連付けられている１個以上のＭＩＢ値を特定する。そして、ＣＰＵ３２は、ネットワークＩ／Ｆ１８を介して、特定済みの１個以上のＭＩＢ値を含むＧｅｔレスポンスを対象外部装置に送信する。Ｓ３０が終了すると、Ｓ５に戻る。
【００３７】
Ｓ４０では、ＣＰＵ３２は、まず、Ｇｅｔリクエスト内の１個以上のＯＩＤのうち、ＭＩＢ値リスト４４に記憶されていないＯＩＤ（以下では「対象ＯＩＤ」と呼ぶ）を特定する。次いで、ＣＰＵ３２は、ＰＪＬ変換リスト４０から、対象ＯＩＤに関連付けられているＰＪＬコード（以下では「対象ＰＪＬコード」と呼ぶ）を特定する。ＣＰＵ３２は、例えば、対象ＯＩＤが「Ｘ１」である場合には、ＰＪＬ変換リスト４０から「Ｘ１」に関連付けられている「ＭＯＤＥＬＮＡＭＥ」を特定する（図２のリスト４０参照）。なお、ＣＰＵ３２は、プリンタ５０がＰＣ１０に接続される際に、プリンタ５０から、プリンタ５０の印刷機構がレーザー方式であるのかインクジェット方式であるのかを示す方式情報を受信してメモリ３４に記憶している。ＣＰＵ３２は、例えば、対象ＯＩＤが「Ｘ４」である場合には、ＰＪＬ変換リスト４０から、「Ｘ４」に関連付けられている「ＬＡＳＥＲ」及び「ＩＮＫ」のうち、メモリ３４内の当該方式情報に応じたＰＪＬコードを特定する。
【００３８】
Ｓ４３では、ＣＰＵ３２は、対象ＰＪＬコードに記号「＠ＰＪＬ」を付加することによって、対象ＰＪＬコードと記号「＠ＰＪＬ」とを含むＰＪＬコマンド（以下では「対象ＰＪＬコマンド」と呼ぶ）を生成する。
【００３９】
Ｓ４５では、ＣＰＵ３２は、対象ＯＩＤと対象ＰＪＬコマンドとを関連付けて、ＰＪＬ供給リスト４６に登録する。Ｓ４５が終了すると、Ｓ５０に進む。
【００４０】
（ＰＣ１０の取得処理；図５）
続いて、図５を参照して、ＰＣ１０のＣＰＵ３２がアプリ３８に従って実行する取得処理を説明する。取得処理は、プリンタ５０からＭＩＢ値を取得する処理であり、ＰＣ１０においてアプリ３８が起動されると開始される。
【００４１】
Ｓ１００では、ＣＰＵ３２は、ユーザによって予め設定されている所定タイミングが到来することを監視する。所定タイミングは、１日のうちの予め決められている１回又は２回以上の時刻であり、例えば、夜間帯又は早朝帯のようにプリンタ５０が利用される頻度が少ないタイミングに設定されることが好ましい。また、Ｓ１００でＹＥＳと判断される周期が、管理装置６０がＧｅｔリクエストをＰＣ１０に送信する周期よりも長くなるように、所定タイミングが設定されることが好ましい。ＣＰＵ３２は、所定タイミングが到来する場合（Ｓ１００でＹＥＳ）に、Ｓ１０５に進む。
【００４２】
Ｓ１０５では、ＣＰＵ３２は、１個以上のＰＪＬコマンドがＰＪＬ供給リスト４６に登録されているのか否かを判断する。ＣＰＵ３２は、１個以上のＰＪＬコマンドが登録されている場合（Ｓ１０５でＹＥＳ）、即ち、図４のＳ４５が実行済みである場合に、Ｓ１１０に進む。一方、ＣＰＵ３２は、１個のＰＪＬコマンドも登録されていない場合（Ｓ１０５でＮＯ）、即ち、図４のＳ４５が実行済みでない場合に、Ｓ１１０以降の処理を実行せずにＳ１００に戻る。
【００４３】
Ｓ１１０では、ＣＰＵ３２は、ＰＪＬ供給リスト４６内の１個以上のＰＪＬコマンドを含む１個の印刷ジョブを印刷スプーラ３７に供給して、１個以上のＰＪＬコマンドを含む１個の印刷ジョブを印刷スプーラ３７に記憶させる。これにより、印刷スプーラ３７は、ＵＳＢＩ／Ｆ１６を介して、１個以上のＰＪＬコマンドをプリンタ５０に送信する。印刷スプーラ３７は、ＣＰＵ３２から供給された印刷ジョブからＰＪＬコマンドを順次取得し、各ＰＪＬコマンドを取得した順に、各ＰＪＬコマンドをプリンタ５０に順次送信する。
【００４４】
Ｓ１１５では、ＣＰＵ３２は、プリンタ５０から、ＵＳＢＩ／Ｆ１６を介して、ＭＩＢ値を受信することを監視する。ＣＰＵ３２は、Ｓ１１０で供給された１個以上のＰＪＬコマンドに対応する１個以上のＭＩＢ値の全てを受信する場合に、Ｓ１１５でＹＥＳと判断して、Ｓ１２０に進む。特に、ＣＰＵ３２は、Ｓ１１０で複数個のＰＪＬコマンドが供給される場合には、各ＰＪＬコマンドを供給した順に、各ＰＪＬコマンドに対応する各ＭＩＢ値を順次受信する。
【００４５】
Ｓ１２０では、ＣＰＵ３２は、まず、ＰＪＬ供給リスト４６内の各ＯＩＤと各ＰＪＬコマンドとを特定し、次いで、ＰＪＬ変換リスト４０から、特定済みの各ＯＩＤに関連付けられている各名称を特定する。そして、ＣＰＵ３２は、特定済みの各名称と特定済みの各ＯＩＤと特定済みの各ＰＪＬコマンドと受信済みの各ＭＩＢ値とを関連付けて、ＭＩＢ値リスト４４に記憶する。ここで、各情報（即ち、名称、ＯＩＤ、及び、ＰＪＬコマンド）がＭＩＢ値リスト４４に既に記憶されている場合には、ＣＰＵ３２は、当該各情報をＭＩＢ値リスト４４に新たに記憶することなく、当該各情報に関連付けられているＭＩＢ値を受信済みのＭＩＢ値に更新する。このように、ＯＩＤ、ＭＩＢ値等がＭＩＢ値リスト４４に記憶されるので、ＣＰＵ３２は、管理装置６０から当該ＯＩＤを含むＧｅｔリクエストを受信する場合（図４のＳ５でＹＥＳ）に、当該ＭＩＢ値を含むＧｅｔレスポンスを管理装置６０に送信することができる。Ｓ１２０が終了すると、Ｓ１００に戻る。
【００４６】
例えば、ＣＰＵ３２が、管理装置６０からＧｅｔリクエストを受信する毎に、ＰＪＬコマンドを含む印刷ジョブを印刷スプーラ３７に供給する比較例の構成を想定する。この場合、仮に、管理装置６０が高頻度でＧｅｔリクエストを送信するものであると、印刷スプーラ３７とプリンタ５０との間でＰＪＬコマンド及びＭＩＢ値の通信が高頻度で行われるので、印刷スプーラ３７とプリンタ５０との間において、例えば、印刷をプリンタ５０に実行させるための印刷実行コマンドの通信が妨げられ得る。これに対し、本実施例では、ＣＰＵ３２は、ユーザによって設定される所定タイミングが到来する毎に、ＰＪＬコマンドを含む印刷ジョブを印刷スプーラ３７に供給する構成を採用している。このために、プリンタ５０との間でＰＪＬコマンド及びＭＩＢ値の通信が高頻度で行われるのを抑制することができ、この結果、印刷実行コマンドの通信が妨げられるのを抑制することができる。
【００４７】
（具体的なケース；図６〜図９）
続いて、図６〜図９を参照して、図４及び図５の処理によって実現される具体的なケースを説明する。なお、以下では、理解の容易化のために、各デバイスのＣＰＵ（例えばＰＣ１０のＣＰＵ３２）が実行する動作を、ＣＰＵを主体として記載せずに、各デバイス（例えばＰＣ１０）を主体として記載する。図６の初期状態では、ＭＩＢ値リスト４４、ＰＪＬ供給リスト４６、及び、管理装置領域４８がいずれも空の状態である。
【００４８】
Ｔ５では、ＰＣ１０は、管理装置６０からＧｅｔリクエストを受信する（図４のＳ５でＹＥＳ）。当該Ｇｅｔリクエストは、管理装置６０のＩＰアドレス「Ａ」と、３個のＯＩＤ「Ｘ１」，「Ｘ２」，「Ｘ４」と、を含む。この場合、ＰＣ１０は、管理装置領域４８にＩＰアドレス「Ａ」が登録されておらず、かつ、Ｇｅｔリクエスト内の３個のＯＩＤの組み合わせがＯＩＤパターンリスト４２内の第１のＯＩＤパターン（図２参照）に一致すると判断し（Ｓ１０でＮＯかつＳ１５でＹＥＳ）、Ｔ６において、ＩＰアドレス「Ａ」を管理装置領域４８に登録する（Ｓ２０）。
【００４９】
ＭＩＢ値リスト４４が空の状態であるので、ＰＣ１０は、受信済みの３個のＯＩＤがＭＩＢ値リスト４４に記憶されていないと判断して（Ｓ２５でＮＯ）、Ｔ７において、ＰＪＬ変換リスト４０から、受信済みの３個のＯＩＤに関連付けられている３個のＰＪＬコード「ＭＯＤＥＬＮＡＭＥ」，「ＳＥＲＩＡＬＮＵＭＢＥＲ」，「ＬＡＳＥＲ」を特定する（Ｓ４０）。次いで、ＰＣ１０は、３個のＰＪＬコードに記号「＠ＰＪＬ」を付加して、３個のＰＪＬコマンド「＠ＰＪＬ  ＭＯＤＥＬＮＡＭＥ」，「＠ＰＪＬ  ＳＥＲＩＡＬＮＵＭＢＥＲ」，「＠ＰＪＬ  ＬＡＳＥＲ」を生成する（Ｓ４３）。そして、ＰＣ１０は、Ｔ８において、受信済みの３個のＯＩＤと生成済みの３個のＰＪＬコマンドとを関連付けてＰＪＬ供給リスト４６に登録する（Ｓ４５）。
【００５０】
Ｔ１０では、ＰＣ１０は、「Ｎｏ  Ｓｕｃｈ」を含むＧｅｔレスポンスを管理装置６０に送信する（Ｓ５０）。
【００５１】
一方、Ｔ２０では、ＰＣ１０は、ＰＣ８０から、ＰＣ８０のＩＰアドレス「Ｂ」とＯＩＤ「Ｘ１」とを含むＧｅｔリクエストを受信する（Ｓ５でＹＥＳ）。この場合、ＰＣ１０は、受信済みのＩＰアドレス「Ｂ」が管理装置領域４８に登録されておらず、かつ、ＯＩＤ「Ｘ１」がＯＩＤパターンリスト４２内のいずれのＯＩＤパターンにも一致しないと判断する（Ｓ１０でＮＯかつＳ１５でＮＯ）。この場合、Ｔ３０では、ＰＣ１０は、「Ｎｏ  Ｓｕｃｈ」を含むＧｅｔレスポンスをＰＣ８０に送信する（Ｓ５０）。このように、ＰＣ１０は、管理装置６０以外のＰＣ８０からＧｅｔリクエストを受信する場合に、プリンタ５０からＭＩＢ値を受信するための処理を実行しない。このために、ＰＣ１０の処理負荷が増加するのを抑制できる。
【００５２】
（図６の続き；図７）
続いて、図７を参照して、図６の続きの処理を説明する。ＰＣ１０は、Ｔ１００において、ユーザからプリンタ５０に印刷を実行させるための印刷指示を取得し、Ｔ１０２において、ＰＪＬで記述された印刷ジョブＪを作成して、印刷実行コマンドを含む印刷ジョブＪ１を印刷スプーラ３７に供給する。
【００５３】
また、ＰＣ１０は、Ｔ１０４において、所定タイミングが到来したと判断する（図５のＳ１００でＹＥＳ）。この場合、ＰＣ１０は、Ｔ１０８において、３個のＰＪＬコマンドがＰＪＬ供給リスト４６に登録されていると判断し（Ｓ１０５でＹＥＳ）、３個のＰＪＬコマンドを含む１個の印刷ジョブＪ２を印刷スプーラ３７に供給する（Ｓ１１０）。これにより、印刷スプーラ３７では、各印刷ジョブＪ１，Ｊ２を取得した順に各印刷ジョブＪ１，Ｊ２が記憶される。
【００５４】
次いで、ＰＣ１０は、印刷スプーラ３７が各印刷ジョブＪ１，Ｊ２からコマンドを取得した順に、ＵＳＢＩ／Ｆ１６を介して、各コマンドをプリンタ５０に送信する。即ち、まず、Ｔ１１０では、ＰＣ１０は、印刷実行コマンドを含む印刷ジョブＪ１をプリンタ５０に送信する。この結果、Ｔ１１２では、プリンタ５０では、印刷ジョブＪ１に従った印刷が実行される。次いで、ＰＣ１０は、Ｔ１２０において、ＰＪＬコマンド「＠ＰＪＬ  ＭＯＤＥＬＮＡＭＥ」をプリンタ５０に送信し、Ｔ１２２において、プリンタ５０から、プリンタ５０のモデル名を示すＭＩＢ値「Ｌ８９００ＣＤＷ」を受信する。次いで、ＰＣ１０は、Ｔ１３０において、ＰＪＬコマンド「＠ＰＪＬ  ＳＥＲＩＡＬＮＵＭＢＥＲ」をプリンタ５０に送信し、Ｔ１３２において、プリンタ５０から、プリンタ５０のシリアル番号を示すＭＩＢ値「ＸＸＸ１２３４５６７８」を受信する。最後に、ＰＣ１０は、Ｔ１４０において、ＰＪＬコマンド「＠ＰＪＬ  ＬＡＳＥＲ」をプリンタ５０に送信し、Ｔ１４２において、ＰＣ１０は、プリンタ５０から、プリンタ５０に現在装着されているトナーカートリッジの型番を示すＭＩＢ値「３」を受信する。
【００５５】
Ｔ１４４では、ＰＣ１０は、プリンタ５０から、４個のコマンドに従った処理が終了したことを示す完了通知を受信する。この場合、Ｔ１５０では、ＰＣ１０は、受信済みの３個のＭＩＢ値「Ｌ８９００ＣＤＷ」，「ＸＸＸ１２３４５６７８」，「３」を含む各情報をＭＩＢ値リスト４４に記憶する（Ｓ１２０）。
【００５６】
（図７の続き；図８）
続いて、図８を参照して、図７の続きの処理を説明する。Ｔ２０５では、ＰＣ１０は、管理装置６０からＧｅｔリクエストを受信する（図４のＳ５でＹＥＳ）。当該Ｇｅｔリクエストは、図６のＴ５と同じ内容を含む。この場合、ＰＣ１０は、受信済みのＩＰアドレス「Ａ」が管理装置領域４８に登録されており、かつ、受信済みの３個のＯＩＤ「Ｘ１」，「Ｘ２」，「Ｘ４」の全てがＭＩＢ値リスト４４に記憶されていると判断する（Ｓ１０でＹＥＳかつＳ２５でＹＥＳ）。そして、ＰＣ１０は、Ｔ２０６において、ＭＩＢ値リスト４４において受信済みの３個のＯＩＤに関連付けられている３個のＭＩＢ値「Ｌ８９００ＣＤＷ」，「ＸＸＸ１２３４５６７８」，「３」を含むＧｅｔレスポンスを管理装置６０に送信する（Ｓ３０）。
【００５７】
管理装置６０は、ＰＣ１０から各ＭＩＢ値を含むＧｅｔレスポンスを受信すると、さらなるＭＩＢ値をＰＣ１０から取得することを試みる。即ち、管理装置６０は、Ｔ２０７において、Ｔ２０５内の各ＯＩＤとは異なるＯＩＤ「Ｘ３」を含むＧｅｔリクエストをＰＣ１０に送信する。
【００５８】
ＰＣ１０は、Ｔ２０７において、管理装置６０からＧｅｔリクエストを受信すると（Ｓ５）、管理装置領域４８に受信済みのＩＰアドレス「Ａ」が登録されており、かつ、受信済みのＯＩＤ「Ｘ３」がＭＩＢ値リスト４４に記憶されていないと判断する（Ｓ１０でＹＥＳかつＳ２５でＮＯ）。この場合、ＰＣ１０は、Ｔ２０８において、ＰＪＬ変換リスト４０からＯＩＤ「Ｘ３」に関連付けられているＰＪＬコード「ＳＴＡＴＵＳ」を特定し（Ｓ４０）、ＰＪＬコマンド「＠ＰＪＬ  ＳＴＡＴＵＳ」を生成し（Ｓ４３）、ＰＪＬコマンド「＠ＰＪＬ  ＳＴＡＴＵＳ」をＰＪＬ供給リスト４６に登録する（Ｓ４５）。これにより、ＰＪＬ供給リスト４６には、４個のＰＪＬコマンドが登録された状態となる。ＰＣ１０は、Ｔ２１０において、「Ｎｏ  Ｓｕｃｈ」を含むＧｅｔレスポンスを管理装置６０に送信する（Ｓ５０）。
【００５９】
（図８の続き；図９）
続いて、図９を参照して、図８の続きの処理を説明する。Ｔ３０４、Ｔ３０８、及び、Ｔ３２０〜Ｔ３４２は、図７のＴ１０４、Ｔ１０８、Ｔ１２０〜Ｔ１４２と同様である。ただし、Ｔ３０８では、登録済みの４個のＰＪＬコマンドを含む印刷ジョブＪ３が印刷スプーラ３７に供給される。ＰＣ１０は、Ｔ３４４において、ＰＪＬコマンド「＠ＰＪＬ  ＳＴＡＴＵＳ」をプリンタ５０に送信し、Ｔ３４６において、プリンタ５０から、プリンタ５０の現在の動作状態を示すＭＩＢ値「４０００」を受信する。例えば、ＭＩＢ値「４０００」は、プリンタ５０の現在の動作状態がアイドル状態であることを示す値である。Ｔ３４８は、図７のＴ１５０と同様である。
【００６０】
Ｔ３５０では、ＰＣ１０は、ＭＩＢ値「４０００」をさらにＭＩＢ値リスト４４に記憶する（Ｓ１２０）。この結果、ＰＣ１０は、Ｔ３６０〜Ｔ３７０において、図８のＴ２０５〜２０７と同様の処理を実行した後に、Ｔ３７２において、ＭＩＢ値リスト４４においてＯＩＤ「Ｘ３」に関連付けられているＭＩＢ値「４０００」を含むＧｅｔレスポンスを管理装置６０に送信する。Ｔ３７２の処理が終了すると、図９の処理が終了する。
【００６１】
（本実施例の効果）
本実施例では、ＰＣ１０は、管理装置６０からＧｅｔリクエストを受信する場合（図６のＴ５、図８のＴ２０５）に、ＰＪＬで記述されたＰＪＬコードを特定し（Ｔ７、Ｔ２０８）、特定済みのＰＪＬコードを含むＰＪＬコマンドを、印刷実行コマンドを記憶可能である印刷スプーラ３７に供給する（Ｔ１０８、Ｔ３０８）。このために、例えば、印刷スプーラ３７から印刷実行コマンドがプリンタ５０に送信されている間に、ＰＪＬコマンドが印刷スプーラ３７に供給される場合（Ｔ１０８）に、印刷実行コマンドがプリンタ５０に送信された後に、ＰＪＬコマンドがプリンタに送信される（Ｔ１２０〜Ｔ１４２）。このために、ＰＣ１０からプリンタ５０に送信される印刷実行コマンドの通信が妨げられるのを抑制することができる。
【００６２】
また、ＰＣ１０は、管理装置６０から受信される各ＯＩＤに対応する各ＰＪＬコマンドのみをＰＪＬ供給リスト４６に登録し（図６のＴ８、図８のＴ２０８）、管理装置６０から受信されない各ＯＩＤに対応する各ＰＪＬコマンドをＰＪＬ供給リスト４６に登録しない。このために、ＰＣ１０は、管理装置６０から受信されない各ＯＩＤに対応する各ＰＪＬコマンドをプリンタ５０に送信しないので、ＰＣ１０と管理装置６０との間において、各ＰＪＬコマンド及び各ＭＩＢ値の通信のための通信時間が長くなるのを抑制できる。
【００６３】
（対応関係）
ＰＣ１０、管理装置６０、プリンタ５０が、それぞれ、「通信装置」、「外部装置」、「プリンタ」の一例である。ＵＳＢＩ／Ｆ１６、ネットワークＩ／Ｆ１８が、それぞれ、「第１の通信インターフェース」、「第２の通信インターフェース」の一例である。印刷スプーラ３７が、「所定のメモリ領域」の一例であり、ＰＪＬコード、ＰＪＬコマンドが、それぞれ、「スクリプトコード」、「要求コマンド」の一例である。図５のＴ５のＧｅｔリクエスト、図８のＴ２０５のＧｅｔリクエストが、それぞれ、「第１の情報要求」、「第２の情報要求」の一例である。ＯＩＤ、ＭＩＢ値が、それぞれ、「情報識別子」、「プリンタの情報」の一例である。ＭＩＢ値リスト４４、ＰＪＬ供給リスト４６、ＰＪＬ変換リスト４０、ＯＩＤパターンリスト４２が、それぞれ、「第１のデータベース」、「第２のデータベース」、「第３のデータベース」、「第４のデータベース」の一例である。
【００６４】
また、図４のＳ５の処理、Ｓ４０の処理、図５のＳ１１０の処理、Ｓ１１５の処理、Ｓ３０の処理が、それぞれ、「第１の要求受信部」、「特定部」、「供給部」、「情報受信部」、「送信部」によって実行される処理の一例である。
【００６５】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
【００６６】
（変形例１）ＰＣ１０は、管理装置６０から、ＳＮＭＰとは異なるプロトコル（例えばプリンタ５０のベンダによって開発された独自プロトコル）に従った情報要求を受信してもよい。この場合、情報要求に含まれる情報識別子は、ＯＩＤでなくてもよく、情報を識別するための他の種類の識別子であってもよい。
【００６７】
（変形例２）ＰＣ１０は、上記の実施例で例示されたプリンタ５０の情報（モデル名、シリアル番号、カートリッジの型番、及び、現在の動作状態）のみならず、プリンタ５０から他の情報を受信して、当該他の情報を管理装置６０に送信してもよい。上記の他の情報としては、例えば、プリンタ５０に装着される消耗品の現在の残量を示す情報と、プリンタ５０における印刷枚数を示す情報と、プリンタ５０の消耗品の交換回数を示す情報と、を挙げることができる。
【００６８】
（変形例３）ＰＪＬ変換リスト４０は、ＰＪＬコードに代えて、ＰＪＬコードに記号「＠ＰＪＬ」が付加されたＰＪＬコマンドを記憶していてもよい。この場合、図４のＳ４０において、ＣＰＵ３２は、ＰＪＬ変換リスト４０から、対象ＯＩＤに関連付けられている対象ＰＪＬコマンドを特定し、Ｓ４３を省略して、Ｓ４５において、特定済みの対象ＰＪＬコマンドをＰＪＬ供給リスト４６に登録する。本変形例では、「生成部」を省略可能である。また、本実施例では、ＰＪＬコードに記号「＠ＰＪＬ」が付加されたＰＪＬコマンドを採用しているが、ＰＪＬコマンド規則に基づく他の形式を有するＰＪＬコマンドが採用されてもよい。
【００６９】
（変形例４）印刷スクリプトは、ＰＪＬでなくてもよく、他のスクリプトであってもよい。
【００７０】
（変形例５）ＰＣ１０は、管理装置６０からＧｅｔコマンドを受信する毎に、ＰＪＬコマンドを印刷スプーラ３７に供給してもよい。即ち、ＰＣ１０は、Ｓ４３でＰＪＬコマンドを生成する際に、当該ＰＪＬコマンドを印刷スプーラ３７に供給し、プリンタ１０からＭＩＢ値を受信し、当該ＭＩＢ値を含むＧｅｔレスポンスを管理装置６０に送信する。本変形例では、「第１のデータベース」、「第１の記憶制御部」、「第２の要求受信部」、「第２のデータベース」、及び、「第２の記憶制御部」を省略可能である。
【００７１】
（変形例６）ＰＣ１０は、図４のＳ１０〜Ｓ２０の処理を省略し、Ｓ５でＹＥＳの場合にＳ２５に進んでもよい。本変形例では、「判断部」及び「第４のデータベース」を省略可能である。
【００７２】
（変形例７）ＰＣ１０は、ＵＳＢＩ／Ｆ１６及びネットワークＩ／Ｆ１８に代えて、ＷＦＤ（Wi-Fi Directの略）機能をサポートしているＷｉ−ＦｉＩ／Ｆを備えてもよい。この場合、ＰＣ１０は、ＷＦＤに従った通信をプリンタ５０と実行し、ＷＦＤではない通常のＷｉ−Ｆｉに従った通信を管理装置６０と実行してもよい。本変形例では、Ｗｉ−ＦｉＩ／Ｆが「第１の通信インターフェース」及び「第２の通信インターフェース」の一例であり、ＷＦＤ、通常のＷｉ−Ｆｉが、それぞれ、「第１の通信規格」、「第２の通信規格」の一例である。また、別の変形例では、ＰＣ１０は、ＵＳＢＩ／Ｆ１６に代えて、ＢＴ（Bluetooth（登録商標）の略）Ｉ／Ｆを備えてもよく、ＢＴＩ／Ｆを介して、プリンタ５０との通信を実行してもよい。本変形例では、ＢＴＩ／Ｆが、「第１の通信インターフェース」の一例であり、ＢＴが、「第１の通信規格」の一例である。
【００７３】
（変形例８）「プリンタ」は、印刷機能を備えるあらゆる装置を含み、例えば、スキャン機能をさらに備える多機能機を含む。
【００７４】
（変形例９）上記の各実施例では、図４〜図９の各処理がソフトウェア（即ち各プログラム３６、３８）によって実現されるが、これらの各処理のうちの少なくとも１つが論理回路等のハードウェアによって実現されてもよい。
【００７５】
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【符号の説明】
【００７６】
２：通信システム、４：ＬＡＮ、１０，８０：ＰＣ、１２：操作部、１４：表示部、１６：ＵＳＢＩ／Ｆ、１８：ネットワークＩ／Ｆ１８、３０：制御部、３６：ＯＳプログラム、３７：印刷スプーラ、３８：プリンタアプリケーション、４０：ＰＪＬ変換リスト、４２：ＯＩＤパターンリスト、４４：ＭＩＢ値リスト、４６：ＰＪＬ供給リスト、４８：管理装置領域、５０，７０：プリンタ、６０：管理装置
【図１】
2019067021.tif 000003
【図２】
2019067021.tif 000004
【図３】
2019067021.tif 000005
【図４】
2019067021.tif 000006
【図５】
2019067021.tif 000007
【図６】
2019067021.tif 000008
【図７】
2019067021.tif 000009
【図８】
2019067021.tif 000010
【図９】
2019067021.tif 000011