図1は、本実施形態のシステム構成の一例を示す図である。図1に示す情報処理システムは、画像形成装置101,102と、サーバ装置106とを備える。
画像形成装置101、102が、LANに接続されている。また、サーバ装置106とクライアント端末107、108とが、ネットワークの一例であるインターネット105上に接続されている。画像形成装置101,102とサーバ装置106とは、インターネット105およびLAN104を介して通信する。以下の説明では、画像形成装置101,102を代表して、単に画像形成装置101とも記述する。また、クライアント端末107,108を代表して、単にクライアント端末107とも記述する。
サーバ装置106は、クライアント端末107に対してWebサービス等を使ってアプリケーションを提供する。また、サーバ装置106は、画像形成装置101の電力状態を管理する。サーバ装置106は、LAN104とインターネット105とは、ファイアウォール103によって隔たれており、LAN104とインターネット105の間で送受信されるネットワーク通信が制限されている。すなわち、サーバ装置106およびクライアント端末107は、ファイアウォールの外部に配置された外部装置である。
図2は、画像形成装置のハードウェア構成例を示す図である。画像形成装置101は、情報処理装置201と、NIC221とを備える。NIC221は、Network Interface Cardの略称である。
まず、情報処理装置201について説明する。情報処理装置201は、画像処理に関する制御を行う処理制御部として機能する。情報処理装置201は、CPU203乃至読取インタフェース212を備える。CPU203は、ROM205のプログラム用ROMまたは外部記憶装置210に記憶されたコンピュータプログラムに基づいて、システムバス202に接続される各種のデバイスとのアクセスを総括的に制御する。ROMは、Read Only Memoryの略称である。
また、CPU203は、印刷インタフェース208を介して接続される印刷部(プリンターエンジン)213に出力情報としての画像信号を出力する。また、CPU203は、読取インタフェース212を介して接続される読取部(スキャナ)214から入力される画像信号を制御する。
ROM205のプログラム用ROMには、CPU203が実行可能な制御プログラム等が予め記憶されている。また、ROM205のフォント用ROMには、CPU203が上記出力情報を生成する際に使用するフォントデータ(アウトラインフォントデータを含む)等が、予め記憶される。また、ROM205のデータ用ROMには、クライアント端末107上で利用される情報等が予め記憶される。CPU203には、拡張I/F(Interface)206を介してNIC221が接続されており、CPU203は、NIC221を介して、ネットワーク上のコンピュータや画像形成装置との通信処理が可能である。
RAM204は、主としてCPU203の主メモリ,ワークエリア等として機能し、図示しない増設ポートに接続されるオプションRAMによりメモリ容量を拡張することができるように構成されている。なお、RAM204は、出力情報展開領域,環境データ格納領域等に用いられる。RAMは、Random Access Memoryの略称である。ハードディスク(HDD)、ICカード等の外部記憶装置210は、ディスクコントローラ(DKC)209によりアクセスが制御される。外部記憶装置210は、1個に限らず、少なくとも1個以上備え、内蔵フォントに加えてオプションフォントカード,言語系の異なるプリンター制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。
ハードディスクは、アプリケーションプログラム、フォントデータ、フォームデータ等を記憶したり、プリントジョブを一時的にスプールしたりし、スプールされたジョブを外部から制御するためのジョブ格納領域として使用される。また、ハードディスクは、スキャナ214から読み取られた画像データやプリントジョブの画像データをBOXデータとして保持する。これにより、ハードディスクは、ネットワーク上のクライアント端末107から画像データを参照したり、印刷を行ったりすることを可能とするBOXデータ格納領域としても使用される。本実施形態においては、外部記憶装置としてはHDDを使用するものとし、ジョブログ、画像ログ等各種ログを保持する。
操作パネル207は、ユーザによるソフトウェアキーを用いた操作に応じた各種情報の入力を受け付ける。不揮発性メモリ211は、操作パネル207上の操作にしたがって設定される各種設定情報を記憶する。また、図示していないが、画像形成装置101は、さらにオプションで、ステープルやソート機能を行うフィニッシャや、両面印刷機能を実現するための両面装置など各種拡張装置を装着することが可能である。CPU203が、各種拡張装置の動作を制御する。
次に、NIC221について説明する。NIC221は、サーバ装置106、クライアント端末107,108等の外部装置との通信を制御し、情報処理装置201へ外部装置からのデータを転送する通信制御部として機能する。NIC221は、拡張I/F223乃至ネットワークI/F227を備える。CPU224は、NIC221のソフトウェアプログラムを実行し、装置全体の制御を行う。RAM226は、NIC221のランダムアクセスメモリであり、CPU224が装置を制御する際に、一時的なデータの格納などに使用される。ROM225は、NIC221のリードオンリーメモリであり、装置のブートプログラムや固定パラメータ等が格納されている。拡張I/F223は、情報処理装置201側の拡張I/F206と接続され、情報処理装置201とNIC221との間のデータ通信を制御する。ネットワークI/F227は、ネットワークに接続され、NIC221(情報処理装置201、画像形成装置101)とネットワーク上の外部装置との間のデータ通信を制御する。
図2中に示す情報処理装置201は、通常電力モードと、通常電力モードよりも消費電力が小さい省電力モードのいずれかを切り替えて動作することができる。通常電力モードから省電力モードに移行する場合は、CPU203、外部記憶装置210、不揮発性メモリ211などに対する電力供給が停止される。一方、NIC221は、情報処理装置201とは別のACIC(Application Specific Integrated Circuit)で動作している。このため、情報処理装置201が省電力モードに移行した状態においてもNIC221に対しては電力供給が継続され、ネットワーク上に流れるデータを送受信することができる。これにより、情報処理装置201が省電力モードに移行した際にも、NIC221側がネットワークから特定のデータを受信することによって、WakeOnLANの機能を実現することができる。
図3はファイアウォール、サーバ装置、クライアント端末を実現するコンピュータのハードウェア構成の一例を示す図である。図3に示すコンピュータは、CPU301乃至FD313を備える。
CPU301は、システムバス304に接続された各種デバイスの制御を行う。ROM302には、BIOSやブートプログラムが予め記憶される。RAM303は、CPU301の主記憶装置として使用される。キーボードコントローラ(KBC)305は、マウス(登録商標)等のポインティングデバイス309、キーボード310からの情報などの入力に係る処理を行う。
表示制御部(CRTC)306は、内部にビデオメモリを有し、CPU301からの指示に従ってそのビデオメモリに描画すると共に、ビデオメモリに描画されたイメージデータをビデオ信号として表示装置(CRT311)に出力する。CRTCは、Cathode Ray Tube Controllerの略称である。なお、図3においては、表示装置としてCRTを例示しているが、液晶表示装置等、その表示装置の種類は問わない。ディスクコントローラ(DKC)307は、ハードディスク(HDD)312、フロッピー(登録商標)ディスク313へのアクセスを行う。ネットワークインタフェースカード(NIC)308は、ネットワークに接続し、ネットワークを介しての情報通信を行う。なお、HDD312には、OS(Operating System)やOS上で動作する各種アプリケーションプログラム等が格納される。上記構成において、本コンピュータの電源がONになると、CPU301は、ROM302に格納されたブートプログラムに従って、HDD312からOSをRAM303に読み込み、情報処理装置として機能する。
図4は、画像形成装置が備える情報処理装置のソフトウェア構成例を示すブロック図である。情報処理装置201は、印刷アプリケーション401、アプリケーション情報制御部402、アプリケーション情報保存部403、電力状態制御部404、WebSocket通信部405を備える。この例では、WebSocketを用いるアプリケーションとして、印刷アプリケーション401を搭載していると仮定するが、他のアプリケーションが搭載されていてもよい。
アプリケーション情報制御部402は、情報処理装置201で稼動しているアプリケーションに関する情報(アプリケーション情報)を管理する管理部として機能する。アプリケーション情報は、アプリケーション名、URL、ポート番号、通信状態等を含む。アプリケーション情報は、アプリケーション情報保存部403が有するアプリケーション管理テーブル4031内に保存されている。
電力制御部404は、デバイスの電力状態を監視し、省電力モードに移行する際や、省電力モードから復帰する際にサーバ装置106との間に確立しているコネクションを制御する。具体的には、電力制御部404は、省電力モードに移行する際に、情報処理装置201とサーバ装置106の間に確立しているWebSocketのコネクションを切断して必要な情報をNIC221に移譲する。また、電力制御部404は、省電力モードから復帰する際に再びWebSocketのコネクションを確立する。
WebSocketのコネクションは、WebSocketを用いたネットワーク接続であり、以下の説明では、WebSocketコネクションと記述する。WebSocketは、双方向通信用の通信規格の一つであって、コネクションを維持し続けるための仕組みを持つネットワークプロトコルである。また、Websocketは、W3Cによって策定されたHTML5の基本仕様の1つである。W3Cは、World Wide Web Consorutiumの略称である。HTML5は、Hper Text Markup Language 5の略称である。具体的には、Websocketは、サーバ(サーバ装置106)とクライアント(画像形成装置101)間で一旦確立したネットワーク接続を維持し続ける。また、WebSocketは、ネットワーク接続を維持した状態において、外部装置のイベント発生に伴い、外部装置から内部装置に向けてデータを送信する。これにより、WebSocketは、ファイアウォールの外部に配置された外部装置を起点として発行される要求をファイアウォールを介して画像形成装置へ送信することを可能とする。WebSocketによる通信では、サーバとクライアント間で接続を維持し続けるためのパケットを送受信することによって、当該接続が維持される。したがって、本実施形態において適用されるWebSocketコネクションは、サーバ装置106と画像形成装置101間で一旦接続が確立すると、明示的に切断しない限り接続が維持されるネットワーク接続である。
電力制御部404が、情報処理装置201のスリープ状態への移行を検知した場合、電力制御部404は、以下の処理を実行する。電力制御部404は、情報処理装置201で稼動中の複数のアプリケーションがサーバ装置106と確立しているWebSocketコネクション(第1のネットワーク接続)の夫々を切断する。
WebSocket通信部405は、実際にWebSocketのパケットを送受信する。WebSocket通信部405は、パケットをやり取りする際に、アプリケーション情報制御部402を介して、サーバ装置106の情報を検索する。WebSocket通信部405は、検索により得られたサーバ装置106の情報とアプリケーション情報との関連付けを調査する。これにより、WebSocket通信部405は、どのアプリケーションがパケットを送信しようとしているのか、どのアプリケーション宛てのパケットを受信したのかを判別し、適切な送受信処理を行う。
図5は、画像形成装置に内在するNICのソフトウェア構成例を示すブロック図である。NIC221は、スリープ制御部501、接続維持アプリケーション502、WebSocket通信部503を備える。
スリープ制御部501は、情報処理装置201の省電力モードへの移行や、省電力モードからの復帰を監視する。接続維持アプリケーション502は、情報処理装置201が省電力モードにある間も、サーバ装置106との間でWebSocketを用いて最低限の通信を保障するアプリケーションである。具体的には、接続維持アプリケーション502は、情報処理装置201のスリープ状態への移行が検知され、情報処理装置201で稼動中のアプリケーションとサーバ装置106とのWebSocketコネクションが切断された場合に、以下の処理を実行する。接続維持アプリケーション502は、サーバ装置106との間のWebSocketコネクション(第2のネットワーク接続)を確立する。WebSocket通信部503は、接続維持アプリケーション502とサーバ装置106とが通信を行うためにWebSocketの通信を行う。本実施形態の画像形成装置の制御方法は、図4、5を参照して説明した情報処理装置201、NIC211が備える各処理部の機能によって実現される。
図6は、サーバ装置のソフトウェア構成例を示すブロック図である。印刷アプリケーション601は、クライアント端末107、108などから印刷要求を受信すると、受信した情報を画像形成装置101に対して転送する。WebSocket通信部605は、印刷アプリケーション601と画像形成装置101との間に介在してWebSocketの通信を行う。アプリケーション情報制御部602は、WebSocketを用いて通信を行うアプリケーションを管理する。
アプリケーション情報制御部602は、アプリケーションが使用するポート番号、URL、アプリケーション名等を含むアプリケーション情報をアプリケーション情報保存部603が有するアプリケーション管理テーブル6031に保存する。アプリケーション情報制御部602は、アプリケーション情報を、通信が発生した際にアプリケーションの識別を行うために利用する。電力状態制御部604は、画像形成装置101から電力状態変更の通知を受信し、受信した情報をクライアント電力状態テーブル保存部606に渡し、その通知に含まれている情報をWebSocketクライアント毎に保持する。WebSocket通信部605は、画像形成装置101との間でWebSocketの通信を行う。このために、WebSocket通信部605は、画像形成装置101が有する情報処理装置201で稼動中のアプリケーション、またはNIC211と、WebSocketコネクションを確立する接続制御部として機能する。電力状態テーブル保存部606は、電力状態情報を有する電力状態テーブルを保持する。電力状態テーブルについては、図8を参照して後述する。
図7は、クライアント端末のソフトウェア構成例を示すブロック図である。クライアント端末は、Webブラウザ701を備える。端末利用者は、印刷要求を、Webブラウザ701を介してサーバ装置106に対して送信する。
図8は、サーバ装置のクライアント電力状態テーブル保存部が保持する電力状態テーブルの一例を示す図である。電力状態テーブルは、デバイス名801、電力状態802、アプリケーション名803、URL804、ポート番号805といったデータ項目を有する電力状態情報を有する。
デバイス名801は、画像形成装置の名称を示す。電力状態802は、画像形成装置の電力状態802を示す。電力状態802に設定されたwake upは、画像形成装置が通常状態であることを示す。また、電力状態802に設定されたsleepは、画像形成装置がスリープ状態であることを示す。なお、本実施形態において、画像形成装置がスリープ状態であることは、正確には情報処理装置201がスリープ状態であることを示す。アプリケーション名803は、画像形成装置において稼動しているアプリケーションの名称を示す。URL804は、アプリケーションに対応するURLを示す。ポート番号805は、サーバ装置106のポート番号を示す。
本実施形態では、画像形成装置101が備えるアプリケーション管理テーブル4031、サーバ装置106が備えるアプリケーション管理テーブル6031は、図8に示す電力状態テーブルと同様の構成を有する。したがって、本実施形態においては、画像形成装置101またはサーバ装置106の動作処理においてアプリケーション情報を参照等する場合には、図8中に示す電力状態テーブル内の情報をアプリケーション情報として用いるものとする。具体的には、電力状態テーブル内の電力状態802は、対応するアプリケーションについてサーバ装置106とのWebSocketコネクションが維持されているか切断されているかを示す通信状態をも示す。すなわち、電力状態802に設定されたwake upは、画像形成装置が通常状態であることを示すとともに、対応するアプリケーションについてWebSocketコネクションが維持されていることも示す。また、電力状態802に設定されたsleepは、画像形成装置がスリープ状態であることを示すとともに、対応するアプリケーションについてWebSocketコネクションが切断中であることも示す。
もちろん、アプリケーション管理テーブル4031,6031が、図8に示す電力状態テーブルのデータ構成と異なるデータ構成を有していてもよい。例えば、アプリケーション管理テーブル4031,6031が、電力状態802の代わりに、サーバ装置106とWebSocketコネクションが確立しているか否かを示す通信状態をデータ項目として有していてもよい。
図9および図10は、本実施形態において送受信されるWebSocketに関わるメッセージの例を示す図である。なお、本実施形態では、画像形成装置101とサーバ装置106とが、図9に示すメッセージ以外のメッセージで通信をしてもよい。
図9(A)は、WebSocketクライアントである画像形成装置101がサーバ装置106に対して接続を要求する際に送信するHTTPメッセージである。図中のUpgradeフィールドに“websocket”という値が設定されていることによって、サーバ装置106はWebSocketの接続要求であることを判別する。また、Sec−WebSocket−Protocolフィールドに設定されたws−printは、このメッセージが印刷アプリケーション401からの要求であることを示している。
図9(B)は、図9(A)に示すメッセージによる接続要求を受け付けたサーバ装置106が画像形成装置101に対して送信する応答メッセージである。図9(B)に示すメッセージの例では、ステータスコードが“101 Switching Protocols”である。また、Sec−WebSocket−Protocolがws−printである。したがって、サーバ装置106の印刷アプリケーション601が画像形成装置101の印刷アプリケーション401からの要求を受け付けたことがわかる。
図9(C)は、サーバ装置106から画像形成装置101に対して送信されるメッセージの一例である。図9(C)に示すメッセージは、印刷要求として機能する。このメッセージは、XML形式で構成されている。<Printer>に、印刷出力する画像形成装置101を示す文字列が設定される。また、<JobName>に、印刷データが設定される。この例では、<JobName>に、aaa.docという名称の印刷データ設定されている。印刷データのサイズは<DataSize>に設定される。図9(D)は、画像形成装置101からサーバ装置106に対して送信される印刷データの受信完了を示すメッセージである。図9(D)に示すメッセージの内容は、データサイズを含まないこと以外は、図9(C)に示すメッセージの内容と同様である。
図10(A)は、画像形成装置101からサーバ装置106に対して省電力モードへの移行を通知するメッセージである。<Printer>には自身を示す文字列が設定される。<ProtocolName>には、印刷アプリケーションを示すws−printが設定される。<Path>と<Port>には、それぞれ印刷アプリケーションが使用するURL情報とポート番号が設定される。<PowerState>には、以降の電力状態が設定される。<PowerState>がSleepとなっているので、これから画像形成装置101が省電力モードに移行することがわかる。
図10(B)は、サーバ装置106から画像形成装置101に対して送信される省電力モードからの復帰を促すためのメッセージである。本メッセージは、サーバ装置106からの、アプリケーションのWebSocketコネクションの確立要求として機能する。本メッセージには、サーバ装置106のクライアント電力状態テーブル保持部606が保持している画像形成装置101の情報が<Application>に設定されて送信される。
図10(C)は、画像形成装置101からサーバ装置106に対して省電力モードから復帰した際に送信されるメッセージである。このメッセージの内容は図10(A)に示すメッセージの内容と同じであるが、省電力モードから復帰したことを示すために<PowerState>が“Wake Up”に設定されている。
図11は、本実施形態のシステムの基本的な動作処理例を示すシーケンス図である。まず、画像形成装置101が、印刷アプリケーション用のWebSocketコネクションを確立するために、図9(A)に示すHTTPリクエストをサーバ装置106に対して送信する(ステップS1001)。サーバ装置106がこのHTTPリクエストを受け付けると、図9(B)に示すHTTPレスポンスで応答する(ステップS1002)。この時点で印刷アプリケーション用のWebSocketコネクションが確立されたことになる。この時、サーバ装置106のクライアント電力状態テーブル保存部606は、確立したコネクションのアプリケーション情報を図8中の電力状態テーブルに登録する(ステップS1003)。
ここでは、電力状態の初期値は通常状態(wake up)であるとする。これ以降、確立したWebSocketコネクションを維持するため、画像形成装置101からサーバ装置106に対して定期的に任意のパケットを送信し(ステップS1004)、サーバ装置からも応答パケットを返信する(ステップS1005)ことを繰り返す。本実施形態では画像形成装置101からパケットを送信しているが、サーバ装置106からパケットを送信して画像形成装置101が応答を返すような形態であってもよい。また、コネクションを維持するために送受信する任意のパケットとしては、一般的に定義されているpingであってもよいし、TCPで定義されているKeep−Aliveのようなものであってもよい。
上記パケットが送受信されている状態で、クライアント端末107において、Webブラウザ701を介してサーバ装置106に対して印刷要求が送信される(ステップS1006)。続いて、サーバ装置が、この印刷要求に応じて、受け付け可能を示す応答メッセージを返信する(ステップS1007)。応答メッセージを受信したクライアント端末107が、印刷データを送信する(ステップS1008)。ここでは、クライアント端末107とサーバ装置106の間で行われるこれらの通信を一般的なWebサービスを用いて行うと仮定する。
サーバ装置106は、クライアント端末107から印刷データを受信すると、確立しているWebSocketコネクションを介して、画像形成装置101に対して図9(C)に示す印刷要求を送信する(ステップS1009)。そして、サーバ装置106は、引き続き印刷データを送信する(ステップS1010乃至S1011)。
画像形成装置101は、印刷要求に含まれている印刷データのサイズ分のデータを受信し終えると、印刷データの受信完了を示すメッセージ(図9(D)をサーバ装置106に対して送信し(ステップS1012)、印刷処理を行う(ステップS1013)。続いて、サーバ装置106は、クライアント端末107に対して印刷終了メッセージを送信して(ステップS1014)、一連の処理を終了する。なお、サーバ装置106からクライアント端末107に対して送信される印刷終了メッセージの詳細はここでは記載しないが、サーバ装置106とクライアント端末107の間で取り決められたプロトコルに従ったメッセージを送信する。
上記の印刷処理を終えると、画像形成装置101とサーバ装置106は再びWebSocketコネクションを維持するために、任意のパケットの送受信を定期的に繰り返す(ステップS1015、S1016)。
図12は、情報処理装置が省電力モードに移行する際のシステム全体の動作処理例を示すシーケンス図である。以降では、画像形成装置101において情報処理装置201とNIC221が独立して動作するため、シーケンス図においても分けて記載する。画像形成装置101とサーバ装置106との間には、図8のテーブルに示す通り、ws−print(印刷アプリケーション)とSampleAplication1という2つのアプリケーション用のWebSocketコネクションが既に確立されている。
まず、情報処理装置201が、自身が省電力モードに移行することを検知する(ステップS1101)。情報処理装置201が、既に確立しているWebSocketコネクションを介して、サーバ装置106宛てに図10(A)に示すメッセージを送信する。この例では、情報処理装置201は、まず印刷アプリケーションを示すws−print用コネクションを介して、図10(A)のメッセージを送信する(ステップS1102)。このメッセージを受信したサーバ装置106が、図8に示すテーブルの該当デバイスのws−printの電力状態をsleepに変更する(ステップS1103)。そして、情報処理装置201が、ws−print用コネクションを切断する(ステップS1104)。
次に、情報処理装置201が、SampleAplication1用コネクションを介して、図10(A)に示すメッセージと同様のメッセージを送信する(ステップS1105)。このメッセージを受信したサーバ装置106が、図8に示すテーブルの該当デバイスのSampleAplication1の電力状態をsleepに変更する(ステップS1106)。そして、情報処理装置201が、SampleAplication1用コネクションを切断する(ステップS1107)。
なお、サーバ装置106は、図8に示すテーブルを参照して、画像形成装置101における全アプリケーションの電力状態がsleepとなった時に、画像形成装置101が省電力モードに移行したと判断する。その後、情報処理装置201が、サーバ装置106に関する情報(サーバ情報)をNIC221に通知し(ステップS1108)、省電力モードに移行する(ステップS1109)。なお、情報処理装置201が省電力モードに移行する契機は、例えば、画像形成装置101のユーザインタフェース(UI)に設定された時刻情報や、起動からの時間情報に基づくタイムアウトの発生が一般的である。もちろん、情報処理装置201が、タイムアウト以外のイベントの発生を契機として省電力モードに移行するようにしてもよい。
NIC221は、ステップS1109において通知されたサーバ情報に基づいて、サーバ装置106に対して、WebSocketコネクションの確立を要求する(ステップS1110)。サーバ装置が、WebSocketコネクションの確立要求を受け付け(ステップS1111)、WebSocketコネクションを確立する。ここでは、情報処理装置201が持っているアプリケーションの数に関わらず、NIC221とサーバ装置106は1つだけコネクションを確立するものとするが、複数のコネクションを確立してもよい。NIC221とサーバ装置106とは、確立したコネクションを維持するために、定期的に任意のパケットを送受信する(ステップS1112、S1113)。
図11を参照して説明した動作処理によれば、画像形成装置101は、稼動中のアプリケーションのWebSocketコネクションを切断した上でスリープ状態に入り、NIC221によってサーバ装置106とのWebSocketコネクションを別途確立する。
したがって、上記動作処理によれば、画像形成装置101においてWebSocketのようにコネクションを維持するために常時パケットを送受信するようなプロトコルが動作中であっても、省電力化を図ることができる。
次に、図12を参照して説明した省電力モードに移行する際の各装置の処理の詳細を図13乃至図15に示すフローチャートを用いて説明する。
図13は、情報処理装置が省電力モードに移行する際の情報処理装置の動作処理例を示すフローチャートである。情報処理装置201の電力状態制御部404が省電力モードに移行することを検知する(ステップS1201)。続いて、アプリケーション情報制御部402が、例えば、図8に示すテーブル内に含まれるアプリケーション情報を参照して、WebSocketコネクションが維持されているアプリケーションを検索する(ステップS1202)。アプリケーション情報制御部402は、検索結果を電力状態制御部404に通知する。
次に、電力状態制御部404が、ステップS1202における検索結果に基づいて、WebSocketコネクションが維持されているアプリケーションが存在するかを判断する(ステップS1203)。WebSocketコネクションが維持されているアプリケーションが存在する場合、電力状態制御部404は、当該アプリケーションに対応するWebSocketコネクションを切断することを決定する。そして、処理がステップS1204に進む。WebSocketコネクションが維持されているアプリケーションが存在しない場合は、ステップS1206に進む。
ステップS1204において、電力状態制御部404が、WebSocketコネクションが維持されているアプリケーションの当該WebSocketコネクションを介して、以下の処理を実行する。電力状態制御部404は、図10(A)に示すメッセージをサーバ装置106に送信することで、サーバ装置106に対して、画像形成装置101が省電力モードに移行することを通知する(ステップS1204)。
そして、電力状態制御部404が、上記メッセージの送信に用いたWebSocketコネクションを切断して(ステップS1205)、ステップS1203に戻る。
上記ステップS1201乃至S1205に関する説明から、電力状態制御部404は、以下の処理を実行する通知部として機能する。電力状態制御部404は、アプリケーション情報に基づいて、サーバ装置106とWebSocketコネクションを確立しているアプリケーションを検索する。電力状態制御部404は、検索されたアプリケーションに対応するWebSocketコネクションを介して、サーバ装置106に画像形成装置のスリープ状態への移行を通知した上で、このWebSocketコネクションを切断する。
ステップS1206において、電力状態制御部404が、サーバ装置106の情報をNIC221に通知する(ステップS1206)。そして、情報処理装置201が省電力モードに移行する(ステップS1207)。
図14は、情報処理装置が省電力モードに移行する際のNICの動作処理例を示すフローチャートである。NIC221のスリープ制御部501が、情報処理装置201の省電力モードへの移行を検知する(ステップS1301)。続いて、スリープ制御部501が、図13のステップS1206において情報処理装置201の電力状態制御部404から通知されたサーバ装置106の情報を取得する(ステップS1302)。スリープ制御部501が、取得した情報をNIC221の接続維持アプリケーション502に渡す。
接続維持アプリケーション502が、受け取ったサーバ装置106の情報に基づいて、サーバ装置106との間で図9(A),(B)のメッセージをやり取りし、WebSocketコネクションを確立する(ステップS1303)。その後、接続維持アプリケーション502が、任意のパケットを定期的に送受信することで接続を維持する(ステップS1304)。
図15は、情報処理装置が省電力モードに移行する際のサーバ装置の動作処理例を示すフローチャートである。サーバ装置106の電力状態制御部604が、電力状態変更通知を待ち受ける(ステップS1401)。この状態で、電力状態制御部604が、情報処理装置201から図10(A)に示す電力状態変更通知を受信する(ステップS1402)。続いて、電力状態制御部604が、図8に示すテーブルから、受信した電力状態変更通知に対応する画像形成装置上で稼動しているアプリケーションのエントリを検索し(ステップS1403)、アプリケーションが存在するかを判断する(ステップS1404)。
アプリケーションが存在しない場合は、再度ステップS1401に戻って電力状態変更通知を待ち受ける。アプリケーションが存在する場合、電力状態制御部604が、図8のテーブルにおける当該アプリケーションに対応する電力状態の項目をsleepに変更する(ステップS1405)。そして、電力状態制御部604が、このアプリケーションに対応するWebSocketコネクションを切断する(ステップS1406)。
次に、電力状態制御部604が、図8に示すテーブルを参照して、全アプリケーションの電力状態がsleepになったかを確認する(ステップS1407)。これにより、電力状態制御部604が、全アプリケーションについて電力状態がsleepになっているかを判断する(ステップS1408)。全アプリケーションについて電力状態がsleepになっている場合は処理を終了する。対応する電力状態がsleepになっていないアプリケーションがある場合は、ステップS1401に戻る。
図16は、省電力モードにある情報処理装置が省電力モードから復帰する際のシステム全体の動作処理の例を示すシーケンス図である。本実施形態では、NIC221が、ネットワークを介して特定のパケットを受信することで、情報処理装置201を省電力モードから復帰させるWakeOnLAN機能を有する。ここでは、情報処理装置201が、既に上記で説明した方法で省電力モードに移行(スリープ状態に移行)しているものとする。
情報処理装置201が省電力モードにある際に、クライアント端末107から印刷を行う場合、クライアント端末107は、通常通りサーバ装置106に印刷要求を送信し(ステップS1501)、印刷データを送信する(ステップS1502)。クライアント端末107からの印刷要求を受信したサーバ装置106は、画像形成装置101のNIC221との間に確立しているWebSocketコネクションを介して、図10(B)に示すメッセージを送信する(ステップS1503)。図10(B)に示すメッセージには、図8に示すテーブルに登録されている画像形成装置101の情報が含まれている。
次に、サーバ装置106が、NIC221とサーバ装置106との間に確立しているWebSocketコネクションを切断する(S1504)。その後、NIC221が、受信した図10(B)のメッセージに含まれている情報を情報処理装置201に渡す(ステップS1505)。その情報を受け取った情報処理装置201が、省電力モードから復帰する(ステップS1506)。
次に、情報処理装置201が、省電力モードに移行する前に確立していたWebSocketコネクションを再度確立する。情報処理装置201は、再度確立すべきWebSocketコネクションに対応するアプリケーションを、図10(B)のメッセージに含まれている情報に基づいて決定する。この例では、印刷アプリケーションが、再度確立すべきWebSocketコネクションに対応するアプリケーションとして決定される。情報処理装置201とサーバ装置106との間で、図9(A)と図9(B)に示すメッセージが送受信されることを通じて、印刷アプリケーション用のWebSocketコネクションが確立される(ステップS1507、S1508)。そして、省電力モードから復帰した後のコネクション確立であることを示すために、情報処理装置201が、確立したコネクションを介して、サーバ装置106に対して図10(C)に示すメッセージを送信する(ステップS1509)。このメッセージを受信したサーバ装置106が、図8のテーブルにおいて画像形成装置101の印刷アプリケーションの電力状態をsleepからwake upに変更する(ステップS1510)。
次に、サーバ装置106が、クライアント端末107のユーザ操作に応じた指示(印刷要求)を処理するため、図9(C)に示す印刷要求を情報処理装置201に対して送信する(ステップS1511)。ステップS1511では、サーバ装置106は、この印刷要求を、NIC221との間で確立しているWebSocketコネクションを介して送信する。続いて、サーバ装置106が、情報処理装置201に対して印刷データを送信する(ステップS1512乃至S1513)。情報処理装置が全ての印刷データを受信し終えると、情報処理装置は、図9(D)に示すメッセージをサーバ装置106に対して送信する(ステップS1514)。そして、サーバ装置106が、印刷が完了したことを示すため、クライアント端末107に対して応答を送信する(ステップS1515)。
上記の印刷処理と同時に、SampleAplication1に関しても、情報処理装置201とサーバ装置106との間で図9(A),(B)のメッセージをやり取りして、WebSocketのコネクションを確立する(ステップS1516、S1517)。続いて、情報処理装置201からサーバ装置106に対して、図10(C)のメッセージを送信する(ステップS1518)。このメッセージを受信したサーバ装置106が、図8のテーブルのSampleAplication1の電力状態を、sleepからwake upに変更する。以上で省電力モードからの復帰が完了する。
図16を参照して説明した動作処理によれば、画像形成装置101は、クライアント端末107のユーザ操作に応じた指示を受け取ったサーバ装置106からのサービス提供要求(印刷要求)を受信したことを契機として、省電力モードから復帰する。そして、画像形成装置101は、上記サービスを提供するアプリケーションに対応するWebSoketコネクションを確立する。したがって、上記動作処理によれば、省電力モードにある画像形成装置101が、サービス提供要求を受け取ったことを契機として、当該サービスの提供を実現するアプリケーションとサーバ装置106との双方向通信を復活させることができる。
次に、図16を参照して説明した、画像形成装置101が省電力モードから復帰する際の各装置の動作処理の詳細を図17乃至図20のフローチャートを用いて説明する。
図17は、情報処理装置が省電力モードから復帰する際のNICの動作処理例を示すフローチャートである。サーバ装置106のWebSocket通信部605が、NIC221に対して図10(B)に示すメッセージ(データ)を送信する送信部として機能する。NIC221の接続維持アプリケーション502が、このメッセージをサーバ装置106のWebSocket通信部605から受信する(ステップSS1601)。続いて、接続維持アプリケーション502が、WebSocket通信部503を介して、サーバ装置106との間に確立しているWebSocketコネクションを切断する(ステップS1602)。そして、接続維持アプリケーション503が、図10(B)のメッセージの内容をスリープ制御部501に渡し、スリープ制御部501が、情報処理装置201に対して、図10(B)のメッセージの内容を通知する(ステップS1603)。すなわち、ステップS1603でなされる通知は、情報処理装置201に対する、図10(B)のメッセージに含まれるアプリケーションに対応するWebSocketコネクションを確立する指示として機能する。
図18は、情報処理装置が省電力モードから復帰する際の情報処理装置の動作処理例を示すフローチャートである。情報処理装置201の電力状態制御部404が、NIC221から図10(B)のメッセージに含まれる情報の通知を受ける(ステップS1701)。電力状態制御部404は、この通知に基づいて、情報処理装置201を省電力モードから復帰させる(ステップS1702)。すなわち、電力状態制御部404は、NIC221が、情報処理装置201に対してアプリケーションのWebSocketコネクションを確立する指示を行ったことを契機として、スリープ状態の画像形成装置をスリープ状態から復帰させる復帰部として機能する。
次に、電力状態制御部404が、アプリケーション情報を参照して、図10(B)のメッセージに含まれているアプリケーションを検索する(ステップS1703)。図10(B)のメッセージに含まれているアプリケーションが処理対象のアプリケーション、すなわちWebSocketコネクションを確立すべきアプリケーションである。続いて、電力状態制御部404が、アプリケーション情報に未処理のアプリケーションが存在するかを判断する(ステップS1704)。
アプリケーション情報に未処理のアプリケーションが存在する場合、電力状態制御部404が、以下の処理を実行する。電力状態制御部404は、WebSocket通信部405を介して、サーバ装置106との間に、当該アプリケーションに対応するWebSocketコネクションを確立する(ステップS1705)。すなわち、電力状態制御部404は、NIC221からの、情報処理装置201で稼働中のアプリケーションに対応するWebSocketコネクションを確立する指示にしたがって、このWebSocketコネクションを確立する。
WebSocketコネクションを確立後、電力状態制御部404が、省電力モードから復帰した直後のコネクションであることを通知するため、サーバ装置106に対して、図10(C)に示すメッセージを送信する(ステップS1706)。
次に、電力状態制御部404が、確立したWebSocketコネクションに対応するアプリケーションを確認する(ステップS1707)。これにより、電力状態制御部404が、確立したWebSocketコネクションが印刷アプリケーションに対応するWebSocketコネクションであるかを判断する(ステップS1708)。
確立したWebSocketコネクションが印刷アプリケーションに対応するWebSocketコネクションでない場合は、ステップS1704に戻る。確立したWebSocketコネクションが印刷アプリケーションに対応するWebSocketコネクションである場合は、ステップS1709に進む。
ステップS1709において、は印刷アプリケーション401が、図11を参照して説明した動作処理にしたがって印刷処理を行う。すなわち、印刷アプリケーション401が、印刷要求、印刷データを受信する(ステップS1709,1710)。そして、印刷アプリケーション401が、印刷データの受信完了通知をサーバ装置106に対して送信した後(ステップS1711)、印刷処理を実行する(ステップS1712)。そして、処理がステップS1704に戻る。
上記ステップS1704の判断処理でNoの場合、つまりアプリケーション情報に未処理のアプリケーションが存在しない場合は、ステップS1713に進む。そして、WebSocket通信部404が、アプリケーションのWebSocketコネクションを維持する(ステップS1713)。
図19および図20は、情報処理装置が省電力モードから復帰する際のサーバ装置の動作処理例を示すフローチャートである。図19のステップS1801において、サーバ装置106の印刷アプリケーション601が、クライアント端末107から印刷要求と印刷データとを受信する(ステップS1801)。
次に、アプリケーション情報制御部602が、クライアント電力状態テーブル保存部606が有する図8のテーブルを検索する(ステップS1802)。アプリケーション情報制御部602が、ステップS1802における検索処理によって、該当する画像形成装置とアプリケーションのエントリが発見できたかを判断する(ステップS1803)。該当する画像形成装置とアプリケーションのエントリが発見できなかった場合、アプリケーション情報制御部602が、クライアント端末107に対してエラーを送信して(ステップS1804)、処理を終了する(図20)。
該当する画像形成装置とアプリケーションのエントリが発見できた場合、電力状態制御部604が、該当する画像形成装置101の電力状態を確認する(ステップS1805)。電力状態制御部604が、この確認結果に基づいて、画像形成装置101がスリープ状態であるかを判断する(ステップS1806)。画像形成装置101がスリープ状態でなく、通常状態である場合は、図11を参照して説明した動作処理が実行される(ステップS1807)。
画像形成装置101がスリープ状態である場合、電力状態制御部604が、図10(B)に示すメッセージをNIC221に対して送信し(ステップS1808)、図20のステップS1809に進む。
次に、図20のステップS1809において、電力状態制御部604が、画像形成装置101からWebSocketコネクションが確立されるのを待ち受ける(ステップS1809)。続いて、電力状態制御部604が、WebSocket通信部605を介して、画像形成装置101との間でWebSocketコネクションを確立する(ステップS1810)。そして、電力状態制御部604が、省電力モードから復帰した直後のコネクションであることを示す図10(C)に示すメッセージを画像形成装置101から受信する(ステップS1811)。
次に、電力状態制御部604が、クライアント電力状態テーブル保存部606が有する図8のテーブル内の該当するアプリケーションの電力状態をsleepからwake upに変更する(ステップS1812)。さらに、電力状態制御部604が、アプリケーションを確認し(ステップS1813)、当該アプリケーションが印刷アプリケーション601であるかを判断する(ステップS1814)。アプリケーションが印刷アプリケーション601である場合は、印刷アプリケーション601が、図11を参照して説明した動作処理にしたがって印刷処理を行う。すなわち、印刷アプリケーション601が、印刷要求、印刷データを送信する(ステップS1815,1816)。そして、印刷アプリケーション601が、印刷データの受信完了通知を画像形成装置101から受信した後(ステップS1817)、印刷完了通知をクライアント装置に対して行い(ステップS1818)、ステップS1809に進む。
一方、上記ステップS1814の判断処理で、アプリケーションが印刷アプリケーションでないと判断された場合は、電力状態制御部604が、以下の処理を実行する。電力状態制御部604が、図8のテーブルを検索し、全てのアプリケーションの電力状態を確認する(ステップS1819)。そして、電力状態制御部604が、全てのアプリケーションの電力状態がwake upになっているかを判断する(ステップS1820)。
全てのアプリケーションの電力状態がwake up になっている場合は、処理を終了する。電力状態がwake upになっていないアプリケーションがある場合は、ステップS1809に戻って、他のアプリケーションのコネクションを待ち受け続ける。
図21は、他の実施形態を示し、情報処理装置が省電力モードから復帰する際の他の動作処理例を示すシーケンス図である。この動作処理例では、画像形成装置101が、ネットワークを介して省電力モードから復帰するのではなく、ユーザ操作に応じたイベントの発生を契機として、スリープ状態の画像形成装置をスリープ状態から復帰させる。このユーザ操作として、例えばコピーを使用するためのボタンの押下等が考えられる。
なお、図21に示す動作処理で、前述したネットワークを介して省電力モードから復帰する場合の動作処理と異なるのは、情報処理装置201が省電力モードから復帰するところまでである。したがって、ここでは情報処理装置201が復帰した後の処理の説明は省略する。
情報処理装置201が、省電力モードからの復帰を検知すると(ステップS1901)、検知結果がNIC221に対して通知される(ステップS1902)。NIC221が、図10(C)に示すメッセージをサーバ装置106に対して送信する(ステップS1903)。サーバ装置106が、図10(B)に示すメッセージをNIC221に対して送信する(ステップS1904)。
次に、NIC221が、サーバ装置106との間に確立されているWebSocketコネクションを切断する(ステップS1905)。続いて、NIC221が、上記ステップS1904で受信したメッセージの内容を情報処理装置201に対して渡し(ステップS1906)、情報処理装置201が、省電力モードからの復帰を完了する(ステップS1907)。そして、情報処理装置201が、ステップS1904で受信したメッセージに含まれているアプリケーション毎に、WebSocketのコネクションを確立する。
図22は、他の実施形態における各装置の動作処理例を示すフローチャートである。図22(A)は、NIC221の処理を示す。図22(A)に示す処理が図17に示す処理と異なるのは、以下の点である。NIC221のスリープ制御部501が、省電力モードからの復帰通知を情報処理装置201から受け取る(ステップS2001)。スリープ制御部501が、図10(C)に示すメッセージを、WebSocket通信部503を介して、サーバ装置106に対して送信する(ステップS2002)。これ以降の処理は、図17で説明した内容と同じである。
図22(B)は、情報処理装置の処理を示す。図22(B)に示す処理が図18に示す処理と異なるのは、情報処理装置201が自ら省電力モードからの復帰を検知する点である(ステップS2101)。省電力モードからの復帰を検知すると、電力状態制御部404が、NIC221に対して省電力モードからの復帰を通知する(ステップS2102)。その後の処理は図18で説明した内容と同じである。
図22(C)は、サーバ装置の処理を示す。図22(C)に示す処理が図19に示す処理と異なるのは、クライアント端末107からのアクセスが無いことと、サーバ装置106の電力制御部604が、図10(C)に示すメッセージをNIC221から最初に受信する点である(ステップS2201)。この例では、図10(C)に示すメッセージを受信したことを契機として、図19のステップS1808以降と同じ処理が行われる。
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。