(57)【特許請求の範囲】
【請求項１】
ホストと、それぞれプロセッサと記憶手段とを備え該ホストから依頼されたジョブを処理する複数の画像形成装置とがネットワークで結合され、
該画像形成装置の記憶手段に、該ホストから該画像形成装置に対する要求に基づきイベントの種類及び通知先アドレスを含むサブスクリプションが登録されたデータベースと、プロセッサを動作させるためのイベントジェネレータ及びイベント通知マネージャとが格納され、
該ホストの記憶手段に、該複数の画像形成装置に対応した複数のプリンタドライバと、ステータスモニターと、該複数のプリンタドライバのそれぞれについて、該ステータスモニターのオン／オフ情報が登録されたデータベースとしてのレジストリが格納された、ネットワークにおけるイベント通知システムにおいて、
該プリンタドライバには、印刷パラメータの設定時に、ステータスモニターのオン／オフとイベント種別毎の通知有無が設定可能となっており、該レジストリには、  プリンタドライバの設定情報であるキーの値がツリー形式で登録されており、
該イベントジェネレータは該プロセッサに対し、該画像形成装置内での状態変化を示す値を含むイベントデータを持つイベントを生成させ、該状態変化がジョブ状態の変化である場合には、該イベントデータにジョブ処理要求元を示す値を含ませ、
該イベント通知マネージャは該プロセッサに対し、該イベントの生成に応答して、該イベントデータにジョブ処理要求元を示す値が含まれていれば、該データベースに含まれているサブスクリプションのうち、そのイベントの種類に該状態変化の値が属し且つその通知先アドレスが該ジョブ処理要求元の値に対応するものについて、該通知先アドレスにイベントを通知させ、該イベントデータにジョブ処理要求元を示す値が含まれていなければ、該データベースに含まれているサブスクリプションのうち、そのイベントの種類に該状態変化の値が属するものについて、該通知先アドレスにイベントを通知させ、
該画像形成装置の記憶手段は、更に、サブスクリプションマネージャを含み、
該サブスクリプションマネージャは、
該データベースに、該イベントの種類と該通知先アドレスとともにタイムスタンプを登録し、現日時と前記タイムスタンプとの差が有効期限と等しいか大きければ、該通知先アドレスへ有効期限切れであることを通知し、
該ホストの省電力モードからの復帰時に、その復帰イベントの発生に応答して、該ホストのステータスモニターは、該レジストリに登録されている全てのプリンタドライバの該設定情報から、該ツリーのパスを指定することにより、ステータスモニターキーのエントリーを取得し、更に、該ステータスモニターキーが属するプリンタドライバキーの下のキー群のうち、通知が含まれるキーのエントリーを取得し、通知有無の値が通知有を示していればイベント種別を取得し、該イベント種別をフィルター要素の値として含む登録要求を該サブスクリプションマネージャに送信し、
該サブスクリプションマネージャは、更に、該ホストの省電力モード移行時に、その移行イベントの発生に応答して、イベント通知登録解除処理要求を受信し、全てのサブスクリプションを該記憶手段から削除する、
ことを特徴とする、ネットワークにおけるイベント通知システム。
【請求項２】
該イベントジェネレータは該プロセッサに対しさらに、該状態変化がジョブ状態の変化である場合には、該イベントデータにジョブ識別子を含ませ、
該イベント通知マネージャは該プロセッサに対し、該イベントの生成に応答して、該イベントデータにジョブ識別子が含まれていれば、該通知先アドレスに、該ジョブ識別子をさらに含むイベントを通知させる、
ことを特徴とする請求項１に記載のイベント通知システム。
【請求項３】
該ジョブ処理要求元を示す値は、該ジョブ処理要求元のマシン識別子又はユーザ識別子であることを特徴とする請求項１又は２に記載のイベント通知システム。
【請求項４】
該ユーザ識別子は、オペレーティングシステムにログインしたときのユーザ識別子であることを特徴とする請求項３に記載のイベント通知システム。
【請求項５】
該画像形成装置は、プリンタ、スキャナ、ファクシミリ装置又は複合機であることを特徴とする請求項１乃至４のいずれか１つに記載のイベント通知システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホストと複数のデバイスとがネットワークで結合され、該ホストからデバイスに対する要求に応じて登録されたイベントの種類及び通知先アドレスに基づいて、デバイスで発生したイベントをホストに通知する、ネットワークにおけるイベント通知システムに関する。
【背景技術】
【０００２】
画像形成装置などのネットワークデバイスで発生したイベントを、ネットワークを介しホストに通知する仕様がＷＳ−Ｅｖａｎｔｉｎｇとして定められており、これによれば、登録要求したホストに対してのみ、要求に係る種類（Ｆｉｌｔｅｒ要素）のイベントを通知すればよく、また、特別な管理装置を介する必要がない。
【０００３】
しかし、特定の画像形成装置のジョブ状態の変化などの通知であっても、無関係な画像形成装置へ通知しなければならず、ネットワークに結合されたそれぞれの画像形成装置及びホストの処理負担が増大するとともにネットワークトラフィックも増大する。
【０００４】
そこで、下記特許文献１では、特定のイベントの種類については上記仕様の例外として、ジョブ処理を要求したホストに対してのみ、イベントを通知することにより、この問題を解決している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−２３３９９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところが、画像形成装置は、イベントが発生する毎に、イベントの種類と登録元アドレスとを対応させたサブスクリプションズテーブルのみならず、イベントの種類が特定監視先（ジョブ処理要求元）のみ通知すべきものであるか否かを判定するためのテーブルも検索しなければならないので、画像形成装置の処理負担を充分に軽減することができない。
【０００７】
このような問題は、画像形成装置以外のネットワークデバイスについても同様に生ずる。
【０００８】
本発明の目的は、このような問題点に鑑み、ジョブ処理要求元のみにイベントを通知する構成を含んでいても、デバイスの処理負担を軽減することが可能な、ネットワークにおけるイベント通知システムを提供することにある。
【課題を解決するための手段】
【０００９】
本発明の第１態様では、ホストと、それぞれプロセッサと記憶手段とを備え該ホストから依頼されたジョブを処理する複数の画像形成装置とがネットワークで結合され、
該画像形成装置の記憶手段に、該ホストから該画像形成装置に対する要求に基づきイベントの種類及び通知先アドレスを含むサブスクリプションが登録されたデータベースと、プロセッサを動作させるためのイベントジェネレータ及びイベント通知マネージャとが格納され、
該ホストの記憶手段に、該複数の画像形成装置に対応した複数のプリンタドライバと、ステータスモニターと、該複数のプリンタドライバのそれぞれについて、該ステータスモニターのオン／オフ情報が登録されたデータベースとしてのレジストリが格納された、ネットワークにおけるイベント通知システムにおいて、
該プリンタドライバには、印刷パラメータの設定時に、ステータスモニターのオン／オフとイベント種別毎の通知有無が設定可能となっており、該レジストリには、  プリンタドライバの設定情報であるキーの値がツリー形式で登録されており、
該イベントジェネレータは該プロセッサに対し、該画像形成装置内での状態変化を示す値を含むイベントデータを持つイベントを生成させ、該状態変化がジョブ状態の変化である場合には、該イベントデータにジョブ処理要求元を示す値を含ませ、
該イベント通知マネージャは該プロセッサに対し、該イベントの生成に応答して、該イベントデータにジョブ処理要求元を示す値が含まれていれば、該データベースに含まれているサブスクリプションのうち、そのイベントの種類に該状態変化の値が属し且つその通知先アドレスが該ジョブ処理要求元の値に対応するものについて、該通知先アドレスにイベントを通知させ、該イベントデータにジョブ処理要求元を示す値が含まれていなければ、該データベースに含まれているサブスクリプションのうち、そのイベントの種類に該状態変化の値が属するものについて、該通知先アドレスにイベントを通知させ、
該画像形成装置の記憶手段は、更に、サブスクリプションマネージャを含み、
該サブスクリプションマネージャは、
該データベースに、該イベントの種類と該通知先アドレスとともにタイムスタンプを登録し、現日時と前記タイムスタンプとの差が有効期限と等しいか大きければ、該通知先アドレスへ有効期限切れであることを通知し、
該ホストの省電力モードからの復帰時に、その復帰イベントの発生に応答して、該ホストのステータスモニターは、該レジストリに登録されている全てのプリンタドライバの該設定情報から、該ツリーのパスを指定することにより、ステータスモニターキーのエントリーを取得し、更に、該ステータスモニターキーが属するプリンタドライバキーの下のキー群のうち、通知が含まれるキーのエントリーを取得し、通知有無の値が通知有を示していればイベント種別を取得し、該イベント種別をフィルター要素の値として含む登録要求を該サブスクリプションマネージャに送信し、
該サブスクリプションマネージャは、更に、該ホストの省電力モード移行時に、その移行イベントの発生に応答して、イベント通知登録解除処理要求を受信し、全てのサブスクリプションを該記憶手段から削除する。
【００１０】
本発明によるイベント通知システムの第２態様では、第１態様において、該イベントジェネレータは該プロセッサに対しさらに、該状態変化がジョブ状態の変化である場合には、該イベントデータにジョブ識別子を含ませ、
該イベント通知マネージャは該プロセッサに対し、該イベントの生成に応答して、該イベントデータにジョブ識別子が含まれていれば、該通知先アドレスに、該ジョブ識別子をさらに含むイベントを通知させる。
【００１１】
本発明によるイベント通知システムの第３態様では、第１又は２態様において、該ジョブ処理要求元を示す値は、該ジョブ処理要求元のマシン識別子又はユーザ識別子である。
【００１２】
本発明によるイベント通知システムの第４態様では、第３態様において、該ユーザ識別子は、オペレーティングシステムにログインしたときのユーザ識別子である。
【発明の効果】
【００１３】
上記第１態様の構成によれば、イベントジェネレータにより、画像形成装置内での状態変化がジョブ状態の変化である場合にはジョブ処理要求元を示す値がイベントデータに設定され、この場合、イベント通知マネージャは、データベースに含まれているサブスクリプションのうち、そのイベントの種類に該状態変化の値が属し且つその通知先アドレスが該ジョブ処理要求元の値に対応するものについて、イベントを通知すればよいので、従来のようにイベント発生毎にイベントの種類が特定監視先のみ通知すべきものであるか否かを判定するためのテーブルを検索する必要が無く、画像形成装置の処理負担を軽減することができるという効果を奏する。
【００１４】
上記第２態様の構成によれば、該状態変化がジョブ状態の変化である場合、該イベント通知マネージャは、該イベントジェネレータで設定されたジョブ識別子をイベントに追加するだけで、より詳細なイベント情報を容易に通知することができるという効果を奏する。
【００１５】
上記第３態様の構成によれば、該ジョブ処理要求元を示す値がユーザ識別子である場合、同一ユーザが、第１のホストでジョブ処理を画像形成装置に要求した後、第２のホストでジョブ処理のイベント通知を受ける場合に、比較的簡単な構成で、該画像形成装置は両者に対してのみイベントを通知すればよく、これにより、ネットワークシステムにおける画像形成装置及びホストの処理負担を軽減することができるとともに、ネットワークトラフィック量を低減することができるという効果を奏する。
【００１６】
上記第４態様の構成によれば、上記第３態様において、ユーザはイベント通知を受けるための特別なユーザ識別子を入力する必要がなくなるという効果を奏する。
【００１７】
本発明の他の目的、特徴的な構成及び効果は、以下の説明を特許請求の範囲及び図面の記載と関係づけて読むことにより明らかになる。 
【図面の簡単な説明】
【００１８】
【図１】本発明の実施例１に係る、ネットワークにおけるイベント通知システムを示す概略ブロック図である。
【図２】図１のシステムを代表する１つのＰＣと１つの画像形成装置とのシステムのハードウェア構成を示す概略ブロック図である。
【図３】図１のシステムを代表する１つのＰＣと１つの画像形成装置とのシステムの概略機能ブロック図である。
【図４】レジストリに登録されているプリンタドライバの設定データの一部を示す説明図である。
【図５】（Ａ）〜（Ｃ）はそれぞれ、図３中のイベントデータベースに含まれるイベント種別テーブル、イベントテーブル及びサブスクリプションズテーブルの構成例を示す図である。
【図６】（Ａ）は図３中のサブスクライバによるイベント通知登録要求処理を示すフローチャートであり、（Ｂ）は図３中のサブスクリプションマネージャによる処理を示すフローチャートである。
【図７】図３中の、画像形成装置本体部での印刷ジョブの処理と通知マネージャとの関係を示す機能ブロック図である。
【図８】図３中の通知マネージャによる処理を示す概略フローチャートである。
【図９】図３中のサブスクライバによるイベント通知登録解除処理要求を示す概略フローチャートである。
【図１０】本発明の実施例２に係るサブスクリプションズテーブルの構成例を示す図である。
【実施例１】
【００１９】
図１は、本発明の実施例１に係る、ネットワークにおけるイベント通知システムを示す概略ブロック図である。
【００２０】
このシステムでは、ホストとしての（Ｎ＋１）台のＰＣ（パーソナルコンピュータ）１０〜１Ｎと、これらで使用されるデバイスとしての画像形成装置２０〜２２とが、ネットワーク３０で結合されている。
【００２１】
図２は、図１のシステムを代表するＰＣ１０と画像形成装置２０とのハードウェア構成を示す概略ブロック図である。
【００２２】
ＰＣ１０では、ＣＰＵ４１がインターフェイス４２を介してＰＲＯＭ４３、ＤＲＡＭ４４、補助記憶装置４５、ネットワークインターフェイス４６及び会話型入出力装置４７に結合されている。図２では、簡単化の為に、複数種のインターフェイスを１つのブロック４２で表している。
【００２３】
ＰＲＯＭ４３は、例えばフラッシュメモリであり、これにＢＩＯＳ（Basic Input/Output System）が格納されている。ＤＲＡＭ４４は、主記憶装置として用いられる。補助記憶装置４５には、ＯＳ（オペレーティングシステム）、各種ドライバ及びアプリケーション並びにデータが格納されている。該ドライバ及びアプリケーションには、図３に示すＰＣ１０内の後述のものが含まれる。ネットワークインターフェイス４６は、ネットワーク３０に結合されている。会話型入出力装置４７は、例えば入力装置としてのキーボード及びポインティングデバイスと、表示装置とを備えている。
【００２４】
画像形成装置２０では、ＣＰＵ２１がインターフェイス５２を介してＰＲＯＭ５３、ＤＲＡＭ５４、補助記憶装置５５、ネットワークインターフェイス５６、操作パネル５７、スキャナ５８、プリンタ５９及びファックスモデム５Ａに結合されている。図２では、簡単化の為に、複数種のインターフェイスを１つのブロック５２で表している。
【００２５】
ＰＲＯＭ５３には、ＢＩＯＳ、ＯＳ、各種ドライバ、及び、画像形成装置として機能させるための各種アプリケーションが格納されている。該アプリケーションには、図３に示す画像形成装置２０内の後述のものが含まれる。ＤＲＡＭ５４は、主記憶装置として用いられる。補助記憶装置５５には、印刷用データ、スキャナ５８で読み取った画像データ、後述の補助ファイル、及びファクシミリ受信データが保存される。ネットワークインターフェイス５６は、ネットワーク３０に結合されている。操作パネル５７は、入力部及び表示部を供えている。スキャナ５８は、画像ファイル生成のために用いられ、このファイルは印刷、ファクシミリ送信又はファイル送信のために用いられる。プリンタ５９は、プリントエンジン並びに用紙の給紙部、搬送部及び排紙部を備えている。
【００２６】
図１中の他のＰＣ及び画像形成装置についても上記同様である。
【００２７】
図３は、図１のシステムを代表するＰＣ１０と画像形成装置２０との概略機能ブロック図である。
【００２８】
ＰＣ１０にインストールされているプリンタドライバ６０Ａ、６０Ｂ及び６０Ｃはそれぞれ、図１の画像形成装置２０、２１及び２２に対するものである。文書作成アプリ６１で文書を作成して用紙サイズ、部数、後処理などの印刷パラメータをダイアログボックスで設定した後、印刷開始指示を与えると、印刷ジョブデータがＯＳのＧＤＩ（Graphics Device Interface）６２を介し、選択されているプリンタドライバ６０Ａに供給されて、画像形成装置２０が解釈可能なＰＤＬ（Page Description Language）データに変換され、通信部６３及びネットワーク３０を介して画像形成装置２０に送信される。
【００２９】
データベースとしてのレジストリ６４には、ＯＳ、デバイスドライバ及びアプリケーションの設定情報が、ツリー形式で登録されており、ツリーのパスを指定して、エントリー（キー）の値及びデータ型を読み出し／書き込み可能となっている。
【００３０】
図４は、レジストリ６４に登録されているプリンタドライバ６０Ａの登録データのうちのPrintersキーのパス"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers"の下に属する１つのプリンターノードの、さらに下のプリンタドライバノードの下の設定データの一部を示す。図４中、名前、種類、データはそれぞれエントリーの名前、データ型及び値である。
【００３１】
例えば、StatusMonitorキーは、データ型が数値（REG_DWORD）で、値が０(0x00000000)であることを示している。すなわち、画像形成装置２０で発生したイベントをＰＣ１０で表示させるステータスモニターが、オフに設定されていることを示している。IPAddressキーは、データ型が文字列(REG_SG)で値が"192.168.2.1"であり、画像形成装置２０のＩＰアドレスが１９２．１６８．２．１であることを示している。また、Notification1キーは、データ型が文字列の配列(REG_MULTI_SG)で値が｛"JobStatus", "1"｝であり、画像形成装置２０からＰＣ１０へのイベント通知の種別が"JobStatus"で通知有であることを示している。同様に、Notification2キーは、データ型が文字列の配列で値が｛"PrinterStatus", "0"｝であり、画像形成装置２０からＰＣ１０へのイベント通知の種別が"PrinterStatus"で通知無であることを示している。
【００３２】
プリンタドライバ６０Ａには、イベント通知設定部６５が含まれ、これにより、上記印刷パラメータの設定時に、ステータスモニターのオン／オフやイベント種別毎の上記通知有無を設定可能となっている。この点は、プリンタドライバ６０Ｂ及び６０Ｃについても同様である。
【００３３】
ＰＣ１０から画像形成装置２０〜２２のそれぞれに対するイベントの登録及びこれらからＰＣ１０へのイベントの通知は、ＷＳ−Ｅｖｅｎｔｉｎｇ仕様に基づいて行われる。すなわち、サブスクライバ６６から画像形成装置２０へのイベント通知登録要求（Subscribe要求）に基づき画像形成装置２０に登録されたイベントの種別及び通知先アドレスに従って、画像形成装置２０で発生したイベントがステータスモニター６７に通知されて表示される。
【００３４】
ステータスモニター６７は、イベントシンク６７０とＵＩ部６７１とを備え、イベントシンク６７０は、通知されたイベントをイベントログ部６８に記録するとともにＵＩ部６７１に通知する。ＵＩ部６７１はこれに応答して、通知内容をダイアログボックスにポップアップ表示させる。上記ログは、ＯＳのイベントビュアで閲覧することができる。
【００３５】
サブスクライバ６６及びイベントシンク６７０は、いずれも常駐プログラムであって、ＯＳがＷｉｎｄｏｗｓ（登録商標）である場合、Ｗｉｎｄｏｗｓサービスアプリケーションである。なお、イベントシンク６７０からＵＩ部６７１への通知は、イベントシンク６７０がイベントログ部６８にイベントを記録することにより発生するEntryWrittenイベントにより、間接的にＵＩ部６７１を呼び出す方式であってもよい。
【００３６】
サブスクライバ６６及びイベントシンク６７０は、ＯＳにより、ＯＳの起動時に起動され、ＯＳの終了時に終了される。
【００３７】
サブスクライバ６６は、ＳＯＡＰ処理部６９内のＳＯＡＰプロキシに対しＷｅｂサービスメソッドを呼び出すと、その内容が該プロキシでＸＭＬシリアライズされてＳＯＡＰメッセージに変換され、通信部６３内のＨＴＴＰ／ＴＣＰ／ＩＰプロトコルスタックを介し画像形成装置２０に送信される。画像形成装置２０からのイベント通知メッセージは、ネットワーク３０及び通信部６３を介しＳＯＡＰ処理部６９内のＳＯＡＰリスナでＸＭＬデシリアライズされ、イベント通知オブジェクトとしてイベントシンク６７０に伝達される。
【００３８】
画像形成装置２０では、印刷ジョブデータがネットワーク３０及び通信部７０内のＴＣＰ／ＩＰプロトコルスタックを介し画像形成装置本体部７１に供給されて、このデータがビットマップ展開され、そのラスタデータで感光ドラムが露光させて静電潜像が形成され、この像がトナーで現像され、用紙に転写され、定着されて排紙される。
【００３９】
一方、ＰＣ１０からのイベント通知登録要求のＳＯＡＰメッセージは、ネットワーク３０及び通信部７０内のＨＴＴＰ／ＴＣＰ／ＩＰプロトコルスタックを介しＳＯＡＰ処理部７２に供給されてＸＭＬデシリアライズされ、イベント通知登録要求オブジェクトとしてイベントソース７３のサブスクリプションマネージャ７３０に供給される。サブスクリプションマネージャ７３０は、これに応答して後述のように、イベントデータベース８０にイベント通知情報を登録する。
【００４０】
図５（Ａ）〜（Ｃ）はそれぞれ、このイベントデータベース８０に含まれるイベント種別テーブル８１、イベントテーブル８２及びサブスクリプションズテーブル８３の構成例を示す。イベント種別テーブル８１には、通知可能なイベント種別の名前とコードとが対応して登録されている。イベントテーブル８２には、イベントの名前とコードとが対応して登録されている。この例では、イベントコードは４桁であり、その上位２桁がイベントの種別コード、下位２桁がイベントのサブコードとなっている。すなわち、イベントコード０１００〜０１０４はイベント種別がJobStatusEventであり、イベントコード０２００〜０２０２はイベント種別がPrinterStatusEventであることを示している。
【００４１】
イベント通知登録要求のＳＯＡＰメッセージには、要求元のＩＰアドレスを含むReplyToアドレス（サブスクライバ６６のアドレス）と、要求元のＩＰアドレスを含むNotifyToアドレス（イベントシンク６７０のアドレス）と、要求先のＩＰアドレスを含むToアドレス（サブスクリプションマネージャ７３０のアドレス）と、Filter要素としてのイベント種別とが含まれている。これらアドレスにおけるＰＣ１０内及び画像形成装置２０内でのポート番号及びパスは、既定のものが用いられる。これらアドレスは、構成ファイル（不図示）に記述したものを用いてもよい。
【００４２】
サブスクリプションマネージャ７３０は、上記ＳＯＡＰメッセージの内容に基づき後述のようにしてSubscription（行）を作成して図５（Ｃ）に示すようなサブスクリプションズテーブル８３に登録する。
【００４３】
画像形成装置本体部７１でイベントが発生すると、そのコードがイベントソース７３の通知マネージャ７３１に供給される。通知マネージャ７３１はこれに応答して、サブスクリプションズテーブル８３から、このコードの上位２桁に一致するイベント種別コードを持つ行を読み出す毎に、後述の処理を行う。
【００４４】
図６は、サブスクライバ６６によるイベント通知登録要求（Subscribe）処理を示すフローチャートである。この処理は、ＯＳの起動時に、ＯＳにより呼び出されて実行される。ステップＳ０〜Ｓ３の処理は、全プリンタドライバのそれぞれについて行うループ処理である。以下、括弧内は図中のステップ識別符号である。
【００４５】
（Ｓ０）レジストリ６４に登録されている全てのプリンタドライバ設定情報から、すなわち、例えば上記Printersキーのパスの下に属する各プリンタのドライバに関するキー群のキーをスキャンして、StatusMonitorキーのエントリーを１つ取得する。なお、プリンタドライバキーからの相対パスが既知であれば、プリンタドライバキーを見つける毎にStatusMonitorキーのパスを直接指定してそのエントリーを取得してもよい。
【００４６】
（Ｓ１）ヒットした場合には、ステップＳ２へ進み、ヒットするものが無ければ、すなわち全プリンタドライバについて処理済みであれば、図６（Ａ）の処理を終了する。
【００４７】
（Ｓ２）StatusMonitorキーの値が１であればステップＳ３へ進み、０であればステップＳ０へ戻る。
【００４８】
（Ｓ３）このStatusMonitorキーが属するプリンタドライバキーの下のキー群のうち、"Notification"が含まれるキーのエントリーを取得し、上記通知有無の値が通知有を示していれば、すなわちその配列のインデックスが１の要素の値が１であれば、インデックスが０の要素の文字列をイベント種別として取得する。該種別をFilter要素の値として含むSubscribe要求のＳＯＡＰメッセージをサブスクリプションマネージャ７３０に送信する。
【００４９】
このＳＯＡＰメッセージには、ＰＣ１０のＩＰアドレスを含むサブスクライバ６６のアドレスが、ReplyToアドレスとして、該ＩＰアドレスを含むイベントシンク６７０のアドレスが、NotifyToアドレスとして、前記キー群に含まれるIPAddressキーの値をイベント通知登録要求先ＩＰアドレスとして含む画像形成装置２０のサブスクリプションマネージャ７３０のアドレスが、Toアドレスとして含まれている。
【００５０】
このステップＳ３の処理は、"Notification"が含まれるキーのそれぞれについて行う。次にステップＳ０へ戻る。
【００５１】
図６（Ｂ）は、上記Subscribe要求に対するサブスクリプションマネージャ７３０の処理を示す概略フローチャートである。
【００５２】
（Ｓ１０）イベント通知登録要求であればステップＳ１１へ進み、そうでなければステップＳ１２へ進む。
【００５３】
（Ｓ１１）サブスクリプションマネージャ７３０は、イベント種別テーブル８１を参照して、上記Subscribe要求メッセージに含まれるイベント種別をコードに変換し、サブスクリプションＩＤを生成し、現日時をタイムスタンプとして取得し、有効フラグを‘１’とし、これらの値と要求元ＩＰアドレスとを含む行をSubscriptionとして、サブスクリプションズテーブル８３に登録し、このサブスクリプションＩＤを含む応答メッセージを、サブスクライバ６６に返信して図６（Ｂ）の処理を終了する。
【００５４】
サブスクライバ６６は、後述の図９の処理等で使用するため、このサブスクリプションＩＤを記憶しておく。
【００５５】
（Ｓ１２）要求に応じた他の処理を行って図６（Ｂ）の処理を終了する。
【００５６】
図７は、画像形成装置本体部７１での印刷ジョブの処理と通知マネージャ７３１との関係を示す機能ブロック図である。
【００５７】
通信部７０から受け取った印刷ジョブデータは図２のＤＲＡＭ４４に格納され、そのヘッダには、マシンＩＤが含まれている。このマシンＩＤは、ＰＣ１０において上記プリンタドライバにより付加されたものである。この例では、マシンＩＤは、ＰＣ１０のＩＰアドレスであるとする。このＩＰアドレスは、ＨＴＴＰのヘッダに付与されている送信元ＩＰアドレスであってもよい。ジョブ管理部７１０は、ジョブを受け付けると、ジョブＩＤを付与する。このジョブＩＤは、画像形成装置２０のマシンＩＤを付加することにより、ＰＣ１０で同時期に他の画像形成装置に要求したジョブのＩＤと重ならないようにしてもよい。
【００５８】
印刷処理部７１１は、印刷ジョブ状態の変化時である処理開始時、印刷停止時、印刷一時停止時、印刷再開時及び印刷完了時のそれぞれ時点において、イベントジェネレータ７１２を呼び出す。イベントジェネレータ７１２は、このようなジョブ状態の変化の場合、図５（Ｂ）に示すイベントコード０１００〜０１０４のうち前記時点に対応したものと、上記のマシンＩＤとジョブＩＤとを、構造体のデータ又はクラスのインスタンスであるEventArgs（イベントデータ）７１３の値として設定するとともに、イベントハンドラとしての通知マネージャ７３１を呼び出す。イベントジェネレータ７１２は、他の状態の変化の場合、その変化を示すイベントコードと、上記マシンＩＤ及びジョブＩＤをＮＵＬＬ値にしたものとを、EventArgs７１３の値として設定するとともに、イベントハンドラとしての通知マネージャ７３１を呼び出す。
【００５９】
通知マネージャ７３１はこれらのそれぞれの呼び出しに応答して、図８に示す処理を開始する。
【００６０】
（Ｓ２０）EventArgs７１２の内容を取得する。次に、サブスクリプションズテーブル８３の各行について、以下のステップＳ２１〜Ｓ２Ａの処理を実行する。
【００６１】
（Ｓ２１）サブスクリプションズテーブル８３から１行のデータ（サブスプリクション）を読み出す。
【００６２】
（Ｓ２２）この行の有効フラグが‘１’であればステップＳ２３へ進み、そうでなければステップＳ２Ａへ進む。
【００６３】
（Ｓ２３）現日時と前記行に含まれるタイムスタンプとの差が有効期限より小さければ、ステップＳ２４へ進み、そうでなければステップＳ２９へ進む。
【００６４】
（Ｓ２４）上記行のイベント種別コードが、EventArgs７１２のイベントコードの上位２桁であるイベント種別コードと一致すれば、ステップＳ２５へ進み、そうでなければステップＳ２Ａへ進む。
【００６５】
（Ｓ２５）EventArgs７１２にマシンＩＤが含まれていれば、即ち、マシンＩＤがＮＵＬＬでなければ、ステップＳ２６へ進み、含まれていなければステップＳ２８へ進む。
【００６６】
（Ｓ２６）このマシンＩＤが、上記行のＩＰアドレスに一致すれば、ステップＳ２７へ進み、そうでなければ、ステップＳ２Ａへ進む。
【００６７】
（Ｓ２７）上記行に含まれるＩＰアドレスのホストのイベントシンク６７０へ、イベントコードに対応したイベントが発生したことを通知するための情報を、ＳＯＡＰ処理部７２に供給する。
【００６８】
ＳＯＡＰ処理部７２はこの情報をＸＭＬのＳＯＡＰメッセージに変換し（シリアライズし）、通信部７０及びネットワーク３０を介してＰＣ１０に送信する。次にステップＳ２Ａへ進む。
【００６９】
この情報には、EventArgs７１２のイベントコードの上位２桁に対応したイベント種別の名前と、該イベントコードに対応したイベントの名前と、EventArgs７１２のジョブＩＤと、現日時であるイベント発生日時とが含まれている。
【００７０】
前記メッセージは、ＳＯＡＰ処理部６９でオブジェクトに変換されて、イベントシンク６７０へ伝達され、イベントログ部６８に記録されると共に、ＵＩ部６７１でダイアログボックスにその内容がポップアップ表示される。
【００７１】
（Ｓ２８）ステップＳ２７と同じ処理を行う。但し、通知内容にはジョブＩＤが含まれない。
【００７２】
（Ｓ２９）サブスクリプションマネージャ７３０を介して、上記行の有効フラグを‘０’とし、この行に含まれるＩＰアドレスのホストのサブスクライバ６６へ有効期限が切れたことを通知するための情報を、ＳＯＡＰ処理部７２に供給する。
【００７３】
この通知がサブスクライバ６６へ伝達されると、サブスクライバ６６は、この通知の内容を、ＵＩ部６７１を介しポップアップ表示させる。ユーザは、イベント通知設定部６５及びサブスクライバ６６を介し、サブスクリプションマネージャ７３０に対しRenew要求することにより、サブスクリプションマネージャ７３０を介して、有効フラグを‘１’にさせるとともにタイムスタンプを現時刻で更新させることができる。
【００７４】
（Ｓ２Ａ）サブスクリプションズテーブル８３の最終行でなければ、ステップＳ２１へ戻り、最終行であれば図８の処理を終了する。
【００７５】
図９は、サブスクライバ６６によるイベント通知登録解除処理要求を示す概略フローチャートである。この処理は、ＯＳの動作終了時に、ＯＳにより呼び出されて実行される。ステップＳ３０〜Ｓ３２の処理は、上述のように記憶している全サブスクリプションのそれぞれについて行うループ処理である。
【００７６】
（Ｓ３０）上述のように記憶している全サブスクリプションＩＤのうちの１つを読み出す。
【００７７】
（Ｓ３１）読み出すものがなかったら図９の処理を終了し、そうでなければステップＳ３２へ進む。
【００７８】
（Ｓ３２）このサブスクリプションＩＤを含むイベント通知登録解除要求（Unsubscribe要求）のＳＯＡＰメッセージを、サブスクリプションマネージャ７３０に送信し、このサブスクリプションＩＤを記憶から削除し、ステップＳ３０へ戻る。
【００７９】
サブスクリプションマネージャ７３０は、この要求に応答して、サブスクリプションズテーブル８３から該当行を削除する。
【００８０】
図１中の他のＰＣ及び画像形成装置についても上記同様である。
【００８１】
本実施例１によれば、イベントジェネレータ７１２により、画像形成装置１０内での状態変化がジョブ状態の変化である場合、ジョブ処理要求元のマシンＩＤがイベントデータとしてのEventArg７１２に設定され、この場合、イベント通知マネージャ７３１は、イベントデータベース８０のサブスクリプションズテーブル８３に含まれているサブスクリプションのうち、そのイベントの種類に該状態変化の値が属し且つその通知先アドレスが該マシンＩＤに対応するものについて、イベントを通知すればよいので、従来のようにイベント発生毎にイベントの種類が特定監視先のみ通知すべきものであるか否かを判定するためのテーブルを検索する必要が無く、画像形成装置１０の処理負担を軽減することができるという効果を奏する。
【００８２】
また、該状態変化がジョブ状態の変化である場合、イベント通知マネージャ７３１は、イベントジェネレータ７１２で設定されたジョブＩＤを通知内容に追加するだけで、より詳細なイベント情報を容易に通知することができるという効果を奏する。
【００８３】
さらに、ＯＳの起動時にサブスクライバ６６を起動させることにより、レジストリ６４が参照されて、ユーザが希望しているイベント通知登録が画像形成装置に対し自動的に行われるとともに、該画像形成装置に対する処理要求後直ちに該画像形成装置でイベントが発生してもこれをＰＣへ通知することができるという効果を奏する。
【００８４】
また、ＯＳの終了時にサブスクライバ６６により、通知登録要求が行われている画像形成装置に対しイベント通知登録解除要求が行われるので、前記効果を維持しつつ、サブスクリプションマネージャ７３０の負荷を軽減することができるという効果を奏する。
【実施例２】
【００８５】
実施例２では、ＰＣ１０の省電力モード移行時、例えばスタンバイモード又はスリープモードへの移行時に、その移行イベントの発生に応答して、ＰＣ１０で図９の処理を行い、省電力モードからの復帰時に、その復帰イベントの発生に応答して、ＰＣ１０及び画像形成装置２０でそれぞれ図６（Ａ）及び（Ｂ）の処理を行う。
【００８６】
図１０は、本実施例２で用いられるサブスクリプションズテーブル８３Ａの構成を示す。このテーブル８３Ａは、ユーザＩＤ（UserID）の列が追加されている点で、図５（Ｃ）のサブスクリプションズテーブル８３と異なっている。これに対応して、図７のEventArgs７１２のマシンＩＤ並びに図８のステップＳ２５及びＳ２６のマシンＩＤ代わりに、ユーザＩＤが用いられ、ステップＳ２６では、EventArgs７１２のユーザＩＤとサブスクリプションズテーブル８３Ａの注目行のユーザＩＤとが比較される。他の構成は、実施例１と同一である。
【００８７】
ユーザＩＤについては、図６（Ａ）のステップＳ３において、イベント種別がジョブに関するもの（本実施例ではJobStatusEbent）である場合、ＯＳにログインしたときのユーザＩＤがレジストリ６４から取得され、これもFilter要素の１つとしてSubscribe要求のＳＯＡＰメッセージに含まれる。また、図６（Ｂ）のステップＳ１１では、このユーザＩＤもFilter要素としてサブスクリプションズテーブル８３Ａに記入される。
【００８８】
以上の構成において、例えば、ユーザがデスクトップコンピュータとノートパソコンとを同一ユーザＩＤ（ＯＳのログイン時のユーザＩＤ）で利用しているとする。ノートパソコンについては、ＯＳがブートした後に、ＵＩ部６７１が自動起動されるように設定しておく。
【００８９】
このような条件の下で、ユーザは、デスクトップパソコンのＯＳを起動させる。これにより、図６（Ａ）及び（Ｂ）の処理が実行されて、サブスクリプションズテーブル８３ＡのSubscriptionID＝１の行が登録される。次いで画像形成装置２０に対し印刷ジョブの処理を要求した後、会議等の為に移動して、ノートパソコンのＯＳを起動させる。これにより、図６（Ａ）及び（Ｂ）の処理が実行されて、サブスクリプションズテーブル８３ＡのSubscriptionID＝２の行が登録される。その後、印刷処理が完了して図８の処理が実行されると、このユーザの両パソコンに対してのみ、上記印刷ジョブの完了が通知されることになる。なお、この通知は、ノートパソコンのＯＳの起動が、この印刷ジョブの処理を要求する前であっても、行われる。
【００９０】
このような動作により、ネットワークシステムにおける画像形成装置及びＰＣの処理負担を軽減することができるとともに、ネットワークトラフィック量を低減することができるという効果を奏する。
【００９１】
また、Filter用要求元としてＯＳログイン時のユーザＩＤが自動的に用いられるので、ユーザはイベント通知を受けるための特別なユーザＩＤを入力する必要がないという効果を奏する。
【００９２】
以上において、本発明の好適な実施例を説明したが、本発明には他にも種々の変形例が含まれ、上記複数の実施例で述べた構成要素の他の組み合わせ、各構成要素の機能を実現する他の構成を用いたもの、当業者であればこれらの構成又は機能から想到するであろう他の構成も、本発明に含まれる。
【００９３】
例えば、上記実施例ではJobStatusEventのジョブが印刷ジョブの場合を説明したが、印刷ジョブのPrintJobStatusEventやスキャンジョブのScanJobStatusEventなどのそれぞれを用い、それぞれを上述のように処理する構成であってもよい。
【００９４】
また、実施例２において、ユーザＩＤの替わりにホスト名などのマシンＩＤを用いた構成であってもよい。
【００９５】
また、ステップＳ０及びＳ３０で用いるデータベースはレジストリ６４に限定されず、他のデータベースであってもよいことは勿論である。
【００９６】
さらに、イベントシンク６７０は、プリンタドライバ起動時に起動し、プリンタドライバの動作終了時に終了する構成であってもよい。また、サブスクライバ６６とイベントシンク６７０とを１つの常駐アプリケーションとし、ＯＳ起動時に起動する構成であってもよい。
【００９７】
また、ネットワークデバイスは、複合機に限定されず、プリンタ、スキャナ、ファクシミリ装置又は他のデバイスであってもよい。
【符号の説明】
【００９８】
１０〜１Ｎ  ＰＣ
２０〜２２  画像形成装置
３０  ネットワーク
４１、５１  ＣＰＵ
４２、５２  インターフェイス
４３、５３  ＰＲＯＭ
４４、５４  ＤＲＡＭ
４５、５５  補助記憶装置
４６、５６  ネットワークインターフェイス
４７  会話型入出力装置
５７  操作パネル
５８  スキャナ
５９  プリンタ
５Ａ  ファックスモデム
６０Ａ〜６０Ｃ  プリンタドライバ
６１  文書作成アプリ
６２  ＧＤＩ
６３、７０  通信部
６４  レジストリ
６５  イベント通知設定部
６６  サブスクライバ
６７  ステータスモニター
６７０  イベントシンク
６７１  ＵＩ部
６８  イベントログ部
６９、７２  ＳＯＡＰ処理部
７１  画像形成装置本体部
７１０  ジョブ管理部
７１１  印刷処理部
７１２  イベントジェネレータ
７１３  EventArgs
７３  イベントソース
７３０  サブスクリプションマネージャ
７３１  通知マネージャ
８０  イベントデータベース
８１  イベント種別テーブル
８２  イベントテーブル
８３、８３Ａ  サブスクリプションズテーブル
【図１】
0005450678.tif 000002
【図２】
0005450678.tif 000003
【図３】
0005450678.tif 000004
【図４】
0005450678.tif 000005
【図５】
0005450678.tif 000006
【図６】
0005450678.tif 000007
【図７】
0005450678.tif 000008
【図８】
0005450678.tif 000009
【図９】
0005450678.tif 000010
【図１０】
0005450678.tif 000011