以下、本発明に関する好ましい実施形態について図面を参照しつつ詳細に説明する。尚、以下に説明する実施形態において互いに共通する部材には同一符号を付しており、それらについての重複する説明は省略する。
図1は、本発明の一実施形態である情報処理システム1の構成例を示す図である。この情報処理システム1は、ローカル環境2に複数の情報処理装置3a,3b,3c,3dと通信中継装置4とが設けられ、インターネット6上に複数のサーバー7a,7bが設けられた構成である。ローカル環境2には、LAN(Local Area Network)などのローカルネットワーク5が設けられており、複数の情報処理装置3a,3b,3c,3dがそのローカルネットワーク5に接続されると共に、通信中継装置4もローカルネットワーク5に接続されている。そしてローカルネットワーク5は、通信中継装置4を介してインターネット6に接続される。尚、以下においては、複数の情報処理装置3a,3b,3c,3dのそれぞれを区別しないときにはそれらを情報処理装置3として表す。また複数のサーバー7a,7bのそれぞれを区別しないときにはそれらをサーバー7として表す。また図1では、ローカル環境2に4台の情報処理装置3a,3b,3c,3dが設けられる場合を例示しているが、情報処理装置3の台数は4台に限られるものではなく、3台以上であれば良い。更に図1では、インターネット6に2台のサーバー7a,7bが設けられる場合を例示しているが、サーバー7の台数は2台に限られるものでもない。
情報処理装置3は、例えばMFPなどのような画像処理装置で構成され、スキャンジョブや印刷ジョブなどの各種のジョブを実行することができる。また情報処理装置3は、ローカルネットワーク5及び通信中継装置4を経由してインターネット6上のサーバー7と通信を行うことにより、サーバー7と連携してジョブを実行することも可能である。このような情報処理装置3は、省電力を目的としたスリープ機能を有しており、例えばユーザーによって使用されない状態が所定時間以上継続するなどの所定の条件が成立すると、スリープ機能が作動し、通電状態を通常モードから省電力モードへ移行させるように構成される。
通信中継装置4は、例えばネットワークルーターなどによって構成され、ローカルネットワーク5をインターネットに接続するための装置である。この通信中継装置4は、ファイヤウォール機能を備えており、情報処理装置3とサーバー7との間に確立されるセッションを利用した通信を除き、インターネット上からローカルネットワーク5へのアクセスを遮断する。
サーバー7は、インターネット経由でクラウドサービスを提供するサーバーである。サーバー7によって提供されるサービスには様々なサービスがあり、例えばドキュメントデータや画像データなどの各種データを記憶しておくストレージサービスや、ドキュメントや画像などを編集するための編集サービス、情報処理装置3のファームウェアをアップデートするためのアップデートサービスなどがある。
上記のような情報処理システム1では、情報処理装置3に、サーバー7と連携してジョブを実行するためのアプリケーションが予めインストールされる。情報処理装置3においてそのアプリケーションが起動されると、情報処理装置3は、インターネット6上のサーバー7との間にXMPPによる常時通信可能なセッションを確立させる。具体的に説明すると、まず情報処理装置3は、ローカルネットワーク5及び通信中継装置4を介してインターネット6上のサーバー7のアドレスに対して接続要求を送信する。サーバー7は、情報処理装置3からの接続要求に基づき、XMPPによる新規なセッションを開設して情報処理装置3との通信可能な状態を確立させる。このとき、サーバー7は、情報処理装置3との間に開設するセッションに対して新規なセッションIDを付与し、そのセッションをセッションIDで管理する。セッションIDは、サーバー7が複数のセッションのそれぞれを識別するために付与する識別情報である。そしてサーバー7は、情報処理装置3に対してそのセッションIDを通知し、以後、そのセッションIDを用いて情報処理装置3との相互通信を行う。
サーバー7は、情報処理装置3との間にセッションを確立させた後、情報処理装置3と定期的に通信を行うことにより、そのセッションを有効に維持する。情報処理装置3とサーバー7との間に確立されるセッションが継続的に維持されることにより、サーバー7は、そのセッションを利用してローカルネットワーク5に設けられた情報処理装置3に印刷ジョブを送信することができる。そのため、ユーザーは、スマートフォンやタブレット端末などの端末装置を利用してサーバー7にアクセスし、サーバー7に記憶されているデータを印刷対象として指定すると共に、印刷ジョブの出力先としてローカルネットワーク5に接続されている情報処理装置3を指定すると、サーバー7から情報処理装置3に印刷ジョブが送信されるようになる。そして情報処理装置3がサーバー7から送信される印刷ジョブを受信すると、その印刷ジョブを実行することにより、ユーザーによって指定されたデータに基づく印刷出力を行うことができる。またサーバー7は、情報処理装置3との接続状態を利用して印刷ジョブ以外の他のジョブを情報処理装置3へ送信することができると共に、情報処理装置3へファームウェアを送信することにより情報処理装置3のファームウェアをアップデートさせることもできる。
またサーバー7は、情報処理装置3との定期通信が所定時間以上途絶えると、情報処理装置3とのセッションを切断する。これにより、サーバー7は、ローカルネットワーク5に設けられた情報処理装置3に対してジョブやファームウェアなどのデータを送信することができなくなる。ただし、複数の情報処理装置3のうちの一の情報処理装置3が他の情報処理装置3の定期通信を代行して行っているときに、その一の情報処理装置3との定期通信が所定時間以上途絶えた場合、サーバー7は、他の情報処理装置3との間に確立したセッションのセッションIDを所定時間保持した状態で、そのセッションを切断する。そのため、サーバー7は、その後に別の情報処理装置3から所定時間保持しているセッションIDに対応するセッションの復元要求を受信した場合には、そのセッションIDに対応する元のセッションを復元することができる。
通信中継装置4は、情報処理装置3とサーバー7との間にセッションが確立されることに伴い、情報処理装置3とサーバー7との間で送受信されるセッションIDを取得し、そのセッションIDで情報処理装置3とサーバー7との接続状態を管理する。そして通信中継装置4は、情報処理装置3とサーバー7との間で定期的に通信が行われることにより、情報処理装置3とサーバー7との接続状態を維持する。これに対し、情報処理装置3とサーバー7との間の定期通信が所定時間以上途絶えると、通信中継装置4は、タイムアウトと判定し、セッションIDを破棄すると共に、情報処理装置3とサーバー7との接続状態を解除する。この場合、通信中継装置4によって情報処理装置3とサーバー7とのセッションが切断されることになり、サーバー7は、情報処理装置3に対してジョブやファームウェアなどのデータを送信することができなくなる。これを防止するため、本実施形態では、情報処理装置3がサーバー7と定期通信を行う時間間隔が、通信中継装置4においてセッションが切断されるまでのタイムアウト時間よりも短い間隔に予め設定される。ただし、情報処理装置3がサーバー7aと定期通信を行う時間間隔とサーバー7bと定期通信を行う時間間隔は互いに異なる時間であっても良い。そして情報処理装置3は、アプリケーションの起動によってサーバー7とのセッションを確立させると、そのセッションを有効に維持すべく、サーバー7と一定の時間間隔で定期的に通信を行う。
情報処理装置3は、サーバー7とのセッションを確立させている状態においても、所定の条件が成立すると、スリープ機能を作動させ、通電状態を通常モードからスリープモードへ移行させるように構成される。情報処理装置3においてスリープ機能が作動すると、サーバー7と定期通信を行うための機能が停止する。そのため、情報処理装置3は、スリープ機能の作動中においても、サーバー7と定期通信を行うための時間間隔を計測し、サーバー7と定期通信を行うタイミングになると、スリープモードを解除して通常モードへと復帰させ、サーバー7との定期通信を行う機能を有している。
図2は、本実施形態において情報処理装置3とサーバー7との間にセッションが確立されている状態の一例を示す図である。本実施形態では、情報処理装置3a,3bにサーバー7aと連携するアプリケーションがインストールされており、情報処理装置3dにサーバー7bと連携するアプリケーションがインストールされている。そして情報処理装置3cには、サーバー7a及びサーバー7bのそれぞれと連携するアプリケーションがインストールされている。これにより、本実施形態では、図2に示すように、情報処理装置3a,3b,3cがサーバー7aとの間にセッション8a,8b,8cを個別に確立し、情報処理装置3c,3dがサーバー7bとの間にセッション9a,9bを個別に確立する。すなわち、複数の情報処理装置3a,3b,3c,3dのうち、3つの情報処理装置3a,3b,3cがセッション8a,8b,8cにより第1のサーバー7aと通信を行う第1のグループG1を構成し、2つの情報処理装置3c,3dがセッション9a,9bにより第2のサーバー7bと通信を行う第2のグループG2を構成する。ここで、情報処理装置3cは、第1のサーバー7aとセッション8cを確立すると共に、第2のサーバー7bともセッション9aを確立するため、第1のグループG1と第2のグループG2の双方に属している。
情報処理装置3a,3bは、第1のサーバー7aとのセッション8a,8bを維持するべく、第1のサーバー7aにおいて予め定められている時間間隔で第1のサーバー7aとの定期通信を行う。また情報処理装置3cは、第1のサーバー7aとのセッション8cを維持するべく、第1のサーバー7aにおいて予め定められている時間間隔で第1のサーバー7aとの定期通信を行うと共に、第2のサーバー7bとのセッション9aを維持するべく、第2のサーバー7bにおいて予め定められている時間間隔で第2のサーバー7bとの定期通信を行う。さらに情報処理装置3dは、第2のサーバー7bとのセッション9bを維持するべく、第2のサーバー7bにおいて予め定められている時間間隔で第2のサーバー7bとの定期通信を行う。
そして本実施形態では、上記のようなセッション8a,8b,8c,9a,9bが確立されている状態において、複数の情報処理装置3のうちのいずれかがスリープモードへ移行するとき、他の情報処理装置3に対して定期通信の代行を依頼する。また定期通信の代行依頼を受けた他の情報処理装置3は、代行装置として機能し、その後、依頼元の情報処理装置3に代わってサーバー7との定期通信を行う。このとき、代行装置として機能する情報処理装置3は、メンテナンス作業の発生などによって電源が遮断される不測の事態に備えて複数の情報処理装置3のうちの一の情報処理装置3を監視装置に決定し、その監視装置に自機の監視を依頼する。監視依頼を受けた他の情報処理装置3は、監視装置として機能し、その後、代行装置がサーバー7との定期通信の代行を正常に行っているか否かを監視する。そして監視装置は、代行装置がサーバー7との定期通信の代行を正常に行っていないと判断した場合、複数の情報処理装置3のそれぞれがサーバー7との間で確立させているセッション8a,8b,8c,9a,9bが良好に維持されるような処理を行う。以下、このような情報処理システム1について詳しく説明する。
図3は、サーバー7のハードウェア構成及び機能構成の一例を示すブロック図である。図3に示すように、サーバー7は、ハードウェア構成として、通信インタフェース10と、制御部11と、記憶部12とを有している。通信インタフェース10は、サーバー7をネットワークに接続し、インターネットを介して情報処理装置3と通信を行うものである。制御部11は、CPUとメモリとを備えて構成され、情報処理装置3とのXMPPによるセッションを管理すると共に、各種のクラウドサービスを提供するための処理を実行する。記憶部12は、例えばハードディスクドライブ(HDD)などによって構成される不揮発性の記憶手段である。記憶部12には、例えば制御部11のCPUによって実行されるプログラム13が予めインストールされている。また記憶部12にはセッション管理情報14が記憶される。さらに記憶部12には、クラウドサービスを提供するため、図示を省略するデータ記憶領域が設けられ、そのデータ記憶領域に、ドキュメントデータや画像データ、情報処理装置3のファームウェアなどの各種のデータが記憶される。
制御部11は、CPUがプログラム13を実行することにより、サービス提供部15及び通信制御部16として機能する。通信制御部16は、通信インタフェース10を介して情報処理装置3とのXMPPによるセッションを確立し、そのセッションを利用して情報処理装置3と通信を行うものである。この通信制御部16は、後述するセッション管理部17を備えている。サービス提供部15は、通信制御部16を介してクラウドサービスを提供する処理部である。例えばサービス提供部15は、記憶部12に記憶されているドキュメントデータや画像データなどを読み出して印刷ジョブを生成し、その印刷ジョブを通信制御部16へ出力する。そして通信制御部16は、情報処理装置3との間に確立しているセッションを利用してトンネル通信を行うことにより、サービス提供部15から出力される印刷ジョブを情報処理装置3へ送信する。これにより、サーバー7は、情報処理装置3に印刷ジョブを実行させることができる。また通信制御部16は、情報処理装置3からドキュメントデータや画像データなどを受信した場合には、それらのデータをサービス提供部15へ出力する。そしてサービス提供部15は、それらのデータを記憶部12へ保存して管理する。
セッション管理部17は、情報処理装置3から受信する接続要求に基づき、情報処理装置3との間にXMPPによるセッションを確立し、そのセッションを管理する。セッション管理部17は、情報処理装置3との間に新規なセッションを開設することに伴い、そのセッションをセッション管理情報14に登録して管理する。
図4は、セッション管理情報14の一例を示す図である。図4に示すように、セッション管理情報14には、例えば情報処理装置3との間に確立するセッションのセッションID14aと、そのセッションによる通信相手を特定するための通信相手情報14bと、定期通信履歴情報14cとが相互に関連付けられて記録される。定期通信履歴情報14cには、例えば情報処理装置3との間で行った前回の定期通信の日時が記録される。ただし、前回の定期通信の後にサーバー7と情報処理装置3との間でジョブの送受信を行った場合には、その送受信日時が定期通信履歴情報14cに記録される。
そしてセッション管理部17は、セッション管理情報14の定期通信履歴情報14cを参照し、前回の定期通信から所定時間が経過するまでに情報処理装置3との間でセッションIDを用いた定期通信を行うと、そのセッションIDに対応する定期通信履歴情報14cを更新し、そのセッションIDに対応するセッションを有効な状態で維持する。これに対し、前回の定期通信から所定時間が経過するまでに情報処理装置3との間でセッションIDを用いた定期通信を行わなかった場合、セッション管理部17は、そのセッションIDに対応する情報をセッション管理情報14から削除する。これにより、サーバー7と情報処理装置3とのセッションが切断される。
またセッション管理部17は、セッション管理情報14に登録されているセッションIDを用いて通信を行う通信相手とは異なる情報処理装置3であって通信相手情報14bに登録されている他の装置から、代行による定期通信を受信した場合には、その定期通信を有効なものとして受け付ける。この場合、セッション管理部17は、他の情報処理装置3の代行による定期通信に付与されたセッションIDに対応する定期通信履歴情報14cを更新し、そのセッションIDに対応するセッションを有効な状態で維持する。
さらにセッション管理部17は、代行による定期通信を受信することによってセッションを有効な状態で維持した後、所定時間が経過するまでに次の定期通信を受信しなかったときには、そのセッションIDに対応するセッションを切断する。ただし、この場合、セッション管理部17は、そのセッションIDに関する情報を直ぐにはセッション管理情報14から削除せず、少なくとも所定時間が経過するまで保持し続ける。そしてセッション切断後、所定時間が経過した後に、セッション管理部17は、そのセッションIDに関する情報をセッション管理情報14から削除する。したがって、セッション管理部17は、代行による定期通信が途切れることによってセッションを切断した場合、その後所定時間が経過するまでの間に、そのセッションの復元要求を受信すれば、一度切断したセッションIDと同じセッションIDのセッションを復元することができる。
このようにサーバー7は、情報処理装置3とのセッションを確立した後、そのセッションを利用する情報処理装置3が一定の時間間隔で定期通信を行うことにより、そのセッションを有効に維持すると共に、そのセッションを利用しない他の情報処理装置3が一定の時間間隔で定期通信を代行した場合にもそのセッションを有効に維持するように構成される。ただし、サーバー7は、セッションを確立していない情報処理装置3が定期通信を代行した場合には、そのような定期通信の代行を受け付けない。例えば図2においてサーバー7aが定期通信の代行を受け付けることができるのは、情報処理装置3a,3b,3cのいずれかであり、情報処理装置3dによる代行は受け付けない。
次に図5は、情報処理装置3のハードウェア構成及び機能構成の一例を示すブロック図である。情報処理装置3は、ハードウェア構成として、メイン制御部20と、操作パネル21と、通信インタフェース22と、電力制御部23と、記憶装置24と、スキャナ部25と、プリンタ部26と、FAX部27とを備えている。メイン制御部20は、各部の動作を制御するものであり、図示を省略するCPUとメモリとを備えて構成される。操作パネル21は、ユーザーが情報処理装置3を使用する際のユーザーインタフェースとなるものであり、ユーザーに対して各種情報を表示する表示部21aと、ユーザーによる操作を受け付ける操作部21bとを有している。通信インタフェース22は、情報処理装置3をローカルネットワーク5に接続して通信を行うためのものである。
スキャナ部25は、ユーザーによってセットされる原稿を光学的に読み取って画像データを生成するものである。プリンタ部26は、画像データに基づいてトナー像を形成し、そのトナー像を印刷用紙などの印刷媒体に転写して印刷出力を行うものである。FAX部27は、図示を省略する電話回線を介してFAXデータの送受信を行うものである。
記憶装置24は、例えばハードディスクドライブ(HDD)などの不揮発性の記憶手段によって構成され、メイン制御部20のCPUによって実行される各種プログラムを記憶する。本実施形態では、記憶装置24に、情報処理装置3のオペレーティングシステムとなるプログラム28と、インターネット6上のサーバー7と連携した処理を行うためのアプリケーションプログラム29とが予めインストールされている。また記憶装置24には、代行管理情報30及び定期通信情報31が記憶される。
電力制御部23は、情報処理装置3のスリープ機能を制御するためのものである。電力制御部23は、情報処理装置3における通電状態を、例えば、通常モードと、スリープモードとの2段階で切り換えて制御する。通常モードは、上述した各部に対して電力を供給する通常の通電状態であり、情報処理装置3においてジョブの実行が可能となるモードである。これに対し、スリープモードは、通常モードにおいて情報処理装置3が使用されない状態で所定時間が経過した場合に移行する省電力モードであり、メイン制御部20、操作パネル21の表示部21a、スキャナ部25、プリンタ部26、FAX部27及び記憶装置24への通電を停止するモードである。したがって、電力制御部23の制御によって情報処理装置3がスリープモードへ移行すると、メイン制御部20は、その機能を停止させる。
ただし、スリープモードであっても、操作パネル21の操作部21b及び通信インタフェース22に対する通電は継続される。そのため、スリープモード中にユーザーによって操作パネル21が操作された場合、或いは、通信インタフェース22がジョブなどを受信した場合には、操作パネル21又は通信インタフェース22から電力制御部23へ復帰命令が出力される。これにより、電力制御部23は、通電状態をスリープモードから通常モードへ復帰させることができる。ただし、通信インタフェース22は、ローカルネットワーク5を介して受信する情報を解析する機能を備えており、スリープモード中にローカルネットワーク5内にブロードキャストされる情報などを受信した場合には電力制御部23に対して復帰命令を出力しない。そのため、電力制御部23は、スリープモード中に通信インタフェース22がブロードキャストされる情報などを受信した場合でもスリープモードを継続させることができる。
また電力制御部23は、タイマー23aを備えている。タイマー23aは、通常モードにおいて通電状態をスリープモードへ移行させる時間を計測すると共に、スリープモード中においてはサーバー7との定期通信のために通常モードへ復帰させる時間を計測するものである。例えばタイマー23aは、通常モードのとき、メイン制御部20においてジョブに関する処理が行われていない状態のときに作動し、通電状態をスリープモードへ移行させるまでの時間計測を開始する。そしてタイマー23aが所定時間を計測すると、電力制御部23は、メイン制御部20に対してスリープモードへ移行することを通知し、その後、通電状態を通常モードからスリープモードへ移行させる。また電力制御部23は、メイン制御部20に対してスリープモードへ移行することを通知した後、メイン制御部20からサーバー7との定期通信のために通常モードへの復帰タイミングが指示された場合には、スリープモードへ移行させるときにタイマー23aを再び作動させ、通電状態を通常モードへ復帰させるまでの時間計測を開始する。そしてタイマー23aが復帰タイミングとなったことを検知すると、電力制御部23は、通電状態を通常モードへ復帰させる。ただし、電力制御部23は、メイン制御部20から復帰タイミングが指示されなかった場合には、スリープモード中においてタイマー23aを動作させない。この場合、スリープモードが長期に亘って継続するようになる。
情報処理装置3に主電源が投入されると、メイン制御部20のCPUが記憶装置24からプログラム28を自動的に読み出して実行する。これにより、メイン制御部20は、ジョブ制御部33として機能する。ジョブ制御部33は、情報処理装置3におけるジョブの実行を統括的に制御するものである。ジョブ制御部33は、操作パネル21や通信インタフェース22を介してジョブの入力を受け付け、スキャナ部25、プリンタ部26又はFAX部27を動作させることにより、受け付けたジョブの実行を制御する。
またメイン制御部20のCPUは、プログラム28を起動した後、自動的に、或いは、ユーザーによる指示操作に基づいて、記憶装置24からアプリケーションプログラム29を読み出して実行する。これにより、メイン制御部20は、アプリケーション32を機能させる。アプリケーション32は、インターネット6上のサーバー7と連携した処理を行うためのものであり、ジョブ制御部33とサーバー7との間でジョブデータなどの送受信を仲介する機能を有している。このアプリケーション32は、サーバー7と通信を行うためのセッション管理部40を備えている。セッション管理部40は、サーバー7との間に確立するセッションを管理するためのものであり、メイン制御部20においてアプリケーション32が起動している状態においてそのセッションを有効に維持するように構成される。このようなセッション管理部40は、さらにセッション確立部41、定期通信部42、代行依頼部43、通信代行部44、監視装置決定部45、監視部46及び代行復帰制御部47を備えている。
セッション確立部41は、アプリケーション32の起動時に、サーバー7に対して接続要求を送信し、サーバー7と常時通信可能なセッションを確立させる。このとき、セッション確立部41は、サーバー7からセッションIDを取得する。そのため、セッション管理部40は、サーバー7とのセッションが確立された後にサーバー7と通信を行うときには、そのセッションIDを用いて通信する。そしてセッション管理部40は、そのセッションを利用してサーバー7から送信されるジョブを受信した場合には、そのジョブをジョブ制御部33へ出力する。これにより、情報処理装置3においてサーバー7から受信したジョブが実行される。
定期通信部42は、サーバー7との間でジョブデータの送受信が行われていないときに作動し、サーバー7と一定の時間間隔で定期通信を行うことにより、サーバー7とのセッションを維持する。この定期通信を行うための時間間隔は、サーバー7においてセッションが切断されるまでに要する時間よりも短い時間として、予めアプリケーション32に設定されている。定期通信部42は、内部タイマーを備えており、セッション管理部40がサーバー7とジョブの送受信を行っていない状態のときにその内部タイマーを作動させる。そして定期通信部42は、その内部タイマーがアプリケーション32に予め設定されている時間を計測する度に、セッションIDを付したアライブ信号をサーバー7へ送信することにより定期通信を行う。また定期通信部42は、スリープモードから通常モードへ復帰した場合にも、セッションIDを付したアライブ信号をサーバー7へ送信することにより定期通信を行う。これにより、アプリケーション32がサーバー7との間でジョブの送受信を行っていない状態が長時間続いた場合でも、サーバー7とのセッションを有効に維持することができる。
代行依頼部43は、電力制御部23によって通電状態がスリープモードへ移行するときに作動する。そして代行依頼部43は、定期通信部42が行うべきサーバー7との定期通信の代行を、ローカルネットワーク5に設けられた他の情報処理装置3へ依頼する。代行依頼部43が定期通信の代行を依頼するのは、同じサーバー7との間にセッションを確立している他の情報処理装置3である。そのため、代行依頼部43は、サーバー7に問い合わせを行い、同じサーバー7とセッションを確立している他の情報処理装置3を確認する。このとき、他の情報処理装置3が複数存在することが判明することがある。同じサーバー7とセッションを確立している複数の情報処理装置3が存在する場合、代行依頼部43は、それら複数の情報処理装置3のうちから一の装置を代行装置として選択し、その代行装置に対して定期通信の代行を依頼する。これにより、スリープモードへ移行した後には、サーバー7とのセッションを維持するための定期通信を他の情報処理装置3に行わせることができるようになる。したがって、情報処理装置3は、スリープモードへ移行した後にサーバー7との定期通信のために定期的に通常モードへ復帰する必要がなくなり、スリープモードを長時間継続させることができるので、高い省電力効果が得られるようになる。尚、複数の情報処理装置3のうちから一の情報処理装置3を代行装置として選択する手法については後に詳しく説明する。
また代行依頼部43は、情報処理装置3のうちから一の装置を代行装置として決定することができなかった場合には、電力制御部23に対して復帰タイミングを通知し、他の情報処理装置3に対して代行依頼を行わない。したがって、この場合は、スリープモードへ移行した後、サーバー7との定期通信を行うために一定の時間間隔で通常モードへ復帰するようになる。
代行依頼部43は、他の情報処理装置3に対して定期通信の代行を依頼すると、サーバー7、代行装置及び被代行装置(自機)を相互に関連付けた代行情報を生成し、その代行情報を代行管理情報30に登録すると共に、その代行情報を他の情報処理装置3に対して送信する。またセッション管理部40は、他の情報処理装置3から代行情報を受信した場合には、その代行情報に基づいて代行管理情報30を更新する。これにより、ローカルネットワーク5内で、定期通信の代行関係を共有することができるようになる。
通信代行部44は、他の情報処理装置3から定期通信の代行依頼を受けた場合に、他の情報処理装置3に代わって、サーバー7との定期通信を行うものである。すなわち、通信代行部44は、情報処理装置3を代行装置として機能させるものである。この通信代行部44は、他の情報処理装置3がサーバー7と確立しているセッションのセッションIDを付加したアライブ信号をサーバー7へ送信することにより、他の情報処理装置3が行うべき定期通信を代行して行う。このような通信代行部44は、複数の情報処理装置3の定期通信を代行して行うこともある。例えば2台の情報処理装置3の定期通信を代行している場合、通信代行部44は、それぞれのセッションIDを付加したアライブ信号をサーバー7へ個別に送信することにより、2台の情報処理装置3のそれぞれが行うべき定期通信を代行して行う。また通信代行部44は、定期通信部42がサーバー7との定期通信を行うときに、他の情報処理装置3のセッションIDを付加したアライブ信号をサーバー7へ送信する。これにより、定期通信部42によって行われる定期通信と、通信代行部44によって行われる定期通信とがほぼ同時に行われるようになるため、例えばスリープモードから通常モードへ復帰してから定期通信が行われる場合に復帰頻度を低減することができるようになる。
尚、情報処理装置3cの場合には、上記構成において、セッション確立部41がサーバー7a及びサーバー7bの双方とセッションを個別に確立し、定期通信部42がサーバー7a及びサーバー7bのそれぞれと個別に定期通信を行う。
監視装置決定部45は、情報処理装置3が代行装置としての動作を開始する際に機能し、他の情報処理装置3のうちから一の情報処理装置3を監視装置として決定し、その監視装置に自機の動作状態を監視させる。監視装置決定部45は、ローカルネットワーク5に接続された複数の情報処理装置3の中に、その時点において通常モードで稼働中の情報処理装置3があれば、その情報処理装置3を監視装置として決定する。このとき、監視装置決定部45は、通常モードで稼働中の他の情報処理装置3の中に、複数のサーバー7とセッションを確立している情報処理装置3があれば、そのような情報処理装置3を優先的に監視装置に決定する。また監視装置決定部45は、その時点において通常モードで稼働中の情報処理装置3が存在しないときには、最後にスリープモードへ移行する情報処理装置3、すなわち代行依頼の送信元である情報処理装置3を監視装置として決定する。
監視装置決定部45は、他の情報処理装置3のうちから一の情報処理装置3を監視装置として決定すると、その一の情報処理装置3に対して監視依頼を送信し、自機の監視を依頼する。これにより、自機に不測の事態が発生し、サーバー7との定期通信を代行して行うことができなくなると、監視装置によってそれが検知されるようになる。また監視装置決定部45は、監視装置に自機の監視を依頼することに伴い、その監視装置に対し、自機がサーバー7と定期通信を行う定期通信間隔などを含む定期通信情報を送信する。さらに監視装置決定部45は、監視装置に自機の監視を依頼した後、定期通信部42及び通信代行部44によって行われる定期通信のタイミングが変更された場合にその変更後のタイミングを監視装置へ通知する。
監視部46は、代行装置として動作する他の情報処理装置3から監視依頼を受けた場合に、その代行装置の動作状態を監視するものである。すなわち、監視部46は、情報処理装置3を監視装置として機能させるものであり、代行装置が正常にサーバー7との定期通信を行っているか否かを監視する。
監視部46は、代行装置から定期通信情報31を受信すると、その定期通信情報31を記憶装置24へ格納して保存する。また監視部46は、その定期通信情報31に基づいて代行装置がサーバー7と行う次回以降の定期通信のタイミングを特定し、その特定したタイミングに基づいて代行装置の動作状態を監視する監視タイミングを決定する。そして監視部46は、監視タイミングになると、代行装置が正常にサーバー7との定期通信を行っているか否かを監視する。
電力制御部23によってスリープモードへ移行するとき、監視部46は、次の監視タイミングを復帰タイミングとして電力制御部23へ指示する。これにより、監視装置がスリープモードへ移行する場合であっても、代行装置がサーバー7と定期通信を行うタイミングになると、通常モードへ復帰する。そして監視部46は、通常モードへ復帰した状態で代行装置が正常にサーバー7との定期通信を行っているか否かを監視する。
監視部46は、代行装置が正常にサーバー7との定期通信を行っていると判断した場合には特別な処理は行わない。これに対し、代行装置が正常にサーバー7との定期通信を行っていないと判断した場合、監視部46は、代行復帰制御部47を機能させる。
代行復帰制御部47は、代行装置による定期通信の代行が適切に行われなかった場合に新たな代行装置を決定し、その新たな代行装置にサーバー7との定期通信を代行させるものである。代行復帰制御部47は、ローカルネットワーク5に接続されている複数の情報処理装置3のうち、それ以前の代行装置とは異なる情報処理装置3を新たな代行装置として決定する。したがって、代行復帰制御部47は、自機を新たな代行装置として決定することもある。そして代行復帰制御部47は、それ以前の代行装置が行わなかったサーバー7との定期通信を新たな代行装置に行わせる。つまり、代行復帰制御部47は、各情報処理装置3がサーバー7と確立しているセッションが切断されないように制御するのである。
代行復帰制御部47によって新たな代行装置として指定された情報処理装置3は、それ以前の代行装置が行っていたサーバー7との定期通信を代行して行う。ただし、それ以前の代行装置がサーバー7との定期通信を行わなかったことが原因で、既に各情報処理装置3が確立していたサーバー7とのセッションが切断されていることもある。この場合、新たな代行装置に指定された情報処理装置3がサーバー7に対して定期通信を行っても、サーバー7からは何も応答がないため、サーバー7とのセッションが既に切断されていることを把握することができる。そのため、新たな代行装置に指定された情報処理装置3は、各情報処理装置3がサーバー7との間に確立していたセッションを復元させる処理を行った後、サーバー7との定期通信を行うようになる。
次に情報処理システム1における動作について説明する。尚、以下においては、主として情報処理装置3a,3b,3c及びサーバー7aを例に挙げて説明する。図6は、情報処理装置3a,3b,3cが通常モードで稼働している状態の動作シーケンスを示す図である。図6に示すように情報処理装置3a,3b,3cが通常モードである状態において、まず情報処理装置3aにおいてサーバー7aとの定期通信を行うタイミングになると、情報処理装置3aは、サーバー7aに対して定期通信を行う(プロセスP1)。サーバー7aは、情報処理装置3aからの定期通信を正常に受信すると、情報処理装置3aに対して定期通信応答を返信し、情報処理装置3aとのセッション8aを有効に維持する(プロセスP2)。次に情報処理装置3bにおいてサーバー7aとの定期通信を行うタイミングになると、情報処理装置3bは、サーバー7aに対して定期通信を行う(プロセスP3)。サーバー7aは、情報処理装置3bからの定期通信を正常に受信すると、情報処理装置3bに対して定期通信応答を返信し、情報処理装置3bとのセッション8bを有効に維持する(プロセスP4)。更に情報処理装置3cにおいてサーバー7aとの定期通信を行うタイミングになると、情報処理装置3cは、サーバー7aに対して定期通信を行う(プロセスP5)。サーバー7aは、情報処理装置3cからの定期通信を正常に受信すると、情報処理装置3cに対して定期通信応答を返信し、情報処理装置3cとのセッション8cを有効に維持する(プロセスP6)。その後、情報処理装置3aにおいて前回の定期通信から所定時間Taが経過し、次の定期通信を行うタイミングになると、情報処理装置3aは、サーバー7aに対して再び定期通信を行う(プロセスP7)。そしてサーバー7aは、情報処理装置3aからの定期通信を正常に受信すると、前回と同様に、情報処理装置3aに対して定期通信応答を返信し、情報処理装置3aとのセッション8aを有効に維持する(プロセスP8)。このようにサーバー7aとセッションを確立している情報処理装置3a,3b,3cのそれぞれが通常モードで稼働しているときには、各情報処理装置3a,3b,3cが一定の時間間隔(Ta)で個別にサーバー7aと定期通信を行い、それぞれのセッションを有効に維持する。
次に図6に示す状態から情報処理装置3aがスリープモードへ移行する場合について説明する。図7は、情報処理装置3aがスリープモードへ移行する場合の動作シーケンスを示す図である。まず情報処理装置3aにおいてスリープモードへの移行条件が成立すると、情報処理装置3aは、スリープモード移行処理を開始する(プロセスP10)。このスリープモード移行処理は、代行依頼部43によって行われる処理である。スリープモード移行処理を開始すると、代行依頼部43はまず接続装置確認処理を行う(プロセスP11)。代行依頼部43によって接続装置確認処理が行われると、情報処理装置3aからサーバー7aに接続装置確認要求が送信される(プロセスP12)。この接続装置確認要求により、サーバー7aに対して現在セッションを確立している他の情報処理装置3b,3cの問い合わせが行われる。サーバー7aは、この接続装置確認要求を受信すると、その時点において同じローカルネットワーク5内でセッションを確立している他の情報処理装置3b,3cに関する情報を、接続装置回答として情報処理装置3aへ返信する(プロセスP13)。これにより、情報処理装置3aは、他の情報処理装置3b,3cの存在を把握することができる。尚、ここではサーバー7aに対して問い合わせを行う場合を例示したが、これに限られるものではない。例えば情報処理装置3aは、ローカルネットワーク5に対し、サーバー7aとセッションを確立している他の情報処理装置3からの回答を求めるコマンドをブロードキャスト送信し、情報処理装置3b,3cから直接回答を得ることにより、他の情報処理装置3b,3cの存在を把握するようにしても良い。
次に情報処理装置3aの代行依頼部43は、他の情報処理装置3b,3cがスリープモードへ移行するまでの残時間を確認するための残時間確認処理を行う(プロセスP14)。代行依頼部43によって残時間確認処理が行われると、情報処理装置3aから他の情報処理装置3b,3cに残時間要求が送信される(プロセスP15)。情報処理装置3b,3cは、この残時間要求を受けると、自機がスリープモードへ移行するまでの残時間を確認し、情報処理装置3aに対して残時間回答を送信する(プロセスP16)。そして代行依頼部43は、代行装置決定処理を行い、他の情報処理装置3b,3cのうちから1つの代行装置を決定する(プロセスP17)。すなわち、代行依頼部43は、情報処理装置3b,3cのうち、スリープモードへ移行するまでの残時間が最も長い装置を代行装置として決定する。尚、ここでは、情報処理装置3bが代行装置として決定される場合を例示する。
次に情報処理装置3aの代行依頼部43は、代行装置として決定した情報処理装置3bに対する代行依頼処理を行う(プロセスP18)。代行依頼部43によって代行依頼処理が行われると、情報処理装置3aから情報処理装置3bに代行依頼が送信される(プロセスP19)。
図8は、このとき送信される代行依頼34の一例を示す図である。図8に示すように、代行依頼34には、定期通信の代行を依頼するコマンド34aと、情報処理装置3a(自機)に関する装置情報34bと、サーバー7aと確立しているセッションのセッションID34cと、情報処理装置3aがサーバー7aとの間で行った前回の定期通信の時刻34dと、その他の付属情報34eとが含まれる。情報処理装置3bは、このような代行依頼34を受信することにより、情報処理装置3aがサーバー7aと行うべき定期通信を情報処理装置3aから適切に引き継いで代行することができる。すなわち、代行依頼34にセッションID34cが含まれるので、情報処理装置3bは、情報処理装置3aの定期通信を代行するとき、情報処理装置3aのセッションIDを付加したアライブ信号をサーバー7aへ送信することができる。また代行依頼34に、前回の定期通信の時刻34dが含まれるので、情報処理装置3bは、情報処理装置3aによる前回の定期通信が行われてから所定時間Taが経過するまでにサーバー7aとの定期通信を代行して行うことが可能になる。また付属情報34eには、情報処理装置3aが他の情報処理装置3の定期通信を代行していた場合に、情報処理装置3a以外の定期通信に関する情報が含まれる。したがって、情報処理装置3bは、情報処理装置3aが他の情報処理装置3の定期通信を代行していた場合には、情報処理装置3a以外の装置の定期通信も代行できるようになる。
情報処理装置3bは、情報処理装置3aから、上記のような代行依頼34を正常に受信すると、情報処理装置3aに対して受理通知を送信する(プロセスP20)。情報処理装置3aの代行依頼部43は、情報処理装置3bから受理通知を受信すると、代行情報登録処理を行う(プロセスP21)。すなわち、代行依頼部43は、サーバー7aに関するサーバー情報と、情報処理装置3bに関する代行装置情報と、情報処理装置3a(自機)に関する被代行装置情報と、サーバー7aとの間に確立しているセッションIDとを相互に関連付けた代行情報を生成し、それを代行管理情報30に登録する。また代行依頼部43は、その代行情報を他の情報処理装置3b,3cに対してブロードキャスト送信する(プロセスP22)。これにより、情報処理装置3b,3cにおいても代行情報が代行管理情報30に登録される(プロセスP23,P24)。
図9は、情報処理装置3a,3b,3cにおける代行管理情報30の一例を示す図である。代行管理情報30は、サーバー情報30aと、代行装置情報30bと、被代行装置情報30cと、セッションID30dとが相互に関連付けられた情報となっている。そのため、情報処理装置3a,3b,3cは、このような代行管理情報30を参照することにより、ローカルネットワーク5内での代行関係を把握することができる。
情報処理装置3aは、代行依頼部43による上述した処理が終了すると、スリープモードへ移行する(プロセスP25)。この場合、情報処理装置3aは、サーバー7aとの定期通信の代行を情報処理装置3bへ依頼済みであるため、サーバー7aとの定期通信のために一定の時間間隔Taで通常モードへ復帰する必要はなく、スリープモードを長時間に亘って継続させることができるようになる。
一方、情報処理装置3bは、代行装置として動作し始めると、監視装置決定部45による監視装置決定処理を行い、他の情報処理装置3a,3cのうちから1つの監視装置を決定する(プロセスP26)。すなわち、監視装置決定部45は、他の情報処理装置3a,3cのうち、例えば通常モードで稼働している装置を監視装置として決定する。尚、ここでは、情報処理装置3cが監視装置として決定される場合を例示する。そして情報処理装置3bの監視装置決定部45は、監視装置として決定した情報処理装置3cに対し、監視依頼を送信する(プロセスP27)。
情報処理装置3cは、情報処理装置3bから、監視依頼を受信すると、情報処理装置3bに対して受理通知を送信する(プロセスP28)。情報処理装置3bの監視装置決定部45は、情報処理装置3cから受理通知を受信すると、自機がサーバー7aと定期通信を行う際の定期通信情報31を情報処理装置3cへ送信する(プロセスP29)。
図10は、このとき送信される定期通信情報31の一例を示す図である。定期通信情報31には、代行装置として動作する情報処理装置3bがサーバー7aとの間で行った前回定期通信時刻31a、サーバー7aと定期通信を行う定期通信間隔31b及び付属情報31cが含まれる。尚、前回の定期通信時刻31aの代わりに次回の定期通信時刻が含まれていても良い。付属情報31cは、図9に示した代行管理情報30と同様の情報であり、情報処理装置3bが定期通信を行うサーバー7aに関する情報や、情報処理装置3bが定期通信を行う際のセッションIDなどを含む情報である。すなわち、付属情報31cは、代行装置として動作する情報処理装置3bがサーバー7aと定期通信を行うことができなくなった場合に、情報処理装置3bに代わってその定期通信を行うための情報と、サーバー7aとのセッションが切断された場合にそのセッションを復元するための情報とが含まれる。
情報処理装置3cは、情報処理装置3bから定期通信情報31を受信すると、その定期通信情報31を記憶装置24に格納して保存すると共に、情報処理装置3bに対して受理通知を送信する(プロセスP30)。この後、情報処理装置3cは、監視部46を機能させ、情報処理装置3bの動作状態を監視する。
情報処理装置3bは、情報処理装置3cから受理通知を受信すると、監視装置決定部45による処理を終了させる。その後、情報処理装置3bは、情報処理装置3aの定期通信を代行して行うようになる。そのため、情報処理装置3bは、サーバー7aと定期通信を行うタイミングになると、サーバー7aとの定期通信を行う(プロセスP31)。このとき、情報処理装置3bにおいて定期通信部42と通信代行部44の双方が機能し、定期通信部42による定期通信と、通信代行部44による代行分の定期通信とがほぼ同時に行われる。すなわち、定期通信部42は、情報処理装置3bのセッションIDを付したアライブ信号をサーバー7aへ送信すると共に、通信代行部44は、情報処理装置3aのセッションIDを付したアライブ信号をサーバー7aへ送信する。そしてサーバー7aは、それら2種類の定期通信を情報処理装置3bから受信することにより、情報処理装置3a及び3bの双方のセッションIDの有効期間を延長し、情報処理装置3bに対して2種類の定期通信応答を返信する(プロセスP32)。そして情報処理装置3bの通信代行部44は、サーバー7aから定期通信応答を受信すると、依頼元の情報処理装置3a及び監視装置である情報処理装置3cに対して代行通知を送信する(プロセスP33)。ただし、情報処理装置3aの通信インタフェース22は、情報処理装置3aがスリープモードであるため、情報処理装置3bから送信される代行通知を破棄する。そのため、情報処理装置3aのスリープモードは継続される。これに対し、監視装置である情報処理装置3cは、情報処理装置3bから代行通知を正常に受け取るか否かを監視しており、情報処理装置3bから代行通知を受け取ることによって情報処理装置3bによる定期通信の代行が適切に行われたことを把握する(プロセスP34)。
次に代行装置である情報処理装置3bと監視装置である情報処理装置3cがスリープモードへ移行する場合について説明する。図11は、情報処理装置3b,3cがスリープモードへ移行する場合の動作シーケンスを示す図である。まず代行装置である情報処理装置3bにおいてスリープモードへの移行条件が成立すると、同一のサーバー7aとセッションを確立している他の情報処理装置3a,3cの中に、通常モードで稼働しており、且つ、監視装置でない装置が存在しないため、情報処理装置3bは、他の情報処理装置3a,3cに対する代行依頼を行うことなく、スリープモードへ移行する(プロセスP40)。このとき、情報処理装置3bは、電力制御部23に対して次の定期通信を行うタイミングを復帰タイミングとして指示する。
また監視装置である情報処理装置3cにおいてスリープモードへの移行条件が成立すると、情報処理装置3cは、そのままスリープモードへ移行する(プロセスP41)。このとき、情報処理装置3cは、電力制御部23に対し、情報処理装置3bがサーバー7aとの定期通信を行うタイミングに同期した監視タイミングを復帰タイミングとして指示する。ただし、情報処理装置3cは、情報処理装置3bの動作の監視漏れを未然に防止するため、情報処理装置3bが定期通信のために復帰するタイミングよりも若干早いタイミングで復帰できるような復帰タイミングを指示することが好ましい。尚、監視装置である情報処理装置3cは、スリープモードへ移行するとき、自機がサーバー7aと行うべき定期通信を、代行装置である情報処理装置3bへ依頼するようにしても良い。
その後、情報処理装置3cは、復帰タイミングになるとスリープモードから通常モードへ復帰し、情報処理装置3bによる定期通信を監視する(プロセスP42)。また情報処理装置3bも、サーバー7aとの定期通信を行う復帰タイミングになるとスリープモードから通常モードへ復帰し(プロセスP43)、サーバー7aとの定期通信を行う(プロセスP44)。このときもまた、情報処理装置3bにおいて定期通信部42と通信代行部44の双方が機能し、定期通信部42による定期通信と、通信代行部44による代行分の定期通信とがほぼ同時に行われる。そしてサーバー7aは、情報処理装置3bから2種類の定期通信を受信することにより、情報処理装置3a及び3bの双方のセッションIDの有効期間を延長し、情報処理装置3bに対して2種類の定期通信応答を返信する(プロセスP45)。そして情報処理装置3bは、サーバー7aから定期通信応答を受信すると、依頼元の情報処理装置3a及び監視装置である情報処理装置3cに対して代行通知を送信する(プロセスP46)。情報処理装置3cは、この代行通知を受け取ることによって情報処理装置3bによる定期通信の代行が適切に行われたことを把握する(プロセスP47)。その後、情報処理装置3b,3cは、再びスリープモードへ移行する(プロセスP48,P49)。このとき、情報処理装置3b,3cは、次回の復帰タイミングを電力制御部23に指示する。
このように監視装置は、スリープモードへ移行する場合、代行装置による定期通信が行われるタイミングで通常モードへ復帰し、代行装置がサーバー7との定期通信を正常に行っているか否かを監視する。言い換えると、代行装置によるサーバー7との定期通信が行われないときには、監視装置は、スリープモードを継続することで省電力効果を高めることができる。また代行装置についても、サーバー7との定期通信を行わないときにはスリープモードを維持することにより、省電力効果を高めることができる。
次に情報処理装置3において行われる具体的な処理手順について説明する。図12乃至図16は、情報処理装置3において行われる処理手順の一例を示すフローチャートである。尚、この処理は、メイン制御部20のCPUによってアプリケーションプログラム29が実行されることにより順次行われる処理手順の一例を示している。
図12に示すように情報処理装置3は、この処理を開始すると、アプリケーション32に予め設定されたアドレスにアクセスすることにより、サーバー7との通信を開始し(ステップS10)、サーバー7とのセッションを確立する(ステップS11)。その後、情報処理装置3は、スリープモードへの移行条件が成立するまで、定常処理を繰り返し実行する(ステップS12)。また情報処理装置3は、スリープモードから通常モードへ復帰したときにも、この定常処理(ステップS12)から処理を再開する。
図13は、その定常処理(ステップS12)の詳細な処理手順の一例を示すフローチャートである。情報処理装置3は、定常処理を開始すると、サーバー7との定期通信タイミングとなったか否かを判断する(ステップS30)。その結果、サーバー7との定期通信タイミングである場合(ステップS30でYES)、情報処理装置3は、サーバー7との定期通信を行い(ステップS31)、サーバー7との間に確立しているセッションを有効に維持する。そして情報処理装置3は、代行管理情報30を参照することにより、他の装置が行うべき定期通信を自機が代行しているか否かを判断し(ステップS32)、代行している場合(ステップS32でYES)、サーバー7との間で代行分の定期通信を行う(ステップS33)。これにより、他の装置がサーバー7と確立しているセッションも有効に維持することができる。尚、自機が他の装置の定期通信を代行していない場合には(ステップS32でNO)、ステップS33の処理はスキップする。またサーバー7と定期通信を行うタイミングでない場合(ステップS30でNO)、ステップS31〜S33の処理はスキップする。尚、サーバー7との定期通信タイミングとなった場合であっても、自機が行うべきサーバー7との定期通信を既に他の装置に代行依頼している場合には、ステップS31〜S33の処理を行わなくても良い。
次に情報処理装置3は、他の装置から代行依頼を受信したか否かを判断する(ステップS34)。他の装置から代行依頼を受信した場合(ステップS34でYES)、情報処理装置3は、その代行依頼の送信元に対して受理通知を送信し(ステップS35)、その後、他の装置から受信する代行情報を代行管理情報30に登録する(ステップS36)。これにより、他の装置が行うべき定期通信に関する情報を代行管理情報30に登録することができるので、これ以降、他の装置に代わって定期通信を行うことができるようになる。つまり、情報処理装置3は、これ以降、代行装置として動作するようになる。これに伴い、代行依頼の送信元である他の装置は、定期通信のための復帰タイミングを設定することなく、スリープモードへ移行することができる。尚、代行依頼の送信元である他の装置がそれ以前に代行装置として動作していた場合、情報処理装置3は、これ以降、複数の情報処理装置3の定期通信を代行するようになる。続いて情報処理装置3は、監視装置決定処理を実行する(ステップS37)。
図14は、この監視装置決定処理(ステップS37)の詳細な処理手順の一例を示すフローチャートである。情報処理装置3は、この処理を開始すると、ローカルネットワーク5に接続されている複数の情報処理装置3の中に、通常モードで稼働中の他の装置が存在するか否かを判断する(ステップS50)。通常モードで稼働中の他の装置が少なくとも1つ存在する場合(ステップS50でYES)、情報処理装置3は、通常モードで稼働中である少なくとも1つの装置の中に、複数のサーバー7とセッションを確立している装置が少なくとも1つ存在するか否かを判断する(ステップS51)。そして複数のサーバー7とセッションを確立している装置が存在する場合(ステップS51でYES)、情報処理装置3は、複数のサーバー7とセッションを確立している少なくとも1つの装置の中に、それ以前から監視装置として動作している装置が存在するか否かを更に判断する(ステップS52)。その結果、それ以前から監視装置として動作している装置が存在する場合(ステップS52でYES)、情報処理装置3は、それ以前から監視装置として動作している装置を引き続き監視装置として決定する(ステップS53)。また、それ以前から監視装置として動作している装置が存在しない場合(ステップS52でNO)、情報処理装置3は、複数のサーバー7とセッションを確立している1つの装置を選択し、その選択した装置を監視装置として決定する(ステップS54)。このように本実施形態では、複数のサーバー7とセッションを確立している装置があれば、その装置が優先的に監視装置として決定されるようになっている。
一方、複数のサーバー7とセッションを確立している装置が存在しない場合(ステップS51でNO)、情報処理装置3は、通常モードで稼働している1つの装置を選択し、その選択した他の装置を監視装置に決定する(ステップS55)。さらに、通常モードで稼働している他の装置が存在しない場合(ステップS50でNO)、情報処理装置3は、代行依頼の送信元である他の装置を監視装置に決定する(ステップS56)。つまり、ステップS56では、複数の情報処理装置3のうち、代行装置を除いて最後にスリープモードへ移行する装置が監視装置として決定されることになる。以上のようにして、情報処理装置3は、自機を除く複数の情報処理装置3のうちから1つの監視装置を決定する。
図13のフローチャートに戻り、情報処理装置3は、ステップS37において監視装置として決定した他の情報処理装置3に対し、監視依頼を送信し(ステップS38)、更に定期通信情報31を送信する(ステップS39)。これにより、他の情報処理装置3を監視装置として動作させ、自機の動作状態を監視させることができる。尚、ステップS34において他の装置から代行依頼を受信していない場合(ステップS34でNO)、ステップS35〜S39の処理はスキップする。
次に情報処理装置3は、他の装置(代行装置)から監視依頼を受信したか否かを判断する(ステップS40)。他の装置から監視依頼を受信した場合(ステップS40でYES)、情報処理装置3は、その監視依頼の送信元に対して受理通知を送信し(ステップS41)、その後、他の装置から受信する定期通信情報31を記憶装置24に保存して登録する(ステップS42)。これにより、他の装置が代行して行う定期通信に関する情報を定期通信情報31に登録することができるので、これ以降、他の装置がサーバー7と定期通信を監視することができるようになる。つまり、情報処理装置3は、これ以降、監視装置として動作するようになる。尚、他の装置から監視依頼を受信していない場合(ステップS40でNO)、ステップS41,S42の処理はスキップする。
次に情報処理装置3は、自機が監視装置として動作中であるか否かを判断する(ステップS43)。自機が監視装置である場合(ステップS43でYES)、情報処理装置3は、代行装置が定期通信を行うタイミングであるか否かを判断する(ステップS44)。そして代行装置が定期通信を行うタイミングである場合(ステップS44でYES)、情報処理装置3は、代行装置による定期通信を監視する動作を開始する。すなわち、情報処理装置3は、代行装置による定期通信が行われた後に代行装置から送信される代行通知を受信したか否かを判断し(ステップS45)、代行通知を受信していなければ(ステップS45でNO)、所定時間が経過したか否かを更に判断する(ステップS46)。そして所定時間が経過するまでの間に代行通知を受信した場合(ステップS45でYES)、情報処理装置3は、代行装置による定期通信が正常に行われたと判定し、監視動作を一時的に終了させる。これに対し、所定時間が経過するまでに代行通知を受信しなかった場合(ステップS46でYES)、情報処理装置3は、代行装置による定期通信が正常に行われていないと判定する。これにより、代行装置がサーバー7との定期通信を行うことができない状態であることを検知することができる。そして情報処理装置3は、代行復帰処理を開始する(ステップS47)。
図15は、その代行復帰処理(ステップS47)の詳細な処理手順の一例を示すフローチャートである。情報処理装置3は、この処理を開始すると、まず自機が代行装置となって代行復帰を行うか否かを判断する(ステップS61)。例えば、それ以前の代行装置が定期通信を行うサーバー7に対して情報処理装置3がアクセスできない場合、自機が代行装置となって代行復帰を行うことができない。これに対し、それ以前の代行装置が定期通信を行うサーバー7に対して情報処理装置3がアクセスできる場合、自機が代行装置となって代行復帰を行うことができる。そのため、情報処理装置3は、代行装置と同じサーバー7にアクセスできるか否かを判断することにより、自機が代行装置となって代行復帰を行うか否かを判断する。
情報処理装置3は、自機が代行装置となって代行復帰を行う場合(ステップS60でYES)、まず自機を代行装置に決定する(ステップS61)。そして情報処理装置3は、記憶装置24から定期通信情報31を読み出し(ステップS62)、その定期通信情報31に含まれる付属情報31cに基づいてサーバー7との定期通信を実行する(ステップS63)。情報処理装置3は、サーバー7との定期通信を実行した後、サーバー7から定期通信応答を受信したか否かを判断する(ステップS64)。サーバー7から定期通信応答を受信した場合、それによって各情報処理装置3のセッションが良好に維持されていることを把握することができる。これに対し、サーバー7から定期通信応答を受信しなかった場合、各情報処理装置3のセッションが既に切断されてしまっていることを把握することができる。そのため、サーバー7から定期通信応答を受信しなかった場合(ステップS64でNO)、情報処理装置3は、定期通信情報31に含まれる付属情報31cに基づいてセッション回復処理を行う(ステップS65)。すなわち、情報処理装置3は、既に切断されているセッションのセッションIDを付加したセッション復元要求をサーバー7へ送信することにより、そのセッションを復元させるのである。
続いて情報処理装置3は、監視装置決定処理を行う(ステップS66)。この監視装置決定処理の詳細は、図14を参照して説明した処理と同様である。この監視装置決定処理によって自機を監視する1つの監視装置を決定すると、情報処理装置3は、その監視装置に監視依頼を送信し(ステップS67)、更に定期通信情報31を送信する(ステップS68)。これにより、自機がサーバー7との定期通信を行う動作が監視装置によって監視されるようになる。
また情報処理装置3は、自機が代行装置となって代行復帰を行わない場合(ステップS60でNO)、代行装置決定処理を実行する(ステップS69)。図16は、この代行装置決定処理(ステップS69)の詳細な処理手順の一例を示すフローチャートである。情報処理装置3は、この処理を開始すると、それ以前の代行装置がアクセスしていたサーバー7と同じサーバー7へアクセスすることができる各装置がスリープモードへ移行するまでの残時間を確認する処理を行う。すなわち、情報処理装置3は、それ以前の代行装置がアクセスしていたサーバー7と同じサーバー7へアクセスすることができる他の装置に対して残時間要求を送信する。そして情報処理装置3は、他の装置から残時間回答を受信したか否かを判断し(ステップS81)、残時間回答を受信した場合には(ステップS81でYES)、残時間の最も長い装置を代行装置に決定する(ステップS82)。
これに対し、他の装置から残時間回答を所定時間以内に受信しなかった場合、他の装置はスリープモードであることが分かる。そのため、情報処理装置3は、他の装置から残時間回答を所定時間以内に受信しなかった場合には(ステップS81でNO)、例えば代行管理情報30を参照することにより、それ以前の代行装置と同一のサーバー7に接続している他の装置の中に、別のサーバー7にも接続している装置が存在するか否かを判断する(ステップS83)。その結果、別のサーバー7にも接続している装置が存在する場合(ステップS83でYES)、情報処理装置3は、別のサーバー7にも接続している装置を代行装置に決定する(ステップS84)。これに対し、別のサーバー7にも接続している装置が存在しない場合(ステップS83でNO)、情報処理装置3は、スリープモード中である他の装置を代行装置に決定する(ステップS85)。以上のようにして1つの代行装置が決定される。
図15のフローチャートに戻り、情報処理装置3は、決定した代行装置に対して代行依頼を送信する(ステップS70)。そして代行装置から受理通知を受信することに伴い、情報処理装置3は、代行情報を生成し(ステップS71)、その代行情報を他の装置へブロードキャスト送信する(ステップS72)。これにより、代行装置は、代行管理情報30に代行情報を登録することができる。以上で、代行復帰処理が終了する。
図13のフローチャートに戻り、情報処理装置3は、自機が監視装置ではない場合(ステップS43でNO)、上述したステップS44〜S47の処理を行わない。そして定常処理を終了させる。
定常処理(ステップS12)において上記のような処理が行われることにより、情報処理装置3は、通常モードにおいて、サーバー7と一定の時間間隔で定期通信を行うことができると共に、他の装置から定期通信の代行依頼を受理したり、他の装置が代行している定期通信を自機が行うように変更したりすることができる。定常処理(ステップS12)では、代行装置がサーバー7と定期通信を行う動作を監視することもできる。また上述した処理の他にも、定常処理(ステップS12)においては、例えば他の装置からブロードキャスト送信される代行情報を受信すると、その代行情報を代行管理情報30へ登録する処理なども行われる。
図12のフローチャートに戻り、上述の定常処理(ステップS12)を繰り返し行っている状態でスリープモードへの移行条件が成立すると(ステップS13でYES)、情報処理装置3は、同一サーバー7に接続中の他の装置を確認する処理を行う(ステップS14)。例えば情報処理装置3は、サーバー7に対し、同じローカルネットワーク5内にセッションを確立している他の装置が存在するか否かを問い合わせることにより、同一サーバー7に接続中の他の装置を確認する。その結果、他の装置が存在する場合(ステップS15でYES)、情報処理装置3は、代行装置決定処理を実行する(ステップS16)。
図17は、このときの代行装置決定処理(ステップS16)の詳細な処理手順の一例を示すフローチャートである。尚、図17におけるステップS90〜S94の処理は、図16に示したステップS80〜S84の処理と同様である。ただし、ステップS90〜S94では、自機と同一のサーバー7に接続している他の装置の中から、代行装置を決定する処理が行われる。そしてステップS93では、自機と同一のサーバー7に接続しているだけでなく、他のサーバー7にも接続している装置が存在するか否かが判断される。その結果、そのような装置が存在しなかった場合(ステップS93でNO)、情報処理装置3は、他の装置に対して定期通信の代行を依頼せず、自機でサーバー7との定期通信を行うことを決定する(ステップS95)。以上で、ステップS16の代行装置決定処理が終了する。
図12に戻り、情報処理装置3は、上述した代行装置決定処理(ステップS16)によって他の装置へ定期通信の代行を依頼することが決定されたか否かを判断し(ステップS17)、他の装置へ依頼する場合(ステップS17でYES)、代行装置として決定された他の装置に対し、代行依頼を送信する(ステップS18)。そして他の装置から受理通知を受信することに伴い、情報処理装置3は、代行情報を生成し(ステップS19)、その代行情報を他の装置へブロードキャスト送信する(ステップS20)。
続いて情報処理装置3は、他の装置から監視依頼を受信したか否かを判断する(ステップS21)。すなわち、情報処理装置3は、代行装置に対して代行依頼を送信することに伴い、その代行装置から監視依頼を受信することがある。そのため、情報処理装置3は、代行依頼を送信した後に監視依頼を受信したか否かを判断するのである。情報処理装置3は、監視依頼を受信した場合(ステップS21でYES)、監視依頼の送信元に対して受理通知を送信し(ステップS22)、その後、監視依頼の送信元から受信する定期通信情報31を記憶装置24に保存して登録する(ステップS23)。これにより、情報処理装置3は、監視装置として動作するようになる。その後、情報処理装置3は、定期通信情報31に基づいて代行装置が定期通信を行うタイミングに応じた復帰タイミングを設定し(ステップS24)、スリープモードへ移行する(ステップS26)。一方、監視依頼を受信しなかった場合(ステップS21でNO)、ステップS22〜S24を行うことなく、スリープモードへ移行する(ステップS26)。
また情報処理装置3は、ステップS15,S17のそれぞれでNOと判断した場合、次にサーバー7との定期通信を行うタイミングに応じた復帰タイミングを設定し(ステップS25)、スリープモードへ移行する(ステップS26)。
情報処理装置3は、上記のような処理を行うことにより、スリープモードへ移行するときにサーバー7との定期通信を他の装置に代行させることができ、スリープモードへ移行した後にサーバー7との定期通信を行うために頻繁に通常モードへ復帰する必要がなく、高い省電力効果を得ることができる。また情報処理装置3は、自機が代行装置として動作している場合でも、スリープモードへ移行するときに代行分を含むサーバー7との定期通信を他の装置に代行させることができる。
また情報処理装置は、上記のような処理を行うことにより、代行装置から監視依頼を受けた場合には、その後、代行装置がサーバー7との定期通信を正常に行っているか否かを監視することができるようになる。そして代行装置によるサーバー7との定期通信が正常に行われていないことを検知すると、情報処理装置3は、新たな代行装置を決定し、その新たな代行装置にサーバー7との定期通信を代行させることにより、各情報処理装置3が確立しているセッションが有効に維持されるようになる。
次に図18は、一の情報処理装置3aが通常モードへ復帰することに伴って代行装置が監視装置を再設定する場合の動作シーケンスを示す図である。図18では、はじめに情報処理装置3bが代行装置として動作しており、情報処理装置3cが監視装置として動作している場合を例示している。まず情報処理装置3aが情報処理装置3bに定期通信の代行を依頼している状態でスリープモードにあるとする。この状態で情報処理装置3aにジョブが投入されると、情報処理装置3aは、スリープモードから通常モードへ復帰し、ジョブを実行する(プロセスP50)。
その後、情報処理装置3cが代行装置である情報処理装置3bの監視のためにスリープモードから通常モードへ復帰し(プロセスP51)、更に情報処理装置3bがサーバー7との定期通信のためにスリープモードから通常モードへ復帰する(プロセスP52)。そして情報処理装置3bは、サーバー7aとの定期通信を行う(プロセスP53)。サーバー7aは、情報処理装置3bからの定期通信を受信することにより、定期通信応答を返信する(プロセスP54)。情報処理装置3bは、サーバー7aからの定期通信応答を受信すると、情報処理装置3a及び監視装置である情報処理装置3cに対して代行通知を送信する(プロセスP55)。監視装置である情報処理装置3cは、情報処理装置3bから代行通知を正常に受け取るか否かを監視しており、情報処理装置3bから代行通知を受け取ることによって情報処理装置3bによる定期通信の代行が適切に行われたことを把握する(プロセスP56)。
一方、情報処理装置3aは、ジョブの投入によって通常モードへ復帰しており、情報処理装置3bからの代行通知を通常モードで受信する。この場合、情報処理装置3aは、情報処理装置3bに対して通常モードに復帰していることを示す復帰通知を送信する(プロセスP57)。情報処理装置3bは、情報処理装置3aからの復帰通知を受信すると、監視装置決定処理を実行する(プロセスP58)。このとき、情報処理装置3bは、図14に示した処理を行うことにより、情報処理装置3a,3cのうちから1つの監視装置を決定する。その結果、情報処理装置3aを監視装置として決定した場合、情報処理装置3bは、情報処理装置3aに対して監視依頼を送信する(プロセスP59)。情報処理装置3aは、情報処理装置3bから監視依頼を受信すると、情報処理装置3bに対して受理通知を送信する(プロセスP60)。そして情報処理装置3bは、情報処理装置3aに対して定期通信情報31を送信する(プロセスP61)。
情報処理装置3aは、情報処理装置3bから定期通信情報31を受信すると、その定期通信情報31を記憶装置24に格納して保存すると共に、情報処理装置3bに対して受理通知を送信する(プロセスP62)。この後、情報処理装置3aは、監視部46を機能させ、情報処理装置3bの動作状態を監視する。これに伴い、情報処理装置3bは、情報処理装置3cに対して監視装置としての動作を解除するための解除通知を送信する(プロセスP63)。情報処理装置3cは、その解除通知を受信することに伴い、監視部46の機能を停止させ、代行装置を監視する動作を終了させる。その後、情報処理装置3cは、速やかにスリープモードへ移行し、そのスリープモードを継続させるようになる。
また情報処理装置3bは、次の定期通信のタイミングになると、サーバー7aとの定期通信を行う(プロセスP65)。サーバー7aは、情報処理装置3bからの定期通信を受信すると、定期通信応答を返信する(プロセスP66)。情報処理装置3bは、サーバー7aからの定期通信応答を受信すると、情報処理装置3a,3cに対して代行通知を送信する(プロセスP67)。監視装置である情報処理装置3aは、情報処理装置3bから代行通知を正常に受け取るか否かを監視しており、情報処理装置3bから代行通知を受け取ることによって情報処理装置3bによる定期通信の代行が適切に行われたことを把握する(プロセスP68)。
このように代行装置は、複数の情報処理装置3のうちの一の情報処理装置3がスリープモードから通常モードへ復帰すると、自機の動作を監視する監視装置を再設定する。そのため、代行装置は、スリープモードであった情報処理装置3が通常モードへ復帰することに伴い、その情報処理装置3を監視装置に再設定することが可能であり、それ以前の監視装置を速やかにスリープモードへ移行させることができる。それ故、より一層高い省電力効果が得られるようになる。
また監視装置がスリープモードから通常モードへ復帰して代行装置による定期通信を監視するときの復帰間隔は、代行装置がサーバー7と定期通信を行う定期通信間隔と同じであっても良いし、定期通信間隔の倍数であっても良い。図19は、監視装置がスリープモードから通常モードへ復帰して代行装置を監視するタイミングチャートであり、(a)は監視装置の復帰間隔を定期通信間隔と同じ間隔に設定した場合のタイミングチャートであり、(b)は復帰間隔を定期通信間隔のN倍(ただし、Nは整数)に設定した場合のタイミングチャートである。
図19(a)に示すように監視装置が通常モードへ復帰する復帰間隔を定期通知間隔Tと同じ間隔に設定した場合、監視装置は、代行装置がスリープモードから通常モードへ復帰する度に毎回スリープモードから通常モードへ復帰する。そのため、監視装置は、代行装置による定期通信が正常に行われているか否かを毎回監視することができるので、代行装置による定期通信が正常に行われなくなると、速やかに代行復帰処理(図13のステップS47)を行うことができる。ただし、この場合、監視装置は、代行装置と同様に頻繁に通常モードへ復帰するため、省電力効果があまり得られない。
これに対し、図19(b)に示すように監視装置が通常モードへ復帰する復帰間隔を定期通知間隔TのN倍に設定した場合、監視装置は、代行装置がスリープモードから通常モードへN回復帰する度にスリープモードから通常モードへ復帰する。この場合、監視装置は、代行装置による定期通信が正常に行われているか否かをN回ごとに監視することになる。そのため、代行装置による定期通信が正常に行われなくなっても、それを直ぐに検知することは難しくなる。その一方、監視装置は、代行装置と比較すると、通常モードへの復帰回数が少なくなるため、高い省電力効果が得られるようになる。尚、図19(a)及び(b)のいずれを採用するかは、任意である。
また代行装置がスリープモードへ移行しているときにジョブが投入されると、スリープモードから通常モードへ復帰する。このとき、代行装置は、通常モードへ復帰した直後にサーバー7との定期通信を実行することがある。この場合、代行装置がサーバー7と定期通信を行うタイミングがそれ以前のタイミングとは同期しなくなる。また代行装置は、通常モードへ復帰してからジョブを実行した後、スリープモードへの移行条件成立によって再びスリープモードへ移行する。このとき、代行装置は、スリープモードへ移行する直前にサーバー7との定期通信を実行することがある。この場合にも、代行装置がサーバー7と定期通信を行うタイミングがそれ以前のタイミングとは同期しなくなる。
このように代行装置がサーバー7と定期通信を行うタイミングを変更した場合、代行装置は、監視装置にそのタイミングを通知することが好ましい。これにより、監視装置は、代行装置においてサーバー7と定期通信を行うタイミングが変更された場合であっても、その変更後のタイミングに同期させて監視動作を行うことが可能である。
以上のように本実施形態の情報処理システム1は、第1の情報処理装置3a、第2の情報処理装置3b及び第3の情報処理装置3cを含む複数の情報処理装置3と、それら複数の情報処理装置3のそれぞれとのセッションを確立して通信を行うサーバー7aとを備えている。第1の情報処理装置3aは、サーバー7aと通信可能な第1のセッションを確立している状態でスリープモードへ移行する所定条件成立に伴い、サーバー7aと通信可能な第2のセッションを確立している第2の情報処理装置3bへサーバーとの定期通信の代行を依頼する。第2の情報処理装置3bは、第1の情報処理装置3aからの依頼に基づき、第1の情報処理装置3aが行うべきサーバー7aとの定期通信を代行して行う。そして第3の情報処理装置3cは、第2の情報処理装置3bが第1の情報処理装置3aの定期通信の代行を行っているときに第2の情報処理装置3bの動作状態を監視し、第2の情報処理装置3bによるサーバー7aとの定期通信が正常に行われていないと判断した場合に、複数の情報処理装置3のうちの第2の情報処理装置3bとは異なる情報処理装置3にサーバー7aとの定期通信を代行させるように構成されている。
このような構成によれば、複数の情報処理装置3のそれぞれがサーバー7aとの定期通信を個別に行う必要がなくなるので、従来よりも高い省電力効果が得られるようになる。加えて、第1の情報処理装置3aの定期通信を代行している第2の情報処理装置2bに不測の事態が発生してサーバー7aとの定期通信が行われなくなった場合でも、第3の情報処理装置3cがそれを検知することができるので、サーバー7aとのセッションを維持又は早期回復することができるようになる。
以上、本発明に関する実施形態について説明したが、本発明は、上記実施形態において説明した内容のものに限られるものではなく、種々の変形例が適用可能である。
例えば上記実施形態では、情報処理装置3がMFPなどで構成され、サーバー7と連携してジョブを実行することができる装置である場合を例示した。しかし、本発明の情報処理装置は、MFPなどのような装置に限られるものではなく、例えばローカルネットワークに設けられるゲートウェイなどで構成され、MFPなどのような装置とサーバー7との通信を中継する装置であっても構わない。特に上記実施形態で説明した監視装置は、MFPなどで構成されるものに限られず、代行装置とは異なるタイプの装置で構成されるものであっても良い。例えば監視装置は、パーソナルコンピュータなどで構成されるものであっても構わない。
また上記実施形態では、情報処理装置3が代行装置を決定するとき、まず他の装置がスリープモードに移行するまでの残時間を確認し、他の装置から残時間回答を得られなかった場合に他の装置が別のサーバー7ともセッションを確立しているか否かを確認する処理を行う場合を例示した。しかし、これに限られるものではなく、別のサーバー7ともセッションを確立している他の装置を、残時間よりも優先的に代行装置として決定するようにしても良い。この場合、例えば情報処理装置3aが代行装置を決定するときには、同じサーバー7aとセッションを確立している他の情報処理装置3b,3cに対し、サーバー7aとは異なる別のサーバーともセッションを確立しているか否かを問い合わせ、他の情報処理装置3b,3cからの回答に基づいて別のサーバー7bともセッションを確立している情報処理装置3cを代行装置として決定するようにしても良い。これにより、定期通信を代行する権限を複数のサーバー7a,7bとセッションを確立している情報処理装置3cに集約させることができるため、ローカル環境2において定期通信のためにスリープモードから定期的に通常モードに復帰する情報処理装置3の数を最小限に抑えることができるようになる。