(57)【特許請求の範囲】
【請求項１】
定期送信されるべき種別の稼動情報を管理装置に送信するための定期送信スレッド及び画像形成装置におけるイベントの発生に応じて当該イベントを示す稼動情報を前記管理装置に送信するためのイベント送信スレッドを用いて、画像形成装置の稼動情報を管理装置に対して送信する情報処理装置であって、
画像形成装置の稼動情報を管理する管理手段と、
定期送信されるべき稼動情報の種別ごとの送信に要する時間、送信周期、及び前回の送信開始時間とを含む送信設定情報を記憶する記憶手段と、
前記定期送信スレッド及び前記イベント送信スレッドを起動する起動手段と、
定期送信されるべき種別の稼動情報の中で前記送信設定情報の送信周期どおりに定期送信されるべき種別の第１の稼動情報に関して、当該第１の稼動情報の送信開始時間及び送信完了時間を属性情報として含む送信予約データを予約リストに登録する第１登録手段と、
前記第１登録手段による送信予約データの予約リストへの登録が行われた後に、定期送信されるべき種別の稼動情報の中で前記第１の稼動情報とは異なる種別の第２の稼動情報に関して、前記予約リストに登録されている送信予約データに対応する稼動情報の定期送信の期間に重複して定期送信が行われないように決定された当該第２の稼動情報の送信開始時間及び送信完了時間を属性情報として含む送信予約データを予約リストに登録する第２登録手段と、
前記起動手段により起動された定期送信スレッドにおける複数種類の稼動情報の送信に際して、前記予約リストに従って、前記管理手段により管理された稼動情報の前記管理装置への送信の制御を行う送信制御手段とを備えることを特徴とする情報処理装置。
【請求項２】
前記イベント送信スレッドで送信される稼動情報とは、画像形成装置での障害情報を示すことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第１の稼動情報には、課金カウンタ情報が含まれることを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記第２登録手段は、前記第２の稼動情報に対応する送信予約データを新たに予約リストに登録する際に、当該新たに登録される送信予約データの送信開始時間を予約リストに既に登録されている送信予約データの送信完了時間とすることを特徴とする請求項１乃至３の何れか１項に記載の情報処理装置。
【請求項５】
前記起動手段により起動された前記イベント送信スレッドにおける稼動情報の送信が失敗した際には、当該イベント送信スレッドを用いて稼動情報の再送が行われ、
前記起動手段により起動された前記定期送信スレッドにおける稼動情報の送信が失敗した際には、前記起動手段により起動される前記定期送信スレッドとは異なる再送スレッドを用いて、送信が失敗した稼動情報の再送が行われることを特徴とする請求項１乃至４の何れか１項に記載の情報処理装置。
【請求項６】
定期送信されるべき種別の稼動情報を管理装置に送信するための定期送信スレッド及び画像形成装置におけるイベントの発生に応じて当該イベントを示す稼動情報を前記管理装置に送信するためのイベント送信スレッドを用いて、画像形成装置の稼動情報を管理装置に対して送信する情報処理装置における情報処理方法であって、
画像形成装置の稼動情報を管理する管理工程と、
定期送信されるべき稼動情報の種別ごとの送信に要する時間、送信周期、及び前回の送信開始時間とを含む送信設定情報を記憶する記憶工程と、
前記定期送信スレッド及び前記イベント送信スレッドを起動する起動工程と、
定期送信されるべき種別の稼動情報の中で前記送信設定情報の送信周期どおりに定期送信されるべき種別の第１の稼動情報に関して、当該第１の稼動情報の送信開始時間及び送信完了時間を属性情報として含む送信予約データを予約リストに登録する第１登録工程と、
前記第１登録工程での送信予約データの予約リストへの登録が行われた後に、定期送信されるべき種別の稼動情報の中で前記第１の稼動情報とは異なる種別の第２の稼動情報に関して、前記予約リストに登録されている送信予約データに対応する稼動情報の定期送信の期間に重複して定期送信が行われないように決定された当該第２の稼動情報の送信開始時間及び送信完了時間を属性情報として含む送信予約データを予約リストに登録する第２登録工程と、
前記起動工程で起動された定期送信スレッドにおける複数種類の稼動情報の送信に際して、前記予約リストに従って、前記管理工程で管理された稼動情報の前記管理装置への送信の制御を行う送信制御工程とを備えることを特徴とする情報処理方法。
【請求項７】
請求項１乃至５の何れか１項に記載の手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンタや複写機等の画像形成装置の情報をネットワーク経由で中央管理装置に送信する技術に関する。
【背景技術】
【０００２】
現在、プリンタや複写機等の画像形成装置のデバイス情報は、インターネットなどのネットワークを介して監視装置にて収集され、集中管理及び分析が行われている。ここで、デバイス情報とは構成情報及び稼動情報を示す。具体的に構成情報とは、画像形成装置のＩＰアドレスやＭＡＣアドレスなどのネットワーク情報、機種情報、及び装置固有のシリアル番号などを含む。また、稼動情報とは、画像形成装置における印刷枚数及び部品使用回数などの各種カウンタ情報、障害情報、現在のファームウェア情報、ハードディスクの情報などを含む。中央管理装置は、画像形成装置から直接、或いは画像形成装置のローカルネットワーク上の監視装置を経由して、構成情報及び稼動情報を収集している。ここで、中央管理装置で収集される構成情報及び稼動情報は、目的や用途別に様々な種別が存在している。各種別の情報の送信に関しては、定期送信の要否、即時性、及び送信データ量などが異なっている。
【０００３】
上述した稼動情報の一部は、その種別によって異なるスケジュールで定期送信される。例えば、課金に用いるカウンタ情報は、頻繁に（一日おきなど）、画像形成装置、或いは監視装置から中央管理装置へその日の分のカウンタ情報が定期送信される。この課金に用いるカウンタ情報に関しては、課金処理のため〆日、或いは〆時間が定められているため、厳密な指定日時での定期送信が求められる。一方、ファームウェア情報などは頻繁に更新されるものではないため、例えば一週間に一度の定期送信でよく、多少の遅延が生じても問題ない。
【０００４】
また、即時性が求められるものに関しては障害情報がある。画像形成装置がサービスコール等の修理必要なエラーを起こした場合、サービスマンの迅速な手配を行うため、中央管理装置への障害情報の迅速な送信が求められる。
【０００５】
また、送信データ量については、多数のユーザの印刷傾向の分析や集計等を行うシステムでは、稼動情報に関しては大量のデータが送信される。また、近年では、監視装置が数千台規模の画像形成装置を監視するようになり、当然ながら、監視台数の増加につれて送信すべきデータ量も増加する傾向にある。
【０００６】
ここで、送信すべきデータ量が多いために送信側で送信処理の遅延が発生して、スケジュールどおりの厳密な送信時刻での送信開始や即時性の確保が困難な場合がある。そこで、例えば、特許文献１では、課金カウンタを中央管理装置に送信するにあたり、必要な情報のみに絞って送信する方法が記載されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００７−３２８７４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、課金に用いるカウンタ情報はそもそも必要な情報がとても多いので、必要な情報に絞るよりも、送信側での送信処理の遅延を解消するためには、更に他の効果的な手法による解決が求められる。また、異なる送信間隔でスケジュールされる課金に用いるカウンタ情報及び他の稼動情報の送信時刻がたまたま重複した場合には、より送信側で課金カウンタ情報の送信処理の遅延が発生してしまう可能性がある。
【０００９】
また、定期送信される稼動情報の送信処理のために、監視装置の処理性能を集中させてしまうと、当然ながら障害情報の即時の送信処理などの監視処理にも影響が及んでしまう。
【課題を解決するための手段】
【００１０】
上述の課題を解決するために、本発明の情報処理装置は、定期送信されるべき種別の稼動情報を管理装置に送信するための定期送信スレッド及び画像形成装置におけるイベントの発生に応じて当該イベントを示す稼動情報を前記管理装置に送信するためのイベント送信スレッドを用いて、画像形成装置の稼動情報を管理装置に対して送信する情報処理装置であって、画像形成装置の稼動情報を管理する管理手段と、定期送信されるべき稼動情報の種別ごとの送信に要する時間、送信周期、及び前回の送信開始時間とを含む送信設定情報を記憶する記憶手段と、前記定期送信スレッド及び前記イベント送信スレッドを起動する起動手段と、定期送信されるべき種別の稼動情報の中で前記送信設定情報の送信周期どおりに定期送信されるべき種別の第１の稼動情報に関して、当該第１の稼動情報の送信開始時間及び送信完了時間を属性情報として含む送信予約データを予約リストに登録する第１登録手段と、前記第１登録手段による送信予約データの予約リストへの登録が行われた後に、定期送信されるべき種別の稼動情報の中で前記第１の稼動情報とは異なる種別の第２の稼動情報に関して、前記予約リストに登録されている送信予約データに対応する稼動情報の定期送信の期間に重複して定期送信が行われないように決定された当該第２の稼動情報の送信開始時間及び送信完了時間を属性情報として含む送信予約データを予約リストに登録する第２登録手段と、前記起動手段により起動された定期送信スレッドにおける複数種類の稼動情報の送信に際して、前記予約リストに従って、前記管理手段により管理された稼動情報の前記管理装置への送信の制御を行う送信制御手段とを備えることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、画像形成装置のデバイス情報を管理装置に送信する際に、送信する情報の重要度を考慮した適切な送信制御が行える。
【図面の簡単な説明】
【００１２】
【図１】本発明に関わる管理システムの構成例を示す図である。
【図２】情報処理装置の内部の構成例を示すブロック図である。
【図３】画像形成装置の内部の構成例を示すブロック図である。
【図４】情報処理装置のモジュール構成の例を示す図である。
【図５】監視装置１０１の処理を説明するためのフローチャートである。
【図６Ａ】監視装置１０１の定期送信スレッドにおける処理全体を説明するためのフローチャートである。
【図６Ｂ】監視装置１０１の定期送信スレッドにおける予約処理を説明するためのフローチャートである。
【図６Ｃ】監視装置１０１の定期送信スレッドにおける予約処理を説明するためのフローチャートである。
【図７Ａ】監視装置１０１の即時送信スレッドにおける処理を説明するためのフローチャートである。
【図７Ｂ】監視装置１０１のイベント送信スレッドにおける処理を説明するためのフローチャートである。
【図７Ｃ】監視装置１０１の再送スレッドにおける処理を説明するためのフローチャートである。
【図８】稼動情報の送信設定情報の例を示す図である。
【図９】予約リストを説明するための図である。
【発明を実施するための形態】
【００１３】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【００１４】
（第一の実施の形態）
図１は、複数の画像形成装置、監視装置及び中央管理装置のネットワークにおける接続関係を示す図である。顧客の社内ネットワークなどといった各拠点のイントラネット１０３には、管理対象となるデバイスとして、プリントや複写などの複数の機能を持つ複合機（ＭＦＰ）や単機能周辺機器（ＳＦＰ）などを含む画像形成装置が接続されている。また、このイントラネット１０３には、拠点内で画像形成装置を監視するための監視装置１０１が接続されている。更に、インターネット１０４との接続ポイントであるファイアウォール１０２が設置されている。本発明においては、インターネット１０４には、イントラネット１０３に類似した別顧客のネットワークが無数に接続されていることも想定している。
【００１５】
画像形成装置１００は、自己を監視する機能を持っており、カウンタ情報やアラームなどの稼動情報を外部のネットワーク上の監視機器へ送信することができる。本実施例に関しては、画像形成装置１００が稼動情報を監視装置１０１に送信し、監視装置１０１が中央管理装置１０５にその稼動情報を送信する構成となっている。なお、画像形成装置１００が中央管理装置１０５に直接稼動情報などを送信する機能及び設定を有する場合もある。
【００１６】
監視装置１０１は、イントラネット１０３を介して画像形成装置１００の稼働情報、及び機種情報やネットワーク情報といった構成情報を取得する。情報の取得に際しては、監視装置１０１が要求することで取得する場合もあれば、画像形成装置１００が自発的に送信してくることで取得する場合もある。監視装置１０１は、取得した情報を自身の記憶装置やイントラネット１０４内のＤＢサーバー（不図示）に格納し、一時的に管理する。
【００１７】
また、監視装置１０１は、カウンタ情報、ファームウェア情報や環境ログなどの一部の稼動情報を予め設定されているスケジュールに従って中央管理装置１０５に対して定期送信を行う。エラーなどが発生した場合などの障害情報に関しては、発生したタイミングに応じて随時送信を行う。更に、画像形成装置のＵＩ（ユーザインターフェース）である操作パネルの操作などで中央管理装置からの応答が必要な要求が発生した場合も随時、中央管理装置１０５へその要求を送信する。
【００１８】
中央管理装置１０５は、インターネット１０４を介してイントラネット１０３上に設置されている監視装置１０１と通信を行うことによって画像形成装置の情報を収集し、集中管理する。中央管理装置１０５では、収集した情報に基づいて、課金カウンタのレポート表示、保守を行うサービスマンへの障害イベント通知、構成部品の消耗度の算出、及び消耗品（トナーカートリッジなど）の在庫管理・配送、などのサービスのための機能を備える。
【００１９】
図２は、本発明で用いる情報処理装置の構成を説明するためのブロック図である。ここで、情報処理装置とは監視装置１０１や集中監視装置１０５を示す。また、監視装置１０１や集中監視装置１０５は、ディスプレイなど本発明を実現する上で不要な一部構成を含まないものであってもよい。
【００２０】
図２において、２００は装置全体の制御を行うＣＰＵであり、ハードディスク（ＨＤ）２０５に格納されているアプリケーションプログラム、プリンタドライバプログラム、ＯＳや本発明のネットワークプリンタ制御プログラムなどを実行する。この時、ＲＡＭ２０２にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。尚、後述する各フローチャートにおける各ステップの処理はＣＰＵが２０１、２０４，２０５等の記憶手段に格納されたプログラムコードに基づく処理を実行することによって、実現されるものとする。２０１はＲＯＭであり、内部には、基本Ｉ／Ｏプログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データを記憶する。２０２はＲＡＭであり、ＣＰＵ２００の主メモリ、ワークエリア等として機能する。２０３は記憶媒体読み込み手段としてのフロッピー（登録商標）ディスク（ＦＤ）ドライブであり、ＦＤドライブ２０３を通じて記憶媒体としてのＦＤ２０４に記憶されたプログラム等を本コンピュータシステムにロードすることが出来る。尚、記憶媒体は、ＦＤに限らず、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＰＣカード、ＤＶＤ、ＩＣメモリカード、ＭＯ、メモリスティック等、任意である。２０５は外部記憶手段としてのハードディスク（ＨＤ）であり、アプリケーションプログラム、プリンタドライバプログラム、ＯＳ、ネットワークプリンタ制御プログラム、関連プログラム等を格納している。２０６はキーボードである。２０７はディスプレイであり、キーボード２０６から入力したコマンドや、画像形成装置の各種情報を表示したりするものである。２０８はシステムバスであり、情報処理装置内のデータの流れを司るものである。２０９は入出力手段であるインターフェースであり、該インターフェース２０９を介して情報処理装置は外部装置とのデータのやり取りを行う。
【００２１】
図３は本発明で用いる画像形成装置１００の構成を説明するためのブロック図である。本図では、画像形成装置のプリンタコントローラとその周辺のハードウェア構成を示している。なお、本図においては、プリンタエンジンのみが接続されているものを例として挙げているが、スキャナエンジンが接続され、スキャン機能や複写機能を提供するような画像形成装置であっても本発明には適用可能である。
【００２２】
３０１は、プリンタコントローラであり、外部装置３２２（監視装置１０１等に相当）と、各種データの送受信を所定のプロトコルで実行するための通信部３２１をもつ。更に、画像データの受信及び受信した画像データの印刷に際して後述のプリンタエンジン制御部３０２との間で信号のやり取り及びシリアル通信を行うためのビデオＩ／Ｆ３１７等を備える。画像形成装置のＣＰＵ３１２は、ＲＯＭ３１４或いはＨＤ（外部メモリ）３１９に記憶された制御プログラムなどに基づいて、システムバス３２３に接続される各種デバイスとのアクセスを統括的に制御する。更に、ビデオＩ／Ｆ３１７を介して接続されるプリンタエンジンに出力情報としての画像信号を出力する。ＲＡＭ３１６はＣＰＵ３１５の主メモリ、ワークエリア等として機能するＲＡＭである。メモリコントローラ（ＤＫＣ）３１８はブートプログラム、種々のアプリケーション、フォントデータ、ユーザファイル、編集ファイル等を記憶するハードディスク（ＨＤ）、フロッピー（登録商標）ディスク（ＦＤ）等の外部メモリ３１９とのアクセスを制御する。操作部３２０は、表示パネル３２１やキーボードを含んでおり、入出力Ｉ／Ｆ３１８を介してオペレータへの情報提供や、オペレータからの入力指示を行わせるものである。３０２はプリンタコントローラとの間で信号のやり取り、シリアル通信を介してプリンタエンジンの各ユニットの制御を行うエンジン制御部である。ここで、３０３はプリントする用紙を給紙搬送し、プリント後の排紙までの紙搬送をエンジン制御部３０２の指示に基づき実行する用紙搬送制御部である。３０４はスキャナモータの駆動及びレーザのＯＮ／ＯＦＦ制御をエンジン制御部３０２の指示に基づき実行する光学制御部である。３０５は帯電、現像、転写などの電子写真プロセスに必要な高圧出力をエンジン制御部３０２の指示に基づき実行する高圧系制御部、３０６はエンジン制御部３０２の指示に基づき、定着器の温度制御を行うと共に、定着器以上検出等を行う定着温度制御である。３０７は用紙搬送中の搬送不良を検出するジャム検出部、３０８はプリンタ内の機能部の故障を検出する故障検出部である。３０９は印刷が正常に行われたことを検出して、エンジン制御部３０２に通知する印刷完了通知部である。３１０は印刷後、各種カウンタ情報を更新するカウンタ制御部である。
【００２３】
エンジン制御部３０２には、プリンタエンジンの各ユニットの情報を管理する機器情報管理部３１１がある。機器情報管理部３１１では、外部装置３２２からの要求に応じて、例えば、カウンタ制御部からカウンタ情報を取得し、ビデオＩ／Ｆ３１７に渡す。これにより、カウンタ情報はビデオＩ／Ｆ３１７、通信部３１６を介して外部装置３２２に送信される。その他、外部装置３２２から情報取得要求があった場合も、適宜、各ユニットから情報を取得する。更に、ジャム検出部３０７から通知されたジャム情報、故障検出部３０９から通知された障害情報も機器情報管理部３１１で管理される。この情報も、外部装置３２２にビデオＩ／Ｆ３１７等を介し、送信される。
【００２４】
また、本発明における画像形成装置として上述の電子写真方式を利用したレーザビームプリンタ、インクジェット方式を利用したインクジェットプリンタ、或は熱転写方式を採用したサーマルヘッドプリンタ、或は複写機等に適用可能であることはいうまでもない。
【００２５】
図４は、本発明の監視装置１０１が備える機能モジュールの構成例を図示したものである。尚、図４で示す各構成は、図１に示したＣＰＵ２００がＲＯＭ，ハードディスク等の不揮発性記憶手段に記憶された本発明の制御プログラムを読み込み実行することに応じて実現される論理的な構成である。後述する、図５〜７においては、図４に示す構成が主体となって動作するよう説明するが、物理的な処理の主体はＣＰＵ２００である。
【００２６】
前述したように、監視装置１０１は一部の稼動情報を送信する際に用いる、スケジュールなどを示す送信設定情報を予め管理している。これは自身で備える記憶手段に記憶して管理するものであっても、イントラネット１０３内のＤＢサーバー（不図示）で記憶して管理するものであってもよい。ここで図８は、送信設定情報の具体例を示すテーブルであって、送信情報の種別毎に割り当てられるＩＤ、優先順位、取得可否、データ種別、データ送信時間、データ送信周期、及び送信開始日時などが管理されている。また、これら情報のほかに、送信情報の種別ごとに、定期送信失敗時にすぐに再送するべきデータであるか否かの情報も設定されているものとする。再送対象の送信情報でないものは、定期送信に失敗した場合は次の定期送信の機械に情報送信が行われることになる。
【００２７】
「ＩＤ」は、データ管理の上で使用される一意の番号である。「優先順位」は、データの重要度順に採番されたものであり、本実施例において送信時間を変更する際に、同時に複数の種類の送信情報を対象とする際に用いる情報になる。なお、本実施例において、課金に用いる課金カウンタ情報は、送信周期どおりに最優先に送信すべき情報（第１の稼動情報）として他の送信情報とは異なる送信制御が行われるので、他の情報と同じ基準での優先順位の割り当てを行っていない。「データ送信時間」は、送信情報の１度の送信において経過する時間の目安である。この情報は、例えば、監視対象の画像形成装置の台数と、予め管理されている１台あたりの送信情報の送信時間を示す設定ファイルに基づき算出した値であって、書き換え可能に管理されている。「データ送信周期」は、定期的に送信する際の周期を示す。「初回送信開始日時」は、中央管理装置１０５にはじめて送信する日時が設定される。「データ送信周期」及び「初回送信開始日時」について、本実施例では、これらの送信スケジュールを中央管理装置１０５から取得するものとする。「前回送信日時」は、前回の送信開始日時を記録するのに用い、初期状態ではまだ送信を行っていないため“−”（Ｄｉｓａｂｌｅ）がセットされている。
【００２８】
また、本実施例では、「データ送信周期」及び「初回送信開始日時」について、監視装置のＵＩ、もしくは初期設定ファイルにより、ユーザが指示できるものであってもよい。
【００２９】
以下、図４の機能モジュールの説明を具体的に行う。４０１は、送信制御部であり、本発明における定期送信される稼動情報の送信制御のための予約リスト（図９）を管理してその送信スケジュールの決定し、稼動情報の送信制御などを行う。具体的には、送信予定スケジュール算出部４０５で算出された次回の送信開始及び完了の予定日時を参考に、定期的に管理装置１０５に送信される複数の種類の稼動情報のそれぞれに対して次回の送信開始時間を決定する。ここでは、とくに課金カウンタ情報に関しては、最優先で送信開始日時が決定され、次いでその他の定期送信すべき情報の送信開始日時が決定される。具体的な処理に関しては、後述する。
【００３０】
４０２は、送信周期取得部であり、図８のように定義されたテーブルから送信周期を取得する。４０３は、送信時間取得部であり、図８のように定義されたテーブルからデータ送信時間を取得する。４０４は、初回送信開始時間決定部であり、図８のように定義されたテーブルから初回送信開始日時を取得し、送信情報の初回の送信時間を決定する。４０５は、送信予定スケジュール算出部である。これは、初回送信開始日時（または前回送信開始日時）と、データ送信周期から、次回のデータ送信が開始される予定日時を算出し、更に次回の送信開始日時とデータ送信時間より次回のデータ送信が完了する予定日時を算出する処理などを行う。
【００３１】
４０６は、重複判定部であり、課金カウンタ情報以外の定期的に送信される稼動情報の送信開始時間を決定する際に、予定される送信開始から完了までの期間が重複するような種別の稼動情報の有無を判定する。
【００３２】
４０７は、デバイス情報管理部であり、画像形成装置からの構成情報及び稼動情報の取得の制御を行ったり、取得したデバイス情報を記憶装置において記憶し、管理したりする。ここで管理されている情報が、中央管理装置１０５に送信されることになる。
【００３３】
４０８は、送信データ生成部であり、稼動情報の定期送信や即時送信に際して、デバイス情報管理部４０７より送信対象となるデバイス情報を取得し、所定の送信用フォーマットによる送信データを生成する。この送信用フォーマットにおいては、定期送信であることを示す情報及び画像形成装置の構成情報などが少なくとも含まれている。４０９は、送信データ送信部であり、送信制御部４０１により決定された送信開始時間に、送信データ生成部４０８で生成された送信データを中央管理装置１０５に送信する。また、障害情報などは、画像形成装置で発生した旨の通知を受けた際に、即時に送信データ生成部４０８で送信データが生成され、送信データ送信部４０９により送信される。
【００３４】
以下、図５〜７で示すフローチャートは、監視装置１０１における処理を説明するために用いるものである。本発明の特徴となるフローチャートの各ステップは、監視装置１０１のＣＰＵがＲＯＭ，ハードディスク等の不揮発性記憶手段に記憶された本発明の制御プログラムを読み込み実行することに応じて実現される各処理を示す。
【００３５】
図５を用いて、本発明の監視装置１０１におけるデバイス情報の送信制御の処理を説明する。ここでは、デバイス情報（とくに稼動情報）については、画像形成装置から適宜取得し、デバイス情報管理部４０７にて管理されているものとする。
【００３６】
Ｓ５０１において、送信制御部４０１が電源投入に伴うシステムの初期化を行う。具体的には、既に登録済みのデバイス情報に関する情報テーブルを読み込む、変数の初期化などを行う。更にＳ５０２において、送信制御部４０１が初期化処理の一環として、中央管理装置１０５から送信設定情報が取得済みであるか判定する。Ｓ５０２でＮｏの場合は、Ｓ５２２において送信制御部４０１が中央管理装置１０５と通信を行うための通信設定が完了しているかの判定を行う。Ｓ５２２でＮｏの場合は、通信設定が完了するまで待機する。Ｓ５２２でＹｅｓの場合は、Ｓ５２３において送信制御部４０１が中央管理装置１０５から送信設定情報を取得し、Ｓ５０２へ戻る。Ｓ５０２でＹｅｓの場合は、送信制御部４０１が定期送信スレッド、イベント送信スレッド、再送用スレッドを起動する（Ｓ５０３）。Ｓ５０３までの初期化処理が完了後、監視装置１０１は外部からの要求、及び画像形成装置からの情報取得に関する処理するループに入る。
【００３７】
本発明においては、監視装置１０１の処理能力に依存して外部装置に情報を送信するためのスレッドを複数起動できる。この起動された複数のスレッドを用いて、監視装置１０１は複数種類の情報の送信処理を並行して行うことが可能である。以降で詳しく説明するが、本発明では、定期送信スレッド、イベント送信スレッド、再送用スレッド、及び後述する即時送信スレッドとして、複数のスレッドを用いる際には送信負荷が高くなり過ぎないような処理を実現している。
【００３８】
Ｓ５０４において、送信制御部４０１が中央管理装置１０５への送信設定情報の変更要求があるか判定する。この要求は監視装置或いは画像形成装置のＵＩによるユーザからの依頼であっても、中央管理装置からであってもよい。Ｓ５０４でＮｏの場合は、Ｓ５１１の処理に進む。Ｓ５０４でＹｅｓの場合は、Ｓ５０５において送信制御部４０１が中央管理装置から送信設定情報を取得する。そして、Ｓ５０６において、送信設定情報の取得が成功したか否かを判定する。Ｓ５０６でＹｅｓの場合は、Ｓ５０７において送信制御部４０１が定期送信スレッドに停止要求を行い、Ｓ５０８にてスレッドが停止するまで待機する。スレッドが停止した後（Ｓ５０８−Ｙｅｓ）、再度、Ｓ５０９において定期送信スレッドを起動し、Ｓ５０４へ戻る。Ｓ５０６でＮｏの場合は、Ｓ５１０においてスケジュール変更の要求元にエラーを返信して、Ｓ５０４へ戻る。ここで、定期送信スレッドの詳細な処理については図６を用いて後述する。
【００３９】
Ｓ５１１において、送信制御部４０１が中央管理装置１０５へ即時送信すべき要求を受信したか判定する。ここで扱う要求とは、エラー／アラート発生、トナー残量少／なしの警告等、画像形成装置から通知されるイベント系の障害情報とは異なる種別のデータとして説明する。具体的には、Ｓ５１１で扱う要求は、画像形成装置から受信した際に、その要求に係る処理の結果を含む応答をできる限りはやく必要とするものである。例えば、画像形成装置上で修理依頼ボタンをユーザが押下した場合、中央管理装置１０５で正しくその依頼を受け付けたか否かの結果を含む応答を迅速に得る必要がある。これは、ユーザの明示的なサービス依頼なので、画像形成装置のダウンタイムに直接つながるような、ユーザのみが気付く障害が起こっている可能性が非常に高く、厳密に障害の対応の管理を行う必要がある。
【００４０】
Ｓ５１１でＮｏの場合は、Ｓ５１７の処理に進む。Ｓ５１１でＹｅｓの場合は、Ｓ５１２において、デバイス情報管理部４０７が受信データを保存する。Ｓ５１３において、送信制御部４０１が現在起動している即時送信スレッド数、監視装置が起動できる即時送信スレッド上限数を取得する。本発明においては、即時送信スレッドの上限数は任意に設定可能で、例えば上限数のデフォルト値を２として、環境設定ファイルとして保持しておき、利用するものとする。Ｓ５１４において、送信制御部４０１は、現在起動している即時送信スレッド数が上限数未満であるか判定する。Ｓ５１４でＹｅｓの場合は、Ｓ５１５において、送信制御部４０１が新たに即時送信スレッドを起動する。Ｓ５１４でＮｏの場合は、Ｓ５１６において送信制御部４０１がエラー情報を生成し、送信データ送信部４０９を介して要求元に対して返信を行う。なお、即時送信スレッドの詳細な処理については、図７を用いて後述する。
【００４１】
Ｓ５１７において、送信制御部４０１が、イベント系データを受信したか判定する。ここでイベント系データは、前述のように、画像形成装置から監視装置１０１へ通知されるサービスコール、ジャム／アラート発生、トナー残量少等の障害情報が含まれる。イベント系データに関しても即時に中央管理装置１０５に送信すべき情報であるが、画像形成装置への応答を必要としない。
【００４２】
Ｓ５１７でＮｏの場合は、Ｓ５２０の処理に進む。Ｓ５１７でＹｅｓの場合は、Ｓ５１８において、デバイス情報管理部４０７が受信したイベントデータを保存する。Ｓ５１９において、送信制御部４０１がイベント送信スレッドの送信リストに受信したイベントデータを登録する。本発明においては、送信すべきイベントデータを管理するための送信リストに関してはキュー方式を用いている。なお、送信リストはキュー方式ではなく、イベントデータの緊急度に応じて送信順を制御するような管理方式を用いてもよい。送信リストに登録されたイベントデータは、Ｓ５０３で起動されたイベント送信スレッドを用いて、順次送信されることになる。
【００４３】
Ｓ５２０において、送信制御部４０１が、システム停止要求を検出したか判定する。Ｓ５２０でＹｅｓの場合は、Ｓ５２１において、送信制御部４０１が、起動されている全送信スレッドに停止要求を行う。Ｓ５２２にて全スレッドが停止するまで待機し、全スレッドが停止した際には、Ｓ５２３において、送信制御部４０１がその他の終了処理を行い、本プログラムを終了する。
【００４４】
次に、図６Ａ〜Ｃを用いて定期送信スレッドにおける処理について説明する。定期送信スレッドは、前述の通り、本システム初期化時に起動され、システム停止時に終了する。
【００４５】
まず、Ｓ６０１において、定期送信スレッドの開始にあたり、スレッドの初期化処理を行う。初期化処理の一環として、送信予約データを格納する予約リストを初期化する。
【００４６】
ここで、予約リストは図９で示す非循環双方向リストである。予約リストに登録されている送信予約データは少なくとも、データ種別、送信開始日時、送信完了日時を属性情報として持つ。また、新たに予約リストに送信予約データを登録する際には、登録対象の送信予約データの送信開始・完了予定日時が、既に予約リストに登録されている予約送信データの送信中途なる期間（送信開始日時〜送信完了日時の期間）と重複するかを確認する。重複しない場合は、新たに予約リストに送信予約データを登録できる。また、予約リストは時系列で送信予約データが並んでいるため、先頭のデータから処理され、処理された送信予約データは予約リストから削除される。送信予約データが処理された場合、その送信予約データのデータ種別で指定される稼動情報などが中央管理装置１０５に定期送信されることになる。
【００４７】
Ｓ６０２において、送信制御部４０１が、最優先に定期送信される送信情報の送信予約処理を行う。この処理については、図６Ｂで後述する。次にＳ６０３において、送信制御部４０１が、最優先に定期送信される送信情報以外の定期送信される送信情報の予約処理を行う。この処理については、図６Ｃで後述する。
【００４８】
Ｓ６０４において、次に定期送信タイマーイベントが発生、即ち、定期送信されるべき情報の定期送信開始時間となるまで待機する。定期送信タイマーイベントが発生したら、Ｓ６０５において送信制御部４０１が、予約リストの先頭の送信予約データを取得する。
【００４９】
Ｓ６０６において、送信制御部４０１が、取得した送信予約データが最優先に定期送信される送信情報を指定するものであるか判定する。Ｓ６０６でＮｏの場合はＳ６１５に、Ｓ６０６でＹｅｓの場合はＳ６０７に進む。Ｓ６０７において、送信データ生成部４０８が送信制御部４０１により取得された送信予約データで指定されるデータ種別の稼動情報をデバイス情報管理部４０７より取得し、所定の定期送信用のフォーマットに合わせて送信データを生成する。Ｓ６０８において、送信データ送信部４０９が、送信データ生成部４０８により生成された送信データを中央管理装置１０５に送信する。
【００５０】
Ｓ６０９において、送信制御部４０１が、定期送信が成功したか判定する。Ｓ６０９でＹｅｓの場合は、Ｓ６１０において、成功した送信日時を、図８で示す送信設定情報の前回送信開始日時として記録する。その後、Ｓ６１１において、次回の定期送信のために、送信制御部４０１が、最優先に定期的に送信される送信情報の送信予約処理を行う。一方、Ｓ６０９でＮｏの場合は、Ｓ６１２において、送信制御部４０１が送信に失敗した送信対象となった稼動情報が、再送対象データであるか判定する。Ｓ６１２でＹｅｓの場合は、Ｓ６１３において、送信制御部４０１が送信データに関する情報を含む再送予約データを再送リストに入れる。具体的に再送予約データは、送信データ種別、データ種別毎に異なる再送間隔、最大再送回数などが含まれる。この再送予約データと定期送信に失敗した送信データとが関連付けて管理される。この送信データの再送に関しては、後述の再送スレッドに関する処理（図７Ｃ）にて説明する。Ｓ６１２でＮｏの場合、Ｓ６１４において、送信制御部４０１がエラーログを出力し、Ｓ６１１へ進む。
【００５１】
Ｓ６１５において、送信制御部４０１が、Ｓ６０５で取得した送信予約データが最優先以外の定期送信される送信情報を指定するものであるか判定する。Ｓ６１５でＮｏの場合はＳ６２４に、Ｓ６１５でＹｅｓの場合はＳ６１６に進む。Ｓ６１６において、送信データ生成部４０８が送信制御部４０１により取得された送信予約データで指定されるデータ種別の稼動情報をデバイス情報管理部４０７より取得し、所定の定期送信用のフォーマットに合わせて送信データを生成する。Ｓ６１７において、送信データ送信部４０９が、送信データ生成部４０８により生成された送信データを中央管理装置１０５に送信する。
【００５２】
Ｓ６１８において、送信制御部４０１が、定期送信が成功したか判定する。Ｓ６１８でＹｅｓの場合は、Ｓ６１９において、成功した送信日時を、図８で示す送信設定情報の前回送信開始日時として記録する。その後、Ｓ６２０において、次回の定期送信のために、送信制御部４０１が、最優先以外の定期送信される送信情報の予約処理を行う。一方、Ｓ６１８でＮｏの場合は、Ｓ６２１において、送信制御部４０１が送信に失敗した送信対象となった稼動情報が、再送対象データであるか判定する。Ｓ６２１でＹｅｓの場合は、Ｓ６２２において、送信制御部４０１が送信データに関する情報を含む再送予約データを再送リストに入れる。Ｓ６２１でＮｏの場合、Ｓ６２３において、送信制御部４０１がエラーログを出力する。
【００５３】
Ｓ６２４において、送信制御部４０１が、スレッド停止要求が検出されたか判定する。Ｓ６２４でＹｅｓの場合はスレッドの終了処理を行い（Ｓ６２５）、定期送信スレッドを終了する。
【００５４】
次に図６Ｂを用いて、最優先に定期送信される送信情報の送信予約処理について説明する。本発明においては、最優先に定期送信されるべき送信情報（第１の稼動情報）としては、課金カウンタ情報（図８のＩＤ１０１〜１０３）を例に挙げている。
【００５５】
Ｓ６３１において、送信制御部４０１が、利用する定数及び変数を初期化する。本処理で予約リストに登録する対象となる送信情報のデータ種別数をＮ、予約リストに登録する対象となる送信情報を一時的に管理するためのリストをＬ，該リストＬ中のｘ番目の要素をＬｘとする。この時、０≦ｘ＜Ｎである。ここで、図８において、ＩＤ１０３のデータ種別の送信情報に関しては、取得可否で１０３が不要となっている。よって、今回の処理では、ＩＤ１０１の機器別課金カウンタ、ＩＤ１０２のジョブ別カウンタの二つがリストＬの要素となり、Ｎ＝２となる。また、リストＬの各要素であるＬ０＝機器別課金カウンタ、Ｌ１＝ジョブ別課金カウンタとする。ここで、これら二つの送信情報に関しては、同時に最優先で送信すべき稼動情報としているので、データ送信周期、及び初回送信開始日時は同じに設定してある。とくに最優先で送信すべきではないカウンタ情報がある場合は、図８において、そのデータ種別に関する優先順位に適切な値を設定することで、最優先に定期送信される対象から除外することが可能である。
【００５６】
次に、Ｓ６３２において、送信制御部４０１が図８の送信設定情報を参照し、最優先に定期送信される送信情報Ｌ０の前回送信開始日時Ｓｏｌｄを取得する。例えば、図８のようにまだ一度も送信されていない場合は、初回送信開始時間決定部４０５により決定された初回送信開始日時＝Ｓｏｌｄとする。次に、Ｓ６３３において、送信制御部４０１が図８の送信設定情報を参照し、最優先に定期送信される送信情報Ｌ０の送信周期Ｉを取得する。本例では、Ｌ０＝機器別課金カウンタの送信周期Ｉは１２時間となる。
【００５７】
Ｓ６３４において、送信予定スケジュール算出部４０３が、最優先に定期送信される送信情報Ｌ０の次回の送信開始予定日時Ｓｎｅｗを算出する。例えば、初回の定期送信に関しては、初回送信日時から算出することになる。この場合、送信開始予定日時Ｓｎｅｗは、初回送信日時から送信周期Ｉの整数倍を足した、現時刻に一番近い未来の時間とする。計算式は、現時刻をＴｎｏｗとして、以下の式で算出される。％は剰余演算子を表す。
Ｓｎｅｗ＝（Ｔｎｏｗ−（（Ｔｎｏｗ−Ｓｏｌｄ）％Ｉ））／Ｉ＋Ｉ
それ以降の定期送信に関しては、送信完了後、前回送信日時が管理されるので、Ｓｏｌｄが取得できる。Ｓｏｌｄが取得できる場合は、次回の送信開始予定日時は以下の式で算出できる。
Ｓｎｅｗ＝Ｓｏｌｄ＋Ｉ
次に、Ｓ６３５において、送信予定スケジュール算出部４０３が、予約対象となる最優先に定期送信される送信情報の送信時間を取得し、その和を算出する。この和を、ここでは最優先に定期送信される送信情報の送信時間Ｔとする。本例では、機器別課金カウンタの送信時間（１０）及びジョブ別課金カウンタ（１２０）の送信時間の和であるので、Ｔ＝１３０（分）となる。
【００５８】
次に、Ｓ６３９において、送信予定スケジュール算出部４０３が、次回送信完了の予定日時を算出する。次回の送信完了の予定日時Ｅは次式で算出できる。
Ｅ＝Ｓｎｅｗ＋Ｔ
次に、Ｓ６３７において、送信制御部４０１が、予約リストＬ内の各要素を参照して、算出した送信開始日時Ｓｎｅｗ、及び送信完了日時Ｅである送信予約データが既に予約リストに登録されているか判定する。Ｓ６３７でＹｅｓの場合は、Ｓ６３８において、次回の送信開始予定日時に予約タイマーイベントをセットし、本予約処理を終了する。ここで、既に予約リストに登録済みなのは、後述するＳ６４６で予約処理が行われた場合である。Ｓ６３７でＮｏの場合は、予約リストの適切な位置に、本処理で算出された送信開始日時Ｓｎｅｗ、送信完了日時Ｅを属性情報として含む送信予約データを登録し、Ｓ６３８へ進む。
【００５９】
次に図６Ｃを用いて、最優先に定期送信される送信情報以外の定期送信される送信情報（第２の稼動情報）の予約処理について説明する。
【００６０】
Ｓ６４０において、送信制御部４０１が、利用する定数及び変数を初期化する。本処理で予約リストに登録する対象となる送信情報のデータ種別数をＮ、予約リストに登録する対象となる送信情報を一時的に管理するためのリストをＬ，該リストＬ中のｘ番目の要素をＬｘとする。この時、０≦ｘ＜Ｎである。例えば、本処理の対象となる送信情報としては、図８のＩＤ１１０，１２０，１３０，１３１，及び１３２が該当する。また、ＩＤ１３０、１３１に関しては、初回送信開始日時が同じであり、かつ同周期である。以下では、ＩＤ１３０とＩＤ１３１の送信情報に関する、送信予約の処理を例に説明を行う。つまり、Ｎ＝２で、リストＬの要素としてはファームウェア情報及びハードディスク情報に関するものがある。
【００６１】
Ｓ６４１において、送信制御部４０１が、これから予約リストに登録する対象となる送信情報をその優先順でソートし、リストＬの要素とする。本例では、ＩＤ１３０の方が優先順位が高いため、Ｌの要素として、Ｌ０＝ファームウェア情報（ＩＤ１３０）、Ｌ１＝ハードディスク情報（ＩＤ１３１）でソート、登録される。次にＳ６４２において、変数ｎを０で初期化する。
【００６２】
Ｓ６４３において、送信制御部４０１が、図８の送信設定情報を参照して、Ｌｎの前回送信開始日時Ｓ，送信周期Ｉ、Ｌｎの送信時間ｔを取得する。初回の定期送信の場合は、Ｓ＝初回送信開始日時とする。例えば、Ｌ０＝ファームウェア情報に関して、送信周期として７日、送信時間ｔとして１０分が取得される。
【００６３】
Ｓ６４４において、送信予定スケジュール算出部４０３が、Ｌｎの次回の送信開始の予定日時Ｓｎを算出する。ここでの算出に関しては、前述したＳ６３４と同様の方法で算出が行われる。計算式は、現時刻をＴｎｏｗとして、以下の式で算出される。
Ｓｎ＝（Ｔｎｏｗ−（（Ｔｎｏｗ−Ｓ）％Ｉ））／Ｉ＋Ｉ
それ以降の定期送信に関しては、Ｓｎは以下の式で算出できる。
Ｓｎ＝Ｓ＋Ｉ
次に、Ｓ６４５において、送信予定スケジュール算出部４０３が、次回の送信完了の予定日時Ｅｎを算出する。この算出は、Ｓ６３６と同様な方法で算出でき、次の式で算出できる。
Ｅｎ＝Ｓｎ＋ｔ
Ｓ６４６において、送信制御部４０１が、Ｓ６４６で求めた次回の送信完了の予定日時Ｅｎまでに、送信完了が予定される最優先に定期送信される送信情報があるかを確認する。この確認の結果、Ｓ６４６で求めた次回の送信完了の予定日時Ｅｎまでに、送信完了が予定される最優先に定期送信される送信情報がある場合には、そのデータ種別、送信開始日時及び送信完了日時を属性情報とする送信予約データを予約リストに登録する。Ｓ６４６で求めた次回の送信完了の予定日時Ｅｎまでに、送信完了が予定される最優先に定期送信される送信情報が無い場合には、ここで最優先に定期送信される送信情報に関する予約処理は行われない。
【００６４】
なお、ここで予約リストに対して送信予約データを登録する際には、前述した図６Ｂと同様の処理を行うことになる。ただし、Ｓ６４６での予約処理においては、図８の送信設定情報に設定される前回送信開始日時は予約リストの最後の送信予約データの送信開始日時とする。また、Ｓ６３８の予約タイマーイベントの設定処理は行わない。
【００６５】
Ｓ６４７において、重複判定部４０６が、送信開始の予定日時Ｓｎ、送信完了の予定日時Ｅｎである予約対象のデータと、定期送信される期間が重複する送信予約データが予約リストに既に登録されているのか判定する。
【００６６】
重複判定に関しては以下の（１）〜（３）ような判定が行われる。ここで、予約リストＲＬに登録される要素（送信予約データ）をＲＬｉ（０≦ｉ＜Ｎ）とし、要素ＲＬｉの属性情報である送信開始日時をＬｉｓ、送信完了日時をＬｉｅと記述する。なお、Ｎは予約リストに登録されている送信予約データの総数を示す。
（１）Ｅｎ≦Ｌ０ｅ或いはＬ（Ｎ−１）ｅ≦Ｓｎならば、重複なし。
（２）ｉ≧１の時、Ｌ（ｉ−１）ｅ≦Ｓｎ且つＥｎ≦Ｌｉｓを満たすｉがあるならば重複なし。
（３）それ以外は重複あり。
【００６７】
Ｓ６４７でＹｅｓの場合は、Ｓ６４８において、重複判定部４０６が、予約データの送信開始日時Ｓｎを、重複する送信予約データであるＬｉの送信完了日時Ｌｉｅに置き換える。そして、置換後のＳｎから予約データの送信完了の予定日時Ｅｎも算出し、設定する。
【００６８】
Ｓ６４７でＮｏの場合、Ｓ６４９において、送信制御部４０１が、データ種別としてファームウェア情報（またはハードディスク情報）、送信開始時間としてＳｎ、送信完了時間としてＥｎが属性情報として含まれる送信予約データを予約リストに登録する。次にＳ６５０において、送信制御部４０１が、次回の送信日時にタイマーイベントをセットし、ｎをインクリメントし（Ｓ６５１）、ｎがＮに等しいか判定する（Ｓ６５２）。Ｓ６５２でＹｅｓの場合は本予約処理を終了する。Ｓ６５２でＮｏの場合は、Ｓ６４３に戻り、他のリストＬ中の要素に関して同様の処理を行う。
【００６９】
次に図７Ａ〜Ｃのフローチャートに従って、各送信スレッドの処理について説明する。
【００７０】
図７Ａを用いて、起動された即時送信スレッドにおける処理について説明する。即時送信スレッドの起動は、図５のメインフローで説明した通りである。また、スレッド起動時の引数として、送信要求された即時送信データを持ち、中央管理装置１０５からの応答を待つ。
【００７１】
Ｓ７００において、即時送信スレッドがメインスレッドから起動されると、スレッドの初期化処理終了後、送信データ生成部４０８が中央管理装置１０５へ送信する送信データを生成する。その後、Ｓ７０１において、送信データ送信部４０９が中央管理装置１０５へデータ送信を行う。
【００７２】
Ｓ７０２において、送信制御部４０１が、中央管理装置１０５から応答があったか判定する。Ｓ７０２でＹｅｓの場合は、Ｓ７０３において、送信要求元（画像形成装置、監視装置のＵＩなど）に中央管理装置１０５からの応答を返信し、即時送信スレッドを終了する。Ｓ７０２でＮｏの場合は、Ｓ７０４において、送信制御部４０１が、送信エラーが発生したか判定する。Ｓ７０４でＹｅｓの場合は、Ｓ７０５において、送信要求元にエラーを返信し、即時送信スレッドを終了する。Ｓ７０４でＮｏの場合はＳ７０２へもどる。
【００７３】
次に、図７Ｂを用いて、イベント送信スレッドにおける処理について説明する。イベント送信スレッドの起動は、図５で説明した通りである。また、イベントの再送に関しても同スレッド内で再送処理を行う。
【００７４】
Ｓ７１０において、イベント送信スレッドが起動されると、スレッドの初期化処理を行う。次にＳ７１１において、送信制御部４０１が、Ｓ５１９にて送信リストに登録されたデータがあるか判定する。Ｓ７１１でＹｅｓの場合は先頭のデータを取得し、Ｓ７１２において、送信データ生成部４０８が中央管理装置１０５へ送信する送信データを生成する。Ｓ７１３において、送信データ送信部４０９が生成された送信データを送信する。
【００７５】
Ｓ７１４において、送信制御部４０１が、送信が正常終了したか判定する。Ｓ７１４でＹｅｓの場合はＳ７１１へ戻る。Ｓ７１４でＮｏの場合は、Ｓ７１５において、再送可能なエラー（イベント）且つ再送回数が上限以内であるか判定する。ここで再送不能となるエラー（イベント）とは、データ形式不正（壊れている）場合などがある。Ｓ７１５でＹｅｓの場合は、Ｓ７１６において、送信データ送信部４０９が再送処理を行う。Ｓ７１５でＮｏの場合は、Ｓ７１７において、送信制御部４０１が、該送信データを破棄し、エラーログの出力を行い、その後、Ｓ７１１へ戻る。
【００７６】
一方、Ｓ７１１でＮｏの場合は、Ｓ７１８において、送信制御部４０１が、スレッド停止要求があったか判定する。Ｓ７１８でＹｅｓの場合はスレッドの終了処理を行い、イベント送信スレッドを終了する。Ｓ７１８でＮｏの場合はＳ７１１へもどる。
【００７７】
次に、図７Ｃで再送スレッドの処理について説明する。再送スレッドの起動は、図５で説明した通りである。本再送スレッドは定期送信される送信情報の再送用のスレッドである。定期送信スレッドでは再送処理を行わず、本再送スレッドで処理を行う。また、送信用データは定期送信スレッドでの処理において既に作成されており、送信失敗時に再送用に保存されているものとする。
【００７８】
Ｓ７２０において、再送スレッドが起動されると、スレッドの初期化処理を行う。Ｓ７２１において、送信制御部４０１が、Ｓ６１３及びＳ６２２の処理により再送リストに再送データが追加されたか判定する。Ｓ７２１でＹｅｓの場合は、Ｓ７２２において、送信制御部４０１が、追加された再送データに設定されている再送間隔Ｉ、再送データを一意に識別するために順次、採番される再送ＩＤを取得する。また、再送データにはその他、少なくとも再送回数Ｃ、再送される送信情報の格納アドレスが設定されているものとする。
【００７９】
Ｓ７２３において、送信制御部４０１が、次回送信日時Ｔ（＝現時刻＋Ｉ）を算出する。
【００８０】
Ｓ７２４において、送信制御部４０１が、算出した次回送信日時Ｔに再送タイマーイベントをセットし、Ｓ７２１へ戻る。再送タイマーイベントには再送ＩＤを指定できるものとし、イベントがシグナル状態になったとき、この再送ＩＤで再送対象データを識別する。
【００８１】
Ｓ７２１でＮｏの場合は、Ｓ７２５において、送信制御部４０１が、再送タイマーイベントが発生したかを判定する。Ｓ７２５でＹｅｓの場合は、Ｓ７２６において、再送タイマーイベントの対象となる再送ＩＤに対応する再送データを、送信リスト上で特定する。その際に再送回数Ｃを取得し、Ｃから１を減算する。次にＳ７２７において、送信データ送信部４０９が再送データに対応する送信データの再送を中央管理装置１０５に対して行う。Ｓ７２８において、送信制御部４０１が、送信が正常終了したか判定する。Ｓ７２８でＹｅｓの場合はＳ７２１へ戻る。Ｓ７２８でＮｏの場合は、Ｓ７２９において送信制御部４０１が、再送回数Ｃが０であるか判定する。Ｓ７２９でＹｅｓの場合は、Ｓ７３０において再送データ並びに再送用に保存されている送信データを破棄し、エラーログに出力を行い、Ｓ７２１へ戻る。Ｓ７２９でＮｏの場合は、Ｓ７３１において、送信制御部４０１が、送信エラーが再送不能のエラーであるか判定する。例えば、データ形式不正（壊れている）場合などがある。Ｓ７３１でＹｅｓの場合はＳ７３０に遷移する。Ｓ７３１でＮｏの場合は、Ｓ７３２において、送信制御部４０１が次回送信日時Ｔ（＝現時刻＋Ｉ）を算出する。その後、Ｓ７３３において、Ｓ７２４同様、次回送信日時Ｔに再送タイマーイベントをセットし、Ｓ７２１へ戻る。
【００８２】
一方、Ｓ７２５でＮｏの場合、Ｓ７３４において、送信制御部４０１がスレッド停止要求か判定する。Ｓ７３４でＹｅｓの場合は、Ｓ７３５においてスレッド終了処理を行い、再送スレッドを終了する。Ｓ７３４でＮｏの場合は、Ｓ７２１へ戻る。
【００８３】
（第二の実施の形態）
第一の実施の形態では、再送スレッドでは優先順位に従った処理を行っていなかったが、再送スレッドに関しても優先順位に従った処理を行うように構成してもよい。例えば、次のように構成する。
【００８４】
再送スレッドにおいても、再送用の予約リストである再送予約リストを保持し、再送スレッドで再送データが追加された時、及び再送に失敗した場合、再送予約リストに再送予約データを登録する。この登録に際し、再送期間に重複がある場合は、優先度を比較し、優先度の高い再送データが先に処理されるように再送予約データを配置する。また、この登録に関し、新規予約、変更になった予約の送信開始時刻は調整する。これにより、再送にあたっても、データの重要度に従った再送処理が可能となり、重要な稼動情報は早期に再送できるという効果を奏する。
【００８５】
（第三の実施の形態）
第一の実施の形態では、定期送信スレッド数が１つの場合について説明を行った。しかし、情報処理装置の性能によっては、定期送信スレッドとして複数スレッドを用いることが可能となる場合がある。この場合、次のように構成する。
【００８６】
例えば、初期設定ファイルなどに情報処理装置の性能に見合った定期送信スレッド数を定義しておき、プログラム初期化時によみこむ。定期送信スレッド数が複数の場合は、各スレッドの予約リストを参照して、重複判定を行うことになる。新たに送信予約データを登録する際には、送信中の期間が重複しないように何れかスレッドの予約リストに対して登録を行うことになる。ここで、複数のスレッドの予約リストを参照して、何れのスレッドにおいても送信期間に重複がある場合は、何れかのスレッドを選択して、前述した実施例のように、定期送信の時間の変更などを行い該予約リストに送信予約データとして登録する。
【００８７】
（他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005539005.tif 000002
【図２】
0005539005.tif 000003
【図３】
0005539005.tif 000004
【図４】
0005539005.tif 000005
【図５】
0005539005.tif 000006
【図６Ａ】
0005539005.tif 000007
【図６Ｂ】
0005539005.tif 000008
【図６Ｃ】
0005539005.tif 000009
【図７Ａ】
0005539005.tif 000010
【図７Ｂ】
0005539005.tif 000011
【図７Ｃ】
0005539005.tif 000012
【図８】
0005539005.tif 000013
【図９】
0005539005.tif 000014