(57)【要約】【課題】リモートデスクトップ環境でサーバー上に多数のリダイレクトプリンタが生成され、多数のステータス通知アプリケーションが動作する場合でも、サーバーマシンへの負荷を軽減する情報処理装置を提供する。【解決手段】この情報処理装置は、ネットワークで接続された第１印刷装置と、クライアント装置を介して接続されたリダイレクトプリンタとして管理される第２印刷装置と、を監視する情報処理装置であって、第１および第２印刷装置に対して、問合せを行う問合せ手段と、問合せを行う間隔を制御する制御手段と、を有し、制御手段は、ポート情報に基づいて接続された印刷装置がリダイレクトプリンタであるとの特定を行い、該特定により、リダイレクトプリンタとして管理される第２印刷装置に対する問合せの間隔を、第１印刷装置の問合せの間隔よりも相対的に長くする。【選択図】図１３
2015118413.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークで接続された第１印刷装置と、クライアント装置を介して接続されたリダイレクトプリンタとして管理される第２印刷装置と、を監視する情報処理装置であって、
前記第１および第２印刷装置に対して、問合せを行う問合せ手段と、
前記問合せを行う間隔を制御する制御手段と、を有し、
前記制御手段は、ポート情報に基づいて接続された印刷装置が前記リダイレクトプリンタであるとの特定を行い、該特定により、前記リダイレクトプリンタとして管理される第２印刷装置に対する問合せの間隔を、前記第１印刷装置の問合せの間隔よりも相対的に長くする
ことを特徴とする情報処理装置。
【請求項２】
前記制御手段は、前記第１および第２印刷装置の台数に応じて、前記問合せを行う間隔を制御する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第１および第２印刷装置の台数がＮ（１以上の自然数）以上Ｍ（Ｎよりも大きい自然数）未満の場合、前記制御手段は、前記第２印刷装置の前記問合せ間隔を前記第１印刷装置の前記問合せ間隔よりも相対的に長くし、前記台数がＮ未満の場合、前記第１および第２印刷装置の前記問合せ間隔を同じ間隔にし、前記台数がＭ以上の場合、最大値の前記問合せ間隔を制御する
ことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記制御手段は、前記第１および第２印刷装置の台数が変更された場合、変更後の台数に応じて前記問合せの間隔を変更する
ことを特徴とする請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
前記第１および第２印刷装置のステータス情報を取得する取得手段
をさらに有し、
前記取得手段で取得した前記ステータス情報に応じて、前記制御手段は、前記問合せの間隔を制御する
ことを特徴とする請求項１〜４のいずれか１項に記載の情報処理装置。
【請求項６】
前記ステータス情報は、エラーの情報を含み、前記取得手段により取得した前記ステータス情報が前記エラーの情報である場合、前記制御手段は、前記第２印刷装置の前記問合せ間隔を前記第１印刷装置の前記問合せ間隔よりも相対的に長くする
ことを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記取得手段により取得した前記ステータス情報が前記エラーの情報以外である場合、前記制御手段は、前記第１および前記第２印刷装置の問合せ間隔を同じ間隔にする
ことを特徴とする請求項６に記載の情報処理装置。
【請求項８】
ネットワークで接続された第１印刷装置と、クライアント装置を介して接続されたリダイレクトプリンタとして管理される第２印刷装置と、を監視する情報処理装置の制御方法であって、
前記第１および第２印刷装置に対して、問合せを行う問合せ工程と、
前記問合せを行う間隔を制御する制御工程と、
を有し、
前記制御工程において、ポート情報に基づいて接続された印刷装置がリダイレクトプリンタであるとの特定を行い、該特定により、前記リダイレクトプリンタとして管理される第２印刷装置に対する問合せの間隔を、前記第１印刷装置の問合せの間隔よりも相対的に長くする
ことを特徴とする情報処理装置の制御方法。
【請求項９】
請求項１〜７のいずれか１項に記載の手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理装置の制御方法およびそのプログラムに関する。
【背景技術】
【０００２】
従来、画像形成装置（プリンタ）のステータスは、プリンタに付属するパネルで確認する。プリンタが近くにない場合などプリンタのパネルで確認できない場合、ＰＣホスト上で確認するための手段として、ステータス通知アプリケーションが提供される。一般に、ステータス通知アプリケーションは、一定間隔でステータスポーリングを行い、ステータスを表示する。
【０００３】
様々なオフィス環境において、アプリケーションソフトやデータをすべてサーバー上に集約できるといった利点から、例えば、マイクロソフト社のＷｉｎｄｏｗｓ（登録商標）が提供するリモートデスクトップサービスが幅広く使われている。ユーザは、ターミナルサービスのクライアントソフトウェアを実行するクライアントＰＣからサーバーに接続して、サーバー側のリソースを使用してアプリケーションを実行することができる。
【０００４】
また、サーバーは、複数のプリンタがインストールされ、プリントサーバーとして使用される。この場合、ステータス通知アプリケーションは、プリンタドライバ数分存在し、それぞれがデバイスに対してステータスポーリングを行う。リモートデスクトップサービスでは、サーバーとクライアント双方に同一のプリンタドライバがインストールされている場合がある。この場合、クライアントＰＣのローカルにインストールされているプリンタが、ターミナル接続時に自動的にターミナル環境に作成され、ローカルのプリンタに印刷できるようになる機能がある（リダイレクトプリンタ）。
【０００５】
ステータス通知アプリケーションのステータスポーリングは、プリンタの数が増加すると、ＣＰＵへの負荷が大きくなる。特に、前述のリダイレクトプリンタは、１クライアント当たりの数が少なくても、ログインするクライアントが多い場合、サーバーＰＣではサーバーローカルのプリンタに加え、多数のリダイレクトプリンタ分のステータス通知アプリケーションが動作する。これにより、ＣＰＵへの負荷が非常に高くなり、ステータス通知アプリケーションのみならずサーバーＰＣの動作に影響を及ぼす恐れがある。
【０００６】
そこで、特許文献１は、ステータスポーリングの負荷を減らすため、ポーリングを行う間隔を変化させる技術を開示している。特許文献１は、ステータスが変動しない回数をカウントし、所定のカウント毎にステータス取得時間を延長する技術を開示している。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１３−０８８９６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１に開示されている技術は、前述のようにリモートデスクトップ環境で多数のリダイレクトプリンタが生成され、それらのステータスに変動があった場合、サーバーＰＣのＣＰＵ負荷の増加を避けることができない。
【０００９】
本発明は、上記課題を鑑みて、リモートデスクトップ環境でサーバー上に多数のリダイレクトプリンタが生成され、多数のステータス通知アプリケーションが動作する場合、サーバーマシンへの負荷を軽減する情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明の情報処理装置は、ネットワークで接続された第１印刷装置と、クライアント装置を介して接続されたリダイレクトプリンタとして管理される第２印刷装置と、を監視する情報処理装置であって、前記第１および第２印刷装置に対して、問合せを行う問合せ手段と、前記問合せを行う間隔を制御する制御手段と、を有し、前記制御手段は、ポート情報に基づいて接続された印刷装置が前記リダイレクトプリンタであるとの特定を行い、該特定により、前記リダイレクトプリンタとして管理される第２印刷装置に対する問合せの間隔を、前記第１印刷装置の問合せの間隔よりも相対的に長くすることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、リモートデスクトップ環境でサーバー上に多数のリダイレクトプリンタが生成され、多数のステータス通知アプリケーションが動作する場合でも、サーバーマシンへの負荷を軽減する情報処理装置を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施形態に係るシステムの構成を示す概要図である。
【図２】情報処理装置の制御構成を示すブロック図である。
【図３】画像形成装置のコントローラユニット構成を示すブロック図である。
【図４】ステータス通知アプリケーションの一例を示す図である。
【図５】画像形成装置が有するステータスの一例を示す図である。
【図６】ステータス通知アプリケーションのモジュール構成図である。
【図７】サーバー上で動作するステータス通知アプリケーションの概略図である。
【図８】プリンタドライバの数に従うステータスポーリング間隔を定義するテーブルの一例を示す図である。
【図９】前回ステータスに従うステータスポーリング間隔を定義するテーブルの一例を示す図である。
【図１０】リダイレクトプリンタか否かに従うステータスポーリング間隔を定義するテーブルの一例を示す図である。
【図１１】ステータスポーリング間隔を定義するテーブルの一例を示す図である。
【図１２】図７で定義したテーブルに従うポーリング間隔を設定する処理のフローチャートである。
【図１３】プリンタドライバ数が変化したときの通信制御モジュールの動作を示すフローチャートである。
【図１４】図８で定義したテーブルに従いポーリング間隔を設定する処理のフローチャートである。
【図１５】ステータス取得コマンドを受信した通信制御モジュールの動作を示すフローチャートである。
【図１６】図９で定義したテーブルに従いポーリング間隔を設定する処理のフローチャートである。
【図１７】図１０で定義したテーブルに従いポーリング間隔を設定する処理のフローチャートである。
【図１８】図１０で定義したテーブルに従いポーリング間隔を設定する処理のフローチャートである。
【発明を実施するための形態】
【００１３】
以下、本発明を実施するための形態について図面などを参照して説明する。
【００１４】
図１は、本実施形態に係るシステム全体の構成を示す概念図である。図１において、サーバーマシン（情報処理装置）１００は、クライアントマシン（クライアント装置）１０１、１０２および不図示の複数のクライアントマシンと、リモートデスクトップサービスを利用して接続される。本実施形態では、サーバーマシン１００に、プリンタ１０３および不図示の複数のプリンタドライバがインストールされているとする。クライアントマシン１０１、１０２には、それぞれプリンタ１０４、１０５がインストールされ、また、プリンタ１０３のプリンタドライバもインストールされている。なお、本実施形態では、クライアントマシン１０１、１０２に物理的にプリンタ１０３が接続されているか否かは問わない。
【００１５】
図２は、本実施形態に係るサーバーマシン１００のハードウェア構成を示す図である。ＣＰＵ２０1は、システム全体を制御するプロセッサである。ＲＡＭ２０２は、ＣＰＵ２０１が動作するためのシステムワークメモリであり、プログラムを記録するためのプログラムメモリとして使用される。ＮＶＭＥＭ２０３は、不揮発性メモリであり、設定情報等を記録する。ＲＯＭ２０４は、書き換え不可能な不揮発性メモリであり、各種プログラムが記録される。ＨＤＤ２０５は、データ記憶領域である。
【００１６】
ＵＳＢインターフェース２０８は、ＵＳＢデバイスに接続するための機能ユニットで、ＵＳＢを介して他のデバイスのステータス情報を取得し、およびステータス情報を返信するために使用される。ＬＡＮインターフェース２０７は、ＬＡＮに接続するための機能ユニットで、ＬＡＮを介して他のデバイスのステータス情報を取得し、およびステータス情報を返信するために使用される。以上のデバイスがシステムバス２０６上に配置される。
【００１７】
図３は、プリンタ１０３のコントローラユニットのハードウェア構成を示す。コントローラユニット３１３は、画像出力デバイスとして機能するプリンタエンジン部３１１と接続することで、画像データやデバイス情報の入出力を行う。ＣＰＵ３０１は、システム全体を制御するプロセッサである。ＲＡＭ３０３は、ＣＰＵ３０１が動作するためのシステムワークメモリであり、プログラムを記録するためのプログラムメモリや、画像データを一時記録するための画像メモリでもあってよい。ＮＶＭＥＭ３０４は、不揮発性のメモリであり、設定情報等を記録する。
【００１８】
操作部３１６は、デバイスを操作するためのキーとデバイスの状態を示す表示部を保持する。操作部Ｉ／Ｆ３１５は、操作部３１６とのインターフェース部で、操作部３１６の保持する表示部の制御情報を送信する。また、操作部３１６からユーザが入力した情報をＣＰＵ３０１に伝える役割をする。ＦＬＡＳＨＲＯＭ３０２は、書き換え可能な不揮発性メモリであり、システムを制御するための各種制御プログラムが記録される。ＵＳＢインターフェース３０６は、外部装置とのＵＳＢ接続を可能にする。ＬＡＮインターフェース３１４は、外部装置とのＬＡＮ接続を可能にする。以上のデバイスがシステムバス３０５上に配置される。
【００１９】
イメージバス３０７は、システムバス３０５と、画像データを高速で転送する画像バス３１２とを接続し、データ構造を変換するバスブリッジである。画像バス３１２は、例えば、ＰＣＩバスまたはＩＥＥＥ１３９４で構成される。画像バス３１２上には以下のデバイスが配置される。ラスタイメージプロセッサＲＩＰ３０８は、ＰＤＬコードのようなベクトルデータをビットマップイメージに展開する。プリンタＩ／Ｆ３１０は、プリンタエンジン部３１１とコントローラユニット３１３を接続し、画像データの同期系／非同期系の変換や制御コマンドの送受信、電源供給を行う。
【００２０】
画像処理部３０９は、入力画像データに対し補正、加工、編集を行い、プリント出力画像データに対して、プリンタの補正、解像度変換等を行う。また、加えて、画像データの回転や、多値画像データに対してＪＰＥＧ、２値画像データは、ＪＢＩＧ、ＭＭＲ、ＭＨ等の圧縮伸張処理を行う。プリンタエンジン部３１１は、ラスタイメージデータを用紙上の画像に変換する部分である。この方式は、感光体ドラムや感光体ベルトを用いた電子写真方式、微少ノズルアレイからインクを吐出して用紙上に直接画像を印字するインクジェット方式等があるが、どの方式を採用してもよい。プリント動作の起動は、ＣＰＵ３０１からの指示によって開始する。
【００２１】
ＵＳＢインターフェース３０６やＬＡＮインターフェース３１４を介し、ステータス情報の問い合わせが行われると、ＦＬＡＳＨＲＯＭ３０２に記録されたプログラムがＣＰＵ３０１により実行される。そして、プリンタエンジン部３１１の状態を検知し、ステータス情報を返信する。
【００２２】
図４は、サーバーマシン１００上で動作するステータス通知アプリケーション４０１の画面の一例を示す。ステータス通知アプリケーション４０１は、ＲＯＭ２０４に格納されるプログラムでありＣＰＵ２０１で実行される。ステータス通知アプリケーション２０１は、ＮＶＭＥＭ２０３に保存された、後述するポーリング間隔（状態監視の問合せ間隔）に従ってプリンタ１０３のステータスを取得する。取得したステータスの内容に応じて表示部４０２の表示を切り替える。なお、応答ステータスについては、後述の図５にて説明する。
【００２３】
ユーザがプリンタ１０３のプリンタドライバをインストールする場合、同時にステータス通知アプリケーション４０１がインストールされる。ステータス通知アプリケーション４０１がインストールされる場合、ステータス通知アプリケーション４０１はプリンタ１０３と関連付けられる。
【００２４】
図５は、プリンタ１０３が取得し得るステータスの一覧、およびその際にステータス通知アプリケーション４０１が表示部４０２に表示されるステータスを示す。以下、各ステータスについて説明する。レディ５０１は、プリンタ１０３が印刷可能な状態を示す。このとき、ステータス通知アプリケーション４０１は、表示部４０２に印刷できます５１１を表示する。
【００２５】
印刷中５０２は、プリンタ１０３が印刷動作を行っている状態を示す。このとき、ステータス通知アプリケーション４０１は、表示部４０２に印刷中です５１２を表示する。スリープ５０３は、プリンタ１０３がスリープ状態であることを示す。このとき、ステータス通知アプリケーション４０１は、表示部４０２にスリープ中です５１３を表示する。
【００２６】
ジャム５０４は、プリンタ１０３内に用紙が詰まり印刷が行えないことを示す。このとき、ステータス通知アプリケーション４０１は、表示部４０２にジャムが発生しています５１４を表示する。デバイス故障５０５は、プリンタ１０３に何らかの故障が生じているため印刷が行えないことを示す。このときステータス通知アプリケーション４０１は、表示部４０２にデバイス故障中です５１２を表示する。
【００２７】
電源ＯＦＦ（エラー）５０６は、プリンタ１０３の電源が入っていない状態を示す。このとき、ステータス通知アプリケーション４０１は、ステータス取得コマンドに対する応答が得られない。そのためステータス取得コマンドにタイムアウトを指定し、それを超えた場合（すなわち、所定の時間が過ぎた場合）、通信エラーが発生しています５１６を表示する。ドライバだけインストールしてプリンタの実体がない場合も応答が得られないため、同様の通信エラーが発生しています５１６を表示する。以降、エラーとは、デバイスからの応答が得られない通信エラーが発生しています５１６を指す。
【００２８】
図６は、ステータス通知アプリケーション４０１のモジュール構成を示す。ステータス通知アプリケーション４０１は、ＲＯＭ２０４に格納され、ＣＰＵ２０１上で実行される。ステータス通知アプリケーション４０１は、メインアプリケーション部４０３と通信制御モジュール４０４から構成される。通信制御モジュール４０４もＲＯＭ２０４に格納される。メインアプリケーション部４０３は、プリンタ毎にプロセスが存在するが、通信制御モジュール４０４は、複数のステータス通知アプリケーションに共通で使用される。通信制御モジュール４０４は、ステータス取得コマンド他複数のコマンドを提供する。メインアプリケーション部４０３は、通信制御モジュール４０４をロードし、通信制御モジュール４０４が提供するコマンドを使用し、ステータス取得など各種機能を実現する。
【００２９】
通信制御モジュール４０４は、状態を取得するためのステータス取得コマンドを、ＬＡＮインターフェース２０７またはＵＳＢインターフェース２０８を介してプリンタ１０３に送信する。ステータス取得コマンドに応じた応答ステータスをプリンタ１０３からＬＡＮインターフェース２０７またはＵＳＢインターフェース２０８を介して受信すると、その応答ステータスの内容に応じて表示部４０２の表示を切り替える。
【００３０】
図７は、サーバーマシン１００上で通常のプリンタのステータス通知アプリケーションとリダイレクトプリンタのステータス通知アプリケーションが動作する際の概念図である。メインアプリケーション部４０３は、サーバーマシン１００にインストールされたプリンタ１０３のステータス通知アプリケーションのメインアプリケーション部である。
【００３１】
メインアプリケーション部６０４は、クライアントマシン１０１にインストールされたプリンタ６０６のステータス通知アプリケーションのメインアプリケーション部である。このとき、プリンタ（第１印刷装置）１０３とプリンタ６０６は、同一のプリンタであり、プリンタ６０６のプリンタドライバは、サーバーマシン１００、クライアントマシン１０１ともにインストールされている。
【００３２】
サーバーマシン１００にクライアントマシン１０１がリモートデスクトップ接続によりログインすると、ＯＳの機能により自動的に、プリンタ（第２印刷装置）６０６のリダイレクトプリンタが生成される。通信制御モジュール４０４は、リダイレクトプリンタの生成によりプリンタドライバが増えたことを検知する。メインアプリケーションはプリンタ毎にプロセスが異なるため、通信制御モジュール４０４は、生成されたリダイレクトプリンタに対応するメインアプリケーションとしてメインアプリケーション部６０２を起動する。
【００３３】
クライアントマシン１０１上では、不図示のターミナルサービスのクライアントソフトウェアが実行されている。メインアプリケーション部６０４は、通信制御モジュール６０５をロードし、ステータス取得を行う。通信制御モジュール６０４は、サーバーマシン１００上で動作している通信制御モジュール４０４と同一のモジュールである。
【００３４】
通信制御モジュール４０４は、メインアプリケーション部４０３からステータス取得コマンドを受信すると、ＬＡＮインターフェース２０７またはＵＳＢインターフェース２０８を介して送信する。一方、メインアプリケーション部６０２からステータス取得コマンドを受信すると、クライアントマシン１０１上で動作するステータス通信制御モジュール６０５に不図示のネットワークＩＦを介し、ステータス取得コマンドを発行する。
【００３５】
図８は、通信制御モジュール４０４がプリンタのステータスを問い合わせる間隔を定義したポーリング間隔テーブル７０１を示す。ポーリング間隔テーブル７０１は、ＮＶＭＥＭ２０４上に格納される。ポーリング間隔７０１は、サーバーマシン１００にインストールされたプリンタドライバ数ａでポーリング間隔を変化させる。
【００３６】
インストールされたプリンタドライバ数ａがＮ未満場合、ポーリング間隔は、１ｓｅｃを設定する。プリンタドライバ数ａがＮ以上Ｍ未満の場合、ポーリング間隔は、ａ  ｓｅｃを設定する。プリンタドライバ数ａがＭ以上の場合、ポーリング間隔は、ａ＊５  ｓｅｃとする。このとき、閾値Ｎ（１以上の自然数）、閾値Ｍ（Ｎよりも大きい自然数）は、任意の値でありＮＶＭＥＭ２０４に記憶される。なお、閾値Ｎ、閾値Ｍは、固定値でもユーザ定義できる可変値であってもよい。
【００３７】
図９は、通信制御モジュール４０４がプリンタのステータスを問い合わせる間隔を定義したポーリング間隔テーブル８０１を示す。ポーリング間隔テーブル８０１は、ＮＶＭＥＭ２０４上に格納される。ポーリング間隔８０１は、前回ステータスに従い、ポーリング間隔を変化させる。前回ステータスがスリープ５０３の場合、ポーリング間隔は、１０ｓｅｃを設定する。前回ステータスがエラーの場合、ポーリング間隔は、５ｓｅｃを設定する。前回ステータスがスリープでもエラーでもない場合、ポーリング間隔は、１ｓｅｃを設定する。
【００３８】
図１０は、通信制御モジュール４０４がプリンタのステータスを問い合わせる間隔を定義したポーリング間隔テーブル９０１を示す。ポーリング間隔テーブル９０１は、ＮＶＭＥＭ２０４上に格納される。ポーリング間隔９０１は、ステータス取得対象のプリンタがリダイレクトプリンタか否かでポーリング間隔を相対的に変化させる。リダイレクトプリンタの場合、ポーリング間隔は、１０ｓｅｃを設定する。非リダイレクトプリンタの場合、ポーリング間隔は、１ｓｅｃを設定する。
【００３９】
図１１は、通信制御モジュール４０４がプリンタのステータスを問い合わせる間隔を定義したポーリング間隔テーブル１００１を示す。ポーリング間隔テーブル１００１は、ＮＶＭＥＭ２０４上に格納される。ポーリング間隔テーブル１００１は、３つの指標で定義されている。サーバーマシン１００にインストールされたプリンタドライバ数ａ、前回ステータスがエラー５０６、スリープ５０３、エラーおよびスリープの情報以外、プリンタがリダイレクトプリンタか否かである。
【００４０】
ステータスがエラー状態の場合、前述の通り、ステータス取得コマンドがタイムアウトするまで制御が戻らずＣＰＵ負荷が高くなってしまう。そのため、前回ステータスがエラーの場合に特化し、ポーリング間隔を変更する。また、プリンタドライバ数ａが少ない場合（Ｎ未満の場合）、元々、ＣＰＵ負荷が少ないため、リダイレクトプリンタか否かに関わらず同一のポーリング間隔をとる。一方、プリンタドライバ数ａが非常に多い場合（Ｍ以上の場合)、リダイレクトプリンタか否かに関わらず取り得る最大値のポーリング間隔をとる。なお、本実施形態では１００ｓｅｃとするが、これ以外の間隔であってもよい。
【００４１】
プリンタドライバ数ａがＮ以上Ｍ未満の場合、ポーリング間隔は、リダイレクトプリンタであればａ＊５＊５ｓｅｃ、リダイレクトプリンタでなければａ＊５ｓｅｃとなる。リモートデスクトップ環境で多数のリダイレクトプリンタが生成され、それらが通信エラーの場合、サーバーにローカルインストールされているプリンタよりもポーリング間隔を長くすることでＣＰＵ負荷を軽減する。
【００４２】
スリープや、エラーおよびスリープ以外の場合、対象のプリンタと通信ができているためドライバ数ａや前回ステータス、リダイレクトプリンタか否かに依らず一定のポーリング間隔をとる。また、ポーリング間隔テーブル１００１は、プリンタドライバ数ａ、前回ステータス、リダイレクトプリンタか否かの３つの指標を用いているが、任意の組み合わせで定義可能である。
【００４３】
図１２は、ポーリング間隔決定コマンドを受信した通信制御モジュール４０４が、ポーリング間隔テーブル７０１で定義される、サーバーマシン１００にインストールされたプリンタドライバの数に従い、ポーリング間隔を決定する処理を示すフロー図である。
【００４４】
まず、通信制御モジュール４０４は、ポーリング間隔決定コマンドを受信すると（ステップＳ１１０１）、サーバーマシン１００にインストールされているプリンタドライバ数ａを取得する（ステップＳ１１０２）。取得したプリンタドライバ数ａがＮより小さい場合（ステップＳ１１０３でＮｏ）、ポーリング間隔を１秒に設定する（ステップＳ１１０４）。
【００４５】
一方、プリンタドライバ数ａがＮより大きく（ステップＳ１１０３でＹｅｓ）、かつＭより少ない場合（ステップＳ１１０５でＮｏ）、ポーリング間隔をａ  ｓｅｃに設定する（ステップＳ１１０６）。プリンタドライバ数ａがＭより大きい場合（ステップＳ１１０５でＹｅｓ）、ポーリング間隔をａ＊５秒に設定する（ステップＳ１１０７）。
【００４６】
図１３は、インストールされたプリンタドライバの数が変更された際の通信制御モジュール４０４の動作フローである。通信制御モジュール４０４は、メインアプリケーション部４０１にロードされた際、サーバーマシン１００にインストールされているプリンタ台数ａを予め取得する。プリンタドライバ数の変化（変更）を検知すると（ステップＳ１２０１でＹｅｓ）、ポーリング間隔決定コマンドを発行して（ステップＳ１２０２）、変更後のプリンタドライバ数におけるポーリング間隔を決定する。
【００４７】
図１４は、ポーリング間隔決定コマンドを受信した通信制御モジュール４０４がポーリング間隔テーブル８０１で定義される、前回ステータスに従い、ポーリング間隔を決定するフローである。まず、通信制御モジュール４０４は、ポーリング間隔決定コマンドを受信すると（ステップＳ１３０１）、ＮＶＭＥＭ２０４に格納された前回ステータスを取得する（ステップＳ１３０２）。前回ステータスがスリープ５０３の場合（ステップＳ１３０３でＹｅｓ）、ポーリング間隔を１０ｓｅｃに設定する（ステップＳ１３０４）。
【００４８】
前回ステータスがスリープ５０３でなく（ステップＳ１３０３でＮｏ）、エラー５０６の場合（ステップＳ１３０５でＹｅｓ）、ポーリング間隔を５ｓｅｃに設定する（ステップＳ１３０６）。前回ステータスがスリープ５０３でなく（ステップＳ１３０３でＮｏ）、エラー５０６でもない場合（ステップＳ１３０５でＮｏ）、ポーリング間隔を１ｓｅｃに設定する（ステップＳ１３０７）。
【００４９】
図１５は、ステータス取得コマンドを受信した際の通信制御モジュール４０４の動作フローである。本実施形態では、メインアプリケーション部４０１は、一定間隔でステータス取得コマンドを発行するが、ステータス取得コマンドを受け取った通信制御モジュール４０４側で、決定されたポーリング間隔に従いステータス取得を行う。通信制御モジュール４０４がメインアプリケーション側４０１にポーリング間隔を通知し、メインアプリケーション部４０１がポーリング間隔を制御してもよい。
【００５０】
通信制御モジュール４０４は、メインアプリケーション部４０１からステータス取得コマンドを受信する（ステップＳ１４０１）。そして、前回ステータス問い合わせからの経過時間が設定されたポーリング間隔に満たない場合（ステップＳ１４０２でＮｏ）、ＮＶＭＥＭ２０４に記憶された前回ステータスをメインアプリケーション部４０１に返送する（ステップＳ１４０３）。
【００５１】
一方、経過時間がポーリング間隔を超えた場合（ステップＳ１４０２でＹｅｓ）、ステータスをプリンタ１０３に問い合わせる（ステップＳ１４０４）。取得したステータスが前回ステータスから変更があった場合（ステップＳ１４０５でＹｅｓ）、ポーリング間隔決定コマンドを自身に向けて発行する（ステップＳ１４０６）。そして、取得したステータスをＮＶＭＥＭ２０４に記憶し（ステップＳ１４０７）、メインアプリケーション部４０１に返送する（ステップＳ１４０８）。
【００５２】
図１６は、ポーリング間隔決定コマンドを受信した通信制御モジュール４０４がポーリング間隔を決定するフローである。ポーリング間隔は、ポーリング間隔テーブル９０１で定義されるステータス通知アプリケーション４０１に紐づけられたプリンタが、リダイレクトプリンタとして管理されるプリンタか否かに従い、決定する。まず、通信制御モジュール４０４は、自身に向けて発行したポーリング間隔決定コマンドを受信すると（ステップＳ１５０１）、ポート情報からプリンタがリダイレクトプリンタか否かを判定（特定）する（ステップＳ１５０２）。リダイレクトプリンタの場合（ステップＳ１５０２でＹｅｓ）、ポーリング間隔を１０ｓｅｃに設定する（ステップＳ１５０３）。
【００５３】
一方、リダイレクトプリンタでない場合（ステップＳ１５０２でＮｏ）、ポーリング間隔を１ｓｅｃに設定する（ステップＳ１５０４）。リダイレクトプリンタか否かは途中で変わることがないので、通信制御モジュール４０４は、ポーリング開始前の任意のタイミングで（例えば、ロード時の初期化処理など）、ポーリング間隔決定コマンドを自身に向けて発行する。
【００５４】
図１７および図１８は、ポーリング間隔決定コマンドを受信した通信制御モジュール４０４がポーリング間隔テーブル１００１に従い、ポーリング間隔を決定するフローである。ポーリング間隔は、インストールされたプリンタドライバの数、前回取得ステータス、リダイレクトプリンタか否かに基づいて決定する。通信制御モジュール４０４は、ポーリング間隔決定コマンドを受信すると（ステップＳ１６０１）、サーバーマシン１００にインストールされているプリンタドライバ数ａを取得する（ステップＳ１６０２）。続いてＮＶＭＥＭ２０４に格納された前回ステータスを取得する（ステップＳ１６０３）。
【００５５】
次に、図１８において、プリンタドライバ数ａがＮより小さい場合（ステップＳ１６０４でＮｏ）、かつ前回ステータスがスリープ５０３の場合（ステップＳ１６０５でＹｅｓ）、ポーリング間隔を１０ｓｅｃに設定する（ステップＳ１６０６）。一方、前回ステータスがスリープ５０３でなく（ステップＳ１６０５でＮｏ）、かつエラー５０６の場合（ステップＳ１６０７でＹｅｓ）、ポーリング間隔を５ｓｅｃに設定する（ステップＳ１６０８）。前回ステータスがスリープ５０３でもエラー５０６でもない場合（ステップＳ１６０７でＮｏ）、ポーリング間隔を１ｓｅｃに設定する（ステップＳ１６０９）。
【００５６】
プリンタドライバ数ａがＮより大きく（ステップＳ１６０４でＹｅｓ）、Ｍより小さく（ステップＳ１６１０でＮｏ）、かつ前回ステータスがスリープの場合（ステップＳ１６１１でＹｅｓ）、ポーリング間隔を１０ｓｅｃに設定する（ステップＳ１６１２）。前回ステータスがスリープ５０３でなく（ステップＳ１６１１でＮｏ）、エラー５０６である場合（ステップＳ１６１３でＹｅｓ）、ステップＳ１６１３に進む。そして、リダイレクトプリンタか否かを判定して、リダイレクトプリンタの場合（ステップＳ１６１４でＹｅｓ）、ポーリング間隔をプリンタドライバ数ａ＊５＊５に設定する（ステップＳ１６１５）。リダイレクトプリンタでない場合（ステップＳ１６１４でＮｏ）、ポーリング間隔をプリンタドライバ数ａ＊５に設定する（ステップＳ１６１６）。前回ステータスがスリープ５０３でなく（ステップＳ１６１１でＮｏ）、エラー５０６でもない場合（ステップＳ１６１３でＮｏ）、ポーリング間隔を１ｓｅｃに設定する（ステップＳ１６１７）。
【００５７】
図１７に戻って、プリンタドライバ数ａがＭより大きい場合（ステップＳ１６１０でＹｅｓ）、前回ステータスがスリープ５０３の場合（ステップＳ１６１８でＹｅｓ）、ポーリング間隔を１０ｓｅｃに設定する（ステップＳ１６１９）。前回ステータスがスリープ５０３でなく（ステップＳ１６１８でＮｏ）、エラー５０６の場合（ステップＳ１６２０でＹｅｓ）、ポーリング間隔を１００ｓｅｃに設定する（ステップＳ１６２１）。前回ステータスがスリープ５０３でなく（ステップＳ１６１８でＮｏ）、エラー５０６でもない場合（ステップＳ１６２０でＮｏ）、ポーリング間隔を１ｓｅｃに設定する（ステップＳ１６２２）。
【００５８】
以上、本実施形態によれば、リモートデスクトップ環境でサーバー上に多数のリダイレクトプリンタが生成され、多数のステータス通知アプリケーションが動作する場合であっても、サーバーマシン１００への負荷を軽減する情報処理装置を提供することができる。
【００５９】
本発明の各工程は、ネットワーク又は各種記憶媒体を介して取得したソフトウェア（プログラム）をパソコン（コンピューター）等の処理装置（ＣＰＵ、プロセッサ）にて実行することでも実現できる。
【００６０】
以上、本発明の好ましい実施形態について説明したが、本発明は、これらの実施形態に限定されず、その要旨の範囲内で種々の変形および変更が可能である。
【図１】
2015118413.tif 000003
【図２】
2015118413.tif 000004
【図３】
2015118413.tif 000005
【図４】
2015118413.tif 000006
【図５】
2015118413.tif 000007
【図６】
2015118413.tif 000008
【図７】
2015118413.tif 000009
【図８】
2015118413.tif 000010
【図９】
2015118413.tif 000011
【図１０】
2015118413.tif 000012
【図１１】
2015118413.tif 000013
【図１２】
2015118413.tif 000014
【図１３】
2015118413.tif 000015
【図１４】
2015118413.tif 000016
【図１５】
2015118413.tif 000017
【図１６】
2015118413.tif 000018
【図１７】
2015118413.tif 000019
【図１８】
2015118413.tif 000020