(57)【特許請求の範囲】
【請求項１】
複数のクライアントに複数のイベントを通知するイベント通知を行うネットワークデバ
イスであって、
前記複数のクライアントから送信される前記イベント通知を要求するイベント通知要求を受信するイベント通知要求受信部と、
前記イベント通知要求を送信してきた前記クライアントの数をカウントするカウント部と、
前記クライアントの数に応じて前記イベント通知を前記クライアントに行うか否かを制御するイベント通知選択部と、
を含み、
前記複数のイベントは、各々、優先度が割り当てられ、
前記イベント通知選択部は、前記クライアントの数に応じた前記優先度が割り当てられた前記イベントを送信する、
ことを特徴とするネットワークデバイス。
【請求項２】
請求項１に記載のネットワークデバイスにおいて、
前記ネットワークデバイスは、前記クライアントの数と前記優先度と前記優先度が割り当てられた前記イベントとの対応を定義した書き換え可能なイベント優先度テーブルを含み、
前記イベント通知選択部は、前記イベント優先度テーブルを参照して前記クライアントの数に応じた前記優先度が割り当てられた前記イベントを送信する、
ことを特徴とするネットワークデバイス。
【請求項３】
請求項１または２に記載のネットワークデバイスにおいて、
前記ネットワークデバイスは、前記クライアントの属性を判断するクライアント属性判断部を含み、
前記イベント通知選択部は、前記クライアント属性判断部がネットワークデバイス管理用クライアントと判断したクライアントに対しては全てのイベントを通知する、
ことを特徴とするネットワークデバイス。
【請求項４】
複数のクライアントに複数のイベントを通知するイベント通知を行うネットワークシステムであって、
前記複数のクライアントから送信される前記イベント通知を要求するイベント通知要求を受信するイベント通知要求受信部と、
前記イベント通知要求を送信してきた前記クライアントの数をカウントするカウント部と、
前記クライアントの数に応じて前記イベント通知を前記クライアントに行うか否かを制御するイベント通知選択部と、
を含み、
前記複数のイベントは、各々、優先度が割り当てられ、
前記イベント通知選択部は、前記クライアントの数に応じた前記優先度が割り当てられた前記イベントを送信する、
ことを特徴とするネットワークシステム。
【請求項５】
複数のクライアントに複数のイベントを通知するイベント通知を行うネットワーク制御方法であって、
前記複数のクライアントから送信される前記イベント通知を要求するイベント通知要求を受信するイベント通知要求受信工程と、
前記イベント通知要求を送信してきた前記クライアントの数をカウントするカウント工程と、
前記クライアントの数に応じて前記イベント通知を前記クライアントに行うか否かを制御するイベント通知選択工程と、
を含み、
前記複数のイベントは、各々、優先度が割り当てられ、
前記イベント通知選択工程において前記クライアントの数に応じた前記優先度が割り当てられた前記イベントを送信する、
ことを特徴とするネットワーク制御方法。
【請求項６】
複数のクライアントに複数のイベントを通知するイベント通知を行うネットワーク制御プログラムであって、
前記複数のクライアントから送信される前記イベント通知を要求するイベント通知要求を受信するイベント通知要求受信ステップと、
前記イベント通知要求を送信してきた前記クライアントの数をカウントするカウントステップと、
前記クライアントの数に応じて前記イベント通知を前記クライアントに行うか否かを制御するイベント通知選択ステップと、
を含み、
前記複数のイベントは、各々、優先度が割り当てられ、
前記イベント通知選択ステップにおいて前記クライアントの数に応じた前記優先度が割り当てられた前記イベントを送信する、
ことを特徴とするネットワーク制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークデバイス、ネットワークシステム、ネットワーク制御方法及びネットワーク制御プログラムに関する。
【背景技術】
【０００２】
ネットワーク上に接続された複数のクライアントに対してサービスを提供するＷｅｂサービスにおいて、自己の情報を通知するイベント通知機能を実現する際、如何にして複数のクライアントに対してタイムラグなくイベント通知を実現するかが課題となる。
【０００３】
単純に１つのスレッドで逐次処理すると、１つのクライアントとの通信に時間を要する場合や、不慮の切断により通信が途切れてしまう場合（この場合タイムアウトするまで待つことになる）などがあり、このような場合、他のクライアントへのイベント通知にタイムラグが生じてしまう。
【０００４】
このような問題を回避するためには、同時に複数のクライアントへイベント通知を行う際、複数のスレッドを起動し、クライアントごとに別スレッドにてイベント通知する必要がある。しかしながら、Ｗｅｂサービスを搭載するハードウェアのリソース制限上、無制限にスレッド起動し、同時処理を実現するという方法は現実的ではない。特にデバイスへの組み込みソフトウェアにおいては、ＰＣ（Personal Computer）などに比べ、ハードウェアのリソース制限はより厳しく、ＲＡＭ容量オーバーや、ソケット枯渇がないよう、配慮する必要がある。
【０００５】
この問題を解決するために、例えば特許文献１には、複数サーバーで構成されるシステムでの負荷分散の方法が記載されている。
【０００６】
【特許文献１】特開平１０−２６０８５１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来の方法では、単一のサーバーでは負荷分散を行えないという課題がある。
【課題を解決するための手段】
【０００８】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態または適用例として実現することが可能である。
【０００９】
［適用例１］
複数のクライアントに複数のイベントを通知するイベント通知を行うネットワークデバイスであって、前記複数のクライアントから送信される前記イベント通知を要求するイベント通知要求を受信するイベント通知要求受信部と、前記イベント通知要求を送信してきた前記クライアントの数をカウントするカウント部と、前記クライアントの数に応じて前記イベント通知を前記クライアントに行うか否かを制御するイベント通知選択部と、を含む、ことを特徴とするネットワークデバイス。
【００１０】
この構成によれば、ネットワークデバイスに対してイベント通知要求を送信したクライアントシステムが所定の数を超え高負荷状態となった場合、通知するイベントを制限できるので、複数のクライアントシステムに対して必要なイベントをタイムラグなく通知することができる。
【００１１】
［適用例２］
上記に記載のネットワークデバイスにおいて、前記複数のイベントは、各々、優先度が割り当てられ、前記イベント通知選択部は、前記クライアントの数に応じた前記優先度が割り当てられた前記イベントを送信する、ことを特徴とするネットワークデバイス。
【００１２】
この構成によれば、ネットワークデバイスに対してイベント通知要求を送信したクライアントシステムの数に応じて通知すべきイベントの優先度を設定できるので、複数のクライアントシステムに対して必要なイベントをタイムラグなく通知することができる。
【００１３】
［適用例３］
上記に記載のネットワークデバイスにおいて、前記ネットワークデバイスは、前記クライアントの数と前記優先度と前記優先度が割り当てられた前記イベントとの対応を定義した書き換え可能なイベント優先度テーブルを含み、前記イベント通知選択部は、前記イベント優先度テーブルを参照して前記クライアントの数に応じた前記優先度が割り当てられた前記イベントを送信する、ことを特徴とするネットワークデバイス。
【００１４】
この構成によれば、イベント毎の優先度の設定を必要に応じて変更できるので、ネットワークデバイスの負荷状況に応じた設定ができる。
【００１５】
［適用例４］
上記に記載のネットワークデバイスにおいて、前記ネットワークデバイスは、前記クライアントの属性を判断するクライアント属性判断部を含み、前記イベント通知選択部は、前記クライアント属性判断部がネットワークデバイス管理用クライアントと判断したクライアントに対しては全てのイベントを通知する、ことを特徴とするネットワークデバイス。
【００１６】
この構成によれば、高負荷状況でもネットワークデバイス管理用クライアントにすべてのイベントをタイムラグなく通知することができる。
【００１７】
［適用例５］
複数のクライアントに複数のイベントを通知するイベント通知を行うネットワークシステムであって、前記複数のクライアントから送信される前記イベント通知を要求するイベント通知要求を受信するイベント通知要求受信部と、前記イベント通知要求を送信してきた前記クライアントの数をカウントするカウント部と、前記クライアントの数に応じて前記イベント通知を前記クライアントに行うか否かを制御するイベント通知選択部と、を含む、ことを特徴とするネットワークシステム。
【００１８】
この構成によれば、ネットワークシステムに対してイベント通知要求を送信したクライアントシステムが所定の数を超え高負荷状態となった場合、通知するイベントを制限できるので、複数のクライアントシステムに対して必要なイベントをタイムラグなく通知することができる。
【００１９】
［適用例６］
複数のクライアントに複数のイベントを通知するイベント通知を行うネットワーク制御方法であって、前記複数のクライアントから送信される前記イベント通知を要求するイベント通知要求を受信するイベント通知要求受信工程と、前記イベント通知要求を送信してきた前記クライアントの数をカウントするカウント工程と、前記クライアントの数に応じて前記イベント通知を前記クライアントに行うか否かを制御するイベント通知選択工程と、を含む、ことを特徴とするネットワーク制御方法。
【００２０】
この構成によれば、イベント通知要求を送信したクライアントシステムが所定の数を超え高負荷状態となった場合、通知するイベントを制限できるので、複数のクライアントシステムに対して必要なイベントをタイムラグなく通知することができる。
【００２１】
［適用例７］
複数のクライアントに複数のイベントを通知するイベント通知を行うネットワーク制御プログラムであって、前記複数のクライアントから送信される前記イベント通知を要求するイベント通知要求を受信するイベント通知要求受信ステップと、前記イベント通知要求を送信してきた前記クライアントの数をカウントするカウントステップと、前記クライアントの数に応じて前記イベント通知を前記クライアントに行うか否かを制御するイベント通知選択ステップと、を含む、ことを特徴とするネットワーク制御プログラム。
【００２２】
この構成によれば、イベント通知要求を送信したクライアントシステムが所定の数を超え高負荷状態となった場合、通知するイベントを制限できるので、複数のクライアントシステムに対して必要なイベントをタイムラグなく通知することができる。
【発明を実施するための最良の形態】
【００２３】
以下、Ｗｅｂサービスシステムの実施形態について図面に従って説明する。
【００２４】
（第１実施形態）
＜Ｗｅｂサービスシステムの構成＞
まず、第１実施形態に係るネットワークデバイスの構成について、図１を参照して説明する。図１は、第１実施形態に係るネットワークデバイスの構成を示すブロック図である。なお、本実施形態では、ネットワークデバイスとしてＷＳＤ（Web Service for Device）に準拠した印刷装置であるＷＳＤプリンタ１００の場合について説明する。
【００２５】
図１に示すように、ＷＳＤプリンタ１００は、内部バス１０に接続されたＣＰＵ２０と、ＲＯＭ３０と、ＲＡＭ４０と、ＥＥＰＲＯＭ５０と、印刷エンジン６０と、を含んで構成されている。ＷＳＤプリンタ１００は、さらに、ＬＡＮケーブル３００に接続され、ＷＳＤプリンタ１００を管理する管理者用ＰＣ２００や、複数のクライアントシステムであるクライアントＰＣ（２０１〜２０３など）と接続されている。
【００２６】
ＷＳＤプリンタ１００を制御するためのプログラム７０は、ＲＯＭ３０に格納され、実行時にＲＡＭ４０へロードされる。プログラム７０は、管理者用ＰＣ２００やクライアントＰＣ（２０１〜２０３など）から送信されるイベント通知要求を受信するイベント通知要求受信部７１と、イベント通知要求を送信してきたクライアントＰＣ（２０１〜２０３など）の数をカウントするカウント部７２と、クライアントＰＣの数に応じてイベントを送信するか否かを制御するイベント通知選択部７３と、を含んでいる。
【００２７】
ＥＥＰＲＯＭ５０は、クライアントＰＣの数と優先度と優先度が割り当てられたイベントとの対応を定義した書き換え可能なイベント優先度テーブル５１を含んでいる。
【００２８】
＜ＷＳＤの概略シーケンス＞
次に、ＷＳＤの概略シーケンスについて図２を参照して説明する。図２は、ＷＳＤの概略シーケンスを示すシーケンス図である。
【００２９】
先ず、ステップＳ１では、ＷＳＤプリンタ１００は、サービス起動時に起動しているクライアントＰＣ（２０１〜２０３などのいずれか）に対して、Ｈｅｌｌｏコマンドを投げ自己の存在を通知する。クライアントはＨｅｌｌｏコマンドを受信すると、新たなプリンタがネットワークに参加したと認識し、ステップＳ２でＰｒｏｂｅコマンドをプリンタに発行する。このＰｒｏｂｅコマンドを受信することによってサービス起動時に起動していたクライアントＰＣ（２０１〜２０３などのいずれか）は、ＷＳＤプリンタ１００によって認識される。
【００３０】
次に、ステップＳ３では、ＷＳＤプリンタ１００は、受け取ったＰｒｏｂｅコマンドが自己を対象とするものであった場合、ＰｒｏｂｅＭａｔｃｈコマンドをクライアントＰＣ（２０１〜２０３などのいずれか）に返す。
【００３１】
ＷＳＤプリンタサービス起動後に起動したクライアントＰＣは、ステップＳ２から起動処理を開始することによってＷＳＤプリンタにクライアントの存在を認識させる共に、ＰｒｏｂｅＭａｔｃｈコマンドをＷＳＤプリンタから受信することによってＷＳＤプリンタの存在を認識する。
【００３２】
次に、ステップＳ４では、クライアントＰＣ（２０１〜２０３などのいずれか）は、利用するＷＳＤプリンタ１００のアドレス情報を解決するためにＲｅｓｏｌｖｅコマンドを発行する。
【００３３】
次に、ステップＳ５では、ＷＳＤプリンタ１００は、受け取ったＲｅｓｏｌｖｅコマンドが自己を対象とするものであった場合、ＲｅｓｏｌｖｅＭａｔｃｈコマンドをクライアントＰＣ（２０１〜２０３などのいずれか）に返す。
【００３４】
次に、ステップＳ６では、クライアントＰＣ（２０１〜２０３などのいずれか）は、利用したいＷＳＤプリンタ１００のＭｅｔａＤａｔａ情報を取得するためにＷＳ−Ｔｒａｎｓｆｅｒ  Ｇｅｔコマンドを発行する。
【００３５】
次に、ステップＳ７では、ＷＳＤプリンタ１００は、クライアントＰＣ（２０１〜２０３などのいずれか）にＧｅｔ  ＲｅｓｐｏｎｓｅコマンドによりＭｅｔａＤａｔａ情報を返す。
【００３６】
次に、ステップＳ８では、クライアントＰＣ（２０１〜２０３などのいずれか）は、ＷＳＤプリンタ１００から通知してほしいイベントを予約するための予約メッセージであるＳｕｂｓｃｒｉｂｅコマンドを発行する。カウント部７２は、Ｓｕｂｓｃｒｉｂｅコマンドを発行したクライアントＰＣの数をカウントする。
【００３７】
次に、ステップＳ９では、ＷＳＤプリンタ１００は、クライアントＰＣ（２０１〜２０３などのいずれか）からのＳｕｂｓｃｒｉｂｅ情報を自己に登録し、Ｒｅｓｐｏｎｓｅコマンドを返す。Ｓｕｂｓｃｒｉｂｅ情報は、図５に示すように、Ｓｕｂｓｃｒｉｂｅコマンドを発行したクライアント名と、イベント名と、から構成されている。
【００３８】
次に、ステップＳ１０では、ＷＳＤプリンタ１００にてイベントが発生すると、ＷＳＤプリンタ１００は登録されているＳｕｂｓｃｒｉｂｅ情報を参照して、クライアントＰＣ（２０１〜２０３などのいずれか）に対してイベント発生を通知する。イベント通知選択部７３は、ここでカウント部７２がカウントしたクライアントＰＣの数に応じてイベントを送信するか否かを制御する。
【００３９】
次に、ステップＳ１１では、クライアントＰＣ（２０１〜２０３などのいずれか）は、ＷＳＤプリンタ１００からのイベント通知が不要になると、Ｕｎｓｕｂｓｃｒｉｂｅコマンドを発行し、イベント通知を止めるよう要求する。カウント部７２は、Ｕｎｓｕｂｓｃｒｉｂｅコマンドを受信するとクライアントＰＣの数から減算する。
【００４０】
次に、ステップＳ１２では、ＷＳＤプリンタ１００は、Ｕｎｓｕｂｓｃｒｉｂｅ  ＲｅｓｐｏｎｓｅコマンドをクライアントＰＣ（２０１〜２０３などのいずれか）に返す。
【００４１】
次に、ステップＳ１３では、ＷＳＤプリンタ１００は、サービス終了時にＳｕｂｓｃｒｉｐｔｉｏｎＥｎｄコマンドを発行する。
【００４２】
次に、ステップＳ１４では、ＷＳＤプリンタ１００は、サービス終了時にＢｙｅコマンドを発行し、自己の終了を通知する。
【００４３】
＜イベント優先度テーブルの構成＞
次に、イベント優先度テーブルの構成について図３を参照して説明する。図３は、イベント優先度テーブルの構成を示すテーブル図である。なお、図３では、ＬＡＮケーブル３００に接続されているクライアントＰＣの数が５台あるものとして説明する。
【００４４】
図３に示すように、イベント優先度テーブル５１は、クライアントＰＣの数ＣＮＴと、イベントの優先度と、優先度が割り当てられたイベントと、から構成されている。クライアントＰＣの数ＣＮＴが２以下の場合、優先度Ｌｏｗとなり、イベントＥＬ１，ＥＬ２が割り当てられている。クライアントＰＣの数ＣＮＴが３以上４以下の場合、優先度Ｍｉｄｄｌｅとなり、イベントＥＭ１，ＥＭ２が割り当てられている。クライアントＰＣの数ＣＮＴが５以上の場合、優先度Ｈｉｇｈとなり、イベントＥＨ１，ＥＨ２が割り当てられている。
【００４５】
イベント優先度テーブル５１は、ＥＥＰＲＯＭ５０に記憶されており、外部の管理者用ＰＣ２００から書き換え可能である。
【００４６】
＜イベント通知選択部の動作＞
次に、イベント通知選択部の動作について図４を参照して説明する。図４は、イベント通知選択部の動作を示すフローチャートである。イベント通知選択部７３は、図３のイベント優先度テーブル５１を参照して動作する場合を説明する。
【００４７】
先ず、ステップＳ１００では、クライアントＰＣの数ＣＮＴが２以下か否かを判定し、２以下の場合ステップＳ１０２に移行し、２以下でない場合ステップＳ１０４に移行する。
【００４８】
次に、ステップＳ１０２では、優先度ＬｏｗのイベントＥＬ１，ＥＬ２とＭｉｄｄｌｅのイベントＥＭ１，ＥＭ２とＨｉｇｈのイベントＥＨ１，ＥＨ２を発生順に送信する。
【００４９】
次に、ステップＳ１０４では、クライアントＰＣの数ＣＮＴが４以下か否かを判定し、４以下の場合ステップＳ１０６に移行し、４以下でない場合ステップＳ１０８に移行する。
【００５０】
次に、ステップＳ１０６では、優先度ＭｉｄｄｌｅのイベントＥＭ１，ＥＭ２とＨｉｇｈのイベントＥＨ１，ＥＨ２を発生順に送信する。
【００５１】
一方、ステップＳ１０８では、優先度ＨｉｇｈのイベントＥＨ１，ＥＨ２を発生順に送信する。
【００５２】
上述したようにイベント通知選択部７３は、クライアントＰＣの数ＣＮＴが５以上の場合は、イベントＥＨ１，ＥＨ２を送信対象とし、３以上の場合は、イベントＥＭ１，ＥＭ２，ＥＨ１，ＥＨ２を送信対象とし、２以下の場合は、すべてのイベントＥＬ１，ＥＬ２，ＥＭ１，ＥＭ２，ＥＨ１，ＥＨ２を送信対象とする。図５の場合、クライアントＰＣの数ＣＮＴ＝３なので、イベントＥＭ１，ＥＭ２，ＥＨ１，ＥＨ２を送信対象とし、イベントＥＬ１，ＥＬ２は送信されない。
【００５３】
以上に述べた本実施形態によれば、以下の効果が得られる。
【００５４】
本実施形態では、ネットワークデバイスに対して予約メッセージを送信したクライアントシステムが所定の数を超え高負荷状態となった場合、通知するイベントを制限できるので、複数のクライアントシステムに対して必要なイベントをタイムラグなく通知することができる。また、イベント毎の優先度の設定を必要に応じて変更できるので、ネットワークデバイスの付加状況に応じた設定ができる。
【００５５】
以上、ネットワークデバイスの実施形態を説明したが、こうした実施の形態に何ら限定されるものではなく、趣旨を逸脱しない範囲内において様々な形態で実施し得ることができる。以下、変形例を挙げて説明する。
【００５６】
（変形例１）ネットワークデバイスの変形例１について説明する。前記第１実施形態では、イベント優先度テーブル５１を外部の管理者用ＰＣ２００から書き換える場合について説明したが、ネットワークデバイスの負荷状況に応じて動的にイベント優先度テーブル５１を書き換えるようにしてもよい。例えば、ネットワークデバイスが高負荷な状態では、優先度ＨｉｇｈのクライアントＰＣの数ＣＮＴの下限値を下げ、負荷が少ない状態では、優先度ＭｉｄｄｌｅのクライアントＰＣの数ＣＮＴの下限値を上げるように制御する。
【００５７】
（変形例２）ネットワークデバイスの変形例２について説明する。前記第１実施形態では、優先度をＬｏｗ，Ｍｉｄｄｌｅ，Ｈｉｇｈの３段階で説明したが、２段階でもよいし、４段階以上に詳細に設定してもよい。
【００５８】
（変形例３）ネットワークデバイスの変形例３について説明する。前記第１実施形態では、クライアントＰＣ（２０１〜２０３などのいずれか）に対するイベントの制御を行う場合について説明したが、管理者用ＰＣ２００とクライアントＰＣ（２０１〜２０３などのいずれか）の優先度を別々に設定してもよい。その場合、イベント優先度テーブル５１の他にクライアントの属性を判断するクライアント属性判断部を追加し、クライアント属性判断部がネットワークデバイス管理用クライアントと判断したクライアントに対しては全てのイベントを通知するようにすればよい。
【００５９】
図６（Ａ）は、クライアント名とクライアント属性を定義したクライアント属性テーブル５２であり、図１に示すＥＥＰＲＯＭ５０に記憶されている。図６（Ｂ）は、クライアント属性判断部の動作を示すフローチャートである。クライアント属性判断部は、ステップＳ２００でクライアント属性テーブル５２を参照し、クライアントＰＣが管理者か否かを判断し、管理者である場合は、ステップＳ２０２に示すようにすべてのイベントが発生順に送信され、管理者でない場合は、図４に示すイベント通知選択部７３に処理を移行する。
【図面の簡単な説明】
【００６０】
【図１】第１実施形態に係るネットワークデバイスの構成を示すブロック図。
【図２】ＷＳＤの概略シーケンスを示すシーケンス図。
【図３】イベント優先度テーブルの構成を示すテーブル図。
【図４】イベント通知選択部の動作を示すフローチャート。
【図５】Ｓｕｂｓｃｒｉｂｅ情報の構成を示すテーブル図。
【図６】（Ａ）クライアント属性テーブルの構成を示すテーブル図、（Ｂ）クライアント属性判断部の動作を示すフローチャート。
【符号の説明】
【００６１】
１０…内部バス、２０…ＣＰＵ、３０…ＲＯＭ、４０…ＲＡＭ、５０…ＥＥＰＲＯＭ、５１…イベント優先度テーブル、６０…印刷エンジン、７０…プログラム、７１…イベント通知要求受信部、７２…カウント部、７３…イベント通知選択部、１００…ＷＳＤプリンタ、２００…管理者用ＰＣ、３００…ＬＡＮケーブル。
【図１】
0004967996.tif 000002
【図２】
0004967996.tif 000003
【図３】
0004967996.tif 000004
【図４】
0004967996.tif 000005
【図５】
0004967996.tif 000006
【図６】
0004967996.tif 000007