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