(57)【要約】【課題】自装置で発生するイベント（状態変化）を監視し、発生したイベントに応じたイベント情報をクライアントへ通知する情報処理装置において、イベント情報の通知に関して、ネットワークの負荷を軽減でき、イベント情報を通知できるライアントに対して円滑に通知を行うことができる情報処理装置および情報処理プログラムを提供すること。【解決手段】ＭＦＰ１は、ＭＦＰ１の装置内でイベント（状態変化）が発生した場合に、ＰＣ３１に対して、イベント情報を通知する。イベント情報の通知が行えない場合は、そのＰＣ３１からのイベント情報の通知の要求を示す端末情報のＩＰアドレスとポート番号とが一致する全ての端末情報を、通知端末リストメモリ１３ａから削除する。よって、通知が完了しない通知処理の発生を抑制でき、イベント情報を通知可能なＰＣ３１に対して、円滑にイベント情報を通知することができる。【選択図】図８
2008250965.tif 000002
【特許請求の範囲】
【請求項１】
自装置の状態変化により発生する複数種類のイベントを監視し、発生したイベントに応じたイベント情報をクライアントへ通知する情報処理装置において、
クライアントから、前記イベント情報の通知の要求を受信する要求受信手段と、
前記要求受信手段により前記要求を受信すると、そのイベント情報を通知する通知先として、前記要求受信手段の要求元であるクライアントを特定し、前記要求受信手段により受信した要求ごとに異なる特定情報を記憶する記憶手段と、
イベントが発生した場合、前記記憶手段に記憶された特定情報により特定されるクライアントへ、そのイベントに応じたイベント情報を通知する通知手段と、
その通知手段によるイベント情報の通知が失敗した場合に、その特定情報を前記記憶手段から削除する第１削除手段と、
その第１削除手段により削除される特定情報と同一のクライアントを特定する他の特定情報を前記記憶手段から削除する第２削除手段とを備えていることを特徴とする情報処理装置。
【請求項２】
前記特定情報には、クライアントを識別するための第１識別情報とクライアントの何れのアプリケーションにイベント情報を通知するかを識別するための第２識別情報とが含まれており、
前記第２削除手段は、前記他の特定情報として、前記第1削除手段により削除される特定情報と、第１識別情報が同一かつ前記第２識別情報が同一のクライアントを特定する特定情報を前記記憶手段から削除することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記他の特定情報として、前記第１削除手段により削除される特定情報と、前記第１識別情報が同一であり、且つ、前記第２識別情報が異なる場合に、前記他の特定情報により特定されるクライアントとデータ通信が可能か否かを判定する判定手段と、
その判定手段により前記他の特定情報により特定されるクライアントとデータ通信ができないと判定された場合に、前記第２削除手段は、前記他の特定情報を前記記憶手段から削除することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記通知手段は、予め決められた複数回数まで、前記イベント情報を繰り返して通知することが可能であり、
前記複数回数の通知を行った結果、その通知が一度も成功しなかった場合に、その通知手段によるイベント情報の通知が失敗したと判断することを特徴とする請求項１から３のいずれかに記載の情報処理装置。
【請求項５】
自装置の状態変化により発生する複数種類のイベントを監視し、発生したイベントに応じたイベント情報を記憶手段に記憶された特定情報により特定されるクライアントへ通知するコンピュータに実行させる情報処理プログラムにおいて、
クライアントから、前記イベント情報の通知の要求を受信する要求受信ステップと、
前記要求受信ステップにより前記要求を受信すると、そのイベント情報を通知する通知先として、前記要求受信ステップの要求元であるクライアントを特定し、前記要求受信ステップにより受信した要求ごとに異なる特定情報を記憶手段に記憶させる記憶ステップと、
イベントが発生した場合、前記記憶手段に記憶された特定情報により特定されるクライアントへ、そのイベントに応じたイベント情報を通知する通知ステップと、
その通知ステップによるイベント情報の通知が失敗した場合に、その特定情報を前記記憶手段から削除する第１削除ステップと、
その第１削除ステップにより削除される特定情報と同一のクライアントを特定する他の特定情報を前記記憶手段から削除する第２削除ステップとをコンピュータに実行させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自装置で発生するイベント（状態変化）を監視し、発生したイベントに応じたイベント情報をクライアントへ通知する情報処理装置および情報処理プログラムに関するものである。
【背景技術】
【０００２】
従来より、自装置で発生するイベント（状態変化）を監視し、発生したイベントに応じたイベント情報を複数のクライアントへ通知する情報処理装置が知られている。特許文献１に記載されている情報処理装置は、自装置でイベントが発生した場合に、各クライアントが必要とするイベントのイベント情報を、各クライアントにそれぞれ通知するものである。このため、当該情報処理装置（自装置）では、予め、各々のイベントと、各クライアントとを関連づけて記憶し、自装置においてイベントが発生した場合は、発生したイベントに関連づけられたクライアントに対して、その発生したイベントのイベント情報を通知するように構成されている。
【特許文献１】特開２００６−８７０５８号公報（００８４段落など）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上述した情報処理装置（特許文献１）では、イベント情報を通知した際に、通信不能によりクライアントに正常にイベントが通知できない場合がある。しかしながら、イベント情報の通知は、イベントと関連付けて記憶されたクライアントの情報に基づき行われているため、その後の通知においても、イベントが正常に通知できないにもかかわらず、そのクライアントに対してもイベントが発生するたびに通知が行われる。よって、通信不能なクライアントへの通知処理のために、ネットワークに負荷がかかり、通信可能なクライアントへのイベント情報の通知に遅延が生じる場合がある。
【０００４】
本発明は、上述した問題点を解決するためになされたものであり、自装置で発生するイベントを監視し、発生したイベントに応じたイベント情報をクライアントへ通知する情報処理装置において、イベント情報の通知に関して、ネットワークの負荷を軽減でき、イベント情報を通知できるクライアントに対して円滑に通知を行うことができる情報処理装置および情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
この目的を達成するために、請求項１記載の情報処理装置は、自装置の状態変化により発生する複数種類のイベントを監視し、発生したイベントに応じたイベント情報をクライアントへ通知するものであり、クライアントから、前記イベント情報の通知の要求を受信する要求受信手段と、前記要求受信手段により前記要求を受信すると、そのイベント情報を通知する通知先として、前記要求受信手段の要求元であるクライアントを特定し、前記要求受信手段により受信した要求ごとに異なる特定情報を記憶する記憶手段と、イベントが発生した場合、前記記憶手段に記憶された特定情報により特定されるクライアントへ、そのイベントに応じたイベント情報を通知する通知手段と、その通知手段によるイベント情報の通知が失敗した場合に、その特定情報を前記記憶手段から削除する第１削除手段と、その第１削除手段により削除される特定情報と同一のクライアントを特定する他の特定情報を前記記憶手段から削除する第２削除手段とを備えている。
【０００６】
請求項２記載の情報処理装置は、請求項１記載の情報処理装置において、前記特定情報には、クライアントを識別するための第１識別情報とクライアントの何れのアプリケーションにイベント情報を通知するかを識別するための第２識別情報とが含まれており、前記第２削除手段は、前記他の特定情報として、前記第1削除手段により削除される特定情報と、第１識別情報が同一かつ前記第２識別情報が同一のクライアントを特定する特定情報を前記記憶手段から削除する。
【０００７】
請求項３記載の情報処理装置は、請求項２記載の情報処理装置において、前記他の特定情報として、前記第１削除手段により削除される特定情報と、前記第１識別情報が同一であり、且つ、前記第２識別情報が異なる場合に、前記他の特定情報により特定されるクライアントとデータ通信が可能か否かを判定する判定手段と、その判定手段により前記他の特定情報により特定されるクライアントとデータ通信ができないと判定された場合に、前記第２削除手段は、前記他の特定情報を前記記憶手段から削除する。
【０００８】
請求項４記載の情報処理装置は、請求項１から３のいずれかに記載の情報処理装置において、前記通知手段は、予め決められた複数回数まで、前記イベント情報を繰り返して通知することが可能であり、前記複数回数の通知を行った結果、その通知が一度も成功しなかった場合に、その通知手段によるイベント情報の通知が失敗したと判断する。
【０００９】
請求項５記載の情報処理プログラムは、自装置の状態変化により発生する複数種類のイベントを監視し、発生したイベントに応じたイベント情報を記憶手段に記憶された特定情報により特定されるクライアントへ通知するコンピュータに実行させるプログラムであって、クライアントから、前記イベント情報の通知の要求を受信する要求受信ステップと、前記要求受信ステップにより前記要求を受信すると、そのイベント情報を通知する通知先として、前記要求受信ステップの要求元であるクライアントを特定し、前記要求受信ステップにより受信した要求ごとに異なる特定情報を記憶手段に記憶させる記憶ステップと、イベントが発生した場合、前記記憶手段に記憶された特定情報により特定されるクライアントへ、そのイベントに応じたイベント情報を通知する通知ステップと、その通知ステップによるイベント情報の通知が失敗した場合に、その特定情報を前記記憶手段から削除する第１削除ステップと、その第１削除ステップにより削除される特定情報と同一のクライアントを特定する他の特定情報を前記記憶手段から削除する第２削除ステップとをコンピュータに実行させる。
【発明の効果】
【００１０】
請求項１記載の情報処理装置によれば、要求受信手段によってクライアントからのイベント情報の通知の要求が受信され、要求受信手段により受信された要求ごとに異なる特定情報が、記憶手段に記憶される。イベントが発生した場合に、通知手段によって記憶手段に記憶された特定情報により特定されるクライアントへ、そのイベントに応じたイベント情報が通知される。ここで、通知手段によるイベント情報の通知が失敗した場合に、第１削除手段によってその特定情報が記憶手段から削除される。また、第１削除手段により削除される特定情報と同一のクライアントを特定する他の特定情報が、第２削除手段によって記憶手段から削除される。すなわち、今後イベント情報の通知を行っても通知に失敗すると予測されるクライアントに関する特定情報は、第１削除手段および第２削除手段によって予め記憶手段から削除されている。したがって、イベントが発生してもそのイベント情報の通知は行われず、そのイベント情報の通知が失敗することを未然に防止する。それにより、ネットワークの負荷を軽減でき、イベント情報を通知できるクライアントに対して円滑に通知を行うことができるという効果がある。
【００１１】
請求項２記載の情報処理装置によれば、請求項１記載の情報処理装置の奏する効果に加え、特定情報には、クライアントを識別するための第１識別情報とクライアントの何れのアプリケーションにイベント情報を通知するかを識別するための第２識別情報とが含まれており、第１削除手段により削除される特定情報と第１識別情報が同一、かつ、第２識別情報が同一のクライアントを特定する特定情報が、第２削除手段によって他の特定情報として削除される。イベント情報の通知は、第１識別情報および第２識別情報に基づくクライアントに対して行われているため、したがって、第１削除手段により削除される特定情報と両者が一致するクライアントとの通信は不能であると考えられる。したがって、通信不能なクライアントに対しては、イベントが発生してもそのイベント情報の通知は行われず、そのイベント情報の通知が失敗することを未然に防止する。それにより、ネットワークの負荷を軽減でき、イベント情報を通知できるクライアントに対して円滑に通知を行うことができるという効果がある。
【００１２】
請求項３記載の情報処理装置によれば、請求項２記載の情報処理装置の奏する効果に加え、判定手段によって、他の特定情報が第１削除手段により削除される特定情報と第１識別情報が同一であり、且つ、第２識別情報が異なる場合に、他の特定情報により特定されるクライアントとデータ通信が可能か否が判定される。判定手段によって他の特定情報により特定されるクライアントとデータ通信ができないと判定された場合に、第２削除手段は、他の特定情報を記憶手段から削除するので、データ通信ができないクライアントにおける動作不能になっている他のアプリケーションを特定する端末情報が削除される。すなわち、第１識別情報が同一であり且つ第２識別情報が異なるクライアントは、通信できる可能性もあるため、そのようなクライアントに対する削除処理を未然に防止するとともに、通信不能なクライアントに対しては、イベント情報の通知を行わない。それにより、ネットワークの負荷を軽減でき、イベント情報を通知できるクライアントに対して円滑に通知を行うことができるという効果がある。
【００１３】
請求項４記載の情報処理装置によれば、請求項１から３のいずれかに記載の情報処理装置の奏する効果に加え、通知手段によって複数回数の通知が行われた結果、その通知が一度も成功しなかった場合に、その通知手段によるイベント情報の通知が失敗したと判断されるので、通知可能であるが一時的な障害などにより通知できないクライアントを特定する特定情報が、記憶手段から削除されることを抑制することができるという効果がある。
【００１４】
請求項５記載の情報処理プログラムによれば、要求受信ステップによってクライアントからのイベント情報の通知の要求が受信され、要求受信ステップにより受信された要求ごとに異なる特定情報が、記憶手段に記憶される。イベントが発生した場合に、通知ステップによって記憶手段に記憶された特定情報により特定されるクライアントへ、そのイベントに応じたイベント情報が通知される。ここで、通知ステップによるイベント情報の通知が失敗した場合に、第１削除ステップによってその特定情報が記憶手段から削除されるので、通知が完了しないイベント情報の通知処理の発生を抑制でき、イベント情報を通知できるクライアントに対して円滑に通知を行うことができるという効果がある。また、第１削除ステップにより削除される特定情報と同一のクライアントを特定する他の特定情報が、第２削除ステップによって記憶手段から削除されるので、通知に失敗したクライアントに対する、通知が完了しないイベント情報の通知処理の発生を抑制でき、イベント情報を通知できるクライアントに対して円滑に通知を行うことができるという効果がある。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の好ましい実施形態について、添付図面を参照して説明する。図１は、本発明の実施形態における多機能周辺装置（以下、「ＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）」と称す）１とパーソナルコンピュータ（以下、「ＰＣ」と称す）３１との外観構成を示した斜視図である。このＭＦＰ１は、プリンタ機能、スキャナ機能、及び、コピー機能などの各種機能を有している。
【００１６】
図１は、ＭＦＰ１と複数のＰＣ３１（端末Ａ，Ｂ）とが、ＬＡＮ２００を介して接続されている状態を示している。ＭＦＰ１と各ＰＣ３１（端末Ａ，Ｂ）とは、それぞれが有するＬＡＮインターフェイス１９，３６（図２参照）を介してお互いにデータ通信が可能に構成され、ユーザは、何れのＰＣ３１からでもＭＦＰ１の各種機能を使用することができる。例えば、ユーザは、あるＰＣ３１からＭＦＰ１へ印刷データを送信して、その印刷データをプリンタ２１により記録用紙に印刷したり、原稿をスキャナ２０に読み取らせて画像データを作成し、ＭＦＰ１からＰＣ３１へ送信することができる。
【００１７】
このＭＦＰ１では、装置内で発生する様々な状態変化（例えば、各種エラー、印刷の完了など）がイベントとして検出される。具体的には、ＭＦＰ１の装置内には各種センサ（図２参照、２０ａ，２１ａ，２１ｂ）が設けられており、各種センサ（２０ａ，２１ａ，２１ｂ）からは所定の状態を示す信号（例えば、インクが無い場合はハイ信号、それ以外はロウ信号）が出力されている。そして、ＣＰＵ１１（図２参照）により、所定間隔（例えば、数ミリ秒）で各種センサ（２０ａ，２１ａ，２１ｂ）の出力状態が監視されており、センサから出力される信号が変化した場合に、イベントが発生したと検出される。
【００１８】
原稿カバー体８の前方には、横長形状の操作パネル６が設けられており、操作キー１５、ＬＣＤ１６、スピーカ１７（図示しない）とを具備する。利用者は、操作キー１５の各種キーを押下することで、主電源のオン／オフや、各機能の切り替えなどの操作を行うことができる。
【００１９】
ＬＣＤ１６には、操作メニューや操作手順などの説明、実行中の処理の状態、装置の状態などが表示される。ＭＦＰ１においてイベント（図５（ｂ）参照）が発生した場合は、発生したイベントの内容がＰＣ３１に対して通知されると共に、ＬＣＤ１６にもその内容が表示される。
【００２０】
次に、図２を参照して、ＭＦＰ１の電気的構成について説明する。図２は、ＭＦＰ１とＰＣ３１との電気的構成を示すブロック図である。ＭＦＰ１は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、操作キー１５、ＬＣＤ１６、スピーカ１７、計時回路１８、ＬＡＮインターフェイス１９、スキャナ２０、プリンタ２１が設けられ、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３は、バスライン２６を介してお互いに接続されている。
【００２１】
また、ＭＦＰ１の操作キー１５、ＬＣＤ１６、スピーカ１７、計時回路１８、スキャナ２０、プリンタ２１、バスライン２６は、入出力ポート２７を介してお互いに接続されている。計時回路１８は、現在の日時を刻む内部時計を有している。
【００２２】
ＭＦＰ１のＣＰＵ１１は、ＲＯＭ１２やＲＡＭ１３に記憶される固定値やプログラム或いは、ＭＦＰ１が有している各機能の制御や、ＬＡＮインターフェイス１９を介して送受信される各種信号に従って、入出力ポート２７と接続された各部を制御するものである。ＲＯＭ１２は、ＭＦＰ１で実行される制御プログラムなどを格納した書換不能なメモリであり、図６〜１０のフローチャートに示す情報処理プログラム（特許請求の範囲に記載の情報処理プログラムの一例）は、このＲＯＭ１２に格納されている。
【００２３】
ＲＡＭ１３は、書き替え可能な揮発性のメモリであり、ＭＦＰ１の各操作の実行時に各種のデータを一時的に記憶するためのメモリである。ＲＡＭ１３には、装置内でイベントが発生した場合に、発生したイベントのイベント名や、現在どのような状態が生じているかなどの内容を含むイベント情報を、何れのＰＣ３１へ通知するかを示す端末情報を記憶する通知端末リストメモリ１３ａが設けられている。
【００２４】
通知端末リストメモリ１３ａは、ＰＣ３１から通知されるサブスクライブ要求（図４（ｂ）参照）から抽出した情報（ＩＤ情報、ＵＲＬ情報、有効期限情報（実時間として抽出される））を端末情報として、そのサブスクライブ要求に含まれるイベント種類毎（図５（ａ）参照）に分類して記憶するためのメモリである。通知端末リストメモリ１３ａには、ステータスイベント通知端末リスト１３ａ１と、エレメントイベント通知端末リスト１３ａ２と、ジョブイベント通知端末リスト１３ａ３と、が設けられている。
【００２５】
次に、ＰＣ３１の電気的構成について説明する。ＰＣ３１は、ＣＰＵ３２、ＲＯＭ３３、ＲＡＭ３４、ハードディスク３５、ＬＡＮインターフェイス３６、入力装置３７、表示装置３８が設けられ、これらはバスライン４０を介してお互いに接続されている。
【００２６】
ＣＰＵ３２は、ＲＯＭ３３やＲＡＭ３４やハードディスク３５に記憶される固定値やプログラム或いは、ＰＣ３１が有している各機能の制御や、ＬＡＮインターフェイス３６を介して送受信される各種信号に従って、バスライン４０により接続された各部を制御する。
【００２７】
ＲＯＭ３３は、このＰＣ３１で実行される各種の制御プログラムを記憶する書換不能なメモリである。ＲＡＭ３４は各種のデータを一時的に記憶するための書換可能なメモリである。ハードディスク３５は書換可能な不揮発性のメモリであり、ハードディスク３５に記憶されたデータは、ＰＣ３１の電源オフ後も保持される。このハードディスク３５には、各種アプリケーションソフト、アプリケーションソフトにより作成される各種データ、そのアプリケーションソフトなどにより作成されたサブスクライブ要求（図４（ｂ）参照）などが記憶されている。
【００２８】
ＬＡＮインターフェイス３６は、ＬＡＮケーブル１００の一端側を、ＬＡＮインターフェイス３６の接続口に接続し、他端側をＬＡＮ２００と接続することにより、ＬＡＮ２００に接続されている各種装置とのデータ通信を可能とする既知の回路である。
【００２９】
入力装置３７は、ＰＣ３１を管理したり、ハードディスク３５に格納された各種アプリケーションソフトを利用する場合に使用するものであり、例えば、キーボードやマウスなどの入力装置で構成される。表示装置３７は、ＰＣ３１を管理したり、各種アプリケーションソフトを利用する場合に使用するものであり、例えば、液晶ディスプレイ等の表示装置で構成される。
【００３０】
ここで、図３を参照して、ＭＦＰ１とＰＣ３１との間で送受信される要求およびイベント情報について説明する。図３は、ＭＦＰ１とＰＣ３１との間で送受信されるデータの流れを概略的に示したイメージ図である。
【００３１】
図３（ａ）は、ＰＣ３１がＭＦＰ１に対して、サブスクライブ要求を通知している状態を示している。サブスクライブ要求は、ＭＦＰ１でイベントが発生した際に、そのイベントに関するイベント情報をＭＦＰ１からサブスクライブ要求したＰＣ３１に通知してもらうために、ＰＣ３１からＭＦＰ１に送信するデータである。図３（ａ）に示すように、ＰＣ３１は、予めＭＦＰ１にサブスクライブ要求（図４（ｂ）参照）を通知することで、ＭＦＰ１からイベント情報を通知してもらうことができる。
【００３２】
ここで、図４（ｂ）を参照して、サブスクライブ要求の内容の一例について説明する。サブスクライブ要求は、ＰＣ３１がＭＦＰ１にイベント情報の通知を要求するために、ＭＦＰ１へ通知するものであり、例えば、ＰＣ３１によりＸＭＬ文書で作成されるデータである。このデータは、ＭＦＰ１およびＰＣ３１がサブスクライブ要求を識別するためのＩＤ情報（特許請求の範囲に記載の特定情報の一例）と、ＭＦＰ１からＰＣ３１に対して通知されるイベント情報の通知先を示すＵＲＬ情報と、ＰＣ３１がＭＦＰ１に対して通知を要求するイベント情報の種類を示すイベント種類と、ＰＣ３１がＭＦＰ１にイベント情報の通知を要求する期間を示す有効期限情報とにより構成されている。
【００３３】
サブスクライブ要求の１行目の＜ＩＤ＞から＜／ＩＤ＞タグでくくられている文字列「ｕｕｉｄ：ｆ８１ｄ４ｆａｅ−７ｄｅｃ−１１ｄ０−ａ７６５−００ａ０ｃ９１ｅ６ｂｆ６」が、サブスクライブ要求のＩＤ情報を示している。このＩＤ情報には、ＰＣ３１によりサブスクライブ要求が作成される毎に、ＵＵＩＤ（Ｕｎｉｖｅｒｓａｌｌｙ  Ｕｎｉｑｕｅ  ＩＤｅｎｔｉｆｉｅｒ）と呼ばれる世界中で重複することのない無作為な文字列が用いられるので、ＭＦＰ１内やＰＣ３１内において重複することがない。また、ＭＦＰ１では、このＩＤ情報により各ＰＣ３１（図１参照）から通知されるサブスクラブ要求やアンサブスクライブ要求（図４（ｃ）参照）、および、端末情報（図４（ｄ）参照）を識別している。
【００３４】
２行目の＜Ａｄｄｒｅｓｓ＞から＜／Ａｄｄｒｅｓｓ＞タグでくくられている文字列「ｈｔｔｐ：／／ｈｏｓｔｎａｍｅ：ｐｏｒｔ／ｐａｔｈ」が、ＵＲＬ情報であり、ＭＦＰ１からＰＣ３１に対して通知されるイベント情報の通知先が示されている。ＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）とは、インターネットなどのネットワーク上に存在する装置やデータ、サービスなどを特定するための表記方法である。
【００３５】
ＵＲＬ情報に含まれる「ｈｏｓｔｎａｍｅ」は、サブスクライブ要求を作成したＰＣ３１のホスト名（または、ＩＰアドレス）（特許請求の範囲に記載の第１識別情報の一例）を示しており、「ｐｏｒｔ」は、ポート番号（特許請求の範囲に記載の第２識別情報の一例）を示している。ホスト名（または、ＩＰアドレス）は、ネットワーク上において、ＰＣ３１を特定するための識別情報であり、ポート番号は、サブスクライブ要求を作成したＰＣ３１の何れのアプリケーションにイベント情報を通知するかを、ＰＣ３１が識別するための識別番号である。また、「ｐａｔｈ」は、サブスクライブ要求を作成したＰＣ３１のハードディスク３５（図２参照）内に設けられたフォルダ名やファイル名などの名称を示しており、アプリケーションやユーザなどにより個別に設定される文字列である。
【００３６】
３行目の＜ＥｖｅｎｔＴｙｐｅ＞から＜／ＥｖｅｎｔＴｙｐｅ＞タグでくくられている文字列「ステータスイベント」が、サブスクライブ要求を作成したＰＣ３１がＭＦＰ１に対して通知を要求するイベント情報の種類を示している。
【００３７】
イベント情報の種類（イベント種類）には、図５（ａ）に示すように、「ステータスイベント」、「エレメントイベント」、「ジョブイベント」とがあり、１つのサブスクライブ要求において、この３種類のうち何れか一つのイベント種類が、アプリケーションやユーザなどにより選択される。
【００３８】
サブスクライブ要求の４行目の＜Ｅｘｐｉｒｅｓ＞から＜／Ｅｘｐｉｒｅｓ＞タグでくくられている文字列「ＰＴ１Ｈ」が、サブスクライブ要求の有効期限情報を示している。この「ＰＴ」とは、「Ｐｅｒｉｏｄ  ｏｆ  Ｔｉｍｅ」の略であり、「ＰＴ１Ｈ」とは、「１時間の期間」という意味である。ＭＦＰ１は、サブスクライブ要求を受理してからその有効期限内に限りＰＣ３１にイベント情報を通知する。
【００３９】
ＭＦＰ１は、ＰＣ３１からサブスクライブ要求を受理すると、そのサブスクライブ要求のデータに含まれるイベント種類と、他の情報（ＩＤ情報、ＵＲＬ情報、有効期限情報）を特定する。このとき、有効期限情報については、計時回路１８（図２参照）から現在時刻を読み取り、サブスクライブ要求から特定した有効期限情報から実時間を算出する。例えば、「２００７年３月２日９：００」に、図４（ｂ）のサブスクライブ要求（有効期限：ＰＴ１Ｈ）を受理した場合は、図４（ｄ）に示すように、実時間として「２００７年３月２日１０：００」と算出される。
【００４０】
サブスクライブ要求から特定されたＩＤ情報、ＵＲＬ情報、有効期限情報は、ＰＣ３１の端末情報（図４（ｄ）参照）として通知端末リストメモリ１３ａのサブスクライブ要求から特定したイベント種類にに応じた通知端末リスト（１３ａ１から１３ａ３のいずれか）に記憶される。
【００４１】
即ち、ＭＦＰ１は、受理したサブスクライブ要求のイベント種類が「ステータスイベント」である場合には、サブスクライブ要求から特定されたＩＤ情報、ＵＲＬ情報、有効期限情報をＰＣ３１の端末情報としてステータスイベント通知端末リスト１３ａ１に記憶する。同様に、イベント種類が「エレメントイベント」の場合は、エレメントイベント通知端末リスト１３ａ２に、「ジョブイベント」の場合は、ジョブイベント通知端末リスト１３ａ３に記憶する（図４（ａ）参照）。
【００４２】
なお、図４（ａ）では、端末ＡからＭＦＰ１に対して、イベント種類が「ステータスイベント」であるサブスクライブ要求と、イベント種類が「エレメントイベント」であるサブスクライブ要求が通知され、端末Ｂ（図１参照）からＭＦＰ１に対して、イベント種類が「ステータスイベント」であるサブスクライブ要求が通知された場合を例に挙げている。すなわち、ＭＦＰ１のステータスイベント通知端末リスト１３ａ１には、端末Ａの端末情報Ｘと、端末Ｂの端末情報Ｙとが記憶され、エレメントイベント通知端末リスト１３ａ２には端末Ａの端末情報Ｚが記憶されている。
【００４３】
端末Ａのように複数の端末情報Ｘ，Ｚが通知端末リストメモリ１３ａに記憶される場合でも、それぞれのサブスクライブ要求に含まれるＩＤ情報は、世界中で重複することのない無作為な文字列であるので、それぞれの端末情報Ｘ，Ｚは、異なる端末情報として識別される。
【００４４】
なお、ＭＦＰ１は、通知端末リストメモリ１３ａに端末情報を記憶すると、サブスクライブ要求を受理したことをＰＣ３１に対して通知する。
【００４５】
次に、図３（ｃ）を参照して、ＰＣ３１からＭＦＰ１に対して通知されるアンサブスクライブ要求について説明する。ＰＣ３１は、ＭＦＰ１からのイベント情報の通知が不要となった場合に、ＭＦＰ１に対してアンサブスクライブ要求を通知する。
【００４６】
なお、アンサブスクライブ要求は、図４（ｃ）に示すように、ＩＤ情報のみで構成されている。このＩＤ情報には、イベント情報の通知を要求した時のサブスクライブ要求に用いた、ＵＵＩＤが用いられる。つまり、ＰＣ３１は、イベント情報の通知を停止したい場合に、そのイベント情報の通知を要求したサブスクライブ要求のＩＤ情報を、アンサブスクライブ要求として通知する。このＩＤ情報は、ＭＦＰ１やＰＣ３１において重複することがないので、ＭＦＰ１は、通知端末リストメモリ１３ａに記憶される端末情報の何れを削除すれば良いかが識別できる。このアンサブスクライブ要求で削除される端末情報は、ＩＤ情報が一致する端末情報一つのみである。
【００４７】
ＭＦＰ１は、ＰＣ３１からアンサブスクライブ要求を受信すると、アンサブスクライブ要求に含まれるＩＤ情報と同じＩＤ情報を有した端末情報（図４（ｄ）参照）を、通知端末リストメモリ１３ａ（図２参照）から削除する。そして、アンサブスクライブ要求を受理したことをＰＣ３１に対して通知する。
【００４８】
次に、図３（ｂ）を参照して、ＭＦＰ１からＰＣ３１に対して通知されるイベント情報について説明する。図３（ｂ）に示すように、ＭＦＰ１においてイベントが発生すると、ＭＦＰ１は、通知端末リストメモリ１３ａに記憶された端末情報のＰＣ３１に対してイベント情報を通知する。
【００４９】
ＭＦＰ１では、各ＰＣ３１の端末情報がイベント種類毎に、それぞれの通知端末リスト１３ａ１〜１３ａ３（図４（ａ）参照）に記憶されているので、ＭＦＰ１は、装置内でイベントが発生した場合に、発生したイベントのイベント種類に応じた各通知端末リスト１３ａ１〜１３ａ３に記憶される端末情報のＰＣ３１に対して、そのイベント情報を通知する。そして、ＰＣ３１は、ＭＦＰ１からイベント情報を受信すると、イベント情報を受理したことをＭＦＰ１に対して通知する。
【００５０】
なお、ＭＦＰ１は、装置内のイベントの発生を検出すると、検出したイベントのイベント名や、現在どのような状態が生じているかなどの内容を含むイベント情報を作成し、ＰＣ３１に対して通知する。即ち、ＭＦＰ１は、ＭＦＰ１のプリンタ２１においてインク無くなったり、記録用紙が無くなったために印刷が行えなかったり、スキャナ２０の原稿カバー体８が開かれており原稿が正常に読み取れないなどの不具合（エラー）が発生した場合に、そのエラー内容をＰＣ３１に対して通知する。よって、ユーザは、ＭＦＰ１まで移動してＭＦＰ１のＬＣＤ１６（図１参照）に表示される装置の状態を確認しなくても、その内容を知ることができる。また、ＭＦＰ１は、装置内で発生した全てのイベントのイベント情報をＰＣ３１に対して通知するのではなく、ＰＣ３１によって予め要求された種類のイベント情報のみを通知するものである（図５（ａ）参照）。
【００５１】
例えば、ＰＣ３１がＭＦＰ１に対して、サブスクライブ要求のイベント種類として「ステータスイベント」を通知した場合は、ＭＦＰ１おいてエラー（例えば、図５（ｂ）に示すようなインク切れイベント、記録用紙切れイベントなど、各検出センサ２０ａ、２１ａ、２１ｂが検出するエラー）が発生したと検出された場合、または、そのエラーが解決されたと検出された場合に、そのエラーまたはエラー解除の内容を示すイベント情報が、ＭＦＰ１からＰＣ３１に対して通知される。
【００５２】
また、ＰＣ３１がサブスクライブ要求のイベント種類として「エレメントイベント」を通知した場合は、ＭＦＰ１において設定情報（例えば、ＩＰアドレス、プリンタ名など）に変更があったと検出された場合に、その変更された設定情報の内容を示すイベント情報が、ＭＦＰ１からＰＣ３１に対して通知される。
【００５３】
また、ＰＣ３１がサブスクライブ要求のイベント種類として「ジョブイベント」を通知した場合は、ＭＦＰ１において実行中のジョブ（作業）の状態に変化があったと検出された場合に（例えば、印刷開始、印刷終了など）、そのジョブ（作業）の状態の変化の内容を示すイベント情報が、ＭＦＰ１からＰＣ３１に対して通知される。
【００５４】
次に、図６〜１０を参照して、ＭＦＰ１のＣＰＵ１１により実行される各種処理について説明する。
【００５５】
ＭＦＰ１は、装置内でイベントが発生した場合に、発生したイベントのイベント種類に応じた各通知端末リスト１３ａ１〜１３ａ３に記憶される端末情報のＰＣ３１に対して、そのイベント情報を通知する（図８のＳ２１〜２４参照）。
【００５６】
しかしながら、ＬＡＮ２００などに通信障害が発生していたり、イベント情報を受理するＰＣ３１のアプリケーションソフトが動作不能に陥り、ＰＣ３１に対してイベント情報を通知できない場合は、通知が完了しない通知処理が発生する。イベントが多数発生した場合や、通知できないＰＣ３１が多数存在する場合は、その通知が完了しない通知処理が多く実行されることとなり、全体の処理が遅くなって、通知可能なＰＣ３１へのイベント情報の通知が遅延する場合があるという問題点が生じる。
【００５７】
そこで本実施形態のＭＦＰ１では、装置内でイベントが発生した場合に、あるＰＣ３１に対して、イベント情報の通知が行えなかった場合に、まず、そのイベント情報の通知の要求を示す端末情報を通知端末リストメモリ１３ａから削除する（図８のＳ２９参照）。さらに、その通知できなかったＰＣ３１からの通知の要求を示す全ての端末情報を通知端末リストメモリ１３ａから削除する（図８のＳ３２参照）。そうすることによって、通知に失敗したＰＣ３１に対する、通知が完了しないイベント情報の通知処理の発生を抑制でき、イベント情報を通知可能なＰＣ３１に対して、円滑にイベント情報を通知することができる。
【００５８】
図６は、ＭＦＰ１のメイン処理を示すフローチャートであり、ＭＦＰ１の主電源が投入されてから主電源が遮断されるまで繰り返し実行される処理である。このメイン処理では、まず、通知端末リストメモリ１３ａに記憶される全てのデータを初期化する（Ｓ１）。
【００５９】
次に、ＰＣ３１から接続要求があるかを判定し（Ｓ２）、ＰＣ３１から接続要求がある場合は（Ｓ２：Ｙｅｓ）、受信データ処理を実行する（Ｓ３）。一方、ＰＣ３１からの接続要求が無い場合は（Ｓ２：Ｎｏ）、Ｓ３の処理をスキップし、Ｓ４の処理に移行する。
【００６０】
ここで、図７を参照して、受信データ処理（Ｓ３）について説明する。図７は、受信データ処理（Ｓ３）を示すフローチャートである。受信データ処理（Ｓ３）は、ＰＣ３１から通知されるサブスクライブ要求やアンサブスクライブ要求や、その他のデータなどを受信するとともに、その受信したデータに応じた各種処理を行うための処理である。
【００６１】
この受信データ処理（Ｓ３）では、ＰＣ３１との接続を行い、ＰＣ３１から送信されるデータを受信する（Ｓ１１）。ＰＣ３１から受信したデータは、サブスクライブ要求であるかを判定し（Ｓ１２）、受信したデータがサブスクライブ要求である場合は（Ｓ１２：Ｙｅｓ）、受信したサブスクライブ要求に含まれるイベント種類に対応する通知端末リストメモリ１３ａの通知端末リスト１３ａ１〜１３ａ３に、そのサブスクライブ要求から情報（ＩＤ情報、ＵＲＬ情報、有効期限情報（実時間として抽出される））を抽出して、それを端末情報として記憶する（Ｓ１３）。そして、ＰＣ３１に対して、端末情報を通知端末リストメモリ１３ａに記憶したことを通知する（Ｓ１４）。このＳ１２〜Ｓ１４の処理は、図３（ａ）に対応する。一方、Ｓ１２の処理において、受信したデータがサブスクライブ要求でない場合は（Ｓ１２：Ｎｏ）、Ｓ１３〜１４の処理をスキップし、Ｓ１５の処理に移行する。
【００６２】
次に、ＰＣ３１から受信したデータは、アンサブスクライブ要求であるかを判定し（Ｓ１５）、受信したデータがアンサブスクライブ要求である場合は（Ｓ１５：Ｙｅｓ）、受信したアンサブスクライブ要求に含まれるＩＤ情報（図４（ｃ）参照）と同じＩＤ情報を有した端末情報を、通知端末リストメモリ１３ａ全体から検索して削除する（Ｓ１６）。アンサブスクライブ要求のＩＤ情報が一致する端末情報は、通知端末リストメモリ１３ａの中に一つしか記憶されていない。そして、ＰＣ３１に対して、端末情報を通知端末リストメモリ１３ａから削除したことを通知する（Ｓ１７）。このＳ１５〜Ｓ１７の処理は、図３（ｃ）に対応する。一方、Ｓ１５の処理において、受信したデータがアンサブスクライブ要求でない場合は（Ｓ１５：Ｎｏ）、Ｓ１６〜１７の処理をスキップし、Ｓ１８の処理に移行する。
【００６３】
ＰＣ３１から受信したデータが、その他のデータである場合は、その他のデータ処理を実行し（Ｓ１８）、ＰＣ３１との接続を切断する（Ｓ１９）。その他のデータ処理とは、例えば、印刷データを受信して、プリンタ２１により記録用紙に印刷する処理である。
【００６４】
この図７のフローチャートの受信データ処理（Ｓ３）により、ＭＦＰ１は、ＰＣ３１から通知されるサブスクライブ要求とアンサブスクライブ要求とを受信することができる。そして、サブスクライブ要求を受信した場合は、そのサブスクライブ要求から情報を抽出して、それを端末情報として通知端末リストメモリ１３ａに記憶することができ、また、アンサブスクライブ要求を受信した場合は、そのアンサブスクライブ要求に含まれるＩＤ情報と一致する端末情報を、通知端末リストメモリ１３ａから削除することができる。
【００６５】
受信データ処理（Ｓ３）の終了後は、図６のＳ４の処理へ戻る。Ｓ４の処理では、ＭＦＰ１においてイベントが発生したかを判定し（Ｓ４）、イベントが発生した場合は（Ｓ４：Ｙｅｓ）、イベント通知処理を実行する（Ｓ５）。一方、イベントが発生していない場合は（Ｓ４：Ｎｏ）、Ｓ５の処理をスキップし、Ｓ６の処理に移行する。
【００６６】
ここで、図８を参照して、イベント通知処理（Ｓ５）について説明する。図８は、イベント通知処理（Ｓ５）を示すフローチャートである。イベント通知処理（Ｓ５）は、ＭＦＰ１の装置内でイベントが発生した場合に、ＰＣ３１に対してイベント情報を通知するとともに、あるＰＣ３１に対してイベント情報の通知が行えなかった場合に、そのＰＣ３１からのイベント情報の通知の要求を示す端末情報のＩＰアドレスとポート番号とが一致する全ての端末情報を、通知端末リストメモリ１３ａから削除するための処理である。
【００６７】
このイベント通知処理（Ｓ５）では、発生したイベントに対応する通知端末リストメモリ１３ａの中の通知端末リスト１３ａ１〜１３ａ３から、端末情報を１つ読み取り（Ｓ２１）、読み取った端末情報に記憶されているＩＰアドレスであるＰＣ３１のポート番号に接続する（Ｓ２２）。
【００６８】
次に、ＰＣ３１との接続が成功したかを判定し（Ｓ２３）、ＰＣ３１との接続が成功した場合は（Ｓ２３：Ｙｅｓ）、ＰＣ３１に対して、発生したイベントのイベント情報を通知する（Ｓ２４）。そして、ＰＣ３１からイベント情報を受理したと通知されるまで待機し（Ｓ２５：Ｎｏ）、ＰＣ３１からイベント情報を受理したと通知された場合は（Ｓ２５：Ｙｅｓ）、ＰＣ３１との接続を切断する（Ｓ２６）。このＳ２２〜Ｓ１６の処理は、図３（ｂ）に対応する。
【００６９】
一方、Ｓ２３の処理において、ＰＣ３１との接続が失敗した場合は（Ｓ２３：Ｎｏ）、再び、読み取った端末情報に記憶されているＰＣ３１に接続を試みる（Ｓ２７）。本実施形態では、通知が行えない場合に、再通知を行っているが、この再通知の回数は適宜決めれば良い。複数回のイベント情報の通知が失敗した場合に、後述のＳ２９の処理により、その端末情報が削除されるので、イベント情報を通知可能であるが一時的な障害などにより通知できないＰＣ３１の端末情報が、通知端末リストメモリ１３ａから削除されることを抑制することができる。
【００７０】
次に、ＰＣ３１との接続が成功したかを判定し（Ｓ２８）、ＰＣ３１との接続が成功した場合は（Ｓ２８：Ｙｅｓ）、Ｓ２４の処理に移行し、ＰＣ３１に対して、発生したイベントのイベント情報を通知する（Ｓ２４）。ＰＣ３１との接続に再度失敗した場合は（Ｓ２８：Ｎｏ）、接続に失敗した端末情報を、発生したイベントに対応する通知端末リストメモリ１３ａの中の通知端末リスト１３ａ１〜１３ａ３から削除する（Ｓ２９）。
【００７１】
そして、通知端末リストメモリ１３ａ全体において、接続に失敗したＩＰアドレスとポート番号とが一致する端末情報を検索し（Ｓ３０）、検索した結果、ＩＰアドレスとポート番号とが一致する端末情報が見つかったかを判定する（Ｓ３１）。Ｓ３１の処理において、ＩＰアドレスとポート番号とが一致する端末情報が見つからなかった場合は（Ｓ３１：Ｎｏ）、Ｓ３２の処理をスキップして、Ｓ３３の処理に移行する。一方、ＩＰアドレスとポート番号とが一致する端末情報が見つかった場合は（Ｓ３１：Ｙｅｓ）、その見つかったＩＰアドレスとポート番号とが一致する端末情報を、通知端末リストメモリ１３ａ全体から全て削除し（Ｓ３２）、Ｓ３３の処理に移行する。
【００７２】
次に、Ｓ３３の処理では、発生したイベントに対応する通知端末リストメモリ１３ａの中の通知端末リスト１３ａ１〜１３ａ３から全ての端末情報を読み取ったかを判定し（Ｓ３３）、全ての端末情報を読み取った場合は（Ｓ３３：Ｙｅｓ）、このイベント通知処理（Ｓ５）を終了する。一方、すべての端末情報を読み取っていない場合は（Ｓ３３：Ｎｏ）、Ｓ２１の処理に戻り、上述したＳ２１〜Ｓ３２の各処理を繰り返す。
【００７３】
この図８のフローチャートのイベント通知処理（Ｓ５）により、ＭＦＰ１は、ＭＦＰ１の装置内でイベントが発生した場合に、ＰＣ３１に対してイベント情報を通知することができる。また、あるＰＣ３１に対してイベント情報の通知が行えなかった場合に、そのＰＣ３１からのイベント情報の通知の要求を示す端末情報のＩＰアドレスとポート番号とが一致する全ての端末情報を、通知端末リストメモリ１３ａから削除することができる。よって、通知が行えないＰＣ３１に対する、通知が完了しないイベント情報の通知処理の発生を抑制でき、イベント情報を通知可能なＰＣ３１に対して、円滑にイベント情報を通知することができる。
【００７４】
ここで、図４（ａ）を参照して、端末Ａ（図１参照）に対してイベント情報の通知をできなかった場合の例を説明する。図４（ａ）は、端末Ａから、イベント情報が「ステータスイベント」であるサブスクライブ要求と、イベント情報が「エレメントイベント」であるサブスクライブ要求とが、ＭＦＰ１に対して通知されていることを示している。また、端末Ｂから、イベント情報が「ステータスイベント」であるサブスクライブ要求が通知されていることを示している。
【００７５】
例えば、端末Ａの端末情報ＸのＩＰアドレスが「１９２．１６８．１．１」であり、ポート番号が「２０」であるとし、端末Ａの端末情報ＺのＩＰアドレスが「１９２．１６８．１．１」であり、ポート番号が「２０」であるとする。そして、端末Ｂの端末情報ＹのＩＰアドレスが「１９２．１６８．１．５５」であり、ポート番号が「２０」であるとする。
【００７６】
ＭＦＰ１において、インク切れイベントが発生すると、端末Ａと端末Ｂとに対して、そのエラーに関する内容のイベント情報が通知される。エラーに関するイベント情報の通知であるので、ステータスイベント端末リスト１３ａ１に記憶される各端末情報Ｘ，Ｙに記憶されるＩＰアドレスとポート番号に、そのイベント情報の通知が行われる（図５（ａ）参照）。
【００７７】
つまり、端末情報Ｘに記憶されるＩＰアドレス「１９２．１６８．１．１」、且つ、ポート番号「２０」である端末Ａにイベント情報の通知が行われ、同様に、端末情報Ｙに記憶されるＩＰアドレス「１９２．１６８．１．５５」、且つ、ポート番号「２０」である端末Ｂにイベント情報の通知が行われる。
【００７８】
ここで、端末Ｂへ通知でき、端末Ａへイベント情報が通知できない場合は、まず、端末Ａの端末情報Ｘが、ステータスイベント通知端末リスト１３ａ１から削除される（図８のＳ２９の処理）。そして、通知端末リストメモリ１３ａ全体から、通知に失敗したＩＰアドレス「１９２．１６８．１．１」とポート番号「２０」が一致する端末情報が検索され、検索された結果、端末Ａの端末情報Ｚが該当するので、エレメントイベント通知端末リスト１３ａ２から削除される（図８のＳ３０〜３２の処理）。
【００７９】
よって、これ以後は、ＭＦＰ１においてイベントが発生した場合でも、端末Ａへのイベント情報の通知が抑制されるので、イベント情報の通知が可能な端末Ｂに対して、イベント情報の通知を円滑に行うことができる。
【００８０】
ここで、フローチャートの説明に戻る。イベント通知処理（Ｓ５）の終了後は、図６のＳ６の処理へ戻る。Ｓ６の処理では、有効期限確認処理を実行する（Ｓ６）。有効期限確認処理（Ｓ６）の終了後は、Ｓ２の処理に戻り、Ｓ２〜６の各処理を繰り返す。
【００８１】
ここで、図９を参照して、有効期限確認処理（Ｓ６）について説明する。図９は、有効期限確認処理（Ｓ６）を示すフローチャートである。有効期限確認処理（Ｓ６）は、通知端末リストメモリ１３ａに記憶される各端末情報（図４（ａ）参照）の有効期限を確認し、有効期限が経過している端末情報を通知端末リストメモリ１３ａから削除するための処理である。
【００８２】
この有効期限確認処理（Ｓ６）では、通知端末リストメモリ１３ａ全体から、端末情報を一つ読み取り（Ｓ４１）、次に、計時回路１８から現在時刻を読み取る（Ｓ４２）。
【００８３】
そして、Ｓ４１の処理で読み取った端末情報の有効期限が、現在時刻を経過しているかを判定し（Ｓ４３）、読み取った端末情報の有効期限が、現在時刻を経過している場合は（Ｓ４３：Ｙｅｓ）、読み取った端末情報を通知端末リストメモリ１３ａから削除する（Ｓ４４）。一方、読み取った端末情報の有効期限が、現在時刻を経過していない場合は（Ｓ４３：Ｎｏ）、Ｓ４４の処理をスキップし、Ｓ４５の処理に移行する。
【００８４】
Ｓ４５の処理では、通知端末リストメモリ１３ａ内の全ての端末情報を読み取ったかを判定し（Ｓ４５）、全ての端末情報を読み取った場合は（Ｓ４５：Ｙｅｓ）、この有効期限確認処理を終了する。一方、全ての端末情報を読み取っていない場合は（Ｓ４５：Ｎｏ）、Ｓ４１の処理に戻り、上述したＳ４１からＳ４５の各処理を繰り返す。この図９のフローチャートの有効期限確認処理（Ｓ６）により、有効期限が経過した端末情報を通知端末リストメモリ１３ａから削除することができる。
【００８５】
次に、図１０のフローチャートを参照してイベント通知処理（Ｓ５）の変形例について説明する。図１０は、イベント通知処理（Ｓ５）の変形例を示すフローチャートである。
【００８６】
このイベント通知処理（Ｓ５）は、あるＰＣ３１に対して、イベント情報の通知が行えなかった場合に、そのＰＣ３１からのイベント情報の通知の要求を示す端末情報のＩＰアドレスとポート番号とが一致する全ての端末情報を、通知端末リストメモリ１３ａから削除する。さらに、ＩＰアドレスが一致し、ポート番号が異なる全ての端末情報において、その端末情報のＰＣ３１に接続可能か確認し、接続できない場合は、接続できなかった端末情報のアドレスとポート番号とが一致する全ての端末情報を、通知端末リストメモリ１３ａから削除するための処理である。
【００８７】
ポート番号とは、ＰＣ３１の何れのアプリケーションにイベント情報を通知するかを、ＰＣ３１が識別するための識別番号のことであり、通知が行えないＰＣ３１のＩＰアドレスであり、且つ、通知が行えないポート番号が一致する全ての端末情報を削除することで、ＰＣ３１において動作不能になっている全てのアプリケーションへのイベント情報の通知が抑制されるので、さらに、通知が完了しない通知処理の発生を抑制でき、イベント情報を通知できるクライアントに対して円滑に通知を行うことができる。
【００８８】
このイベント通知処理（Ｓ５）では、まず、発生したイベントに対応する通知端末リストメモリ１３ａの中の通知端末リスト１３ａ１〜１３ａ３から、端末情報を１つ読み取り（Ｓ５１）、読み取った端末情報に記憶されているＩＰアドレスであるＰＣ３１のポート番号に接続する（Ｓ５２）。
【００８９】
そして、ＰＣ３１との接続が成功したかを判定し（Ｓ５３）、ＰＣ３１との接続に成功した場合は（Ｓ５３：Ｙｅｓ）、ＰＣ３１に対して、発生したイベントのイベント情報を通知する（Ｓ５４）。そして、ＰＣ３１からイベント情報を受理したと通知されるまで待機し（Ｓ５５：Ｎｏ）、ＰＣ３１からイベント情報を受理したと通知された場合は（Ｓ５５：Ｙｅｓ）、ＰＣとの接続を切断し（Ｓ５６）、Ｓ６９の処理に移行する。
【００９０】
一方、Ｓ５３の処理において、ＰＣ３１との接続が失敗した場合は（Ｓ５３：Ｎｏ）、再び、読み取った端末情報に記憶されているＰＣ３１に接続を試みる（Ｓ５７）。本実施形態では、通知が行えない場合に、再通知を行っているが、その再通知の回数は適宜決めれば良い。複数回のイベント情報の通知が失敗した場合に、その端末情報が削除されるので、イベント情報を通知可能であるが一時的な障害などにより通知できないＰＣ３１の端末情報が、通知端末リストメモリ１３ａから削除されることを抑制することができる。
【００９１】
次に、ＰＣ３１との接続が成功したかを判定し（Ｓ５８）、ＰＣ３１との接続が成功した場合は（Ｓ５８：Ｙｅｓ）、Ｓ５４の処理に移行し、ＰＣ３１に対して、発生したイベントのイベント情報を通知する（Ｓ５４）。ＰＣ３１との接続に再度失敗した場合は（Ｓ５８：Ｎｏ）、接続に失敗した端末情報を、発生したイベントに対応する通知端末リストメモリ１３ａの中の通知端末リスト１３ａ１〜１３ａ３から削除する（Ｓ５９）。
【００９２】
そして、通知端末リストメモリ１３ａ全体において、接続に失敗したＩＰアドレスが一致する端末情報を検索し（Ｓ６０）、検索した結果、接続に失敗したＩＰアドレスとポート番号とが一致する端末情報を、通知端末リストメモリ１３ａ全体から全て削除する（Ｓ６１）。
【００９３】
Ｓ６０の処理で検索した結果、接続に失敗したＩＰアドレスが一致し、ポート番号が異なる端末情報が見つかったかを判定し（Ｓ６２）、接続に失敗したＩＰアドレスが一致し、ポート番号が異なる端末情報が見つからなかった場合は（Ｓ６２：Ｎｏ）、Ｓ６９の処理へ移行する。一方、接続に失敗したＩＰアドレスが一致し、ポート番号が異なる端末情報が見つかった場合は（Ｓ６２：Ｙｅｓ）、検索して見つかった端末情報を１つ読み取る（Ｓ６３）。
【００９４】
そして、読み取った端末情報に記憶される接続に失敗したＩＰアドレスであるＰＣ３１の他のポート番号に接続を行い（Ｓ６４）、ＰＣ３１との接続が成功したかを判定する（Ｓ６５）。Ｓ６５の処理において、ＰＣ３１との接続が成功した場合は（Ｓ６５：Ｙｅｓ）、ＰＣ３１との接続を切断する（Ｓ６７）。一方、ＰＣ３１との接続が失敗した場合は（Ｓ６５：Ｎｏ）、接続に失敗したＩＰアドレスとポート番号とが一致する端末情報を、通知端末リストメモリ１３ａ全体から全て削除する（Ｓ６６）。
【００９５】
次に、Ｓ６０の処理において検索して見つかった全ての端末情報を読み取ったかを判定し（Ｓ６８）、その検索して見つかった全ての端末情報を読み取っていない場合は（Ｓ６８：Ｎｏ）、Ｓ６３の処理に戻り、上述したＳ６３〜Ｓ６７の各処理を繰り返す。一方、その検索して見つかった全ての端末情報を読み取った場合は（Ｓ６８：Ｙｅｓ）、Ｓ６９の処理に移行する。
【００９６】
Ｓ６９の処理では、発生したイベントに対応する通知端末リストメモリ１３ａの中の通知端末リスト１３ａ１〜１３ａ３から全ての端末情報を読み取ったかを判定し（Ｓ６９）、全ての端末情報を読み取った場合は（Ｓ６９：Ｙｅｓ）、このイベント通知処理（Ｓ５）を終了する。一方、全ての端末情報を読み取っていない場合は（Ｓ６９：Ｎｏ）、Ｓ５１の処理に戻り、上述したＳ５１〜Ｓ６８の各処理を繰り返す。
【００９７】
この図１０のフローチャートのイベント通知処理（Ｓ５）により、ＭＦＰ１においてイベントが発生した場合に、ＰＣ３１に対して、イベント情報を通知することができる。そして、あるＰＣ３１に対して、イベント情報の通知が行えなかった場合に、そのＰＣ３１からのイベント情報の通知の要求を示す端末情報のＩＰアドレスとポート番号とが一致する全ての端末情報を、通知端末リストメモリ１３ａから削除することができる。よって、通知が行えないＰＣ３１に対する、通知が完了しないイベント情報の通知処理の発生を抑制でき、イベント情報を通知可能なＰＣ３１に対して、円滑にイベント情報を通知することができる。
【００９８】
さらに、ＩＰアドレスが一致し、ポート番号が異なる端末情報において、その端末情報のＰＣ３１に接続可能か確認し、接続できない場合は、接続できなかった端末情報のアドレスとポート番号とが一致する全ての端末情報を、通知端末リストメモリ１３ａから削除することができる。
【００９９】
ポート番号とは、ＰＣ３１の何れのアプリケーションにイベント情報を通知するかを、ＰＣ３１が識別するための識別番号のことであり、通知が行えないＰＣ３１のＩＰアドレスであり、且つ、通知が行えないポート番号が一致する全ての端末情報を削除することで、ＰＣ３１において動作不能になっている全てのアプリケーションへのイベント情報の通知が抑制されるので、さらに、通知が完了しない通知処理の発生を抑制でき、イベント情報を通知できるクライアントに対して円滑に通知を行うことができる。
【０１００】
ここで、図４（ａ）を参照して、端末Ａに対してイベント情報の通知をできなかった場合の例を説明する。図４（ａ）は、端末Ａから、イベント情報が「ステータスイベント」であるサブスクライブ要求と、イベント情報が「エレメントイベント」であるサブスクライブ要求とが、ＭＦＰ１に対して通知されていることを示している。また、端末Ｂから、イベント情報が「ステータスイベント」であるサブスクライブ要求が通知されていることを示している。
【０１０１】
例えば、端末Ａの端末情報ＸのＩＰアドレスが「１９２．１６８．１．１」であり、ポート番号が「２０」であるとし、端末Ａの端末情報ＺのＩＰアドレスが「１９２．１６８．１．１」であり、ポート番号が「４０」であるとする。そして、端末Ｂの端末情報ＹのＩＰアドレスが「１９２．１６８．１．５５」であり、ポート番号が「２０」であるとする。
【０１０２】
端末Ａの各端末情報Ｘ，Ｚのように、ＩＰアドレスが同一で、ポート番号が異なるということは、ポート番号「２０」を使用しているアプリケーションＡと、ポート番号「４０」を使用しているアプリケーションＢとが、それぞれ別に動作していることを示している。つまり、端末情報Ｘは、アプリケーションＡからＭＦＰ１へ通知されたサブスクライブ要求に基づき作成され、端末情報Ｚは、アプリケーションＢからＭＦＰ１へ通知されたサブスクライブ要求に基づき作成さたものである。そして、端末Ｂにおいては、１つのアプリケーションしか動作しないものとする。
【０１０３】
ＭＦＰ１において、インク切れイベントが発生すると、端末Ａと端末Ｂとに対して、そのエラーに関する内容のイベント情報が通知される。エラーに関するイベント情報の通知であるので、ステータスイベント端末リスト１３ａ１に記憶される各端末情報Ｘ，Ｙに記憶されるＩＰアドレスとポート番号に、そのイベント情報の通知が行われる（図５（ａ）参照）。
【０１０４】
具体的には、端末情報Ｘに記憶されるＩＰアドレス「１９２．１６８．１．１」、且つ、ポート番号「２０」である端末ＡのアプリケーションＡにイベント情報の通知が行われ、同様に、端末情報Ｙに記憶されるＩＰアドレス「１９２．１６８．１．５５」、且つ、ポート番号「２０」である端末Ｂのアプリケーションにイベント情報の通知が行われる。
【０１０５】
ここで、端末Ｂへ通知でき、端末Ａにイベント情報が通知できない場合は、アプリケーションＡは動作不能であると判断し、端末Ａの端末情報Ｘがステータスイベント通知端末リスト１３ａ１から削除する（図１０のＳ５９の処理）。そして、通知端末リストメモリ１３ａ全体から、通知に失敗したＩＰアドレス「１９２．１６８．１．１」と一致する端末情報が検索され、ＩＰアドレス「１９２．１６８．１．１」とポート番号「２０」とが一致する端末情報が、通知端末リストメモリ１３ａ全体から全て削除される（図１０のＳ６０，６１の処理）。
【０１０６】
次に、検索した結果、接続に失敗したＩＰアドレス「１９２．１６８．１．１」が一致し、ポート番号が異なる（「２０」以外の）端末情報である端末情報Ｚも見つかる。そして、その見つかった端末情報Ｚに記憶されるＩＰアドレス「１９２．１６８．１．１」、且つ、ポート番号「４０」である端末ＡのアプリケーションＢに接続が行われる（図１０のＳ６４の処理）。
【０１０７】
ここで、接続が成功した場合は、端末ＡにおいてアプリケーションＢは通信可能であるので、端末情報Ｚは削除せずに処理を終了する。一方、接続ができな場合は、端末ＡにおいてアプリケーションＢも動作不能であると判断し、通知端末リストメモリ１３ａ全体から、通知に失敗したＩＰアドレス「１９２．１６８．１．１」とポート番号「４０」とが一致する端末情報が通知端末リストメモリ１３ａ全体から全て削除する（図１０のＳ６２〜６６の処理）。
【０１０８】
よって、これ以後は、ＭＦＰ１においてイベントが発生した場合でも、端末Ａにおいて動作不能になっている全てのアプリケーションへのイベント情報の通知が抑制されるので、イベント情報の通知が可能な端末Ｂに対して、イベント情報の通知を円滑に行うことができる。
【０１０９】
以上、実施形態に基づき本発明を説明したが、本発明は上述した実施形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変更が可能であることは容易に推察できるものである。
【０１１０】
例えば、上記実施形態では、ＰＣ３１からＭＦＰ１に対して通知されるサブスクライブ要求から情報（ＩＤ情報、ＵＲＬ情報、有効期限情報（実時間として抽出される））が抽出され、それが端末情報として通知端末リストメモリ１３ａに記憶されているが、そのサブスクライブ要求に含まれるＵＲＬがホスト名である場合に、ＩＰアドレスに変換してから端末情報として記憶しても良い。ＭＰＦ１とＰＣ３１とがＴＣＰ／ＩＰプロトコルに基づくデータ通信を行っている場合は、ＭＦＰ１がＰＣ３１に対してイベント情報を通知するために、ホスト名がＩＰアドレスに変換されてから通知が行われる。ホスト名は、ＭＦＰ１がＤＮＳサーバと呼ばれるコンピュータに問い合わせを行うことで、ＩＰアドレスに変換しているが、イベント情報を通知する度に問い合わせをするよりも、予めＩＰアドレスに変換して記憶しておくことで、イベント情報の通知を円滑に行うことができる。
【０１１１】
また、上記実施形態では、通知端末リストメモリ１３ａに記憶する端末情報の数に制限はないが、ＭＦＰ１のＣＰＵ１１の演算処理能力や、ＬＡＮ２００のデータ通信速度などに応じて、端末情報の記憶数を制限しても良い。その制限することで、通知できない通知処理が多く発生した場合でも、さらにイベント情報の通知の遅延を抑制することができる。特に、端末情報の記憶数が制限されている場合に、本実施形態の発明を適用すると、通知ができないＰＣ３１の端末情報が削除されるので、ＭＦＰ１とのデータ通信が可能な複数のＰＣ３１により、ＭＦＰ１を有効に利用することができる。
【０１１２】
また、イベント情報の通知は、イベントが発生した順番に、各クライアントに対して行うようにしてもよい。イベントには、カバーオープン、カバークローズといったように、発生する順番にも意味をもつものがあるためである。そして、このような構成においては、本実施形態の発明を適用すると、先に発生したイベント情報の通知を失敗するクライアントがあるために、通信可能なクライアントへ、次に発生したイベント情報の通知が遅延するといった問題を回避できる。
【０１１３】
また、上記実施形態では、イベント情報の通知を要求する際に、イベント種類を記してサブスクライブ要求を行っているが、発生したイベントごとにイベント情報の通知を要求するように行ってもよい。例えば、イベント情報として「ステータスイベント」の通知を要求するのではなく、「カバーオープンイベント」、「インク切れイベント」をそれぞれイベント種類として通知の要求を行う。このように構成することで、ＰＣ３１で不要なイベント情報の通知が行われない。
【０１１４】
また、サブスクライブ要求を行う際のＩＤ情報を、ＰＣ３１で生成して通知しているが、ＭＦＰ１で生成するようにしてもよい。この場合は、ＰＣ３１から送信されるサブスクライブ要求には、ＩＤ情報以外の情報、すなわち、ＵＲＬ情報、イベント種類、有効期限情報が含まれており、その応答として、ＭＦＰ１からＰＣ３１に、そのサブスクライブ要求に応じたイベント情報の通知を行うための識別情報であるＩＤ情報を、送信する。このような構成により、イベント情報の通知を行うＭＦＰ１で、通知に関するすべての情報の管理が容易となる。
【図面の簡単な説明】
【０１１５】
【図１】本発明の実施形態におけるＭＦＰとＰＣとの外観構成を示した斜視図である。
【図２】ＭＦＰとＰＣとの電気的構成を示すブロック図である。
【図３】ＭＦＰとＰＣとの間で送受信されるデータの流れを概略的に示したイメージ図である
【図４】サブスクライブ要求の内容とアンサブスクライブ要求の内容と端末情報の内容とを概略的に示したイメージ図である。
【図５】イベント種類と、ＭＦＰで発生するイベントとについて示した表である。
【図６】ＭＦＰのメイン処理を示すフローチャートである。
【図７】ＭＦＰの受信データ処理を示すフローチャートである。
【図８】ＭＦＰのイベント通知処理を示すフローチャートである。
【図９】ＭＦＰの有効期限確認処理を示すフローチャートである。
【図１０】ＭＦＰのイベント通知処理の変形例を示すフローチャートである。
【符号の説明】
【０１１６】
１                              ＭＦＰ（情報処理装置）
１３ａ                          通知端末リストメモリ（記憶手段）
Ｓ１２〜Ｓ１４                  要求受信手段
Ｓ２４、Ｓ５４                  通知手段
Ｓ２７〜Ｓ２９、Ｓ５７〜Ｓ５９  第１削除手段
Ｓ３０〜Ｓ３２、Ｓ６１〜Ｓ６６  第２削除手段
Ｓ６４〜Ｓ６５                  判定手段
【図１】
2008250965.tif 000003
【図２】
2008250965.tif 000004
【図３】
2008250965.tif 000005
【図４】
2008250965.tif 000006
【図５】
2008250965.tif 000007
【図６】
2008250965.tif 000008
【図７】
2008250965.tif 000009
【図８】
2008250965.tif 000010
【図９】
2008250965.tif 000011
【図１０】
2008250965.tif 000012