(57)【要約】      （修正有）【課題】スリープモードから一時的に復帰する際、ネットワークデバイスの負荷を軽減できるシステム、それを用いる方法、およびプログラムを提供する。【解決手段】第１のサーバは、ネットワークデバイスに対する変更指示を生成する第１の生成手段と、変更指示を第２のサーバに登録する第１の登録手段と、変更指示が優先指示である場合、優先指示メッセージを生成する第２の生成手段と、優先指示メッセージを第３のサーバに登録する第２の登録手段と、を有する。ネットワークデバイスは、所定モードからネットワークを介した通信が制限されない別のモードに移行した場合、第３のサーバに対する優先指示メッセージの要求を実行する要求手段と、要求により優先指示メッセージが取得できた場合に、第２のサーバから当該優先指示メッセージに対応する変更指示を取得する取得手段と、取得された変更指示に従う処理を実行する実行手段と、を有する。【選択図】図１０
2019144949.tif 000002
【特許請求の範囲】
【請求項１】
第１のサーバと、ネットワークを介した通信が制限される所定モードに移行する機能を備えるネットワークデバイスと、を含むシステムであって、
前記第１のサーバは、
前記ネットワークデバイスに対する変更指示を生成する第１の生成手段と、
前記変更指示を第２のサーバに登録する第１の登録手段と、
前記変更指示が優先指示である場合に、優先指示メッセージを生成する第２の生成手段と、
前記優先指示メッセージを第３のサーバに登録する第２の登録手段と、を有し、
前記ネットワークデバイスは、
前記所定モードから前記ネットワークを介した通信が制限されない別のモードに移行した場合に、前記第３のサーバに対する優先指示メッセージの要求を実行する要求手段と、
前記要求により優先指示メッセージが取得できた場合に、前記第２のサーバから当該優先指示メッセージに対応する変更指示を取得する取得手段と、
前記取得された変更指示に従う処理を実行する実行手段と、を有し、
前記要求により優先指示メッセージが取得できなかった場合には、前記第２のサーバからの変更指示の取得を試みることなく、前記所定モードへの移行が行われることを特徴とするシステム。
【請求項２】
前記ネットワークデバイスでは、前記優先指示メッセージに対応する変更指示に従う処理を実行された場合に、前記所定モードへの移行が行われることを特徴とする請求項１に記載のシステム。
【請求項３】
前記ネットワークデバイスは、
所定条件を満たすことなく前記所定モードから前記ネットワークを介した通信が制限されない別のモードに移行した場合には、前記第３のサーバに対する優先指示メッセージの要求を実行することなく、前記取得手段により前記第２のサーバから変更指示が取得されることを特徴とする請求項１または２に記載のシステム。
【請求項４】
前記ネットワークデバイスでは、前記第３のサーバに対する優先指示メッセージの要求を実行することなく、前記取得手段により前記第２のサーバから変更指示が取得され、当該変更指示に従う処理を実行された場合には、当該処理の完了に応じた前記所定モードへの移行は行われないことを特徴とする請求項３に記載のシステム。
【請求項５】
前記所定条件を満たすことなく前記所定モードから前記ネットワークを介した通信が制限されない別のモードに移行した場合とは、前記ネットワークデバイスへのユーザの入力操作に起因して別のモードに移行した場合であることを特徴とする請求項３または４に記載のシステム。
【請求項６】
前記第１のサーバの前記生成手段は、前記変更指示の対象となる前記ネットワークデバイスが所定モードで、かつ、前記変更指示が優先指示である場合に、優先指示メッセージを生成することを特徴とする請求項１乃至５のいずれか１項に記載のシステム。
【請求項７】
前記第２のサーバは、前記ネットワークデバイスの状態を仮想デバイスを用いて管理し、
前記ネットワークデバイスからの状態メッセージの受信に応じて、当該仮想デバイスを更新することを特徴とする請求項１乃至６のいずれか１項に記載のシステム。
【請求項８】
前記ネットワークデバイスは、
所定条件を満たすことなく前記所定モードから前記ネットワークを介した通信が制限されない別のモードに移行した場合には、所定のセッションを確立し、
前記取得手段は、当該セッションを用いて前記第２のサーバから変更指示が配信されることにより、該変更指示を取得することを特徴とする請求項１乃至７のいずれか１項に記載のシステム。
【請求項９】
前記ネットワークデバイスの前記取得手段は、前記要求により優先指示メッセージが取得できた場合には、前記セッションを確立することなく、前記第２のサーバに対して当該優先指示メッセージに対応する変更指示を要求することで、該変更指示を取得することを特徴とする請求項８に記載のシステム。
【請求項１０】
前記所定モードは、スリープモードであることを特徴とする請求項１乃至９のいずれか１項に記載のシステム。
【請求項１１】
第１のサーバと、ネットワークを介した通信が制限される所定モードに移行する機能を備えるネットワークデバイスとを含むシステムにおける方法であって、
前記第１のサーバは、
前記ネットワークデバイスに対する変更指示を生成する第１の生成工程と、
前記変更指示を第２のサーバに登録する第１の登録工程と、
前記変更指示が優先指示である場合に、優先指示メッセージを生成する第２の生成工程と、
前記優先指示メッセージを第３のサーバに登録する第２の登録工程と、を有し、
前記ネットワークデバイスは、
前記所定モードから前記ネットワークを介した通信が制限されない別のモードに移行した場合に、前記第３のサーバに対する優先指示メッセージの要求を実行する要求工程と、
前記要求により優先指示メッセージが取得できた場合に、前記第２のサーバから当該優先指示メッセージに対応する変更指示を取得する取得工程と、
前記取得された変更指示に従う処理を実行する実行工程と、を有し、
前記要求により優先指示メッセージが取得できなかった場合には、前記第２のサーバからの変更指示の取得を試みることなく、前記所定モードへの移行が行われることを特徴とする方法。
【請求項１２】
前記ネットワークデバイスでは、前記優先指示メッセージに対応する変更指示に従う処理を実行された場合に、前記所定モードへの移行が行われることを特徴とする請求項１１に記載の方法。
【請求項１３】
前記ネットワークデバイスでは、所定条件を満たすことなく前記所定モードから前記ネットワークを介した通信が制限されない別のモードに移行した場合には、前記第３のサーバに対する優先指示メッセージの要求を実行することなく、前記第２のサーバから変更指示が取得されることを特徴とする請求項１１または１２に記載の方法。
【請求項１４】
ネットワークを介した通信が制限される所定モードからネットワークを介した通信が制限されない別のモードに移行した場合に、第１のサーバで生成される優先指示メッセージの要求を実行する要求手段と、
前記要求により優先指示メッセージが取得できた場合に、当該優先指示メッセージに対応する前記第１のサーバで生成される変更指示を取得する取得手段と、
前記取得された変更指示に従う処理を実行する実行手段としてコンピュータを機能させるためのプログラムであって、
前記要求により優先指示メッセージが取得できなかった場合には、変更指示の取得を試みることなく、前記所定モードへの移行が行われることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スリープモードなどの所定のモードに移行し得るネットワークデバイスが、サーバからの指示を受け付けて実行する技術に関する。
【背景技術】
【０００２】
近年、インターネットに家電製品や自動車などをネットワークデバイス（以降、クライアントと称する）として接続する「Ｉｎｔｅｒｎｅｔ  ｏｆ  Ｔｈｉｎｇｓ」（以降、ＩｏＴと称する）を実現するシステムが利用されてきている。
【０００３】
また、ネットワークデバイスの１つである画像形成装置の多機能化が進み、Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｒｉｎｔｅｒ（以降、ＭＦＰと称する）と呼ばれる複合機もＩｏＴクライアントとして対応することが可能となった。ＩｏＴシステムは膨大な数のＩｏＴクライアントから情報を収集、分析することでＩｏＴクライアントおよびそれを利用するユーザに対して付加価値を提供する。例えば、複合機においては、ＩｏＴシステムとして複合機の状態を管理するサービスが、ユーザの利用状況をリアルタイムに監視する。その結果、トナーカートリッジや印刷用紙などの消耗品の交換タイミングを正確に予測したり、印刷品質の調整処理の実行指示をＩｏＴクライアントに配信することなどが可能となる。
【０００４】
例えば、Ａｍａｚｏｎ  Ｗｅｂ  Ｓｅｒｖｉｃｅ（以降、ＡＷＳと称する）が提供するサービスであるＡＷＳ  ＩｏＴにはＤｅｖｉｃｅ  ＳｈａｄｏｗというＩｏＴシステムとＩｏＴクライアントとの間で互いの情報をリアルタイムに共有する機能がある。これを利用することでサービスはクライアントが生成する各種情報をリアルタイムに監視し、その時々のクライアントの状態に最適な指示を配信することが可能となる。
【０００５】
ＩｏＴシステムにおいて、ＩｏＴクライアントはサービスに常時接続していることを前提としている。一方で、複合機は省電力も重要な機能の一つであり、日常的に一定時間インターネットに切断されることが想定される。例えば、複合機が一定時間未使用である場合や、夜間や営業時間外等のあらかじめ使用されないことが見込まれる時間帯に休眠状態にする機能が備わっている。以降、この機能をスリープモードと称する。これにより、複合機は消費電力の削減を実現可能としている。スリープモードに移行した複合機は、インターネットからは切断され、その間サービスから配信された指示を受信することができない。複合機のスリープモードに限らず、ＩｏＴクライアントは、それぞれ、インターネットから切断されるような所定モード（稼働状態）を有していることがある。
【０００６】
特許文献１においては、予めサービスから複合機に対して実行時刻込み指示が配信されていた場合には、スリープモードに移行する際にサービスからの指示の実行時刻にスリープモードから復帰するよう起動タイマーを設定する。これにより複合機のようにスリープに入ることでサービスから一時的に切断されるようなシステムにおいてもサービスからの指示を適切に実行することができる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１４−０２１６７８
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、特許文献１に記載の先行技術は、サービスからの指示をあらかじめクライアントが受信していることが前提である。ＩｏＴシステムにおいてはサービスとクライアントがインターネットを介して相互に、リアルタイムにデータのやり取りを行うことが特徴である。この先行技術によれば、複合機が起動中にサービスから受信した指示については、スリープモードに移行しても実行することができる。しかし、スリープモードに移行した後にサービスから配信された指示を受信することはできない。
【０００９】
また、ネットワークデバイスが所定のモード（スリープモード等）からインターネット接続可能な状態に復帰後、１以上のサービスから複数の指示を受け付けるには、ネットワークデバイスが複数回の問合せ処理や、自装置への反映処理を実行する必要がある。ユーザがネットワークデバイスを利用するために復帰させた場合に、復帰の都度、このような処理を全て実行すると、復帰直後にネットワークデバイスにおける利用不可能な時間や処理負荷が増加することが考えられる。一方で、所定のモードに移行させずに、常時、インターネット接続させると、ネットワークデバイスの省電力などの性能が損なわれる。
【００１０】
本発明は、ネットワークデバイスを所定のモードに移行させつつ、ユーザがネットワークデバイスを利用するために該モードから復帰させた場合にもサーバーからの指示に従うネットワークデバイスの負荷を軽減できる仕組みを提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の例に係るシステムは、第１のサーバと、ネットワークを介した通信が制限される所定モードに移行する機能を備えるネットワークデバイスと、を含む。前記第１のサーバは、前記ネットワークデバイスに対する変更指示を生成する第１の生成手段と、前記変更指示を第２のサーバに登録する第１の登録手段と、前記変更指示が優先指示である場合に、優先指示メッセージを生成する第２の生成手段と、前記優先指示メッセージを第３のサーバに登録する第２の登録手段と、を有する。前記ネットワークデバイスは、前記所定モードから前記ネットワークを介した通信が制限されない別のモードに移行した場合に、前記第３のサーバに対する優先指示メッセージの要求を実行する要求手段と、前記要求により優先指示メッセージが取得できた場合に、前記第２のサーバから当該優先指示メッセージに対応する変更指示を取得する取得手段と、前記取得された変更指示に従う処理を実行する実行手段と、を有する。前記要求により優先指示メッセージが取得できなかった場合には、前記第２のサーバからの変更指示の取得を試みることなく、前記所定モードへの移行が行われる。
【００１２】
本発明の例によれば、ネットワークデバイスを所定のモードに移行させつつ、ユーザがネットワークデバイスを利用するために該モードから復帰させた場合にもサーバーからの指示に従うネットワークデバイスの利用不可能な時間を軽減できる仕組みを提供できる。
【図面の簡単な説明】
【００１３】
【図１】システムの例を示す図。
【図２】ハードウェアおよびソフトウェアの例を示す図。
【図３】ソフトウェアモジュールの例を示す図。
【図４】ソフトウェアモジュールの例を示す図。
【図５】稼働状態データの例を示す図。
【図６】スリープモードに移行するときの動作例を示すフローチャート。
【図７】スリープモードに移行するときにサーバに送信するメッセージの例を示す図。
【図８】出版購読モデルに基づくメッセージの送受信シーケンスを示す図。
【図９】サーバが状態変更指示を送信する動作を示すフローチャート。
【図１０】クライアント装置が状態変更指示を確認する動作を示すフローチャート。
【図１１】クライアント装置が状態変更指示を反映する動作を示すフローチャート。
【発明を実施するための形態】
【００１４】
以下、本発明を実施するための形態について図面を用いて説明する。
【００１５】
（実施例１）
図１は、本実施例に係るシステムの全体構成を示すブロック図である。
ネットワーク１００は、ネットワークデバイスとしてのクライアント装置１０１、状態管理サーバ１０２、アプリケーションサーバ１０３、優先指示管理サーバ１０４を接続するネットワークである。ネットワーク１００は、各構成要素間の通信を行うための基盤であり、Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（以降、ＷＡＮと称する）あるいはＬｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（以降、ＬＡＮと称する）であってもかまわない。
【００１６】
クライアント装置１０１は、ネットワーク１００を介して状態管理サーバ１０２、アプリケーションサーバ１０３、優先指示管理サーバ１０４と相互に接続する。本実施例において、クライアント装置１０１は、Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ（以降、ＭＦＰと称する）を前提として説明する。クライアント装置１０１は、優先指示管理サーバ１０４や状態管理サーバ１０２と通信を行い、データ取得を行う機能を有し、当該機能が停止してしまうような稼働状態（所定モード）への移行が可能な機器であればよい。すなわち、クライアント装置１０１は、その具体例として、ネットワーク１００を介した通信機能を有し、装置の使用状況に応じて所定モードとしてのスリープモードに移行する、ＭＦＰ、プリンター、家電、健康管理機器などである。
【００１７】
ネットワーク１００に接続するクライアント装置１０１の数は、１台でもよいし、または複数台でもよい。例えば、図示するように、複数のクライアント装置１０１がネットワーク１００を介して状態管理サーバ１０２、アプリケーションサーバ１０３、優先指示管理サーバ１０４に接続されてもよい。また、状態管理サーバ１０２、アプリケーションサーバ１０３、および優先指示管理サーバ１０４の数も、図示する場合に限定されることはない。これらの数も、１台でもよいし、複数台でもよい。
【００１８】
状態管理サーバ１０２は、クライアント装置１０１の稼働状態を管理するＩｏＴ管理サーバである。状態管理サーバ１０２は、例えば、ＡＷＳ  ＩｏＴのＤｅｖｉｃｅ  Ｓｈａｄｏｗといった、クライアント装置の状態などを仮想デバイスとして管理し、ＩｏＴシステムとＩｏＴクライアントとの間で互いの情報をリアルタイムに共有する機能を利用する。クライアント装置１０１は、自装置の稼働状態に変化があった場合には状態管理サーバ１０２にその変更情報を送信する。状態管理サーバ１０２は、クライアント装置１０１から変更情報を受信すると、仮想デバイスに対応するテーブルの情報を更新し、その更新をアプリケーションサーバ１０３に配信する。アプリケーションサーバ１０３は、状態管理サーバ１０２を介してクライアント装置１０１の稼働状態の変更情報を受信することでクライアント装置１０１の稼働状態を逐次監視する。
【００１９】
アプリケーションサーバ１０３は、受信した変更情報に応じて、監視対象のクライアント装置１０１に稼働状態の変更指示を生成し、状態管理サーバ１０２に送信する。状態管理サーバ１０２は、アプリケーションサーバ１０３からクライアント装置１０１の稼働状態の変更指示を受信すると、クライアント装置１０１に送信する。なお、本発明において、状態管理サーバ１０２は、ＡＷＳが提供するサービスが提供するＡＷＳ  ＩｏＴを想定する。
【００２０】
アプリケーションサーバ１０３は、クライアント装置１０１と接続してクライアント装置１０１に対して付加価値となるサービスを提供するアプリケーションサーバである。アプリケーションサーバ１０３は、状態管理サーバ１０２を介して逐次クライアント装置１０１の稼働状態を監視することで、クライアント装置１０１の状態の変化に応じた指示を出すことが可能である。
【００２１】
優先指示管理サーバ１０４は、アプリケーションサーバ１０３が状態管理サーバ１０２に送信するクライアント装置１０１の稼働状態の変更指示が、クライアント装置１０１がスリープモードにあっても優先して実行すべき指示か否かを管理するサーバである。アプリケーションサーバ１０３は、状態管理サーバ１０２に送信する変更指示を、クライアント装置１０１がスリープモードにあっても実行すべきと判断した場合には、合わせて優先指示管理サーバ１０４に指示情報を登録する。
【００２２】
図２（Ａ）は、本実施例に係るクライアント装置１０１、状態管理サーバ１０２、アプリケーションサーバ１０３、優先指示管理サーバ１０４を構成する情報処理装置の一般的なハードウェア構成を示すブロック図である。なお、情報処理装置の各ハードウェア要素は、物理ハードウェアに加えて、仮想化技術によって、同様の特徴を有する仮想ハードウェアとして実現されていてもよいものとする。
【００２３】
ＣＰＵ２０１は、ＲＯＭ２０３内のプログラム用ＲＯＭに記憶された、あるいはハードディスク等の外部メモリ２１１からＲＡＭ２０２にロードされたオペレーティングシステム（以下、ＯＳと略す）やアプリケーション等のプログラムを実行する。また、ＣＰＵ２０１は、システムバス２０４に接続される各ブロックを制御する。後述する各シーケンスの処理は、このプログラムの実行により実現できる。
【００２４】
ＲＡＭ２０２は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。操作部Ｉ／Ｆ（インターフェース）２０５は、操作部２０９からの入力を制御する。ＣＲＴＣ２０６は、ＣＲＴディスプレイ２１０の表示を制御するＣＲＴコントローラである。ＤＫＣ２０７は、各種データを記憶するハードディスク等の外部メモリ２１１におけるデータアクセスを制御するディスクコントローラである。ＮＣ２０８は、ネットワーク１００を介して接続されたサーバコンピューターや他の機器との通信制御処理を実行するネットワークコントローラである。なお、後述の全ての説明においては、特に断りのない限り、ハードウェアを制御する若しくはソフトウェアを実行する主体は、ＣＰＵ２０１であり、ソフトウェア自体は、外部メモリ２１１にインストールされたアプリケーションプログラムである。
【００２５】
図２（Ｂ）は、クライアント装置１０１がＭＦＰの場合のハードウェア構成を示すブロック図である。ＣＰＵ２２１は、ＲＯＭ２２３内のプログラム用ＲＯＭに記憶された、あるいはハードディスク等の外部メモリ２２９からＲＡＭ２２２にロードされたオペレーティングシステム（以下、ＯＳと略す）やアプリケーション等のプログラムを実行する。また、ＣＰＵ２２１は、システムバス２２４に接続される各ブロックを制御する。後述する各シーケンスの処理は、このプログラムの実行により実現できる。
【００２６】
ＲＡＭ２２２は、ＣＰＵ２２１の主メモリ、ワークエリア等として機能する。操作部Ｉ／Ｆ２２５は、操作部２２５からの入力を制御する。ＣＲＴＣ２２６は、ＣＲＴディスプレイ２２７の表示を制御するＣＲＴコントローラである。ＤＫＣ２２８は、各種データを記憶するハードディスク等の外部メモリ２２９におけるデータアクセスを制御するディスクコントローラである。ＮＣ２３０は、ネットワーク１００を介して接続されたサーバコンピューターや他の機器との通信制御処理を実行するネットワークコントローラである。
【００２７】
原稿給送部２３１は、ＭＦＰが読み込む原稿を自動的にイメージリーダ２３２に給送する。イメージリーダ２３２は、給送された原稿を読み込み画像データに変換するスキャナである。画像形成部２３３は、イメージリーダ２３２が変換した画像データや、ＮＣ２３０を介して他の機器から受信した画像データや文書データを印刷画像に変換して印刷する。給紙部２３４は、ＭＦＰが印刷に使用する紙を給紙する。
【００２８】
図３は、本実施例に係るシステムを構成する各要素のソフトウェアモジュール構成を示すブロック図である。これらのソフトウェアモジュールは各構成要素の外部メモリ２１１に格納され、ＣＰＵ２０１によって実行される。
【００２９】
クライアント装置１０１は、本発明が前提とするＭＦＰのソフトウェアモジュールの構成要素を表す。クライアント装置１０１は、クライアント装置稼働管理モジュール３１０、状態管理サーバ連携モジュール３２０、クライアント装置管理モジュール３３０、プリント処理部３３５、およびスキャン処理部３３６を備える。以降、クライアント装置稼働管理モジュール３１０、状態管理サーバ連携モジュール３２０、およびクライアント装置管理モジュール３３０は、それぞれ単にモジュール３１０，３２０，３３０と称することとする。
【００３０】
それら複数のモードの中には、モジュール３２０による優先指示管理サーバ１０４や状態管理サーバ１０２と通信を行い、かつデータ取得を行う機能が停止される１つまたは複数のモードが含まれる。そのようなモードの具体例として、本発明は、スリープモードを挙げ、説明を行う。
【００３１】
モジュール３１０は、制御部３１１、タイマー管理部３１２、およびタイマー実行部３１３を備える。制御部３１１は、モジュール３１０の全体を制御し、ソフトウェアモジュールの各構成要素に対する指示と管理を行う。タイマー管理部３１２は、クライアント装置１０１のスリープモードへの移行およびスリープモードからの復帰を行うための条件となるタイマー情報を管理する。タイマー管理部３１２が管理するタイマー情報の一例は、表１のタイマー情報テーブルに示すようになる。
【００３２】
【表１】
2019144949.tif 000003
【００３３】
ＩＤカラムは、モジュール３１０において、クライアント装置１０１に設定されたタイマー情報を一意に識別するための識別子を格納するカラムである。
【００３４】
動作種別カラムは、モジュール３１０において、タイマー実行する際の動作種別を識別するための情報を格納するカラムである。例えば、カラムの値が「無使用」または「スケジュール移行」であった場合には、レコードが、クライアント装置１０１がスリープモードへ移行する際の情報であることを示す。また、カラムの値が「スケジュール復帰」であった場合には、レコードが、クライアント装置１０１がスリープモードから復帰する際の情報であることを示す。
【００３５】
条件カラムは、モジュール３１０において、動作種別カラムの値に対応するタイマー実行の条件値を格納するカラムである。
【００３６】
動作種別カラムの値が「無使用」のレコードの場合、条件カラムにはクライアント装置１０１が継続して無使用状態であったときにスリープモードに移行するまでの時間を指定する値が格納される。例えば、タイマー情報テーブルのＩＤカラムの値が「１」のレコードの場合には、クライアント装置１０１が４時間無使用状態を継続するとスリープモードに移行することを意味する。
【００３７】
動作種別カラムの値が「スケジュール移行」のレコードの場合、条件カラムにはクライアント装置１０１が定期的にスリープモードに移行する日時を指定する値が格納される。例えば、タイマー情報テーブルのＩＤカラムの値が「２」のレコードの場合には、クライアント装置１０１は毎日２１時にスリープモードに移行することを意味する。
【００３８】
動作種別カラムの値が「スケジュール復帰」のレコードの場合、条件カラムにはクライアント装置１０１が定期的にスリープモードから復帰する日時を指定する値が格納される。例えば、タイマー情報テーブルのＩＤカラムの値が「３」のレコードの場合には、クライアント装置１０１は、所定時刻に到達したとき、すなわち毎日８時にスリープモードから復帰することを意味する。
【００３９】
タイマー実行部３１３は、タイマー管理部３１２のタイマー情報テーブルに登録されたタイマー情報に従ってクライアント装置１０１をスリープモードに移行あるいはスリープモードからの復帰を行う。なお、モジュール３１０は、クライアント装置１０１がスリープモードに移行したあとも稼働し続けるモジュールである。
【００４０】
モジュール３２０は、通信部３２１、メッセージ生成部３２２、メッセージ解析部３２３、タイマー管理部３２４、および履歴管理部３２５を備える。
【００４１】
通信部３２１は、ＮＣ２０８を介してネットワーク１００で接続される状態管理サーバ１０２および優先指示管理サーバ１０４と通信を行う。
【００４２】
メッセージ生成部３２２は、クライアント装置管理モジュール３３０から取得したクライアント装置稼働状態情報からクライアント状態メッセージを生成する。生成されたクライアント状態メッセージは、通信部３２１を介して状態管理サーバ１０２に送信される。
【００４３】
メッセージ解析部３２３は、通信部３２１を介して状態管理サーバ１０２から受信した変更指示メッセージの解析を行い、対応するクライアント装置管理モジュール３３０に送信する。
【００４４】
タイマー管理部３２４は、クライアント装置１０１がスリープモードに移行した場合に、状態管理サーバ１０２に変更指示メッセージの更新確認を行う際の実行間隔を管理する。タイマー管理部３２４が管理するメッセージ確認間隔の一例は、表２のメッセージ確認間隔テーブルに示すようになる。
【００４５】
【表２】
2019144949.tif 000004
【００４６】
ＩＤカラムは、モジュール３２０において、クライアント装置１０１に設定されたメッセージ確認間隔を一意に識別するための識別子を格納するカラムである。確認間隔カラムは、モジュール３２０が状態管理サーバ１０２に変更指示メッセージの更新確認を行う際の実行間隔の値を格納するカラムである。履歴管理部３２５は、メッセージ解析部３２３によって解析された変更指示メッセージを対応するクライアント装置管理モジュール３３０が実行した場合の実行履歴を管理する。履歴管理部３２５が管理する変更指示メッセージ実行履歴の一例は、表３の実行履歴テーブルに示すようになる。
【００４７】
【表３】
2019144949.tif 000005
【００４８】
ＩＤカラムは、モジュール３２０において、クライアント装置１０１が実行した変更指示メッセージの実行履歴を一意に識別するための識別子を格納するカラムである。
【００４９】
アプリケーション名カラムは、モジュール３２０において、メッセージ解析部３２３が状態管理サーバ１０２から受信した変更指示メッセージの生成元であるアプリケーションサーバ名を格納するカラムである。
【００５０】
日時情報カラムは、メッセージ生成部３２２がクライアント状態メッセージを状態管理サーバ１０２に送信した日時情報を格納するカラムである。クライアント状態メッセージとは、メッセージ解析部３２３によって解析された変更指示メッセージのことであり、その送信は、対応するクライアント装置管理モジュール３３０がその状態変更指示を実行完了したときに行われる。
【００５１】
モジュール３３０は、制御部３３１、クライアント管理部３３２、メッセージ解析部３３３、およびメッセージ実行部３３４を備える。
【００５２】
制御部３３１は、モジュール３１０の全体を制御し、ソフトウェアモジュールの各構成要素に対する指示と管理を行う。クライアント管理部３３２は、クライアント装置１０１の各種状態値および設定値を管理する。メッセージ解析部３３３は、通信部３２１から受信した変更指示メッセージの詳細な解析を行い、メッセージ実行部３３４で実行する処理（状態変更指示）を確定する。
【００５３】
メッセージ実行部３３４は、メッセージ解析部３３３で解析した内容に従いクライアント装置１０１で該当するモジュールの設定変更や状態変更を行う。また、メッセージ実行部３３４は、処理が完了するとクライアント管理部３３２で管理する各種状態値および設定値を更新手段により更新する。
【００５４】
プリント処理部３３５は、画像形成部２３３において、イメージリーダ２３２が変換した画像データや、ＮＣ２３０を介して他の機器から受信した画像データや文書データを印刷画像への変換処理および印刷処理を実行する。また、プリント処理部３３５は、スキャン処理部３３６またはイメージリーダ２３２において、原稿給送部２３１を介して読み込んだ原稿を画像データに変換する処理を実行する。
【００５５】
状態管理サーバ１０２は、状態管理サーバモジュール３４０（以降、モジュール３４０と称する）を備える。モジュール３４０は、クライアント装置１０１の稼働状態を管理し、クライアント装置１０１の稼働状態に変更があれば、連携するアプリケーションサーバ１０３にその変更を通知する。また、モジュール３４０は、アプリケーションサーバ１０３からクライアント装置１０１に対する変更指示メッセージを受信し、クライアント装置１０１にそのメッセージを送信することでクライアント装置１０１に稼働状態の変更指示を通知する。モジュール３４０は、通信部３４１、クライアント管理部３４２、クライアントデータベース３４３、接続管理部３４４、接続管理データベース３４５、権限管理データベース３４６、およびメッセージ生成部３４７を備える。
【００５６】
通信部３４１は、ＮＣ２０８を介してネットワーク１００で接続されるクライアント装置１０１およびアプリケーションサーバ１０３と通信を行う。クライアント管理部３４２は、状態管理サーバ１０２に接続するクライアント装置１０１の稼働状態を、仮想デバイスとして、管理する。クライアント装置１０１の稼働状態は、クライアントデータベース３４３に格納される。クライアントデータベース３４３に格納され、クライアント管理部３４２で管理されるクライアント装置１０１の稼働状態の一例は、表４のクライアント装置稼働状態テーブルに示すようになる。
【００５７】
【表４】
2019144949.tif 000006
【００５８】
稼働状態ＩＤカラムは、モジュール３４０に接続するクライアント装置１０１を一意に識別するための識別子を管理するカラムである。稼働状態名カラムは、モジュール３４０に接続するクライアント装置１０１の名称を管理するカラムである。稼働状態カラムは、モジュール３４０に接続するクライアント装置１０１の稼働状態を管理するカラムである。稼働状態カラムで管理されるクライアント装置１０１の稼働状態データの一例は、図５に示すようになる。
【００５９】
図５は、本発明において、状態管理サーバ１０２が管理するクライアント装置１０１の稼働状態データの一例を示した図である。
【００６０】
稼働状態データ４００は、クライアント装置１０１の稼働状態を管理するデータであり、状態管理サーバ１０２はクライアント装置１０１と対応付けて管理する。稼働状態データ４００は、状態情報部４０１、指示部４０２、状態部４０３、バージョン４０４、およびタイムスタンプ４０５を備える。本実施例では、稼働状態データ４００のフォーマットをＪａｖａＳｃｒｉｐｔ Ｏｂｊｅｃｔ Ｎｏｔａｔｉｏｎ形式（以降、ＪＳＯＮ形式と称する）で記載しているが、そのフォーマットは、ＪＳＯＮ形式に限定されるものではない。
【００６１】
状態情報部４０１は、クライアント装置１０１の現在の状態とアプリケーションサーバ１０３からの指示を受けて変化した場合の状態との両方を備える。
【００６２】
指示部４０２は、アプリケーションサーバ１０３からの指示内容を格納する。指示内容はクライアント装置１０１がアプリケーションサーバ１０３からの指示を受けて変化した後の状態の値の形で定義され、格納される。アプリケーションサーバ１０３からの指示がなければ、指示部４０２の値は空となる。
【００６３】
状態部４０３は、クライアント装置１０１の現在の状態に関する値を格納する。例えば、クライアント装置１０１の電源状態、電源がついているか、消えているか、またはスリープモードにあるか、と言った情報、装置のハードウェア設定、およびソフトウェア設定などは、クライアント装置１０１の現在の状態に関する値に相当する。
【００６４】
バージョン４０４は、稼働状態データ４００のバージョンを示し、クライアント装置１０１およびアプリケーションサーバ１０３によって稼働状態データ４００が更新されるたびに値が変更される。タイムスタンプ４０５は、稼働状態データ４００がクライアント装置１０１およびアプリケーションサーバ１０３によって更新された際に、タイムスタンプ情報を格納する。
【００６５】
変更指示メッセージ４１０は、稼働状態データ４００の指示部４０２に状態部４０３に示されるクライアント装置１０１の現在の稼働状態に対してアプリケーションサーバ１０３が求める稼働状態にするための指示情報が格納されたものである。指示部４１１は、指示情報が格納された一例を示したものである。
【００６６】
公開アプリケーション名カラムは、稼働状態カラムに格納された稼働状態データを公開する対象となるアプリケーション名を格納するカラムである。
【００６７】
例えば、クライアント装置稼働状態テーブルに格納されているレコードにおいて、稼働状態名が「ｍｆｐ１」である場合を考える。この場合、クライアント装置は、「ａｐｐＳｅｒｖｅｒ１」および「ａｐｐＳｅｒｖｅｒ２」の２つのアプリケーションサーバに稼働状態データを公開する。この時、「ａｐｐＳｅｒｖｅｒ１」および「ａｐｐＳｅｒｖｅｒ２」に公開する稼働状態データは、同一である必要はない。すなわち、特定のアプリケーションサーバは、稼働状態データの一部のみを公開可能であり、別のアプリケーションサーバは、稼働状態データの全てを公開可能である場合には、両者に異なる稼働状態データが格納されてもよい。
【００６８】
接続管理部３４４は、状態管理サーバ１０２にネットワーク１００で接続されるクライアント装置１０１およびアプリケーションサーバ１０３の接続情報を管理する。状態管理サーバ１０２に現在接続されているクライアント装置１０１およびアプリケーションサーバ１０３の接続情報は、接続管理データベース３４５に格納される。接続管理データベース３４５に格納され、接続管理部３４４で管理される状態管理サーバ１０２の接続情報の一例は、表５の接続情報テーブルに示すようになる。
【００６９】
【表５】
2019144949.tif 000007
【００７０】
接続ＩＤカラムは、状態管理サーバ１０２に現在接続しているクライアント装置１０１およびアプリケーションサーバ１０３を一意に識別するための識別子を格納するカラムである。接続クライアント名カラムは、状態管理サーバ１０２に現在接続しているクライアント装置１０１およびアプリケーションサーバ１０３の名称を格納するカラムである。出版可能稼働状態ＩＤカラムは、クライアント装置稼働状態テーブルで管理される稼働状態のうち、更新可能な稼働状態に対応するＩＤを格納するカラムである。購読可能稼働状態ＩＤカラムは、クライアント装置稼働状態テーブルで管理される稼働状態のうち、参照可能な稼働状態に対応するＩＤを格納するカラムである。
【００７１】
状態管理サーバ１０２に接続されたクライアント装置１０１およびアプリケーションサーバ１０３がアクセス可能なクライアント装置１０１の稼働状態に関する権限情報は、権限管理データベース３４６に格納される。権限管理データベース３４６に格納され、接続管理部３４４で管理される稼働状態への権限情報の一例は、表６の権限情報テーブルに示すようになる。
【００７２】
【表６】
2019144949.tif 000008
【００７３】
接続クライアント名カラムは、状態管理サーバ１０２が権限情報を管理するクライアント装置１０１およびアプリケーションサーバ１０３の名称を格納するカラムである。本実施例においては、接続クライアント名カラムの値が「ｍｆｐ１」「ｍｆｐ２」のレコードがクライアント装置１０１に該当する。また、本実施例においては、接続クライアント名カラムの値が「ａｐｐＳｅｒｖｅｒ１」のレコードがアプリケーションサーバ１０３に該当する。
【００７４】
稼働状態ＩＤカラムは、接続クライアント名カラムの値に該当するクライアント装置１０１あるいはアプリケーションサーバ１０３がアクセス可能な稼働状態を一意に識別するための識別子を格納するカラムである。クライアント装置稼働状態テーブルの稼働状態ＩＤカラムの値が格納する。
【００７５】
権限カラムは、状態情報ＩＤカラムの値に該当するクライアント装置稼働状態テーブルの稼働状態データに対するアクセス権限に対応する値を格納するカラムである。本実施例においては、アクセス権限に対応する値が「Ｐｕｂｌｉｓｈ」の場合には、稼働状態データの更新権限を有することを意味し、アクセス権限に対応する値が「Ｓｕｂｓｃｒｉｂｅ」の場合には、稼働状態データの参照権限を有することを意味する。
【００７６】
表６の権限情報テーブルに示す例では、クライアント装置１０１に対応する「ｍｆｐ１」「ｍｆｐ２」は、それぞれ自身の状態情報ファイルの更新および参照権限を有する。また、アプリケーションサーバ１０３に対応する「ａｐｐＳｅｒｖｅｒ１」は、「ｍｆｐ１」および「ｍｆｐ２」の稼働状態データの更新および参照権限を有する。一方、アプリケーションサーバ１０３に対応する「ａｐｐＳｅｒｖｅｒ２」は、「ｍｆｐ１」の稼働状態データの参照権限のみを有する。
【００７７】
メッセージ生成部３４７は、アプリケーションサーバ１０３から受信した状態変更指示から変更指示メッセージを生成する。生成された変更指示メッセージは、通信部３４１を介して該当するクライアント装置１０１に送信される。
【００７８】
アプリケーションサーバ１０３は、アプリケーションサーバモジュール３５０（以降、モジュール３５０と称する）を備える。モジュール３５０は、クライアント装置１０１の状態変更指示を状態管理サーバ１０２を介してクライアント装置１０１に送信する。
【００７９】
モジュール３５０は、通信部３５１およびメッセージ生成部３５２を備える。なお、アプリケーションサーバ１０３がクライアント装置１０１から受信する情報とその情報を用いて実行する処理ついては、ここでの説明を省略するが、特に限定されるものではない。
【００８０】
通信部３５１は、ＮＣ２０８を介してネットワーク１００で接続されるクライアント装置１０１および状態管理サーバ１０２と通信を行う。メッセージ生成部３５２は、クライアント装置１０１から受信した情報に応じて変更指示メッセージを生成する。生成された変更指示メッセージは、通信部３５１を介して状態管理サーバ１０２に送信される。
【００８１】
優先指示管理サーバ１０４は、優先指示管理サーバモジュール３６０（以降、モジュール３６０と称する）を備える。アプリケーションサーバ１０３が状態管理サーバ１０２に変更指示メッセージを送信する際、クライアント装置１０１の稼働状態がスリープモードであっても優先して指示の反映を求める場合を考える。この場合、モジュール３６０は、アプリケーションサーバ１０３から優先指示メッセージを受信して管理する。また、モジュール３６０は、クライアント装置１０１がスリープモードから復帰したときに、クライアント装置１０１に対して状態管理サーバ１０２に優先して受信および処理すべき変更指示メッセージがあるか否かを送信する。
【００８２】
通信部３６１は、ＮＣ２０８を介してネットワーク１００で接続されるクライアント装置１０１およびアプリケーションサーバ１０３と通信を行う。メッセージ生成部３６２は、アプリケーションサーバ１０３から受信した優先指示メッセージを、通信部３61を介してクライアント装置１０１に送信する。優先指示管理部３６３は、アプリケーションサーバ１０３から受信した優先指示メッセージを管理する。優先指示管理部３６３で管理される優先指示メッセージの一例は、表７の優先指示管理テーブルに示すようになる。
【００８３】
【表７】
2019144949.tif 000009
【００８４】
管理ＩＤカラムは、優先指示管理サーバ１０４で管理する優先指示メッセージを一意に識別するための識別子を格納するカラムである。クライアント名カラムは、状態管理サーバ１０２で管理されるクライアント装置の名称を格納するカラムである。優先指示登録アプリケーション名カラムは、優先指示メッセージを優先指示管理サーバ１０４に送信したアプリケーションサーバ１０３の名称を格納するカラムである。
【００８５】
日時情報カラムは、アプリケーションサーバ１０３が優先指示メッセージを優先指示管理サーバ１０４に送信した日時情報を格納するカラムである。例えば、優先指示管理テーブルに登録されたレコードは、アプリケーションサーバ「ａｐｐＳｅｒｖｅｒ」が状態管理サーバ１０２に反映の優先度が所定値よりも高い「ｍｆｐ１」向けの変更指示メッセージを登録したことを意味する。
【００８６】
ここで、優先指示に相当する優先度が所定値よりも高い変更指示の内容としては、クライアント装置内のいずれかのセンサーに対するパラメーターの変更や、故障や消耗品の寿命の予測に用いるモデルの更新などがある。また、他にも、クライアント装置が画像処理を行う機器であればその画像処理のためのキャリブレーション処理なども優先指示としても良い。緊急のセキュリティプログラムや設定の適用処理も優先指示としても良い。いずれの処理も、所定モードから復帰直後に実行した際に装置内での適用に時間がかかる処理や、所定モードから復帰直後から即座に反映されておくべき処理といえる。
【００８７】
なお、優先指示に相当しない処理内容としては、適用に時間がかからない処理や、クライアント装置であまり利用されない機能に関する変更、などが考えられる。
【００８８】
クライアント装置１０１は、一定期間ユーザによって利用されることが見込まれない場合に、省電力効果を実現するために所定の条件によってスリープモードに移行する機能を有する。クライアント装置１０１がスリープモードに移行する代表的な条件としては二つある。
【００８９】
一つは、夜間や営業時間外等といった一日のうち決まった時間帯でユーザがクライアント装置１０１を利用しないことが把握できている場合である。この場合は、クライアント装置１０１にスリープモードへの移行および、復帰の時間帯をスケジュール設定する。クライアント装置１０１はスケジュール設定に基づき自身の稼働状態を変更する。
【００９０】
もう一つは、日中や営業時間内などといった一日のうちクライアント装置１０１がユーザによっていつ利用されるか予測できない場合である。この場合には、クライアント装置１０１を利用するユーザがいなくても起動し続ける無駄を回避するために、クライアント装置１０１は、一定時間無使用の状態が継続した場合にはスリープモードに移行するよう無使用継続時間が設定される。クライアント装置１０１は、ユーザからの処理要求を監視し、設定された時間だけ継続してユーザからの処理要求を受け付けなかった場合に、スリープモードに移行する。スリープモードに移行したクライアント装置１０１は、操作部２０９を介してユーザからの再び処理要求を受け付けた場合、スリープモードから復帰する。
【００９１】
図６は、本発明に係る状態管理サーバ１０２に接続されたクライアント装置１０１がスリープモードに移行する基本的な処理を示したフローチャートである。本処理はクライアント装置１０１のモジュール３１０において実行される。
【００９２】
ステップＳ５０１において、制御部３１１は、タイマー管理部３１２のタイマー情報テーブルの動作種別カラムの値が「無使用」のレコードの条件カラムの値（無使用時刻）を取得する。ステップＳ５０２において、制御部３１１は、タイマー管理部３１２のタイマー情報テーブルの動作種別カラムの値が「スケジュール移行」のレコードの条件カラムの値（スリープ移行スケジュール）を取得する。
【００９３】
ステップＳ５０３において、制御部３１１は、現在時刻と、ステップＳ５０２で取得した動作種別カラムの値が「スケジュール移行」のレコードの条件カラムに格納されたスケジュール移行時刻とを比較する。現在時刻がスケジュール移行時刻よりも前だった場合には、ステップＳ５０４に進む。現在時刻がスケジュール移行時刻と一致、もしくは進んでいた場合にはステップＳ５０６に進む。
【００９４】
ステップＳ５０４において、制御部３１１は、ステップＳ５０１で取得した動作種別カラムの値が「無使用」のレコードの条件カラムに格納された時間、クライアント装置１０１が未使用状態にあるかどうかを確認する。クライアント装置が未使用状態にある時間が「無使用」のレコードの条件カラムに格納された時間未満である場合にはステップＳ５０５に進む。クライアント装置が未使用状態にある時間が「無使用」のレコードの条件カラムに格納された時間以上継続していた場合には、ステップＳ５０６に進む。
【００９５】
ステップＳ５０５において、制御部３１１は、ユーザからの操作を待ち受け、再度、ステップＳ５０３の処理を実行する。
【００９６】
ステップＳ５０６において、タイマー管理部３２４は、メッセージ確認間隔テーブルからメッセージ確認間隔レコードを取得する。そして、タイマー管理部３２４は、タイマー管理部３１２を介して、タイマー情報テーブルにスリープモード時のメッセージ確認タイマー情報レコードを追加する。ステップＳ５０６においてメッセージ確認タイマー情報レコードが追加されたタイマー情報テーブルは、表８に示すようになる。
【００９７】
【表８】
2019144949.tif 000010
【００９８】
このレコードに関し、動作種別カラムには「スリープモード」が格納され、条件カラムにはステップＳ５０６で取得したメッセージ確認間隔レコードの実行間隔カラムの値が格納される。本実施例においては、「１５分」の値が格納される。この場合、スリープモードにおいて、所定時間が経過するたび、すなわち１５分が経過するたびにメッセージの確認が行われる。
【００９９】
ステップＳ５０７において、メッセージ生成部３２２は、クライアント装置１０１がスリープモードに移行する旨を記したクライアント稼働状態メッセージ６００（以降、メッセージ６００と称する）を生成する。このメッセージ６００は、通信部３２１を介して状態管理サーバ１０２に送信される。状態管理サーバ１０２のクライアント管理部３４２は、クライアント装置稼働状態テーブルで管理する稼働状態のうち、該当する稼働状態データを、受信したメッセージ６００に基づき更新する。ステップＳ５０８において、クライアント装置１０１は、スリープモードに移行する。
【０１００】
図７は、本発明において、クライアント装置１０１がスリープモードに移行する際、またはスリープモードから一時復帰モードに移行する際に、クライアント装置１０１から状態管理サーバ１０２に送信される状態変更メッセージの一例を示した図である。
【０１０１】
メッセージ６００の各構成要素については稼働状態データ４００と同様のため、ここでの説明を省略し、スリープモードに移行する際の差分のみ説明する。
【０１０２】
状態部６０１は、クライアント装置１０１がスリープモードに移行する際の電源状態を示す情報である。項目名「ｐｏｗｅｒ」が電源状態を示し、項目値「ｓｌｅｅｐ」がクライアント装置１０１がスリープモードにあることを示す。
【０１０３】
メッセージ６１０は、クライアント装置１０１がスリープモードから再びユーザからの処理が実行可能な状態に復帰したことを示すメッセージである。項目名「ｐｏｗｅｒ」の項目値「ｓｔａｎｄｂｙ」がクライアント装置１０１がスリープモードから復帰したことを示す。図６のステップＳ５０７において、制御部３１１は、タイマー実行部３１３を介して、クライアント装置１０１をスリープモードに移行させる。
【０１０４】
図８は、本発明に係るクライアント装置１０１およびアプリケーションサーバ１０３が状態管理サーバ１０２を介して、クライアント装置１０１の稼働状態を更新する一連の処理を示したシーケンス図である。
【０１０５】
クライアント装置１０１は、自身のハードウェア設定やソフトウェア設定などの稼働状態が変更された場合、稼働状態データを更新し、状態管理サーバ１０２に送信する。状態管理サーバ１０２は、クライアント装置１０１から稼働状態データを受信すると、クライアント装置１０１に関連するアプリケーションサーバ１０３にその情報を転送する。
【０１０６】
また、アプリケーションサーバ１０３が自身と関連するクライアント装置１０１のハードウェア設定やソフトウェア設定を変更する場合、あるいは何等かの処理を実行させたい場合には、状態管理サーバ１０２に稼働状態データを送信する。状態管理サーバ１０２は、アプリケーションサーバ１０３から稼働状態データを受信するとアプリケーションサーバ１０３に関連するクライアント装置１０１にそれを転送する。
【０１０７】
従来の通信方式の場合、この動作は、クライアント装置１０１とアプリケーションサーバ１０３とが直接接続されることで、実現されていた。しかし、この場合、アプリケーションサーバ１０３が関連する全てのクライアント装置１０１との通信を管理する必要があった。これに対し、状態管理サーバ１０２を介した図８に示す出版購読方式を採用することで、アプリケーションサーバ１０３は、クライアント装置１０１を管理する負荷を追うことなく、双方向に情報の送受信を行うことが可能となる。
【０１０８】
ステップＳ７０１において、クライアント装置１０１およびアプリケーションサーバ１０３は、状態管理サーバ１０２に対して、稼働状態への接続要求を送信する。例えば、ＭＱＴＴ（ＭＱ  Ｔｅｌｅｍｅｔｒｙ  Ｔｒａｎｓｐｏｒｔ）による通信を行うためのセッションを確立するための接続要求が実行される。状態管理サーバ１０２の接続管理部３４４は、通信部３４１を介して接続要求を受信すると接続管理データベース３４５の接続情報テーブルに、接続要求を送信したクライアント名としてクライアント装置１０１およびアプリケーションサーバ１０３を登録する。本シーケンスにおいて図示する破線の矢印は、要求に対する実行結果の応答を示す。例えばＳ７０１の接続要求に直下の破線の矢印は、接続要求に対応する応答である。以下、本シーケンスの説明では、単純な応答については説明を省略している。
【０１０９】
ステップＳ７０２において、クライアント装置１０１およびアプリケーションサーバ１０３は、状態管理サーバ１０２に対して、稼働状態への出版購読要求を送信する。出版購読要求の一例は、表９の出版購読要求レコードに示すようになる。
【０１１０】
【表９】
2019144949.tif 000011
【０１１１】
要求元クライアント名カラムは、出版購読要求を送信するクライアント装置１０１あるいはアプリケーションサーバ１０３の名称が格納される。出版状態情報カラムは、参照する稼働状態名が格納される。購読状態情報カラムは、更新する稼働状態名が格納される。
【０１１２】
状態管理サーバ１０２の接続管理部３４４は、通信部３４１を介して出版購読要求を受信する。この後、接続管理部３４４は、出版購読要求テーブルの要求元クライアント名カラムの値と、権限管理データベース３４６の権限情報テーブルの接続クライアント名カラムの値とが一致するレコードを権限管理データベース３４６から取得する。
【０１１３】
次に、接続管理部３４４は、取得した権限情報レコードの状態情報名カラムの値と権限カラムの値を取得する。また、接続管理部３４４は、出版購読要求レコードの出版状態情報カラムと購読状態情報カラムの値とを比較し、要求元クライアントが出版購読要求に対応する権限を有しているか否かを確認する。その結果、権限を有している場合には、出版状態情報名カラムおよび購読状態情報名カラムのそれぞれに出版状態情報カラムの値と購読状態情報カラムの値を格納する。ただし、出版状態情報名カラムおよび購読状態情報名カラムは、接続情報テーブルの接続クライアント名カラムの値と出版購読要求レコードの要求元クライアント名カラムとの値が一致するものとする。
【０１１４】
ステップＳ７０３において、クライアント装置１０１は、稼働状態が変化すると状態管理サーバ１０２に対しクライアント状態メッセージとして稼働状態データ（変更指示が実行された旨を示すデータ）を送信する。
【０１１５】
また、ステップＳ７０４において、状態管理サーバ１０２のクライアント管理部３４２は、通信部３４１を介してクライアント装置１０１からクライアント状態メッセージを受信すると、稼働状態データを更新する。ただし、この稼働状態データは、クライアントデータベース３４３のクライアント装置名がクライアント装置１０１と一致するクライアント装置稼働状態レコードの稼働状態カラムに格納された稼働状態データのことである。
【０１１６】
ステップＳ７０５において、状態管理サーバ１０２の接続管理部３４４は、ステップＳ７０４で更新されたクライアント装置稼働状態レコードのクライアント装置名カラムの値と接続情報テーブルの購読状態情報カラムとの値とが一致するレコードを検索する。そして、該当したレコードの接続クライアント名カラムの値に対応するアプリケーションサーバ１０３に対して、メッセージ生成部３４７が通信部３４１を介して、更新された稼働状態を送信する。以上の一連の処理によって、アプリケーションサーバ１０３は、状態管理サーバ１０２を介してクライアント装置１０１の稼働状態の更新をリアルタイムに監視することが可能となる。
【０１１７】
なお、図８に示した一連の処理は、クライアント装置１０１の稼働状態の変更を、状態管理サーバ１０２を介してリアルタイムにアプリケーションサーバ１０３に対して通知することを説明しているが、その逆も同様である。つまり、アプリケーションサーバ１０３の指示によって、状態管理サーバ１０２の稼働状態が更新された場合も、同様に、クライアント装置１０１に対してその更新内容がリアルタイムに通知される。
【０１１８】
このように、図８に示した一連の処理によって、状態管理サーバ１０２を介することでアプリケーションサーバ１０３は、クライアント装置１０１の状態をリアルタイムに参照および更新することが可能となる。
【０１１９】
図９は、本発明に係るアプリケーションサーバ１０３が、クライアント装置１０１に稼働状態の変更指示を送信する一連の処理を示したフローチャートである。本処理は、アプリケーションサーバ１０３のモジュール３５０で実行される。
【０１２０】
ステップＳ８０１において、モジュール３５０は、状態管理サーバ１０２のクライアント管理部３４２が管理するクライアント装置稼働状態テーブルからアプリケーションサーバ１０３が取得可能なクライアント装置の現在の稼働状態データを取得する。
【０１２１】
ステップＳ８０２において、モジュール３５０は、ステップＳ８０１で取得したクライアント装置１０１の稼働状態を判別し、状態変更指示を出すべきクライアント装置１０１があるかどうかを確認する。例えば、モジュール３５０は、稼働状態データ４００の状態部４０３の値を参照して、モジュール３５０が想定する値ではなかった場合に、あるべき値に変更するための変更指示メッセージを生成する。また、モジュール３５０は、状態変更指示を出すべきクライアント装置１０１が無いと判断した場合は処理を終了する。なお、アプリケーションサーバ１０３が行う具体的な変更指示内容については、本発明で制限しない。
【０１２２】
ステップＳ８０３において、メッセージ生成部３５２は、ステップＳ８０２で稼働状態の変更の必要があると判断したクライアント装置１０１の稼働状態データ４００を変更して変更指示メッセージ４１０を生成する。ステップＳ８０４において、モジュール３５０は、通信部３５１を介して状態管理サーバ１０２に変更指示メッセージ４１０を送信する。また、状態管理サーバ１０２は、送られてきた変更指示メッセージ４１０を登録する。
【０１２３】
ステップＳ８０５において、モジュール３５０は、ステップＳ８０１で状態管理サーバ１０２から取得したクライアント装置１０１の稼働情報データの状態部４０３を参照し、クライアント装置１０１の現在の電源状態を確認する。そして、クライアント装置１０１の現在の電源状態が「スリープモード」の場合はステップＳ８０６に進む。また、クライアント装置１０１の現在の電源状態が「スリープモード」以外の場合はステップＳ８０２に戻る。また、モジュール３５０は、変更指示メッセージを出すべきクライアント装置１０１全てに変更指示メッセージを送信し終えるまで処理を継続する。ここで、クライアント装置１０１の現在の電源状態が「スリープモード」の場合は、Ｓ８０４で状態管理サーバ１０２に対して登録された変更指示メッセージ４１０が、図８に示した一連の処理ではクライアント装置１０１に配信されない。これは、クライアント装置１０１はその稼働状態によって状態管理サーバ１０２と接続されていないからである。
【０１２４】
ステップＳ８０６において、モジュール３５０は、ステップＳ８０４で状態管理サーバ１０２に送信した変更指示メッセージ４１０の処理優先度を決定する。送信した変更指示メッセージ４１０が、指示の即時反映を求める緊急性の高い指示、すなわち優先度が所定値よりも高い優先指示であった場合には、ステップＳ８０７に進む。
【０１２５】
一方、送信した変更指示メッセージ４１０が、クライアント装置１０１への反映をクライアント装置１０１の電源が点灯したタイミングでの適用を許容する緊急性の低い指示であった場合にはステップＳ８０２に戻る。そして、モジュール３５０は、変更指示メッセージを出すべきクライアント装置１０１全てに変更指示メッセージを送信し終えるまで処理を継続する。
【０１２６】
ステップＳ８０７において、メッセージ生成部３５２は、優先指示メッセージを生成し、通信部３５１が生成した優先指示メッセージを優先指示管理サーバ１０４に送信する。モジュール３５０は、優先指示メッセージレコードのクライアント名カラムにステップＳ８０２で選択したクライアント装置１０１の名称および優先指示登録アプリケーション名カラムに自身のアプリケーション名を設定する。また、優先指示管理サーバ１０４は、送られてきた優先指示メッセージを登録する。
【０１２７】
図１０は、本発明に係るクライアント装置１０１が、スリープモードから一時復帰モードに移行した際に、状態管理サーバ１０２が受信した自装置に対する変更指示メッセージを確認する際の一連の処理を示したフローチャートである。本処理は、モジュール３１０、モジュール３２０、およびモジュール３３０で実行される。
【０１２８】
ステップＳ９０１において、制御部３１１は、クライアント管理部３３２から現在のクライアント装置１０１の各種状態値および設定値を取得する。ステップＳ９０２において、制御部３１１は、タイマー管理部３１２が管理するタイマー情報テーブル、およびタイマー管理部３２４が管理するメッセージ確認間隔テーブルに登録されたそれぞれのレコードと現在時刻とを比較する。制御部３１１は、所定条件とその比較結果に基づき、クライアント装置１０１が起動した理由を特定する。
【０１２９】
例えば、クライアント装置１０１が図６のステップＳ５０６で設定したメッセージ確認タイマーに定められた時間間隔でスリープモードから復帰した（一時復帰モードに移行した）場合は、所定条件が満たされたと判断し、ステップＳ９０３に進む。それ以外の理由で、つまりはユーザによる入力操作やスリープ復帰コマンドの受信などに起因して、制御部３１１が、クライアント装置１０１がスリープモードから復帰したと判断した場合には、ステップＳ９０９に進む。
【０１３０】
ステップＳ９０３において、モジュール３２０の通信部３２１が、優先指示管理サーバ１０４に接続して、自装置を対象とした優先指示メッセージを要求する。クライアント装置１０１は、優先指示管理部３６３の優先指示管理テーブルに自装置を対象とした優先指示メッセージが登録済みであれば、優先指示メッセージが取得できる。ステップＳ９０４において、モジュール３２０は、優先指示メッセージが取得できた否かを判断する。優先指示メッセージが取得できた場合にはステップＳ９０５に進み、取得できなかった場合にはステップＳ９０８に進む。
【０１３１】
ステップＳ９０５において、モジュール３２０は、優先指示メッセージのレコードの優先指示登録アプリケーション名カラムの値に一致するアプリケーションサーバ１０３が登録した変更指示メッセージを状態管理サーバ１０２から取得する。ここでは、図８に示したシーケンスで説明したＭＱＴＴプロトコルを用いた接続は必要ない。ＨＴＴＰやＨＴＴＰＳといった通信により、状態管理サーバ１０２に対して変更指示メッセージを要求して、該メッセージを取得することになる。具体的には、モジュール３２０は、状態管理サーバ１０２のクライアント管理部３４２が管理するクライアント装置稼働状態テーブルからクライアント装置稼働状態レコードを取得する。このレコードは、稼働状態名カラムの値がクライアント装置１０１で、公開アプリケーション名カラムの値がＳ９０４で取得した優先指示メッセージレコードの優先指示登録アプリケーション名カラムの値と一致するレコードの要求により取得される。
【０１３２】
ステップＳ９０６において、モジュール３２０は、ステップＳ９０５で取得した変更指示メッセージに従う処理を実行する。ステップＳ９０６でモジュール３２０が行う処理の詳細なフローチャートを図１１に示す。
【０１３３】
ステップＳ９０７において、モジュール３２０は、ステップＳ９０４において取得した未参照の優先指示メッセージがあるか否かを判断する。ある場合にはステップＳ９０５に戻り、無い場合にはステップＳ９０８に進む。
【０１３４】
ステップＳ９０８において、モジュール３２０は、スリープモードに戻るための移行指示を発行し、クライアント装置１０１をスリープモードに移行させる。
【０１３５】
ステップＳ９０９からステップＳ９１１までの一連の処理は、一時復帰モードではなく、ユーザ操作などによりスリープモードから通常復帰した場合などの処理である。このような場合には、クライアント装置１０１が、状態管理サーバ１０２に登録されている残りの全ての変更指示メッセージを実行することになる。
【０１３６】
ステップＳ９０９において、モジュール３２０は、図８に示したシーケンスで説明したように、ＭＱＴＴなどのプロトコルを用いて、状態管理サーバ１０２との接続を確立することで、参照すべき稼働状態一覧を取得する。すなわち、ステップＳ９０９では、通常復帰モードにおいて、変更指示が優先指示であるか否かによらず、状態管理サーバ１０２から変更指示を取得する。そして、状態管理サーバ１０２から自装置に対して送信されたアプリケーションサーバ１０３からの変更指示メッセージを全て受信して、実行する。具体的には、クライアント管理部３４２が管理するクライアント装置稼働状態テーブルから稼働状態名カラムの値がクライアント装置１０１の値と一致するクライアント装置稼働状態レコード全てがモジュール３２０で取得される。
【０１３７】
ステップＳ９０９に遷移する前に、ステップＳ９０３からステップＳ９０８までの処理が実行されていた場合には、ステップＳ９０９ではスリープモード中に状態管理サーバ１０２に登録された、優先指示メッセージに対応しない変更指示メッセージのみが取得される。
【０１３８】
ステップＳ９１０において、モジュール３２０は、ステップＳ９０９で取得した変更指示メッセージに従う処理を実行する。ステップＳ９１０でモジュール３２０が行う処理の詳細なフローチャートを図１１に示す。
【０１３９】
ステップＳ９１１において、モジュール３２０は、ステップＳ９０９で取得した変更指示メッセージで未処理のメッセージが無いか確認する。未処理のメッセージが残っている場合にはステップＳ９１０に戻り、処理を継続する。
【０１４０】
図１１は、ステップＳ９０６およびステップＳ９１０において、モジュール３２０が状態管理サーバ１０２から受信した変更指示メッセージに従い実行される一連の処理を示したフローチャートである。
【０１４１】
ステップＳ１００１において、モジュール３３０の制御部３３１は、変更指示メッセージをモジュール３２０から取得する。ステップＳ１００２において、モジュール３３０は、変更指示メッセージをメッセージ解析部３３３で解析し、メッセージ実行部３３４で変更指示メッセージの内容に従う処理を実行する。この処理により、クライアント装置１０１の稼働状態および設定が変更される。
【０１４２】
ステップＳ１００３において、モジュール３３０は、ステップＳ１００２の実行結果に従いクライアント管理部３３２で管理されるクライアント装置１０１の各種状態値および設定値を更新する。そして、モジュール３２０のメッセージ生成部３２２は、クライアント管理部３３２が管理する最新の情報をもって稼働状態データを生成し、通信部３２１を介して状態管理サーバ１０２に送信する。状態管理サーバ１０２のクライアント管理部３４２は、通信部３４１を介してクライアント装置１０１からクライアント状態メッセージを受信すると、稼働状態データを更新する。
【０１４３】
以上、説明したように、本実施例では、クライアント装置１０１がメッセージ確認タイマーに従って一時的に所定モードから復帰した際に、該モード中であっても優先して実行するべき変更指示メッセージのみを取得する。そして、そのような優先する指示が無い場合や、優先して実行するべき変更指示メッセージを実行した場合には、速やかにスリープモードに再び移行する。一方で、クライアント装置１０１がメッセージ確認タイマー以外の要因で所定モードから復帰し、変更指示メッセージに従う処理を実行した場合には、当該処理が完了しても、即座にスリープモードには移行しない。これは、後続するユーザ操作などを受け付ける必要があるためである。
【０１４４】
また、クライアント装置１０１がユーザ操作などにより所定モードから復帰した場合には、所定モード中に生成された変更指示メッセージのうちの一部が既に処理済みとなっていることがあるため、復帰直後における処理負荷が軽減される可能性がある。
【０１４５】
本発明が対象とするネットワークデバイスの省電力モードは、例えば、Ｄｅｖｉｃｅ  ＳｈａｄｏｗをＭＱＴＴ（ＭＱ  Ｔｅｌｅｍｅｔｒｙ  Ｔｒａｎｓｐｏｒｔ）で使用する場合に有効である。すなわち、省電力モードでは、Ｄｅｖｉｃｅ  Ｓｈａｄｏｗによる通信を行わない、またはＭＱＴＴのセッションを確立しないことにより、省電力効果を発揮できる。
【０１４６】
（その他の実施形態）
本発明は、上述の実施例の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【０１４７】
以上、本発明の好ましい実施形態について説明したが、本発明は、これらの実施形態に限定されず、その要旨の範囲内で種々の変形および変更が可能である。
【図１】
2019144949.tif 000012
【図２】
2019144949.tif 000013
【図３】
2019144949.tif 000014
【図４】
2019144949.tif 000015
【図５】
2019144949.tif 000016
【図６】
2019144949.tif 000017
【図７】
2019144949.tif 000018
【図８】
2019144949.tif 000019
【図９】
2019144949.tif 000020
【図１０】
2019144949.tif 000021
【図１１】
2019144949.tif 000022