(57)【特許請求の範囲】
【請求項１】
ネットワークに接続された情報処理装置と相互にデータ通信可能であり、前記情報処理装置とのデータ通信を要求するアプリケーション部からのコマンドに応じてデータ通信を行う通信制御装置であって、
前記アプリケーション部からのコマンドに応じたデータ通信を行うと共に、当該データ通信により取得される応答情報を前記アプリケーション部に出力する通信制御手段と、
前記情報処理装置から送信される情報を記憶すると共に、前記アプリケーション部からのコマンドに対応した前記情報処理装置の仮想的な応答情報を生成する仮想応答手段と、
を備え、
前記通信制御手段は、前記仮想応答手段との仮想的なデータ通信を行うコマンドリストが登録されると共に、前記コマンドリストに登録されたコマンドごとに、前記情報処理装置に代わって前記仮想応答手段に実行させる代替タスクに関する情報が登録された登録情報を管理しており、前記アプリケーション部からのコマンドが前記登録情報に含まれる場合、当該コマンドに基づいて前記仮想応答手段に実行させる代替タスクを特定し、当該代替タスクを前記仮想応答手段に実行させることにより、前記アプリケーション部からのコマンドに対応する応答情報を前記仮想応答手段から取得して前記アプリケーション部に出力し、前記アプリケーション部からのコマンドが前記登録情報に含まれない場合、前記情報処理装置との実際のデータ通信を行うことにより前記情報処理装置からの応答情報を取得して前記アプリケーション部に出力する構成であり、
前記通信制御手段が前記仮想応答手段に実行させる前記代替タスクは、初回目の実行時には前記情報処理装置との実際のデータ通信を行わせて前記情報処理装置からの実際の応答情報で返答させ、２回目以降の実行時には過去に前記情報処理装置から取得した応答情報に基づいて生成した仮想的な応答情報で返答させる処理であることを特徴とする通信制御装置。
【請求項２】
前記仮想応答手段は、
前記情報処理装置から取得する応答情報を記憶する受信情報記憶手段を備えており、前記代替タスクを実行することにより、前記受信情報記憶手段に記憶されている応答情報を読み出して仮想的な応答情報を生成することを特徴とする請求項１記載の通信制御装置。
【請求項３】
前記仮想応答手段は、
前記代替タスクを初回目に実行するとき、前記情報処理装置と実際のデータ通信を行うことにより、前記情報処理装置から取得する応答情報を前記受信情報記憶手段に記憶すると共に、前記情報処理装置に対し、前記情報処理装置の状態変化が生じる場合にその状態変化の通知を予約しておくことを特徴とする請求項２記載の通信制御装置。
【請求項４】
前記仮想応答手段は、前記予約により、前記情報処理装置から状態変化を通知するための情報を受信した場合、当該情報を前記受信情報記憶手段に記憶しておき、その後に前記代替タスクを実行するときに当該情報を読み出して仮想的な応答情報を生成することを特徴とする請求項３記載の通信制御装置。
【請求項５】
前記アプリケーション部からのコマンドに応じて前記通信制御手段と前記仮想応答手段との間で仮想的なデータ通信が行われた場合に当該コマンドを記憶しておく送信情報記憶手段をさらに備え、
前記仮想応答手段は、前記情報処理装置から送信された情報を受信した場合、当該受信情報を前記受信情報記憶手段に記憶すると共に、前記送信情報記憶手段に記憶されているコマンドに基づいて前記情報処理装置との実際のデータ通信を行うことにより、当該コマンドに対応する応答情報を前記情報処理装置から取得して前記受信情報記憶手段に記憶することを特徴とする請求項２乃至４のいずれかに記載の通信制御装置。
【請求項６】
前記コマンドリストには、前記アプリケーション部が前記情報処理装置の状態を管理するために定期的に又は不定期に出力されるコマンドが登録されることを特徴とする請求項１乃至５のいずれかに記載の通信制御装置。
【請求項７】
前記通信制御手段は、前記情報処理装置が省電力モードへ移行するか否かの省電力設定管理情報を保持し、当該省電力設定管理情報において省電力モードへ移行する設定となっていれば、前記アプリケーション部からのコマンドに応じて前記仮想応答手段との仮想的なデータ通信を行い、省電力モードへ移行しない設定となっていれば、前記アプリケーション部からコマンドを入力する都度、前記情報処理装置との実際のデータ通信を行うことを特徴とする請求項１乃至６のいずれかに記載の通信制御装置。
【請求項８】
ネットワークに接続された情報処理装置とのデータ通信を要求するアプリケーション部からのコマンドに応じて通信制御装置が通信制御を行う通信制御方法であって、
(a) 前記アプリケーション部から前記情報処理装置とのデータ通信を要求するコマンドを入力するステップと、
(b) 前記アプリケーション部からのコマンドを入力した場合、所定の仮想応答手段との仮想的なデータ通信を行うことが定義されたコマンドリストが登録されると共に、前記コマンドリストに登録されたコマンドごとに、前記情報処理装置に代わって前記仮想応答手段に実行させる代替タスクに関する情報が登録された登録情報を参照し、前記アプリケーション部からのコマンドが前記コマンドリストに含まれるか否かを判断するステップと、
(c) 前記アプリケーション部からのコマンドが前記コマンドリストに含まれる場合、前記登録情報を更に参照して前記仮想応答手段に実行させる代替タスクを特定し、前記仮想応答手段との仮想的なデータ通信を行うことにより、当該代替タスクを前記仮想応答手段に実行させて前記アプリケーション部からのコマンドに対応する応答情報を前記仮想応答手段から取得して前記アプリケーション部に出力し、前記アプリケーション部からのコマンドが前記コマンドリストに含まれない場合、前記情報処理装置との実際のデータ通信を行うことにより前記情報処理装置からの応答情報を取得して前記アプリケーション部に出力するステップと、
を有し、
前記ステップ(c)は、前記仮想応答手段に前記代替タスクを実行させるとき、初回目の実行時には前記情報処理装置との実際のデータ通信を行わせて前記情報処理装置からの実際の応答情報で返答させる処理を行わせ、２回目以降の実行時には過去に前記情報処理装置から取得した応答情報に基づいて生成した仮想的な応答情報で返答させる処理を行わせることを特徴とする通信制御方法。
【請求項９】
ネットワークに接続された情報処理装置とデータ通信を行うコンピュータによって実行されるプログラムであって、前記コンピュータに、
(a) 前記情報処理装置とのデータ通信を要求するアプリケーション部からのコマンドを入力するステップと、
(b) 前記アプリケーション部からのコマンドを入力した場合、所定の仮想応答手段との仮想的なデータ通信を行うことが定義されたコマンドリストが登録されると共に、前記コマンドリストに登録されたコマンドごとに、前記情報処理装置に代わって前記仮想応答手段に実行させる代替タスクに関する情報が登録された登録情報を参照し、前記アプリケーション部からのコマンドが前記コマンドリストに含まれるか否かを判断するステップと、
(c) 前記アプリケーション部からのコマンドが前記コマンドリストに含まれる場合、前記登録情報を更に参照して前記仮想応答手段に実行させる代替タスクを特定し、前記仮想応答手段との仮想的なデータ通信を行うことにより、当該代替タスクを前記仮想応答手段に実行させて前記アプリケーション部からのコマンドに対応する応答情報を前記仮想応答手段から取得して前記アプリケーション部に出力し、前記アプリケーション部からのコマンドが前記コマンドリストに含まれない場合、前記情報処理装置との実際のデータ通信を行うことにより前記情報処理装置からの応答情報を取得して前記アプリケーション部に出力するステップと、
を実行させ、
前記ステップ(c)は、前記仮想応答手段に前記代替タスクを実行させるとき、初回目の実行時には前記情報処理装置との実際のデータ通信を行わせて前記情報処理装置からの実際の応答情報で返答させる処理を行わせ、２回目以降の実行時には過去に前記情報処理装置から取得した応答情報に基づいて生成した仮想的な応答情報で返答させる処理を行わせることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して情報処理装置とデータ通信を行うための通信制御装置、通信制御方法およびプログラムに関する。
【背景技術】
【０００２】
従来、デジタル複合機やＭＦＰ（Multi Function Peripheral）などと称される情報処理装置は、操作パネルに設けられたスタートキーがユーザによって押下された場合、それに伴ってユーザによって指定されたジョブ（例えばコピージョブなど）を実行する。またネットワークを介して外部のコンピュータなどからジョブ（例えばプリントジョブ）を受信すると、その受信したジョブを実行する。
【０００３】
このような情報処理装置には、操作パネルに対する操作が行われず、しかもネットワークからのデータの受信がない状態で所定時間が経過した場合に、動作状態を省電力モードへと移行させるものが存在する。この省電力モードでは、操作パネルの電源をオフにするのが一般的であったが、近年はより一層大きな省電力効果の実現を図るために、操作パネルの電源をオフにするだけでなく、ネットワーク通信モジュールに設けられた通信制御を行うためのＣＰＵの電源をオフにするものも存在する。
【０００４】
一方、ネットワークを介して情報処理装置とデータ通信可能なコンピュータには、種々のアプリケーションプログラムがインストールされており、その中には、例えば一定周期ごとに情報処理装置とデータ通信を行って情報処理装置の現在の状態を管理するアプリケーションプログラムも存在する。ところが、コンピュータにおいてそのようなアプリケーションプログラムが起動し、情報処理装置に対して断続的にデータ通信を行ってしまうと、情報処理装置はネットワーク通信モジュールのＣＰＵの電源をオンにする必要があり、省電力モードを解除して通常電力状態へと復帰させてしまう。このような状況では情報処理装置の省電力モードを長時間継続させることが困難になり、省電力効果が低下する。
【０００５】
従来、これを防止するための一つの技術として、アプリケーションから情報処理装置に対するデータ通信の要求があった場合、情報処理装置に対して送信する情報を一旦フックし、送信先となる情報処理装置が省電力状態である否かを確認して省電力状態であれば、そのフックした情報を情報処理装置へ送信する前に、情報処理装置へ送信しても良いかどうかをユーザに確認するようにした技術が提案されている（例えば特許文献１）。この従来技術では、ユーザがフックした情報を情報処理装置に送信することを指示した場合、そのフックされた情報が情報処理装置へと送信される。またユーザがフックした情報を情報処理装置に送信しないことを指示した場合には、フックされた情報は送信されないまま処理が終了する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−１１０２７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記従来技術では、アプリケーションからデータ通信の要求があった場合、そのタイミングで送信先となる情報処理装置が省電力状態であるか否かによって動作が切り替わるため、情報処理装置の動作状態を常時正確に管理しておかなければならないという問題がある。
【０００８】
また、上記従来技術では、送信先となる情報処理装置が省電力状態のとき、アプリケーションからデータ通信の要求があると、情報処理装置に対して送信する情報を一旦フックしてしまうため、例えば情報処理装置に既に送信され蓄積されているジョブの実行をキャンセルするためのコマンドや、情報処理装置の設定を変更するコマンド（例えば登録ユーザの登録情報を抹消するコマンドなど）のように、情報処理装置に対して即時に送信しなければならない情報もフックされてしまうという問題がある。
【０００９】
このような場合、ユーザにより情報処理装置に送信する指示が行われると、即時性を有するコマンドが情報処理装置に送信されるようになっているが、ユーザによる指示は情報がフックされた直後に行われるとは限らない。そのため、情報処理装置において蓄積されたジョブの実行が開始された後に、そのジョブをキャンセルするためのコマンドが送信されることがあり、ジョブのキャンセルを指示するタイミングが遅くなってしまうという問題がある。また、情報処理装置に登録されているユーザの登録情報を抹消しようとしても、リアルタイムには登録情報の抹消が行われなくなり、情報処理装置を使用できなくなるはずのユーザによって情報処理装置が依然として使用されてしまうという問題も発生する。
【００１０】
また、上記従来技術では、ユーザがフックした情報を情報処理装置に送信しないことを指示した場合には、フックされた情報は送信されないまま処理が終了する。この場合、情報処理装置の省電力状態が継続されるので省電力という観点からは良好な結果が得られるようになる。しかし、その反面、アプリケーションが情報処理装置から何らかの情報を取得しようとしてデータ送信要求を行ったにもかかわらず、情報処理装置からはそれに対する応答が得られないため、その後はアプリケーションの機能が停止してしまうという問題がある。
【００１１】
そこで本発明は、上記従来の問題点を解決するためになされたものであり、アプリケーション部の機能が停止してしまうことを防止しつつ、情報処理装置の省電力状態を長時間維持できるようにし、さらには情報処理装置において適切な処理をリアルタイムで行うことができるようにした通信制御装置、通信制御方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するため、請求項１にかかる発明は、ネットワークに接続された情報処理装置と相互にデータ通信可能であり、前記情報処理装置とのデータ通信を要求するアプリケーション部からのコマンドに応じてデータ通信を行う通信制御装置であって、前記アプリケーション部からのコマンドに応じたデータ通信を行うと共に、当該データ通信により取得される応答情報を前記アプリケーション部に出力する通信制御手段と、前記情報処理装置から送信される情報を記憶すると共に、前記アプリケーション部からのコマンドに対応した前記情報処理装置の仮想的な応答情報を生成する仮想応答手段と、を備え、前記通信制御手段は、前記仮想応答手段との仮想的なデータ通信を行うコマンドリストが登録されると共に、前記コマンドリストに登録されたコマンドごとに、前記情報処理装置に代わって前記仮想応答手段に実行させる代替タスクに関する情報が登録された登録情報を管理しており、前記アプリケーション部からのコマンドが前記登録情報に含まれる場合、当該コマンドに基づいて前記仮想応答手段に実行させる代替タスクを特定し、当該代替タスクを前記仮想応答手段に実行させることにより、前記アプリケーション部からのコマンドに対応する応答情報を前記仮想応答手段から取得して前記アプリケーション部に出力し、前記アプリケーション部からのコマンドが前記登録情報に含まれない場合、前記情報処理装置との実際のデータ通信を行うことにより前記情報処理装置からの応答情報を取得して前記アプリケーション部に出力する構成であり、前記通信制御手段が前記仮想応答手段に実行させる前記代替タスクは、初回目の実行時には前記情報処理装置との実際のデータ通信を行わせて前記情報処理装置からの実際の応答情報で返答させ、２回目以降の実行時には過去に前記情報処理装置から取得した応答情報に基づいて生成した仮想的な応答情報で返答させる処理であることを特徴とする構成である。
【００１５】
請求項２にかかる発明は、請求項１に記載の通信制御装置において、前記仮想応答手段は、前記情報処理装置から取得する応答情報を記憶する受信情報記憶手段を備えており、前記代替タスクを実行することにより、前記受信情報記憶手段に記憶されている応答情報を読み出して仮想的な応答情報を生成することを特徴とする構成である。
【００１６】
請求項３にかかる発明は、請求項２に記載の通信制御装置において、前記仮想応答手段は、前記代替タスクを初回目に実行するとき、前記情報処理装置と実際のデータ通信を行うことにより、前記情報処理装置から取得する応答情報を前記受信情報記憶手段に記憶すると共に、前記情報処理装置に対し、前記情報処理装置の状態変化が生じる場合にその状態変化の通知を予約しておくことを特徴とする構成である。
【００１７】
請求項４にかかる発明は、請求項３に記載の通信制御装置において、前記仮想応答手段は、前記予約により、前記情報処理装置から状態変化を通知するための情報を受信した場合、当該情報を前記受信情報記憶手段に記憶しておき、その後に前記代替タスクを実行するときに当該情報を読み出して仮想的な応答情報を生成することを特徴とする構成である。
【００１８】
請求項５にかかる発明は、請求項２乃至４のいずれかに記載の通信制御装置において、前記アプリケーション部からのコマンドに応じて前記通信制御手段と前記仮想応答手段との間で仮想的なデータ通信が行われた場合に当該コマンドを記憶しておく送信情報記憶手段をさらに備え、前記仮想応答手段は、前記情報処理装置から送信された情報を受信した場合、当該受信情報を前記受信情報記憶手段に記憶すると共に、前記送信情報記憶手段に記憶されているコマンドに基づいて前記情報処理装置との実際のデータ通信を行うことにより、当該コマンドに対応する応答情報を前記情報処理装置から取得して前記受信情報記憶手段に記憶することを特徴とする構成である。
【００１９】
請求項６にかかる発明は、請求項１乃至５のいずれかに記載の通信制御装置において、前記コマンドリストには、前記アプリケーション部が前記情報処理装置の状態を管理するために定期的に又は不定期に出力されるコマンドが登録されることを特徴とする構成である。
【００２０】
請求項７にかかる発明は、請求項１乃至６のいずれかに記載の通信制御装置において、前記通信制御手段は、前記情報処理装置が省電力モードへ移行するか否かの省電力設定管理情報を保持し、当該省電力設定管理情報において省電力モードへ移行する設定となっていれば、前記アプリケーション部からのコマンドに応じて前記仮想応答手段との仮想的なデータ通信を行い、省電力モードへ移行しない設定となっていれば、前記アプリケーション部からコマンドを入力する都度、前記情報処理装置との実際のデータ通信を行うことを特徴とする構成である。
【００２１】
請求項８にかかる発明は、ネットワークに接続された情報処理装置とのデータ通信を要求するアプリケーション部からのコマンドに応じて通信制御装置が通信制御を行う通信制御方法であって、(a) 前記アプリケーション部から前記情報処理装置とのデータ通信を要求するコマンドを入力するステップと、(b) 前記アプリケーション部からのコマンドを入力した場合、所定の仮想応答手段との仮想的なデータ通信を行うことが定義されたコマンドリストが登録されると共に、前記コマンドリストに登録されたコマンドごとに、前記情報処理装置に代わって前記仮想応答手段に実行させる代替タスクに関する情報が登録された登録情報を参照し、前記アプリケーション部からのコマンドが前記コマンドリストに含まれるか否かを判断するステップと、(c) 前記アプリケーション部からのコマンドが前記コマンドリストに含まれる場合、前記登録情報を更に参照して前記仮想応答手段に実行させる代替タスクを特定し、前記仮想応答手段との仮想的なデータ通信を行うことにより、当該代替タスクを前記仮想応答手段に実行させて前記アプリケーション部からのコマンドに対応する応答情報を前記仮想応答手段から取得して前記アプリケーション部に出力し、前記アプリケーション部からのコマンドが前記コマンドリストに含まれない場合、前記情報処理装置との実際のデータ通信を行うことにより前記情報処理装置からの応答情報を取得して前記アプリケーション部に出力するステップと、を有し、前記ステップ(c)は、前記仮想応答手段に前記代替タスクを実行させるとき、初回目の実行時には前記情報処理装置との実際のデータ通信を行わせて前記情報処理装置からの実際の応答情報で返答させる処理を行わせ、２回目以降の実行時には過去に前記情報処理装置から取得した応答情報に基づいて生成した仮想的な応答情報で返答させる処理を行わせることを特徴とする構成である。
【００２２】
請求項９にかかる発明は、ネットワークに接続された情報処理装置とデータ通信を行うコンピュータによって実行されるプログラムであって、前記コンピュータに、(a) 前記情報処理装置とのデータ通信を要求するアプリケーション部からのコマンドを入力するステップと、(b) 前記アプリケーション部からのコマンドを入力した場合、所定の仮想応答手段との仮想的なデータ通信を行うことが定義されたコマンドリストが登録されると共に、前記コマンドリストに登録されたコマンドごとに、前記情報処理装置に代わって前記仮想応答手段に実行させる代替タスクに関する情報が登録された登録情報を参照し、前記アプリケーション部からのコマンドが前記コマンドリストに含まれるか否かを判断するステップと、(c) 前記アプリケーション部からのコマンドが前記コマンドリストに含まれる場合、前記登録情報を更に参照して前記仮想応答手段に実行させる代替タスクを特定し、前記仮想応答手段との仮想的なデータ通信を行うことにより、当該代替タスクを前記仮想応答手段に実行させて前記アプリケーション部からのコマンドに対応する応答情報を前記仮想応答手段から取得して前記アプリケーション部に出力し、前記アプリケーション部からのコマンドが前記コマンドリストに含まれない場合、前記情報処理装置との実際のデータ通信を行うことにより前記情報処理装置からの応答情報を取得して前記アプリケーション部に出力するステップと、を実行させ、前記ステップ(c)は、前記仮想応答手段に前記代替タスクを実行させるとき、初回目の実行時には前記情報処理装置との実際のデータ通信を行わせて前記情報処理装置からの実際の応答情報で返答させる処理を行わせ、２回目以降の実行時には過去に前記情報処理装置から取得した応答情報に基づいて生成した仮想的な応答情報で返答させる処理を行わせることを特徴とする構成である。
【発明の効果】
【００２３】
本発明によれば、アプリケーション部からのコマンドが情報処理装置と実際のデータ通信を行う必要のないコマンドであれば、情報処理装置とのデータ通信を行うことなく、そのコマンドに対応する仮想的な応答情報を生成してアプリケーション部に出力することにより、アプリケーション部の機能が停止してしまうことを防止しつつ、情報処理装置の省電力状態を長時間維持できるようになる。また、アプリケーション部からのコマンドが情報処理装置と実際のデータ通信を行うことの必要なコマンドであれば、情報処理装置との実際のデータ通信を行うことにより、そのコマンドに対応する処理を情報処理装置でリアルタイムに実行させることができる。
【図面の簡単な説明】
【００２４】
【図１】本発明の一実施形態である情報処理システムの一構成例を示す図である。
【図２】コンピュータのハードウェア構成の一例を示すブロック図である。
【図３】情報処理装置のハードウェア構成の一例を示すブロック図である。
【図４】情報処理装置における動作状態の移行を示す状態遷移図である。
【図５】コンピュータのＣＰＵによって実現される機能構成の一例を示すブロック図である。
【図６】通信制御装置で管理される省電力設定管理情報の一例を示す図である。
【図７】通信制御装置で管理されるテーブル情報の一例を示す図である。
【図８】アプリケーション部から即時性のないコマンドが出力される場合のデータ通信の一例を示す図である。
【図９】予め情報処理装置に送信した通知予約により仮想応答部が情報処理装置から通知情報を受信する場合のデータ通信の一例を示す図である。
【図１０】アプリケーション部から即時性のあるコマンドが出力される場合のデータ通信の一例を示す図である。
【図１１】通信制御部がアプリケーション部からコマンドを受信した場合に実行する処理手順の一例を示すフローチャートである。
【図１２】仮想応答部が通信制御部から代替タスクの実行指令を受けた場合に実行する処理手順の一例を示すフローチャートである。
【図１３】仮想応答部が情報処理装置から通知予約に基づく通知情報を受信した場合に実行する処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００２５】
以下、本発明に関する好ましい実施形態について図面を参照しつつ詳細に説明する。尚、以下に説明する実施形態において互いに共通する部材には同一符号を付しており、それらについての重複する説明は省略する。
【００２６】
図１は、本発明の一実施形態である情報処理システム１の一構成例を示す図である。この情報処理システム１は、一般的なパーソナルコンピュータ（ＰＣ）などで構成されるコンピュータ２と、デジタル複合機やＭＦＰなどと称される情報処理装置３とが、ＬＡＮなどのネットワーク４を介して相互にデータ通信可能に接続された構成である。情報処理装置３は、例えばコピー機能、プリンタ機能、ＦＡＸ機能、スキャナ機能、Ｂｏｘ機能などの複数の機能を備えており、それら複数の機能のうちからユーザによって選択された機能に対応する各種のジョブを実行する。尚、ネットワーク４は、有線ＬＡＮに限られず、無線ＬＡＮやその他のネットワークを含んで構成されても良い。また図１では、ネットワーク４に接続される情報処理装置３が１台である場合を例示しているが、複数台の情報処理装置３が接続されていても構わない。また、ネットワーク４には、上記以外の装置が接続されていても構わない。
【００２７】
図２は、コンピュータ２のハードウェア構成の一例を示すブロック図である。コンピュータ２は、ＣＰＵ１０と、メモリ１１と、ネットワーク通信モジュール１２と、表示装置１３と、操作入力装置１４と、記憶装置１５とを備えており、これら各部がデータバス１６を介して相互にデータの入出力を行うことが可能な構成である。
【００２８】
ＣＰＵ１０は、各種のプログラムを実行するものである。メモリ１１は、ＣＰＵ１０がプログラムを実行することに伴って必要となる各種データを記憶するものである。ネットワーク通信モジュール１２は、ＣＰＵ１０が各種プログラムを実行することに伴ってネットワーク４に接続された各種装置とデータ通信を行うためのものである。表示装置１３は、例えば液晶ディスプレイなどで構成され、各種情報を表示するためのものである。また、操作入力装置１４は、キーボードやマウスなどで構成され、ユーザによる各種指示操作を入力するものである。
【００２９】
記憶装置１５は、ハードディスク装置などの不揮発性記憶装置である。この記憶装置１５には、アプリケーションプログラム１７と、通信制御プログラム１８とが予めインストールされている。また、記憶装置１５には、図示を省略するオペレーティングシステム（ＯＳ）が予めインストールされている。
【００３０】
ＣＰＵ１０は、コンピュータ２に電源が投入されると、それに伴い、記憶装置１５にインストールされているオペレーティングシステムを起動し、その後、通信制御プログラム１８を読み出して起動する。つまり、通信制御プログラム１８は、コンピュータ２に電源が投入されることに伴いＣＰＵ１０によって自動的に実行されるプログラムであり、コンピュータ２に電源が投入されている間は起動された状態のままでコンピュータ２に常駐する。この通信制御プログラム１８は、ＣＰＵ１０によって起動された状態になると、ネットワーク通信モジュール１２を介して情報処理装置３とのデータ通信を制御する通信制御装置として機能する。
【００３１】
一方、アプリケーションプログラム１７は、例えばユーザにより実行指示が行われると、ＣＰＵ１０によって読み出されて実行されるプログラムである。ただし、通信制御プログラム１８と同様に、コンピュータ２に電源が投入されることに伴いＣＰＵ１０によって自動的に実行されるようにしても構わない。このアプリケーションプログラム１７は、情報処理装置３を管理するためのプログラムであり、ＣＰＵ１０によって実行されることにより、例えば、情報処理装置３の装置状態を管理したり、情報処理装置３に対してジョブを送信したり、情報処理装置３に送信したジョブをキャンセルしたり、或いは、情報処理装置３の設定状態を変更したりする機能を実現する。
【００３２】
図３は、情報処理装置３のハードウェア構成の一例を示すブロック図である。情報処理装置３は、制御部２０と、操作パネル２１と、ネットワーク通信モジュール２４と、スキャナ部２５と、プリンタ部２６と、記憶装置２７とを備えており、これら各部がデータバス２８を介して相互にデータの入出力を行うことが可能な構成である。
【００３３】
制御部２０は、図示しないＣＰＵとメモリとを備えており、ＣＰＵが所定のプログラムを実行することにより、各部を制御する制御手段である。この制御部２０は、省電力移行制御部２０ａを備えている。操作パネル２１は、ユーザが情報処理装置３を使用する際のユーザインタフェースであり、ユーザに対して各種情報を表示する表示部２２と、ユーザの指示操作の入力を受け付ける操作部２３とを備えている。ネットワーク通信モジュール２４は、ネットワーク４から情報処理装置３を送信先とするデータを受信して制御部２０に出力したり、制御部２０からコンピュータ２を送信先とするデータを取得してネットワーク４に送信したりする。このネットワーク通信モジュール２４は、ネットワーク４を介して送受信するデータのデータ処理を行うＣＰＵ２４ａと、情報処理装置３を送信先とするデータを検知してネットワーク４から受信する信号検知部２４ｂとを備えている。
【００３４】
スキャナ部２５は、例えば情報処理装置３においてコピージョブやスキャンジョブ、ＦＡＸ送信ジョブが実行されるときに動作し、原稿から画像を読み取って画像データを生成するものである。プリンタ部２６は、例えば情報処理装置３においてコピージョブやプリントジョブ、ＦＡＸ受信ジョブが実行されるときに動作し、画像データに基づいて用紙に画像形成を行って印刷出力するものである。記憶装置２７は、例えばハードディスク装置などの不揮発性記憶装置である。この記憶装置２７には、ユーザによって予め設定される省電力設定情報２９が記憶されている。尚、記憶装置２７には未実行のジョブを蓄積しておくことも可能である。
【００３５】
上記構成の情報処理装置３において電源が投入されると、制御部２０が所定のプログラムを実行し、情報処理装置３の動作状態を通常動作状態へと起動する。この通常動作状態は、ジョブの実行指示が入力されるのを待機する状態であり、上述した各部に電力が供給された状態となっている。例えば、この通常動作状態において、ユーザが操作パネル２１の操作部２３を操作することによってコピージョブなどのジョブの実行を指示すると、制御部２０は、スキャナ部２５やプリンタ部２６を動作させてユーザにより指定されたジョブの実行を制御する。また、通常動作状態においてネットワーク通信モジュール２４によりネットワーク４を介してプリントジョブなどのジョブ実行コマンドが受信されると、制御部２０は、プリンタ部２６を動作させてジョブ実行コマンドにより指定されたプリントジョブなどの実行を制御する。
【００３６】
また、制御部２０の省電力移行制御部２０ａは、情報処理装置３の動作状態を所定の条件下で、通常動作状態から省電力モードであるスリープ状態へと移行させる処理部である。図４は、情報処理装置３の動作状態の移行を示す状態遷移図である。図４に示すように、省電力移行制御部２０ａは、情報処理装置３の動作状態を、通常動作状態ＳＴ１、スリープ状態ＳＴ２および拡張スリープ状態ＳＴ３の３つの状態のいずれかに移行させる。ここで、スリープ状態ＳＴ２は第１段階目の省電力モードであり、通常動作状態ＳＴ１よりも電力消費量を低減することができる動作状態である。また拡張スリープ状態ＳＴ３は、第２段階目の省電力モードであり、スリープ状態ＳＴ２よりも更に電力消費量を低減することができる動作状態である。
【００３７】
上述したように、情報処理装置３に電源が投入されると、省電力移行制御部２０ａは、情報処理装置３を通常動作状態ＳＴ１とし、各部に電力を供給した状態でジョブの実行指示が入力されるのを待機する。この省電力移行制御部２０ａは、操作パネル２１の操作部２３およびネットワーク通信モジュール２４の信号検知部２４ｂを監視している。そして通常動作状態ＳＴ１のとき、操作部２３および信号検知部２４ｂにおいて所定時間信号入力が検知されなかった場合、省電力移行制御部２０ａは、情報処理装置３の動作状態を、通常動作状態ＳＴ１からスリープ状態ＳＴ２へ移行させる。このとき、省電力移行制御部２０ａは、操作パネル２１の表示部２２の電源をオフにして操作パネル２１を消灯する。情報処理装置３がスリープ状態ＳＴ２のとき、操作部２３および信号検知部２４ｂのいずれかによって信号入力が検知されると、省電力移行制御部２０ａは、情報処理装置３の動作状態を、スリープ状態ＳＴ２から通常動作状態ＳＴ１へと移行させ、ジョブの実行を可能な状態とする。
【００３８】
またスリープ状態ＳＴ２のとき、操作部２３および信号検知部２４ｂにおいて所定時間信号入力が検知されなかった場合、省電力移行制御部２０ａは、情報処理装置３の動作状態を、スリープ状態ＳＴ２から拡張スリープ状態ＳＴ３へ移行させる。このとき、省電力移行制御部２０ａは、操作パネル２１の表示部２２の電源をオフにすると共に、ネットワーク通信モジュール２４のＣＰＵ２４ａの電源をオフにする。ただし、信号検知部２４ｂはその機能を動作させたままである。このように情報処理装置３が拡張スリープ状態ＳＴ３へ移行すると、情報処理装置３において電力が供給される部分がスリープ状態ＳＴ２よりも少なくなり、より一層大きな省電力効果を期待することができるようになる。
【００３９】
情報処理装置３が拡張スリープ状態ＳＴ３のとき、操作部２３および信号検知部２４ｂのいずれかによって信号入力が検知されると、省電力移行制御部２０ａは、情報処理装置３の動作状態を、拡張スリープ状態ＳＴ３から通常動作状態ＳＴ１へと移行させ、ジョブの実行を可能な状態とする。したがって、情報処理装置３は、スリープ状態ＳＴ２や拡張スリープ状態ＳＴ３へ移行した後、コンピュータ２から何らかのコマンドを受信すると、それに伴い、省電力モードを解除して通常動作状態ＳＴ１に戻るようになっている。
【００４０】
上記のように、情報処理装置３は、その動作状態を、通常動作状態ＳＴ１、スリープ状態ＳＴ２および拡張スリープ状態ＳＴ３の３つの状態に移行させることが可能であるが、通常動作状態ＳＴ１からスリープ状態ＳＴ２へ移行させるか否かを、又、スリープ状態ＳＴ２から拡張スリープ状態ＳＴ３へ移行させるか否かをユーザが予め設定することができるようになっている。このようなユーザによる設定は、省電力設定情報２９に記録されている。そのため、省電力移行制御部２０ａは、記憶装置２７から省電力設定情報２９を読み出し、その省電力設定情報２９に基づいて情報処理装置３の動作状態の移行制御を行う。例えば、省電力設定情報２９において、スリープ状態ＳＴ２への移行設定がオンになっていれば、上述したように所定時間信号入力が検知されないことを条件として、情報処理装置３の動作状態を、通常動作状態ＳＴ１からスリープ状態ＳＴ２へ移行させる。また、省電力設定情報２９において、拡張スリープ状態ＳＴ３への移行設定がオンになっていれば、上述したように所定時間信号入力が検知されないことを条件として、情報処理装置３の動作状態を、スリープ状態ＳＴ２から拡張スリープ状態ＳＴ３へ移行させる。これに対し、スリープ状態ＳＴ２への移行設定がオフになっていれば、上記のような移行制御は行わず、情報処理装置３は常に通常動作状態ＳＴ１で動作し続けることになる。またスリープ状態ＳＴ２への移行設定がオンであり、拡張スリープ状態ＳＴ３への移行設定がオフになっていれば、情報処理装置３は通常動作状態ＳＴ１からスリープ状態ＳＴ２へのみ移行する。
【００４１】
次に、本実施形態のコンピュータ２において通信制御プログラム１８およびアプリケーションプログラム１７が実行されることによる機能構成について説明する。図５は、コンピュータ２のＣＰＵ１０によって実現される機能構成の一例を示すブロック図である。図５に示すように、コンピュータ２は、通信制御プログラム１８を実行することにより、通信制御装置３２として機能する。またコンピュータ２は、アプリケーションプログラム１７を実行することにより、アプリケーション部３１として機能する。
【００４２】
アプリケーション部３１は、情報処理装置３を管理する処理部であり、上述したように、例えば、情報処理装置３の装置状態を管理したり、情報処理装置３に対してジョブを送信したり、情報処理装置３に送信したジョブをキャンセルしたり、或いは、情報処理装置３の設定状態を変更したりする機能を有している。このアプリケーション部３１は、情報処理装置３を管理又は制御するために、定期的に又は不定期に情報処理装置３に送信するための各種のコマンドを生成する。
【００４３】
アプリケーション部３１は、情報処理装置３に送信するためのコマンドを生成すると、そのコマンドを通信制御装置３２に出力する。つまり、アプリケーション部３１は、情報処理装置３と直接データの送受信を行うのではなく、通信制御装置３２を介してデータの送受信を行うようになっている。そしてアプリケーション部３１は、通信制御装置３２に対してコマンドを出力すると、所定時間が経過するまでの間、そのコマンドに対応する応答情報を受信するのを待機する。アプリケーション部３１は、出力したコマンドに対応する応答情報を受信すると、それに基づいて情報処理装置３の管理情報を更新したり、情報処理装置３に指示した特定の処理の処理結果を把握したりする。
【００４４】
通信制御装置３２は、ネットワーク通信モジュール１２を介して情報処理装置３とのデータ通信を統括的に制御する装置である。この通信制御装置３２は、上述したように、コンピュータ２に常駐しており、アプリケーション部３１と、情報処理装置３との間で行われるデータの送受信を中継するように構成されている。
【００４５】
図５に示すように、通信制御装置３２は、主として、通信制御部３３と、仮想応答部３４とを備えている。また通信制御装置３２は、メモリ１１や記憶装置１５などに記憶される省電力設定管理情報３５と、テーブル情報３６とを管理するように構成されている。
【００４６】
通信制御部３３は、アプリケーション部３１から出力される各種のコマンドを取得し、そのコマンドを解析することによってデータ通信の態様を決定する。そして、その決定に応じた処理を行ってアプリケーション部３１から取得したコマンドに対応する応答情報をアプリケーション部３１に返答する。この通信制御部３３は、省電力設定管理情報３５と、テーブル情報３６とを管理しており、アプリケーション部３１からのコマンドに基づいてデータ通信の態様を決定する際に、これら省電力設定管理情報３５およびテーブル情報３６を参照する。
【００４７】
ここで、省電力設定管理情報３５は、ネットワーク４に接続されている情報処理装置３から省電力設定情報２９を取得して生成される情報であり、ネットワーク４に複数の情報処理装置３が接続されている場合には、情報処理装置３ごとの省電力設定がリスト化された情報となっている。図６は、この省電力設定管理情報３５の一例を示す図である。図６に示すように、省電力設定管理情報３５は、情報処理装置３ごとに、装置名と、ネットワークアドレスと、省電力設定とが相互に関連付けられたテーブル情報となっている。例えば、装置名「ＭＦＰ１」および「ＭＦＰ２」の情報処理装置３はいずれもスリープ状態ＳＴ２と拡張スリープ状態ＳＴ３との双方に移行する設定となっている。また装置名「ＭＦＰ３」の情報処理装置３は、スリープ状態ＳＴ２および拡張スリープ状態ＳＴ３のいずれにも移行しない設定となっている。さらに、装置名「ＭＦＰ４」の情報処理装置３は、スリープ状態ＳＴ２へは移行するが、拡張スリープ状態ＳＴ３へは移行しない設定となっている。
【００４８】
このように通信制御部３３は、情報処理装置３から省電力設定情報２９を予め取得して省電力設定管理情報３５に登録しておくことにより、各情報処理装置３が省電力モードに移行するか否かを、データ通信を発生させることなく判断することができる。尚、通信制御部３３が、情報処理装置３から省電力設定情報２９を予め取得するタイミングは適宜設定可能であるが、例えば通信制御装置３２の起動時に情報処理装置３とデータ通信を行って予め取得しておくことなどが考えられる。
【００４９】
一方、テーブル情報３６は、アプリケーション部３１から出力される各種のコマンドがリスト化された情報となっている。図７は、このテーブル情報３６の一例を示す図である。図７に示すように、テーブル情報３６には、アプリケーション部３１から出力される複数のコマンドが登録されている。これらのコマンドは、いずれも通信制御部３３に対して情報処理装置３とのデータ通信を要求するコマンドであり、情報処理装置３に対して各種の処理を行うことを要求するコマンドとなっている。
【００５０】
このテーブル情報３６には、登録されたコマンドごとに、データ通信時のプロトコルと、即時性の有無を示す情報とが登録されており、即時性のないコマンドの場合には、更に代替タスクに関する情報と、実通信制限条件に関する情報とが登録されている。ここで、即時性とは、アプリケーション部３１から出力されるコマンドを即時に情報処理装置３に送信する必要があるか否かを予め定義した情報である。テーブル情報３６に登録されるコマンドは、この即時性の有無によって２種類のコマンドに大別されている。すなわち、即時性のないコマンドは、仮想応答部３４との仮想的なデータ通信を行うコマンドとして、第１のコマンドリスト３６ａに登録されている。また、即時性のあるコマンドは、情報処理装置３と即時にデータ通信を行う必要があるコマンドとして、第２のコマンドリスト３６ｂに登録されている。
【００５１】
図７の例では、仮想応答部３４との仮想的なデータ通信を行う第１のコマンドリスト３６ａに、導通確認コマンドと、装置情報取得コマンドと、サポートコマンド取得コマンドと、検索コマンドとが登録されている。
【００５２】
導通確認コマンドは、アプリケーション部３１がネットワーク障害の有無を検知するために定期的に出力するコマンドである。例えば、情報処理装置３がこの導通確認コマンドを受信すると、通常動作状態ＳＴ１となり、ジョブの実行が可能な状態であることを示す応答情報を生成して応答する。アプリケーション部３１は、導通確認コマンドを出力すると、それに対応する応答情報を取得することにより、ネットワーク障害が発生していないことを把握する。
【００５３】
装置情報取得コマンドは、アプリケーション部３１が情報処理装置３の装置情報を取得するために定期的に出力するコマンドである。すなわち、アプリケーション部３１は、情報処理装置３において用紙不足やトナー不足、紙詰まりなどのエラーが発生していないかを把握するために、或いは、情報処理装置３におけるプリント枚数などを管理するために、情報処理装置３から装置情報を定期的に取得して管理情報を更新するようになっている。そのため、アプリケーション部３１は、装置情報取得コマンドを定期的に出力する。例えば、情報処理装置３がこの装置情報取得コマンドを受信すると、通常動作状態ＳＴ１となり、エラーの発生の有無やプリント枚数などの現在の装置状態を示す装置情報を応答情報として生成し、応答する。アプリケーション部３１は、装置情報取得コマンドを出力すると、それに対応する応答情報を取得することにより、情報処理装置３の装置状態を把握して管理する。
【００５４】
サポートコマンド取得コマンドは、アプリケーション部３１が情報処理装置３においてサポートされているコマンド種別を取得するために起動時に出力するコマンドである。すなわち、アプリケーション部３１が情報処理装置３から各種の応答情報を得るためには、アプリケーション部３１から情報処理装置３に対し、情報処理装置３で解析可能なコマンドを出力する必要がある。例えば、上述した導通確認コマンドや装置情報取得コマンドは、コマンド種別に応じて異なるコマンドとなる。そのため、アプリケーション部３１は、例えば起動時にサポートコマンド取得コマンドを出力する。情報処理装置３は、このサポートコマンド取得コマンドを受信すると、通常動作状態ＳＴ１となり、コマンド種別を示す応答情報を生成して応答する。そしてアプリケーション部３１は、サポートコマンド取得コマンドを出力すると、それに対応する応答情報を取得することにより、情報処理装置３においてサポートされているコマンド種別を特定し、それ以後、コマンドを出力する際には特定されたコマンド種別に対応するコマンドを生成する。
【００５５】
検索コマンドは、アプリケーション部３１がネットワーク環境下において現在稼働中の情報処理装置３を検索するために定期的に出力するコマンドである。例えば、情報処理装置３がこの検索コマンドを受信すると、通常動作状態ＳＴ１となり、ジョブの実行が可能な状態であることを示す応答情報を生成して応答する。そしてアプリケーション部３１は、検索コマンドを出力すると、それに対応する応答情報を取得することにより、ネットワーク４に接続されている情報処理装置３であって、現在稼働中のものを把握する。
【００５６】
このようにテーブル情報３６において、仮想応答部３４との仮想的なデータ通信を行う第１のコマンドリスト３６ａに登録されているコマンドは、アプリケーション部３１が情報処理装置３を管理するために定期的に又は不定期に出力されるコマンドとなっている。これらのコマンドは、情報処理装置３に対し、コマンドに対応した応答情報の返信だけを要求するものであり、それ以外には情報処理装置３において即時に実行しなければならない特別な動作を要求するものではない。それ故、これらのコマンドは即時性のないコマンドとして登録されている。
【００５７】
これに対し、図７の例では、情報処理装置３と即時にデータ通信を行う第２のコマンドリスト３６ｂに、ジョブ実行コマンドと、ジョブ削除コマンドと、設定変更コマンドとが登録されている。
【００５８】
ジョブ実行コマンドは、アプリケーション部３１が情報処理装置３に対してジョブの実行を指示するために出力するコマンドである。例えば、情報処理装置３がこのジョブ実行コマンドを受信すると、通常動作状態ＳＴ１となり、ジョブ実行コマンドで指定されたジョブの実行を開始する。尚、ジョブ実行コマンドには、プリントデータなどのジョブの実体データが付加されていても良いし、情報処理装置３に既に蓄積されているジョブであればそのジョブを指定する情報が付加されていても良い。そして情報処理装置３がジョブ実行コマンドで指定されたジョブの実行を完了すると、それに伴い、ジョブの実行完了を示す応答情報を生成して応答する。アプリケーション部３１は、この応答情報を取得することにより、情報処理装置３において正常にジョブの実行が完了したことを把握する。
【００５９】
ジョブ削除コマンドは、アプリケーション部３１が情報処理装置３に蓄積されているジョブの削除を指示するために出力するコマンドである。例えば、情報処理装置３がこのジョブ削除コマンドを受信すると、通常動作状態ＳＴ１となり、ジョブ削除コマンドで指定されたジョブを削除する。そして情報処理装置３がジョブ削除コマンドで指定されたジョブの削除を完了すると、それに伴い、ジョブの削除完了を示す応答情報を生成して応答する。アプリケーション部３１は、この応答情報を取得することにより、情報処理装置３において正常にジョブの削除が行われたことを把握する。
【００６０】
設定変更コマンドは、アプリケーション部３１が情報処理装置３の設定変更を指示するために出力するコマンドである。このような設定変更には、例えば、情報処理装置３を使用することができるユーザを予め登録したユーザ登録情報の変更があり、新規ユーザの情報を追加登録する変更や、既存登録ユーザの情報を修正したり、削除したりする変更が含まれる。また設定変更コマンドにより、情報処理装置３における省電力設定情報２９の内容を変更することも可能である。例えば、情報処理装置３がこの設定変更コマンドを受信すると、通常動作状態ＳＴ１となり、設定変更コマンドで指定された設定変更を反映する。そして情報処理装置３が設定変更コマンドで指定された設定変更処理を完了すると、それに伴い、設定変更の完了を示す応答情報を生成して応答する。アプリケーション部３１は、この応答情報を取得することにより、情報処理装置３において正常に設定変更が反映されたことを把握する。
【００６１】
このようにテーブル情報３６において、情報処理装置３と即時にデータ通信を行う第２のコマンドリスト３６ｂに登録されているコマンドは、アプリケーション部３１から不定期に出力されるコマンドとなっている。これらのコマンドは、情報処理装置３に対し、コマンドに対応した応答情報の返信を要求するだけではなく、それ以外にも情報処理装置３において即時に実行しなければならない特別な動作を要求するコマンドである。特にこれらのコマンドは、応答情報の返信よりも寧ろ情報処理装置３においてそのタイミングで特別な処理を実行させることに重要な意味を持つコマンドとなっている。それ故、これらのコマンドは即時性のあるコマンドとして登録されている。
【００６２】
通信制御部３３は、アプリケーション部３１からコマンドを入力すると、まず省電力設定管理情報３５を参照することにより、コマンドの送信先となる情報処理装置３がスリープ状態ＳＴ２又は拡張スリープ状態ＳＴ３へ移行するか否かを判定する。そしてコマンドの送信先となる情報処理装置３がスリープ状態ＳＴ２又は拡張スリープ状態ＳＴ３へ移行する場合、通信制御部３３は次にテーブル情報３６を参照し、そのコマンドが仮想応答部３４との仮想的なデータ通信を行う第１のコマンドリスト３６ａに登録されているか否かを判定する。その結果、アプリケーション部３１から入力したコマンドが第１のコマンドリスト３６ａに登録されている場合、通信制御部３３は、そのコマンドの送信先として仮想応答部３４を特定すると共に、テーブル情報３６に登録されている代替タスクに関する情報、および、実通信制限条件に関する情報を参照し、仮想応答部３４に実行させる代替タスクを特定する。そして通信制御部３３は、仮想応答部３４を機能させ、アプリケーション部３１から入力したコマンドを仮想応答部３４に出力すると共に、仮想応答部３４に対して代替タスクの実行を指示する。
【００６３】
これに対し、上記以外の場合、すなわち、コマンドの送信先となる情報処理装置３がスリープ状態ＳＴ２若しくは拡張スリープ状態ＳＴ３へ移行しない場合、又は、アプリケーション部３１から入力したコマンドが第２のコマンドリスト３６ｂに含まれる場合、通信制御部３３は、アプリケーション部３１から入力したコマンドを直ちにネットワーク通信モジュール１２へ出力し、そのコマンドを情報処理装置３へ送信する。
【００６４】
ここで代替タスクとは、情報処理装置３に代わって仮想応答部３４に代替的に実行させる処理であって、通信制御部３３がコマンドをネットワーク通信モジュール１２に直接出力して情報処理装置３に送信することなく、仮想応答部３４にコマンドを出力して仮想応答部３４からそのコマンドに対応した応答情報を取得するための処理である。このような代替タスクは、コマンドに応じてその処理内容が異なるため、テーブル情報３６において、第１のコマンドリスト３６ａに登録されているコマンドごとに設定されている。例えば、導通確認コマンドには代替タスクＡが設定されており、装置情報取得コマンドには代替タスクＢが設定されている。また、サポートコマンド取得コマンドには代替タスクＣが設定されており、検索コマンドには代替タスクＤが設定されている。このような代替タスクＡ，Ｂ，Ｃ，Ｄは、いずれも基本的には情報処理装置３との間で余分なデータ通信を行わない処理として設定されている。
【００６５】
図５に示すように、仮想応答部３４は、応答処理部３８と、送信情報バッファ４１と、受信情報バッファ４２とを備えている。応答処理部３８は、通信制御部３３から指定される代替タスクを実行することにより、通信制御部３３から入力するコマンドに対応した応答情報を生成して通信制御部３３に出力するものである。送信情報バッファ４１は、通信制御部３３から入力するコマンドを記憶しておくためのものである。受信情報バッファ４２は、情報処理装置３から実際に送信された各種の応答情報を受信した場合にその応答情報を記憶しておくためのものである。
【００６６】
応答処理部３８は、既にコマンドに対応した応答情報が受信情報バッファ４２に記憶されていれば、情報処理装置３とのデータ通信を発生させることなく、受信情報バッファ４２からその応答情報を読み出して仮想的な応答情報として通信制御部３３に出力する。しかし、受信情報バッファ４２にコマンドに対応した応答情報が記憶されていない場合、応答処理部３８は、コマンドに対応する応答情報を生成することができない。
【００６７】
そこで本実施形態では、通信制御部３３が、各コマンドに対応する代替タスクＡ，Ｂ，Ｃ，Ｄが応答処理部３８において実行された回数を管理しており、その実行回数に応じて各代替タスクＡ，Ｂ，Ｃ，Ｄの処理内容を異なる処理内容に切り替える。すなわち、通信制御部３３は、応答処理部３８に代替タスクＡ，Ｂ，Ｃ，Ｄのそれぞれを実行させる場合、その代替タスクの初回目の実行であれば、情報処理装置３との間で実際のデータ通信を行わせ、情報処理装置３からそのコマンドに対応した実際の応答情報を取得させて受信情報バッファ４２に記憶させる。そして、仮想応答部３４が情報処理装置３から実際に取得した応答情報を出力させる処理を初回目の代替タスクとして指定する。これに対し、２回目以降の実行であれば、既に受信情報バッファ４２にそのコマンドに対応した応答情報が格納されている。そのため、通信制御部３３は、情報処理装置３との実際のデータ通信を行わせず、過去に情報処理装置３から取得した応答情報を受信情報バッファ４２から読み出して出力させる処理を２回目以降の代替タスクとして指定する。
【００６８】
したがって、応答処理部３８は、通信制御部３３から指定された代替タスクを実行する際、その代替タスクの実行が初回目であれば、通信制御部３３から入力するコマンドをネットワーク通信モジュール１２に出力し、情報処理装置３に送信する。これにより、応答処理部３８は、情報処理装置３からコマンドに対応する応答情報を受信するので、その応答情報を受信情報バッファ４２に記憶すると共に、その受信した応答情報を通信制御部３３に出力する。また、応答処理部３８は、通信制御部３３から指定された代替タスクの実行が２回目以降であれば、情報処理装置３とのデータ通信を発生させることなく、受信情報バッファ４２に格納されている過去に取得した応答情報を読み出し、仮想的な応答情報として通信制御部３３に出力する。このとき、応答処理部３８は、通信制御部３３から入力するコマンドを送信情報バッファ４１に保存しておく。
【００６９】
このように、通信制御部３３は、アプリケーション部３１から入力するコマンドが第１のコマンドリスト３６ａに登録されている場合、そのコマンドを仮想応答部３４に出力すると共に、仮想応答部３４に対してコマンドに対応した代替タスクの実行を指示することにより、仮想応答部３４からコマンドに対応する応答情報を取得する。そして通信制御部３３は、仮想応答部３４から取得した応答情報をアプリケーション部３１に出力する。これにより、アプリケーション部３１は、通信制御部３３に出力したコマンドに対応する応答情報を取得することができるので、その取得した応答情報に基づいて情報処理装置３の管理状態を正常に継続させることができ、アプリケーション部３１の機能が停止してしまうことを防止できるようになる。
【００７０】
特に通信制御部３３は、アプリケーション部３１から同じコマンドを繰り返し入力する場合、仮想応答部３４に対して２回目以降の代替タスクを指定して実行させるので、このときにはコンピュータ２と情報処理装置３との間でデータ通信は発生しなくなる。そのため、アプリケーション部３１から同じコマンドを入力したタイミングで、情報処理装置３が既にスリープ状態ＳＴ２又は拡張スリープ状態ＳＴ３に移行していたとしても、情報処理装置３にはコマンドが送信されないので、情報処理装置３は通常動作状態ＳＴ１に復帰することはなく、スリープ状態ＳＴ２又は拡張スリープ状態ＳＴ３を継続させることができ、情報処理装置の省電力モードを維持することが可能である。
【００７１】
ところで、アプリケーション部３１から通信制御部３３に出力されるコマンドのうち、即時性のないコマンドが２回以上出力されると、その２回目以降からはコンピュータ２と情報処理装置３との間で実際のデータ通信を全く行わないようにしてしまうと、アプリケーション部３１が情報処理装置３の状態を全く把握できなくなる可能性があり、アプリケーションプログラム１７による利便性が低下する。例えば、アプリケーション部３１が情報処理装置３において用紙不足やトナー不足、紙詰まりなどのエラーが発生していないかを把握するために、或いは、情報処理装置３におけるプリント枚数を把握するために定期的に出力する装置情報取得コマンドが情報処理装置３に毎回送信されなくなると、アプリケーション部３１はそれらの情報を管理することができなくなり、アプリケーション部３１によって提供される機能の利便性が低下する。
【００７２】
これを防止するため、本実施形態では、テーブル情報３６において、第１のコマンドリスト３６ａに登録されたコマンドごとに、実通信制限条件に関する情報が登録されている。実通信制限条件とは、コンピュータ２と情報処理装置３との実際のデータ通信を制限する条件であり、アプリケーション部３１からのコマンドの出力回数又は時間によって設定される。そして通信制御部３３は、仮想応答部３４に代替タスクの実行を指示する際、この実通信制限条件に達しているか否かを判定し、実通信制限条件に達していれば、受信情報バッファ４２に格納されている情報を更新させるために、２回目以降の実行であっても初回目に対応する代替タスクの実行を指示するようになっている。
【００７３】
図７の例では、導通確認コマンドおよびサポートコマンド取得コマンドに対応する実通信制限条件の欄には、回数制限および時間制限のいずれにも条件が設定されていない。そのため、これらのコマンドがアプリケーション部３１から出力された場合、２回目以降であれば、無制限で情報処理装置３との実際のデータ通信が禁止されるようになる。
【００７４】
一方、装置情報取得コマンドに対応する実通信制限条件の欄には、回数制限として３０回が設定されている。この場合、アプリケーション部３１から出力される装置情報取得コマンドの出力回数が、２回目以降３０回目までは情報処理装置３との実際のデータ通信が禁止されるようになる。そして３１回目の場合は、初回目のコマンド出力の場合と同様となり、通信制御部３３は仮想応答部３４に対して代替タスクの実行を指示する際、初回目に対応する代替タスクを指定する。これにより、装置情報取得コマンドに対応する応答情報として受信情報バッファ４２に格納されている情報は、所定の間隔で更新されるようになる。その結果、アプリケーション部３１において情報処理装置３の状態を全く把握できなくなるという不具合は解消される。
【００７５】
また本実施形態では、通信制御部３３が仮想応答部３４に対して初回目の代替タスクを実行させるとき、情報処理装置３の状態変化の通知予約を行わせる。したがって、応答処理部３８は、通信制御部３３からの指示に基づいて初回目の代替タスクを実行するとき、情報処理装置３に対して、将来において情報処理装置３の状態変化が生じるときにその状態変化を通知するように予約する。
【００７６】
情報処理装置３は、このような通知予約を受信すると、その通知予約を管理する。そしてその後、情報処理装置３において用紙不足やトナー不足、紙詰まりなどのエラーが発生した場合、プリント枚数が所定の枚数に達した場合、或いは情報処理装置３の電源がオフとなる場合に、予め受信した通知予約に基づいてそれらの状態変化を通知するための情報をコンピュータ２に送信する。
【００７７】
応答処理部３８は、情報処理装置３に対して送信した通知予約に基づき、情報処理装置３から状態変化を通知するための情報を受信した場合、その情報を受信情報バッファ４２に記憶する。その後、通信制御部３３からの指示に基づいて代替タスクを実行するときにその情報を読み出し、仮想的な応答情報として通信制御部３３に出力する。これにより、例えば、装置情報取得コマンドに対応する代替タスクの実行回数が３０回に満たない場合であっても、情報処理装置３から通知された情報で応答情報が生成されるため、アプリケーション部３１は、比較的早期に情報処理装置３の状態変化を把握することができるようになる。
【００７８】
また応答処理部３８は、情報処理装置３に対して送信した通知予約に基づき、情報処理装置３から状態変化を通知するための情報を受信した場合、そのタイミングで、送信情報バッファ４１に記憶されているコマンドを読み出し、情報処理装置３に送信する。これにより、応答処理部３８は、そのコマンドに対応する最新の応答情報を情報処理装置３から取得して受信情報バッファ４２に記憶することができる。ただし、この場合においても、情報処理装置３が電源オフとなる状態変化を通知してきたのであれば、情報処理装置３にコマンドを送信しても応答情報が得られるとは限らない。そのため、情報処理装置３が電源オフとなる状態変化を通知してきた場合には、コマンドの送信を行わないようにしても良い。
【００７９】
このように応答処理部３８は、情報処理装置３から情報を受信した場合、そのタイミングで送信情報バッファ４１に記憶されているコマンドを情報処理装置３に送信する。情報処理装置３が何らかの情報を送信してくるということは、情報処理装置３がスリープ状態ＳＴ２又は拡張スリープ状態ＳＴ３ではなく、通常動作状態ＳＴ１であることを意味しているため、このタイミングで送信情報バッファ４１に記憶されているコマンドを送信することにより、情報処理装置３の省電力モードを解除してしまうことなく、情報処理装置３から最新の応答情報を取得することが可能である。
【００８０】
そして上記のようにして取得される最新の応答情報は、その後に応答処理部３８がそのコマンドに対応した２回目以降の代替タスクを実行することにより、受信情報バッファ４２から読み出され、通信制御部３３を介してアプリケーション部３１に出力される。
【００８１】
上述したように本実施形態の通信制御部３３は、アプリケーション部３１から入力するコマンドに基づいて仮想応答部３４との仮想的なデータ通信を行うか否かを判断し、仮想的なデータ通信を行う場合には、仮想応答部３４との仮想的なデータ通信を行うことにより、アプリケーション部３１から入力したコマンドに対応する仮想的な応答情報を取得し、その仮想的な応答情報をアプリケーション部３１に出力するように構成される。そのため、アプリケーション部３１を有効に機能させつつ、情報処理装置３の省電力モードを継続させることが可能である。
【００８２】
また、通信制御部３３がデータ通信の態様を決定する際には、アプリケーション部３１から入力するコマンドに基づく判断を行うため、情報処理装置３の動作状態が、その時点においてスリープ状態ＳＴ２であるか、又は拡張スリープ状態ＳＴ３であるかを厳密に判断する必要がない。そのため、コンピュータ２に常駐する通信制御装置３２の処理負担を低減することができる。尚、これとは反対に、仮に通信制御部３３が情報処理装置３の動作状態をリアルタイムで管理するような構成とした場合には、情報処理装置３の動作状態が切り替わる度に管理テーブルなどを書き換える必要があり、コンピュータ２に常駐する通信制御装置３２の処理負担が増加するので好ましくはない。
【００８３】
次に、コンピュータ２と情報処理装置３とのデータ通信について説明する。まず図８は、アプリケーション部３１から即時性のないコマンドが出力される場合のデータ通信の一例を示す図である。アプリケーション部３１から通信制御部３３に対して即時性のないコマンドが出力されると、通信制御部３３はそのコマンドに対応する代替タスクを特定する（プロセスＰ１）。ここで特定される代替タスクは初回目の実行であるので、通信制御部３３は、情報処理装置３との実際のデータ通信を行うことを指定する。そして通信制御部３３は、特定した代替タスクの実行指示を仮想応答部３４に出力する。仮想応答部３４は、通信制御部３３から指定された代替タスクを判定し、初回目の実行であれば、情報処理装置３と実際のデータ通信を行うことを特定する（プロセスＰ２）。そして仮想応答部３４は、情報処理装置３に対し、情報処理装置３の状態変化が生じたときにその状態変化を通知することを要求するための通知予約を送信する。また仮想応答部３４は、これとほぼ同時に、通信制御部３３から入力したコマンドを情報処理装置３に送信し、そのコマンドに対する応答を要求する。
【００８４】
情報処理装置３は、仮想応答部３４から送信される通知予約を受け付けると共に、仮想応答部３４から送信されるコマンドを受信する。そして情報処理装置３は、仮想応答部３４から受信したコマンドに対応する応答情報を生成して仮想応答部３４に送信する。
【００８５】
仮想応答部３４は、情報処理装置３から送信される応答情報を受信すると、その応答情報を通信制御部３３に出力する。通信制御部３３は、その応答情報をアプリケーション部３１に出力することでアプリケーション部３１から出力されたコマンドに対する返答を行う。また仮想応答部３４は、情報処理装置３から受信した応答情報を受信情報バッファ４２に記憶する（プロセスＰ３）。
【００８６】
その後、アプリケーション部３１から、前回と同じ即時性のないコマンドが出力されると、通信制御部３３はそのコマンドに対応する代替タスクを特定する（プロセスＰ４）。ここで特定される代替タスクは２回目以降の実行であるので、通信制御部３３は、情報処理装置３との実際のデータ通信を行うことなく、過去に情報処理装置３から取得した応答情報に基づいて仮想的な応答情報を返答することを指定する。そして通信制御部３３は、特定した代替タスクの実行指示を仮想応答部３４に出力する。仮想応答部３４は、通信制御部３３から指定された代替タスクを判定し、２回目以降の実行であれば、受信情報バッファ４２に記憶されている過去の応答情報を読み出し、それを今回の仮想的な応答情報として生成する（プロセスＰ５）。そして仮想応答部３４は、その仮想的な応答情報を通信制御部３３に出力する。通信制御部３３は、仮想応答部３４から入力する仮想的な応答情報をアプリケーション部３１に出力することでアプリケーション部３１から出力されたコマンドに対する返答を行う。また仮想応答部３４は、通信制御部３３から入力するコマンドを送信情報バッファ４１に記憶する（プロセスＰ６）。
【００８７】
このようにコンピュータ２においてプロセスＰ４，Ｐ５，Ｐ６が実行されるときには、情報処理装置３との間でデータ通信が発生しないので、情報処理装置３がスリープ状態ＳＴ２又は拡張スリープ状態ＳＴ３に移行していたとしても、それが解除されることはない。またアプリケーション部３１は、出力したコマンドに対応する応答情報を取得することができるので、機能を停止させることなく、情報処理装置３の管理状態を正常に継続させることができる。
【００８８】
次に図９は、予め情報処理装置３に送信した通知予約により仮想応答部３４が情報処理装置３から通知情報を受信する場合のデータ通信の一例を示す図である。上述したように仮想応答部３４において２回目以降の代替タスクを実行した場合、通信制御部３３から入力されるコマンドが送信情報バッファ４１に記憶される（プロセスＰ６）。その後、情報処理装置３においてエラーが発生した場合やプリント枚数が所定枚数に達した場合などのように状態変化が発生した場合（プロセスＰ７）、情報処理装置３は予め受け付けた通知予約に基づいて仮想応答部３４に状態変化の内容を示す通知情報を送信する。
【００８９】
仮想応答部３４は、情報処理装置３から送信される通知情報を受信すると、その通知情報を受信情報バッファ４２に記憶する（プロセスＰ８）。このとき、仮想応答部３４は、通知情報の内容に基づいて受信情報バッファ４２に記憶されている過去の応答情報を更新することが好ましい。
【００９０】
ここで、仮想応答部３４は、情報処理装置３から通知情報を受信したタイミングでは、その情報を通信制御部３３には出力しない。なぜなら、アプリケーション部３１は、情報処理装置３を管理するためにコマンドを出力すると、その出力から所定時間が経過するまでの間、そのコマンドに対応する応答情報を待機する状態となり、その間に応答情報を受信することが可能であるが、それ以外のタイミングでは応答情報を受信することができないからである。そのため、受信情報バッファ４２に記憶された通知情報は、その後にアプリケーション部３１からコマンドが出力された場合に仮想応答部３４から通信制御部３３に出力されるようになる。
【００９１】
また仮想応答部３４は、情報処理装置３から通知情報を受信したことに伴い、送信情報バッファ４１に記憶されている未送信のコマンドを読み出し、そのコマンドを情報処理装置３に送信することにより、そのコマンドに対する応答を要求する。すなわち、情報処理装置３から通知情報を受信したことにより、情報処理装置３がスリープ状態ＳＴ２又は拡張スリープ状態ＳＴ３でないことが判るので、そのタイミングで未送信のコマンドを送信する。それ故、情報処理装置３はスリープ状態ＳＴ２又は拡張スリープ状態ＳＴ３を解除することなく、仮想応答部３４から送信されるコマンドを受信し、そのコマンドに対応する応答情報を仮想応答部３４に送信することができる。
【００９２】
そして仮想応答部３４は、情報処理装置３から送信される応答情報を受信すると、その応答情報を受信情報バッファ４２に記憶する（プロセスＰ９）。このときもまた、仮想応答部３４は、情報処理装置３から受信した応答情報を通信制御部３３に出力しない。
【００９３】
その後、アプリケーション部３１から、前回と同じ即時性のないコマンドが出力されると、通信制御部３３はそのコマンドに対応する代替タスクを特定する（プロセスＰ１０）。ここで特定される代替タスクも２回目以降の実行であるので、通信制御部３３は、情報処理装置３との実際のデータ通信を行うことなく、過去に情報処理装置３から取得した応答情報に基づいて仮想的な応答情報を返答することを指定する。そして通信制御部３３は、特定した代替タスクの実行指示を仮想応答部３４に出力する。仮想応答部３４は、通信制御部３３から指定された代替タスクを判定し、２回目以降の実行であるので、受信情報バッファ４２に記憶されている応答情報を読み出し、それを今回の仮想的な応答情報として生成する（プロセスＰ１１）。上述したプロセスＰ８又はＰ９で受信情報バッファ４２に記憶された情報は、このとき仮想応答部３４で生成される仮想的な応答情報に含まれる。そして仮想応答部３４は、その仮想的な応答情報を通信制御部３３に出力する。通信制御部３３は、仮想応答部３４から入力する仮想的な応答情報をアプリケーション部３１に出力することでアプリケーション部３１から出力されたコマンドに対する返答を行う。また仮想応答部３４は、通信制御部３３から入力するコマンドを送信情報バッファ４１に記憶する（プロセスＰ１２）。
【００９４】
次に、図１０は、アプリケーション部３１から即時性のあるコマンドが出力される場合のデータ通信の一例を示す図である。アプリケーション部３１から通信制御部３３に対して即時性のあるコマンドが出力されると、通信制御部３３はそのコマンドを解析することにより、即時に情報処理装置３と実際のデータ通信を行うことを特定する（プロセスＰ２０）。したがって、通信制御部３３は、アプリケーション部３１から入力したコマンドを情報処理装置３に送信する。情報処理装置３は、通信制御部３３から送信されるコマンドを受信すると、そのコマンドに対応した処理を実行する（プロセスＰ２１）。このとき、情報処理装置３がスリープ状態ＳＴ２又は拡張スリープ状態ＳＴ３となっていれば、それを解除して通常動作状態ＳＴ１に復帰し、コマンドに対応した処理を優先的に実行する。つまり、情報処理装置３では、アプリケーション部３１から指定される特定の処理が速やかに実行されるようになっている。そして情報処理装置３は、コマンドに対応した処理の実行を終了すると、実行終了を示す応答情報を生成して通信制御部３３に送信する。通信制御部３３は、この応答情報を受信すると、アプリケーション部３１に出力する。その結果、アプリケーション部３１は、即時性のあるコマンドに対応した処理が情報処理装置３において速やかに実行されたことを把握することができる。
【００９５】
このように本実施形態の通信制御装置３２は、アプリケーション部３１から出力されるコマンドが第１のコマンドリスト３６ａと第２のコマンドリスト３６ｂのいずれに登録されたコマンドであるかにより、通信制御部３３がデータ通信の態様を切り替える構成である。具体的には、アプリケーション部３１から出力されるコマンドが第１のコマンドリスト３６ａに登録された即時性のないコマンドであれば、通信制御部３３と仮想応答部３４との間で仮想的なデータ通信を行うことにより、実際には情報処理装置３とのデータ通信を行うことなく、仮想応答部３４において仮想的な応答情報を生成し、その仮想的な応答情報をアプリケーション部３１に出力する。また、アプリケーション部３１から出力されるコマンドが第２のコマンドリスト３６ｂに登録された即時性のあるコマンドであれば、通信制御部３３と情報処理装置３との実際のデータ通信を行うことにより情報処理装置３から応答情報を取得してアプリケーション部３１に出力する。以下、このような通信制御装置３２における通信制御部３３および仮想応答部３４の処理手順の詳細に説明する。
【００９６】
図１１は、通信制御部３３がアプリケーション部３１からコマンドを受信した場合に実行する処理手順の一例を示すフローチャートである。図１１に示すように、通信制御部３３は、アプリケーション部３１からのコマンドを受信すると、そのコマンドの送信先となる情報処理装置３を特定し、省電力設定管理情報３５を参照する（ステップＳ１０）。そしてコマンドの送信先となる情報処理装置３の省電力設定においてスリープ状態ＳＴ２又は拡張スリープ状態ＳＴ３に移行する設定（すなわち、オン設定）になっているか否かを判断する（ステップＳ１１）。省電力設定がオンである場合（ステップＳ１１でＹＥＳ）、通信制御部３３は、次にテーブル情報３６を参照する（ステップＳ１２）。そしてアプリケーション部３１から入力したコマンドが第１のコマンドリスト３６ａに登録された即時性のないコマンドであるか否かを判断する（ステップＳ１３）。第１のコマンドリスト３６ａに登録されたコマンドである場合（ステップＳ１３でＹＥＳ）、次に通信制御部３３は、そのコマンドに代替タスクが登録されているか否かを判断する（ステップＳ１４）。
【００９７】
その結果、アプリケーション部３１から入力したコマンドに対応付けて代替タスクが登録されている場合（ステップＳ１４でＹＥＳ）、通信制御部３３は、情報処理装置３との実際のデータ通信を行うことなく、仮想応答部３４との仮想的なデータ通信を行うことを決定する。そして通信制御部３３は、テーブル情報３６に登録されている実通信制限条件を判定し（ステップＳ１５）、仮想応答部３４に実行させる代替タスクとして、初回目の代替タスクを実行させるか、或いは、２回目以降の代替タスクを実行させるかを判断する（ステップＳ１６）。初回目の代替タスクを実行させる場合（ステップＳ１６でＹＥＳ）、通信制御部３３は、仮想応答部３４に対し、初回目の代替タスクの実行指令を出力する（ステップＳ１７）。このとき、通信制御部３３は、アプリケーション部３１から入力したコマンドも仮想応答部３４に出力する。これに対し、２回目以降の代替タスクを実行させる場合（ステップＳ１６でＮＯ）、通信制御部３３は、仮想応答部３４に対し、２回目以降の代替タスクの実行指令を出力する（ステップＳ１８）。このときもまた、アプリケーション部３１から入力したコマンドを仮想応答部３４に出力する。その後、通信制御部３３は、仮想応答部３４から出力される応答情報を受信するのを待機する状態となり（ステップＳ１９）、仮想応答部３４から応答情報を受信すると（ステップＳ１９でＹＥＳ）、その受信した応答情報をアプリケーション部３１に返信する（ステップＳ２２）。
【００９８】
一方、ステップＳ１１の判断によりコマンドの送信先となる情報処理装置３の省電力設定がオフ設定であった場合（ステップＳ１１でＮＯ）、またステップＳ１３の判断によりアプリケーション部３１から入力したコマンドが第２のコマンドリスト３６ｂに登録されている即時性のあるコマンドであった場合（ステップＳ１３でＮＯ）、さらにはステップＳ１４の判断によりそのコマンドに対応する代替タスクがテーブル情報３６に登録されていない場合（ステップＳ１４でＮＯ）、通信制御部３３は、情報処理装置３との実際のデータ通信を行うことを決定する。そして通信制御部３３は、アプリケーション部３１から入力したコマンドを情報処理装置３に送信する（ステップＳ２０）。その後、通信制御部３３は、情報処理装置３から出力される応答情報を受信するのを待機する状態となり（ステップＳ２１）、情報処理装置３から応答情報を受信すると（ステップＳ２１でＹＥＳ）、その受信した応答情報をアプリケーション部３１に返信する（ステップＳ２２）。以上で通信制御部３３による処理が終了する。
【００９９】
次に図１２は、仮想応答部３４が通信制御部３３から代替タスクの実行指令を受けた場合に実行する処理手順の一例を示すフローチャートである。図１２に示すように、仮想応答部３４は、代替タスクの実行指令を受信すると、実行すべき代替タスクの判定を行う（ステップＳ３０）。このとき、コマンドに対応する代替タスクが特定される。そして仮想応答部３４は、初回目の実行指令であるか否かを判断する（ステップＳ３１）。
【０１００】
その判断の結果、初回目の実行指令であれば（ステップＳ３１でＹＥＳ）、通信制御部３３から入力するコマンドを情報処理装置３に送信することにより、情報処理装置３に応答情報を要求する（ステップＳ３２）。その後、仮想応答部３４は、情報処理装置３から送信される応答情報を受信するのを待機する状態となり（ステップＳ３３）、情報処理装置３から応答情報を受信すると（ステップＳ３３でＹＥＳ）、その受信した応答情報を受信情報バッファ４２に記憶する（ステップＳ３４）。また仮想応答部３４は、情報処理装置３に対し、状態変化が生じた場合にその状態変化を通知してもらうために通知予約を送信しておく（ステップＳ３５）。そして仮想応答部３４は、情報処理装置３から受信した応答情報で通信制御部３３に出力するための応答情報を生成する（ステップＳ３６）。
【０１０１】
一方、ステップＳ３１の判断において２回目以降の実行指令である場合（ステップＳ３１でＮＯ）、仮想応答部３４は、代替タスクの実行指令と共に入力するコマンドを送信情報バッファ４１に記憶する（ステップＳ３７）。そして仮想応答部３４は、受信情報バッファ４２に記憶されている過去に受信した応答情報の中からコマンドに対応する応答情報を読み出し（ステップＳ３８）、その読み出した応答情報で通信制御部３３に出力するための応答情報を生成する（ステップＳ３９）。このとき、生成される応答情報は、実際に情報処理装置３から取得されたものではないため、仮想的な応答情報となる。
【０１０２】
その後、仮想応答部３４は、通信制御部３３に対し、ステップＳ３６又はＳ３９のいずれかで生成された応答情報を出力して処理を終了する（ステップＳ４０）。
【０１０３】
次に図１３は、仮想応答部３４が情報処理装置３から通知予約に基づく通知情報を受信した場合に実行する処理手順の一例を示すフローチャートである。図１３に示すように、仮想応答部３４は、情報処理装置３から通知予約に基づく通知情報を受信すると、その通知情報を受信情報バッファ４２に記憶することにより、受信情報バッファ４２に記憶されている応答情報を更新する（ステップＳ５０）。そして仮想応答部３４は、送信情報バッファ４１を読み出し（ステップＳ５１）、送信情報バッファ４１に未送信のコマンドが記憶されているか否かを判断する（ステップＳ５２）。未送信のコマンドが記憶されている場合（ステップＳ５２でＹＥＳ）、仮想応答部３４は、そのコマンドを読み出して情報処理装置３に送信する（ステップＳ５３）。その後、仮想応答部３４は、情報処理装置３から送信される応答情報を受信するのを待機する状態となり（ステップＳ５４）、情報処理装置３から応答情報を受信すると（ステップＳ５４でＹＥＳ）、その受信した応答情報を受信情報バッファ４２に記憶することにより、受信情報バッファ４２に記憶されている応答情報を更新する（ステップＳ５５）。一方、ステップＳ５２の判断において送信情報バッファ４１に未送信のコマンドが記憶されていなければ、ステップＳ５３〜Ｓ５５の処理を行うことなく、通知情報受信時の処理を終了する。
【０１０４】
以上のように、本実施形態では、コンピュータ２においてアプリケーション部３１が情報処理装置３からの情報を取得するために各種のコマンドを通信制御装置３２に出力する。通信制御装置３２は、情報処理装置３とのデータ通信を要求するアプリケーション部３１からのコマンドに応じてデータ通信を制御するように構成されている。特に、通信制御部３３は、アプリケーション部からのコマンドがテーブル情報３６の第１のコマンドリスト３６ａに含まれる場合、仮想応答部３４との仮想的なデータ通信を行うことによって仮想応答部３４から仮想的な応答情報を取得し、その取得した応答情報をアプリケーション部に出力する。またアプリケーション部３１からのコマンドがテーブル情報３６の第１のコマンドリスト３６ａに含まれない場合、情報処理装置３との実際のデータ通信を行うことによって情報処理装置３から実際の応答情報を取得し、その取得した応答情報をアプリケーション部３１に出力する。したがって、本実施形態の通信制御装置３２は、情報処理装置３との実際のデータ通信を行う必要がない場合には情報処理装置３とのデータ通信を行うことなく、コマンドに対応する仮想的な応答情報をアプリケーション部３１に出力するので、アプリケーション部３１の機能が停止してしまうことを防止することができると共に、情報処理装置３が省電力状態であるときにはその省電力状態を維持することができるようになる。
【０１０５】
また本実施形態では、情報処理装置３が拡張スリープ状態ＳＴ３へ移行すると、操作パネル２１の表示部２２の電源がオフになるだけでなく、ネットワーク通信モジュール２４のＣＰＵ２４ａの電源もオフになる。このような拡張スリープ状態ＳＴ３は、省電力効果が最も大きくなる状態であるため、情報処理装置３が拡張スリープ状態ＳＴ３へ移行したときには、その状態をなるべく継続させることが好ましい。そして拡張スリープ状態ＳＴ３を長時間継続させるためには、外部装置であるコンピュータ２から情報処理装置３に対してなるべくコマンドを送信しないようにすることが求められるが、コンピュータ２と情報処理装置３とのデータ通信を完全に遮断してしまうことは逆に問題発生の要因となる。このような観点から、本実施形態の通信制御部３３は、コマンドリスト３６ａ，３６ｂに基づいてアプリケーション部３１から入力するコマンドを情報処理装置３へ送信する必要があるか否かを判断し、情報処理装置３へ送信する必要があれば情報処理装置３へ送信する一方、情報処理装置３へ送信する必要がなければ情報処理装置３へは送信せずに、仮想応答部３４に代替タスクを実行させるようにしている。それ故、本実施形態の通信制御装置３２は、情報処理装置３の拡張スリープ状態ＳＴ３をなるべく長時間継続させつつ、アプリケーション部３１からジョブ実行コマンドやジョブ削除コマンドなどの即時性のあるコマンドが出力された場合には、そのタイミングでコマンドを情報処理装置３に送信することにより、情報処理装置３がそのコマンドに対応する処理をリアルタイムで実行できるようになる。
【０１０６】
また本実施形態では、通信制御部３３が参照するテーブル情報３６には、第１のコマンドリスト３６ａに登録されたコマンドごとに、情報処理装置３に代わって仮想応答部３４に実行させる代替タスクに関する情報が登録されている。通信制御部３３は、そのようなテーブル情報３６に基づき、アプリケーション部３１から入力するコマンドに対応する代替タスクを特定し、その特定した代替タスクを仮想応答部３４に実行させることにより、アプリケーション部３１からのコマンドに対応した仮想的な応答情報を仮想応答部３４から取得するようになっている。そして通信制御部３３が仮想応答部３４に実行させる代替タスクは、初回目の実行時には情報処理装置３との実際のデータ通信を行わせて情報処理装置３からの実際の応答情報を取得させる処理となっており、２回目以降の実行時には過去に情報処理装置３から取得した応答情報でコマンドに対応する応答情報を出力させる処理となっている。したがって、本実施形態では、情報処理装置３が省電力モードに移行しているか否かを通信制御装置３２においてリアルタイムで管理する必要はなく、通信制御装置３２の処理負担が軽減されるようになっている。
【０１０７】
（変形例）
以上、本発明に関する一実施形態について説明したが、本発明は上述した実施形態に限定されるものではない。すなわち、本発明には、上述した実施形態以外にも種々の変形例が適用可能である。
【０１０８】
例えば上記実施形態では、通信制御部３３によって管理されるテーブル情報３６には、仮想応答部３４との仮想的なデータ通信を行う第１のコマンドリスト３６ａと、情報処理装置３と即時にデータ通信を行う第２のコマンドリスト３６ｂとが登録されている場合を例示したが、テーブル情報３６は第１のコマンドリスト３６ａのみを登録したテーブル情報であっても構わない。この場合、アプリケーション部３１から入力したコマンドが、テーブル情報３６に登録されていないコマンドであれば、情報処理装置３と即時にデータ通信を行うコマンドとして特定される。
【０１０９】
また上記実施形態では、第１のコマンドリスト３６ａに、導通確認コマンド、装置情報取得コマンド、サポートコマンド取得コマンドおよび検索コマンドの４つのコマンドが登録されている場合を例示したが、第１のコマンドリスト３６ａには、これら４つのコマンドのうちの少なくとも１つが登録されていれば良い。また、上記４つ以外の即時性のないコマンドが、第１のコマンドリスト３６ａに含まれていても構わない。
【０１１０】
また上記実施形態では、アプリケーション部３１の機能と、通信制御装置３２の機能とが１台のコンピュータ２において実現される場合を例示したが、アプリケーション部３１の機能を実現するコンピュータと、通信制御装置３２の機能を実現するコンピュータとが互いに別のコンピュータであっても構わない。この場合、それら２つのコンピュータはネットワーク４に接続される。そしてアプリケーション部３１の機能を実現するコンピュータは、アプリケーション部３１から出力されるコマンドを、通信制御装置３２の機能を実現するコンピュータに出力するように構成すれば良い。
【０１１１】
また上記実施形態では、情報処理装置３がデジタル複合機やＭＦＰなどである場合を例示したが、これに限られるものでもない。例えば情報処理装置３は、コピー専用機、プリンタ専用機、ＦＡＸ専用機、スキャナ専用機などのように単一の機能を備えた専用機であっても構わない。また情報処理装置３は、コピー機能、プリンタ機能、ＦＡＸ機能、スキャナ機能、Ｂｏｘ機能などの機能とは異なる機能を備えた装置であっても構わない。
【符号の説明】
【０１１２】
１  情報処理システム
２  コンピュータ
３  情報処理装置
４  ネットワーク
１８  通信制御プログラム（プログラム）
３１  アプリケーション部
３２  通信制御装置
３３  通信制御部（通信制御手段）
３４  仮想応答部（仮想応答手段）
３５  省電力設定管理情報
３６  テーブル情報
４１  送信情報バッファ（送信情報記憶手段）
４２  受信情報バッファ（受信情報記憶手段）
【図１】
0005177181.tif 000002
【図２】
0005177181.tif 000003
【図３】
0005177181.tif 000004
【図４】
0005177181.tif 000005
【図５】
0005177181.tif 000006
【図６】
0005177181.tif 000007
【図７】
0005177181.tif 000008
【図８】
0005177181.tif 000009
【図９】
0005177181.tif 000010
【図１０】
0005177181.tif 000011
【図１１】
0005177181.tif 000012
【図１２】
0005177181.tif 000013
【図１３】
0005177181.tif 000014