(57)【要約】【課題】適切なタイミングでデバイスの状態監視を行うことが可能なデバイス監視装置、デバイス監視プログラムおよびデバイス監視装置の制御方法を提供する。【解決手段】本発明のデバイス監視装置を適用したＰＣ２は、プリンター１に対し、プリンター１の状態を示すデバイス情報を要求する要求部２３０と、プリンター１に送信するジョブを管理するジョブ管理部２１０から、ジョブの状態を示すジョブ状態情報を取得するジョブ状態情報取得部２５０と、ジョブ状態情報に基づいて、要求部２３０がデバイス情報を要求するタイミングを決定する監視制御部２６０と、を備える。【選択図】図２
2018142057.tif 000002
【特許請求の範囲】
【請求項１】
デバイスに対し、前記デバイスの状態を示すデバイス情報を要求する要求部と、
前記デバイスに送信するジョブを管理するジョブ管理部から、前記ジョブの状態を示すジョブ状態情報を取得するジョブ状態情報取得部と、
前記ジョブ状態情報に基づいて、前記要求部が前記デバイス情報を要求するタイミングを決定する監視制御部と、を備えることを特徴とするデバイス監視装置。
【請求項２】
前記要求部は、前記デバイスに対し、定期的に前記デバイス情報を要求するポーリング監視を行い、
前記監視制御部は、前記ジョブ状態情報に基づいて、前記ポーリング監視のポーリング間隔を決定することを特徴とする請求項１に記載のデバイス監視装置。
【請求項３】
前記要求に応じて前記デバイスから送信された前記デバイス情報を取得するデバイス情報取得部を備え、
前記監視制御部は、前記デバイス情報取得部により前記デバイス情報を取得できた場合、前記ポーリング間隔を所定の時間とし、前記デバイス情報取得部により前記デバイス情報を取得できなかった場合、前記ジョブ状態情報に基づいて前記ポーリング間隔を決定することを特徴とする請求項２に記載のデバイス監視装置。
【請求項４】
前記監視制御部は、前記デバイス情報取得部により前記デバイス情報を取得できなかった場合、前記所定の時間より長いポーリング間隔に決定することを特徴とする請求項３に記載のデバイス監視装置。
【請求項５】
前記監視制御部は、前記デバイス情報取得部により前記デバイス情報を取得できなかった場合、次の前記デバイス情報の要求までの前記ポーリング間隔を決定し、当該ポーリング間隔に相当する待機時間を経過した後、前記要求部に対して前記デバイス情報の要求を指示することを特徴とする請求項３または４に記載のデバイス監視装置。
【請求項６】
前記ジョブ状態情報は、前記ジョブの処理済みデータ量を示す情報、前記ジョブの未処理データ量を示す情報、前記ジョブが送信中であるか否かを示す情報、のうち少なくとも１つを含むことを特徴とする請求項１ないし５のいずれか１項に記載のデバイス監視装置。
【請求項７】
コンピューターを、
デバイスに対し、前記デバイスの状態を示すデバイス情報を要求する要求部と、
前記デバイスに送信するジョブを管理するジョブ管理部から、前記ジョブの状態を示すジョブ状態情報を取得するジョブ状態情報取得部と、
前記ジョブ状態情報に基づいて、前記要求部が前記デバイス情報を要求するタイミングを決定する監視制御部と、として機能させるためのデバイス監視プログラム。
【請求項８】
デバイスを監視するデバイス監視装置の制御方法であって、
前記デバイスに送信するジョブを管理するジョブ管理部から、前記ジョブの状態を示すジョブ状態情報を取得するジョブ状態情報取得ステップと、
前記ジョブ状態情報に基づいて、前記デバイスの状態を示すデバイス情報を要求するタイミングを決定する監視制御ステップと、
決定された前記タイミングで、前記デバイスに対し、前記デバイス情報の要求を行う要求ステップと、を実行することを特徴とするデバイス監視装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバイスの監視を行うデバイス監視装置、デバイス監視プログラムおよびデバイス監視装置の制御方法に関する。
【背景技術】
【０００２】
従来、この種の技術として、特許文献１が知られている。特許文献１には、プリンターのポーリング監視を行う監視装置において、プリンターから送信されたステータス情報に基づいてポーリング間隔を決定する技術が開示されている。この監視装置は、プリンターの異常やビジー状態を検出した場合は、ポーリング間隔を短くし、プリンターの正常を検出した場合は、ポーリング間隔を長くする制御を行う。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−２９７３３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、例えば、監視装置からプリンターに対して印刷データを送信してプリンターに印刷動作を実行させる処理の間、監視装置がプリンターのステータス情報を取得できなくなってしまうことがある。この場合、特許文献１の監視装置は、ビジー状態を検出するため、ポーリング間隔を短くし、頻繁にポーリングを繰り返すことになるが、これに備えて監視装置のＣＰＵ（Central Processing Unit）リソースや通信回線リソースを多く用いることになってしまう。このように、監視装置が行うデバイス監視において、デバイスからステータス情報を適切に取得することができないという問題があった。
【０００５】
本発明は、上記の問題点に鑑み、デバイスの状態監視を適切に行うことが可能なデバイス監視装置、デバイス監視プログラムおよびデバイス監視装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明のデバイス監視装置は、デバイスに対し、デバイスの状態を示すデバイス情報を要求する要求部と、デバイスに送信するジョブを管理するジョブ管理部から、ジョブの状態を示すジョブ状態情報を取得するジョブ状態情報取得部と、ジョブ状態情報に基づいて、要求部がデバイス情報を要求するタイミングを決定する監視制御部と、を備えることを特徴とする。
【０００７】
本発明のプログラムは、コンピューターを、デバイスに対し、デバイスの状態を示すデバイス情報を要求する要求部と、デバイスに送信するジョブを管理するジョブ管理部から、ジョブの状態を示すジョブ状態情報を取得するジョブ状態情報取得部と、ジョブ状態情報に基づいて、要求部がデバイス情報を要求するタイミングを決定する監視制御部と、として機能させるためのプログラム。
【０００８】
本発明のデバイス監視装置の制御方法は、デバイスを監視するデバイス監視装置の制御方法であって、デバイスに送信するジョブを管理するジョブ管理部から、ジョブの状態を示すジョブ状態情報を取得するジョブ状態情報取得ステップと、ジョブ状態情報に基づいて、デバイスの状態を示すデバイス情報を要求するタイミングを決定する監視制御ステップと、決定されたタイミングで、デバイスに対し、デバイス情報の要求を行う要求ステップと、を実行することを特徴とする。
【０００９】
本発明の構成によれば、ジョブ状態情報に基づいてデバイス情報を要求するタイミングを決定するため、デバイスとデバイス監視装置とがデータ通信している間など、デバイス情報を取得できなかった場合でも、次のデバイス情報の要求を適切なタイミングで行うことができる。
なお、デバイスとは、プリンター、スキャナー、表示装置（投写装置を含む）など、デバイス監視装置と双方向通信が可能な装置を指す。
【００１０】
上記のデバイス監視装置において、要求部は、デバイスに対し、定期的にデバイス情報を要求するポーリング監視を行い、監視制御部は、ジョブ状態情報に基づいて、ポーリング監視のポーリング間隔を決定することを特徴とする。
【００１１】
本発明の構成によれば、適切なポーリング間隔でデバイスのポーリング監視を行うことができる。
【００１２】
上記のデバイス監視装置において、要求に応じてデバイスから送信されたデバイス情報を取得するデバイス情報取得部を備え、監視制御部は、デバイス情報取得部によりデバイス情報を取得できた場合、ポーリング間隔を所定の時間とし、デバイス情報取得部によりデバイス情報を取得できなかった場合、ジョブ状態情報に基づいてポーリング間隔を決定することを特徴とする。
【００１３】
本発明の構成によれば、デバイス情報を取得できた場合は、通常のポーリングを行うため、デバイスの異常を正確に検知することができる。また、デバイス情報を取得できなかった場合は、デバイスとデータ通信中である可能性が高いため、ジョブ状態情報に基づいて適切なポーリング間隔を決定することができる。
【００１４】
上記のデバイス監視装置において、監視制御部は、デバイス情報取得部によりデバイス情報を取得できなかった場合、所定の時間より長いポーリング間隔に決定することを特徴とする。
【００１５】
本発明の構成によれば、デバイス情報を取得できなかった場合は、デバイスとデータ通信中である可能性が高いため、ポーリング間隔を長くすることで、無駄にポーリングを繰り返すことによる不具合（ポーリングの繰り返しに備えた監視装置のＣＰＵリソースや通信回線リソースの増加など）を防止できる。
【００１６】
上記のデバイス監視装置において、監視制御部は、デバイス情報取得部によりデバイス情報を取得できなかった場合、次のデバイス情報の要求までのポーリング間隔を決定し、当該ポーリング間隔に相当する待機時間を経過した後、要求部に対してデバイス情報の要求を指示することを特徴とする。
【００１７】
本発明の構成によれば、デバイス情報の要求ごとに、適切なポーリング間隔（待機時間）を決定することができる。
【００１８】
上記のデバイス監視装置において、ジョブ状態情報は、ジョブの処理済みデータ量を示す情報、ジョブの未処理データ量を示す情報、ジョブが送信中であるか否かを示す情報、のうち少なくとも１つを含むことを特徴とする。
【００１９】
本発明の構成によれば、ジョブの処理済みデータ量を示す情報、ジョブの未処理データ量を示す情報、ジョブが送信中であるか否かを示す情報、のうち少なくとも１つを考慮し、適切なタイミングでデバイス情報を要求することができる。
【００２０】
なお、本発明のデバイス監視装置は、物理的に１つの装置で実現してもよいし、複数の装置を協働させて実現してもよい。また、本発明に記載された各部の機能は、各々が物理的に独立したハードウェア資源で実現されるものに限定されず、１つのハードウェア資源で複数の機能を実現してもよいし、複数のハードウェア資源で１つの機能を実現してもよい。
【図面の簡単な説明】
【００２１】
【図１】本発明の一実施形態に係る監視システムのハードウェア構成を示すブロック図である。
【図２】監視システムの機能構成を示すブロック図である。
【図３】ＰＣによるポーリング処理の流れを示すフローチャートである。
【図４】変形例１に係る監視システムの機能構成を示すブロック図である。
【発明を実施するための形態】
【００２２】
［第１実施形態］
以下、添付の図面を参照して、本発明のデバイス監視装置、デバイス監視プログラムおよびデバイス監視装置の制御方法を説明する。本実施形態では、「デバイス」の一例としてプリンター１を例示し、「デバイス監視装置」の一例としてパーソナルコンピューター（以下、「ＰＣ」と表記する）２を例示する。
【００２３】
図１は、本発明の一実施形態に係る監視システムＳＹのハードウェア構成を示すブロック図である。監視システムＳＹは、プリンター１およびＰＣ２を含む。これらプリンター１およびＰＣ２は、通信回線４０により接続され、双方向通信が可能である。本実施形態では、通信回線４０として、ＵＳＢケーブルを例示する。なお、ＵＳＢケーブルに代え、ワイヤレスＵＳＢを採用してもよいし、ＵＳＢに限らず他の通信方式を採用してもよい。
【００２４】
プリンター１は、ハードウェア構成として、ＣＰＵ（Central Processing Unit）１１、ＲＯＭ（Read Only Memory）１２、ＲＡＭ（Random Access Memory）１３、通信インターフェイス（以下、「通信Ｉ／Ｆ」と表記する）１４および印刷機構１５を備える。
【００２５】
ＣＰＵ１１は、プリンター１内の各部と信号の入出力を行い、各種演算処理を行う。ＲＯＭ１２は、プリンター１のファームウェア等を記憶する。ＲＡＭ１３は、ＣＰＵ１１のワークエリアとして用いられる。また、ＲＡＭ１３は、ＰＣ２から受信した印刷データを一時的に格納するバッファー４１を有する。
【００２６】
通信Ｉ／Ｆ１４は、ＵＳＢインターフェイスであり、通信回線４０（ＵＳＢケーブル）を介してＰＣ２と通信する。印刷機構１５は、バッファー４１から読み出した印刷データに基づいて印刷を行う。印刷機構１５の印刷方式（インクジェット方式、電子写真方式、熱転写方式、感熱式など）は問わない。
【００２７】
ＰＣ２は、ハードウェア構成として、通信Ｉ／Ｆ２１、ＣＰＵ２２、ＲＯＭ２３、ＲＡＭ２４およびＨＤＤ２５を備える。
【００２８】
通信Ｉ／Ｆ２１は、ＵＳＢインターフェイスであり、通信回線４０を介してプリンター１と通信する。ＣＰＵ２２は、ＰＣ２内の各部と信号の入出力を行い、各種演算処理を行う。ＲＯＭ２３は、各種制御プログラムや各種制御データを記憶する。ＲＡＭ２４は、ＣＰＵ２２のワークエリアとして用いられる。
【００２９】
ＨＤＤ２５は、監視アプリケーション３１、印刷アプリケーション３２、プリンタードライバー３３およびＯＳ（Operating System）３４等のプログラムを記憶する。
【００３０】
監視アプリケーション３１は、プリンター１の状態（ステータス）を監視するためのアプリケーションである。ＰＣ２（ＣＰＵ２２）は、当該監視アプリケーション３１に基づいて、プリンター１に対し、プリンター１の状態を示すデバイス情報を定期的に要求するポーリング監視を行う。なお、監視アプリケーション３１のプログラムが、「デバイス監視プログラム」の一例である。
【００３１】
印刷アプリケーション３２は、印刷対象となる画像ファイルや文書ファイルを生成し、当該印刷対象の印刷指令を行うためのアプリケーションである。プリンタードライバー３３は、印刷アプリケーション３２により生成された画像ファイルや文書ファイルに基づき、印刷ジョブを生成する。印刷ジョブは、プリンター１に対応したプロトコルに基づく制御コマンドを含む。
【００３２】
ＯＳ３４は、上記の監視アプリケーション３１、印刷アプリケーション３２およびプリンタードライバー３３を動作させるための基本ソフトウェアである。また、ＯＳ３４は、スプーラー４２を有する。スプーラー４２は、印刷処理を効率化するためのユーティリティ・ソフトウエアである。スプーラー４２は、プリンタードライバー３３により生成された印刷ジョブを、スプーラー・ファイルとして一時記憶領域（プリンターキュー）に格納し、先の印刷処理が終了し次第、次のジョブの印刷処理を実行させる。なお、印刷ジョブは、「ジョブ」の一例である。
【００３３】
次に、図２を参照し、プリンター１およびＰＣ２の機能構成を説明する。まず、ＰＣ２の機能構成から説明する。ＰＣ２（ＣＰＵ２２）は、主な機能として、ジョブ管理部２１０、通信制御部２２０、要求部２３０、デバイス情報取得部２４０、ジョブ状態情報取得部２５０および監視制御部２６０を備える。なお、これらのうち、ジョブ管理部２１０および通信制御部２２０は、主にＯＳ３４によって実現される機能である。また、要求部２３０、デバイス情報取得部２４０、ジョブ状態情報取得部２５０および監視制御部２６０は、主に監視アプリケーション３１によって実現される機能である。
【００３４】
ジョブ管理部２１０は、プリンター１に送信する印刷ジョブを管理するものであり、スプーラー４２の機能を含む。スプーラー４２は、プリンタードライバー３３により生成された印刷ジョブを、プリンター１に対応する一時記憶領域に格納する。ジョブ管理部２１０は、この一時記憶領域に記憶されている印刷ジョブと、当該印刷ジョブに関するジョブ状態情報と、を管理する。ジョブ状態情報は、プリンタードライバー３３またはＯＳ３４により生成される。
【００３５】
ジョブ状態情報は、印刷ジョブの属性を示す属性情報と、印刷ジョブの状態を示す状態情報と、を含む。属性情報は、印刷ジョブのデータ量（データサイズまたはページ数）、データ種別（ファイル形式、コマンド形式など）、印刷設定（カラー設定、画質設定など）を示す情報を含む。また、状態情報は、処理情報およびステータス情報を含む。処理情報とは、印刷ジョブの処理済みデータ量または印刷ジョブの未処理データ量を示す情報である。なお、「処理済みデータ量」とは、後述する通信制御部２２０から既に送信された印刷データ量を指し、「未処理データ量」とは、通信制御部２２０から送信されていない印刷データ量（スプーラー４２の管理下にある印刷データ量）を指す。また、ステータス情報とは、通信制御部２２０がプリンター１に印刷データを送信中であるか否かを示す情報である。
【００３６】
通信制御部２２０は、通信Ｉ／Ｆ２１の機能を含むものであり、一時記憶領域に格納された印刷ジョブに基づいて、プリンター１に印刷データを送信する。また、通信制御部２２０は、プリンター１に対し、デバイス情報を要求する要求コマンドを送信すると共に、プリンター１から、当該要求コマンドに対する応答としてデバイス情報を受信する。
【００３７】
要求部２３０は、プリンター１に対し、デバイス情報を要求する。つまり、上記の通信制御部２２０に対し、要求コマンドの送信を依頼する（要求ステップ）。また、要求部２３０は、ポーリング監視のため、プリンター１に対し、定期的にデバイス情報を要求する。つまり、通信制御部２２０に対し、定期的に要求コマンドの送信を依頼する。この要求コマンドの送信タイミング（ポーリング間隔）は、後述する監視制御部２６０により決定される。また、監視制御部２６０は、決定したタイミングで、要求部２３０に対し要求コマンドの送信指示を行う。
【００３８】
デバイス情報取得部２４０は、プリンター１から送信されたデバイス情報を、通信制御部２２０を介して取得する。なお、デバイス情報取得部２４０が、デバイス情報を取得できない場合も考えられる。デバイス情報を取得できない場合とは、（１）プリンター１が印刷中（バッファー４１に、印刷データが印刷処理待ち状態になっている状態）のため、ビジー信号を送信した場合、（２）プリンター１に印刷データを送信している間、通信回線４０が占有されてしまい、プリンター１が要求コマンドを受け付けられない場合、（３）プリンター１がデバイス情報を送信したが、ＰＣ２に届かない場合、などが考えられる。
【００３９】
ジョブ状態情報取得部２５０は、監視制御部２６０の指示に基づき、ジョブ管理部２１０からジョブ状態情報を取得する（ジョブ状態情報取得ステップ）。監視制御部２６０は、デバイス情報取得部２４０によりデバイス情報を取得できない場合（上記（１）〜（３）の場合）、ジョブ状態情報取得部２５０に対し、ジョブ状態情報の取得を指示する。
【００４０】
監視制御部２６０は、デバイス情報取得部２４０によりデバイス情報を取得できた場合、ポーリング間隔を、ＨＤＤ２５等に記憶された所定の時間とする。一方、監視制御部２６０は、デバイス情報取得部２４０によりデバイス情報を取得できなかった場合、ジョブ状態情報取得部２５０により取得したジョブ状態情報に基づいて、ポーリング間隔（要求部２３０がデバイス情報を要求するタイミング）を決定する（監視制御ステップ）。この場合（デバイス情報を取得できなかった場合）、デバイス情報を取得できた場合よりも長いポーリング間隔となるようにポーリング間隔を決定する。
【００４１】
ここで、デバイス情報を取得できなかった場合の監視制御部２６０の処理を説明する。監視制御部２６０は、デバイス情報を取得できなかった場合、まずジョブ状態情報を取得し、当該ジョブ状態情報に含まれる状態情報（処理情報およびステータス情報）に基づいて、印刷中であるか否かを判定する。なお、ここでの「印刷中」とは、ＰＣ２からプリンター１に対し印刷データの送信中であるか、プリンター１が印刷処理待ち状態になっていることを指す。
【００４２】
監視制御部２６０は、例えば処理情報から、印刷ジョブの未処理データの存在が検出できた場合や、ステータス情報から、印刷データが送信中であることが検出できた場合に、印刷中と判定する。印刷中と判定した場合、監視制御部２６０は、ジョブ状態情報に含まれる状態情報や属性情報に基づいて、印刷が終わる時間を予測し、ポーリング間隔（デバイス情報の次の要求タイミング）を決定する。例えば、未処理データ量とポーリング間隔とを対応付けたテーブルを参照し、印刷が終わるタイミング、若しくは、その直前または直後に、次回のポーリングを行うように、ポーリング間隔を決定する。これにより、印刷データが送信されている間は、ポーリングが行われないことになるため、無駄なポーリング処理の削減、および通信回線４０のトラフィック削減を実現できる。
【００４３】
一方、プリンター１（ＣＰＵ１１）は、主な機能として、通信制御部１１０および印刷制御部１２０を備える。
【００４４】
通信制御部１１０は、通信Ｉ／Ｆ１４を介してＰＣ２から印刷データを受信する通信制御等を行う。また、通信制御部１１０は、ＰＣ２から要求コマンドを受信すると共に、当該要求コマンドに対する応答としてデバイス情報を送信する。また、通信制御部１１０は、要求コマンドを受信したとき、バッファー４１の状態を確認し、印刷データが印刷処理待ち状態になっている場合、ＰＣ２にビジー信号を送信する。
【００４５】
印刷制御部１２０は、ＰＣ２から送信された印刷データに基づいて印刷制御を行うものであり、印刷機構１５に印刷を実行させる。印刷制御部１２０は、バッファー４１に格納された印刷データを順次読み出し、用紙等の印刷媒体に印刷を行う。
【００４６】
次に、図３のフローチャートを参照し、ＰＣ２によるポーリング処理の流れを説明する。なお、ポーリング処理は、「デバイス監視装置の制御方法」の一例である。ＰＣ２（ＣＰＵ２２）は、ポーリング処理の開始に伴い、プリンター１に対しデバイス情報を要求する（Ｓ０１）。また、この要求に対し、所定の応答期間内にデバイス情報を取得できたか否かを判定する（Ｓ０２）。デバイス情報を取得できた場合は（Ｓ０２：Ｙｅｓ）、ポーリング間隔（次のデバイス情報の要求までの待機時間）を所定の時間に設定し（Ｓ０３）、設定したポーリング間隔だけ待機する（Ｓ０４）。なお、Ｓ０２で「Ｙｅｓ」と判定されるのは、エラー処理を必要としないデバイス情報を取得した場合である。仮に、エラー処理を必要とするデバイス情報を取得した場合は、Ｓ０２で「Ｎｏ」と判定され、後述するＳ０６にて「Ｎｏ」と判定される。
【００４７】
ＰＣ２は、設定したポーリング間隔に相当する待機時間が経過すると、ポーリング監視を継続するか否かを判定し（Ｓ０５）、継続する場合は（Ｓ０５：Ｙｅｓ）、Ｓ０１に戻る。また、ポーリング監視を継続しない場合は（Ｓ０５：Ｎｏ）、ポーリング処理を終了する。なお、ポーリング監視を継続しない場合（Ｓ０５：Ｎｏ）とは、ポーリング監視を中止する操作が行われた場合や、ＰＣ２の状態変化によりポーリング処理を継続できない場合などが考えられる。
【００４８】
一方、ＰＣ２は、デバイス情報を取得できなかった場合（Ｓ０２：Ｎｏ）、ジョブ管理部２１０からジョブ状態情報を取得し、印刷中であるか否かを判定する（Ｓ０６）。ここで、ジョブ状態情報から印刷中であると判定した場合は（Ｓ０６：Ｙｅｓ）、ジョブ状態情報に基づいてポーリング間隔を算出する（Ｓ０７）。ここでは、Ｓ０３で設定したポーリング間隔（所定の時間）よりも長いポーリング間隔が算出されるような算出アルゴリズムが用いられる。また、Ｓ０７の算出結果に基づいて、ポーリング間隔（次のデバイス情報の要求までの待機時間）を設定し（Ｓ０８）、Ｓ０４に移行する。
【００４９】
また、ジョブ状態情報を取得した結果、印刷中でないと判定した場合は（Ｓ０６：Ｎｏ）エラーに応じた処理を行う（Ｓ０９）。例えば、プリンター１からエラー処理を伴うデバイス情報を取得した場合、デバイス情報に応じたエラー処理を行う。なお、Ｓ０６：Ｎｏの判定は、プリンター１からエラー処理を伴うデバイス情報を取得した場合の他、プリンター１からビジー信号などの応答がなく、印刷データの送信中でもない場合や、プリンター１からビジー以外の状態を示すエラー情報を受信した場合、などが考えられる。
【００５０】
以上説明したとおり、本実施形態の監視システムＳＹによれば、ＰＣ２内で管理されている印刷ジョブの状態を示すジョブ状態情報に基づいて、ポーリング間隔を決定するため、デバイス情報を取得できないような場合でも、適切なポーリング間隔でポーリング監視を行うことができる。つまり、プリンター１に対し印刷データを送信している間など、デバイス情報を取得できないと考えられる間は、ポーリングを行わず、印刷データの送信が終わったと考えられるときまで待機することで、無駄にポーリングを繰り返すことによる不具合（ポーリングの繰り返しに備えたＰＣ２のＣＰＵリソースや通信回線リソースの増加など）を防止できる。また、ポーリングの頻度が下がるため、複数プロセスの衝突によるエラー回避も期待できる。一方、デバイス情報を取得できた場合は、通常のポーリング間隔でポーリング監視を行うため、デバイスの異常を正確に検知することができる。
【００５１】
なお、上記の実施形態に限らず、以下の変形例を採用可能である。
［変形例１］
第１実施形態では、プリンター１およびＰＣ２により監視システムＳＹを構成したが、図４に示すように、ＰＣ２の機能を、複数の装置で実現してもよい。図４の例では、上記の実施形態におけるＰＣ２の各部２１０〜２６０（図２参照）を、ＰＣ２´と監視サーバー５により実現している。ＰＣ２´と監視サーバー５は、インターネット等のネットワークＮＷを介して接続される。また、プリンター１は、ＰＣ２´とＵＳＢケーブル等により接続される。また、特に図示しないが、ＰＣ２´には、印刷アプリケーション３２やプリンタードライバー３３がインストールされ、プリンター１に対する印刷指令および印刷ジョブの生成を行う。
【００５２】
ＰＣ２´は、上記の実施形態におけるＰＣ２の機能のうち、ジョブ管理部２１０および通信制御部２２０を備える。また、監視サーバー５は、上記の実施形態におけるＰＣ２の機能のうち、要求部２３０、デバイス情報取得部２４０、ジョブ状態情報取得部２５０および監視制御部２６０を備える。この構成により、ＰＣ２´は、監視サーバー５からのデバイス情報の要求により、プリンター１に対し要求コマンドを送信する。また、ＰＣ２´は、要求コマンドに対する応答（デバイス情報やビジー信号）を監視サーバー５に送信する。また、監視サーバー５は、ジョブ管理部２１０により管理されるジョブ状態情報に基づいてポーリング監視のポーリング間隔を決定し、決定したポーリング間隔で、ＰＣ２´（通信制御部２２０）に対し要求コマンドの送信を指示する。この構成によれば、監視サーバー５によりポーリング処理を制御できるため、ＰＣ２´の制御負荷を軽減できる。
【００５３】
［変形例２］
上記の実施形態においてＰＣ２は、プリンタードライバー３３を備える構成としたが、ドライバーレスの構成としても良い。例えば、マークアップ言語を解釈可能なプリンター１であれば、マークアップ言語により記述された印刷データを送信することにより、プリンター１に対応したコマンド変換が不要となり、ドライバーレスを実現できる。また、ＰＣ２がＷｅｂアプリケーションを利用する構成でもよい。この場合、ＰＣ２にＷｅｂブラウザーを搭載し、Ｗｅｂサーバーから提供されたＷｅｂページをユーザーインターフェースとして、印刷ジョブを生成すればよい。
【００５４】
［変形例３］
上記の実施形態では、ＰＣ２によりポーリング処理を行うものとしたが、必ずしも定期的にデバイス情報を要求する構成でなくてもよい。例えば、ＰＣ２が、何らかの状態変化をトリガーとして、または予め定められたタイミングでデバイス情報を要求する構成でもよい。
【００５５】
［変形例４］
上記の実施形態において監視制御部２６０は、デバイス情報を取得できなかった場合であって、印刷中と判定した場合、印刷ジョブの未処理データ量に基づいて、ポーリング間隔を決定したが、単位時間における未処理データの減少率など、印刷データ送信の進捗率に基づいて、ポーリング間隔を決定してもよい。例えば、未処理データ量が同じ場合でも、進捗率が高ければ、進捗率が低い場合よりもポーリング間隔を短くする、などの算出方法が考えられる。
【００５６】
［変形例５］
また、印刷データの総データ量を、複数個に分割した分割データが処理される時間を計測し、その時間に分割数を乗算することで、ポーリング間隔を決定してもよい。
【００５７】
［変形例６］
また、印刷ジョブのジョブ状態情報だけでなく、通信制御部２２０による印刷データの送信状況を監視し、その監視結果に基づいて、ポーリング間隔を決定してもよい。例えば、印刷データが複数ページのデータから成る場合、各ページデータの送信タイミングを監視することが考えられる。
【００５８】
［変形例７］
また、上記の実施形態では、ジョブ状態情報に基づいて印刷が終わる時間を予測し、その予測時間をポーリング間隔として算出したが、必ずしも印刷が終わる時間を基準にしなくてもよい。例えば、単純に、印刷データの未処理データ量が所定の閾値を超える場合は、ポーリング間隔をｔ１とし、所定の閾値以下の場合は、ポーリング間隔をｔ２（但し、ｔ２＜ｔ１）とする、などの算出方法も考えられる。この場合、閾値を複数段階設けてもよい。また、この場合、印刷データの送信が終わる前にデバイス情報を要求することとなるが、その時点のジョブ状態情報に基づいて、再度、ポーリング間隔（次のデバイス情報の要求までの待機時間）を算出すればよい。
【００５９】
［変形例８］
上記の実施形態では、「デバイス監視装置」として、ＰＣ２を例示したが、タブレット端末やＷｅｂサーバーなどＰＣ２以外の情報処理端末を採用してもよい。
【００６０】
［変形例９］
上記の実施形態では、「デバイス」としてプリンター１を例示したが、他のデバイスに本実施形態を適用してもよい。他のデバイスとしては、スキャナー、表示装置（投写装置を含む）など、「デバイス監視装置」と双方向通信が可能な装置が考えられる。
【００６１】
［変形例１０］
上記の実施形態および変形例に示した監視システムＳＹ内の各装置における各構成要素（各機能）をプログラムとして提供してもよい。また、そのプログラムを各種記録媒体（ＣＤ−ＲＯＭ、フラッシュメモリー等）に格納して提供してもよい。すなわち、コンピューターを監視システムＳＹ内の各装置の各構成要素（各機能）として機能させるためのプログラム、それを記録したコンピューター読み取り可能な記録媒体も、本発明の権利範囲に含まれる。その他、本発明の要旨を逸脱しない範囲で、適宜変更が可能である。
【符号の説明】
【００６２】
１…プリンター、２…ＰＣ、１１０…通信制御部、１２０…印刷制御部、２１０…ジョブ管理部、２２０…通信制御部、２３０…要求部、２４０…デバイス情報取得部、２５０…ジョブ状態情報取得部、２６０…監視制御部、ＳＹ…監視システム
【図１】
2018142057.tif 000003
【図２】
2018142057.tif 000004
【図３】
2018142057.tif 000005
【図４】
2018142057.tif 000006