(57)【要約】【課題】複数のデータを送信元のポートを共有しつつ送信し、かつ送信データに対する応答のなかったにデータを複数回再送信する。【解決手段】通信装置であって、指定された宛先に対してデータを送信する送信手段と、前記送信手段による送信に対する応答を受信する受信手段と、前記送信手段による送信が行われた際に当該送信に関する情報を記録し、更に当該送信に対する応答を前記受信手段により受信した際に当該応答の送信元の情報を対応づけて記録する記録手段と、前記記録手段にて記録した情報に基づいて、前記送信手段にデータの再送を行わせる制御手段とを備え、前記制御手段は、前記記録手段に記録されている情報のうち、記録されてから所定の時間が経過し、かつ、前記受信手段にて応答を受信していない情報が示す宛先に対し、前記送信手段によるデータの再送を行わせる。【選択図】  図３
2018125611.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して接続された装置と通信を行う通信装置であって、
指定された宛先に対してデータを送信する送信手段と、
前記送信手段による送信に対する応答を受信する受信手段と、
前記送信手段による送信が行われた際に当該送信に関する情報を記録し、更に当該送信に対する応答を前記受信手段により受信した際に当該応答の送信元の情報を対応づけて記録する記録手段と、
前記記録手段にて記録した情報に基づいて、前記送信手段にデータの再送を行わせる制御手段と
を備え、
前記制御手段は、前記記録手段に記録されている情報のうち、記録されてから所定の時間が経過し、かつ、前記受信手段にて応答を受信していない情報が示す宛先に対し、前記送信手段によるデータの再送を行わせることを特徴とする通信装置。
【請求項２】
前記記録手段は、前記送信に関する情報として、再送を行う回数を管理し、
前記制御手段は、前記管理している回数を超えない範囲で、前記送信手段に再送を行わせることを特徴とする請求項１に記載の通信装置。
【請求項３】
前記送信手段は、第１の時間間隔ごとに、指定された宛先に対してデータの送信処理を開始することを特徴とする請求項１または２に記載の通信装置。
【請求項４】
前記送信手段は、前記第１の時間間隔において、所定の数の宛先に対して、データの送信を行うことを特徴とする請求項３に記載の通信装置。
【請求項５】
前記制御手段は、第２の時間間隔ごとに、前記送信手段にデータの再送を行わせるか否かを判定することを特徴とする請求項１乃至４のいずれか一項に記載の通信装置。
【請求項６】
前記受信手段により応答を受信した場合に当該応答の送信元に対し、前記送信手段によるデータの送信にて要求した情報よりも詳細な情報を要求する手段を更に有することを特徴とする請求項１乃至５のいずれか一項に記載の通信装置。
【請求項７】
複数の前記送信手段と、複数の前記受信手段が設けられ、
前記複数の送信手段と前記複数の受信手段はそれぞれ異なるプロトコルもしくはバージョンに対応していることを特徴とする請求項１乃至６のいずれか一項に記載の通信装置。
【請求項８】
前記ネットワークを介して接続された装置の状態情報を管理する手段を更に有し、
前記制御手段は、前記ネットワークを介して接続された装置のうち、所定の状態にある装置に対しては、前記送信手段にデータを送信させないことを特徴とする請求項１乃至７のいずれか一項に記載の通信装置。
【請求項９】
ネットワークを介して装置と接続された通信装置における通信方法であって、
指定された宛先に対してデータを送信する送信工程と、
前記送信工程による送信に対する応答を受信する受信工程と、
前記送信工程による送信が行われた際に当該送信に関する情報を記録し、更に当該送信に対する応答を前記受信工程にて受信した際に当該応答の送信元の情報を対応づけて記録部に記録する記録工程と、
前記記録部に記録されている情報に基づいて、前記送信工程によりデータの再送を行わせる制御工程と
を有し、
前記制御工程において、前記記録部に記録されている情報のうち、記録されてから所定の時間が経過し、かつ、前記受信工程にて応答を受信していない情報が示す宛先に対し、前記送信工程によるデータの再送を行わせることを特徴とする通信方法。
【請求項１０】
コンピューターを、
指定された宛先に対してデータを送信する送信手段、
前記送信手段にて送信したデータに対する応答を受信する受信手段、
前記送信手段による送信が行われた際に当該送信に関する情報を記録し、更に当該送信に対する応答を前記受信手段により受信した際に当該応答の送信元の情報を対応づけて記録する記録手段、
前記記録手段にて記録した情報に基づいて、前記送信手段にデータの再送を行わせる制御手段
として機能させ、
前記制御手段は、前記記録手段に記録されている情報のうち、記録されてから所定の時間が経過し、かつ、前記受信手段にて応答を受信していない情報が示す宛先に対し、前記送信手段によるデータの再送を行わせることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、通信方法、及びプログラムに関する。
【背景技術】
【０００２】
従来の通信の宛先にコネクションの確立のためのハンドシェイクを行うことなくデータの送受信を行う通信手段として、特許文献１の構成が挙げられる。
【０００３】
特許文献１では、個々のデータの送信が行われるたびに送信した各データを特定する送信データ特定情報を順次記録する手段と、送信されたデータの宛先が受信したことを確認させるためのデータを送信してきた際にこれを特定する受信データ特定情報を順次記録する手段を備える。そして、記録された情報を対比した結果、対とならなかった送信データ特定情報のうち、受信データ特定情報が到来するまでの遅延時間の最大値を超えて存在するものを不達送信データとして抽出し、抽出された送信データ特定情報に対応する送信データを所定の相手先に再送信している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２１２７９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記従来技術では再送信したデータに対するデータの受信が無い場合にデータを再度送信する手段を持たない。また、データを再送信したことを記録していないため、不達送信データを複数回抽出する場合に、同じ送信データ特定情報が抽出されるという問題がある。一方、ハンドシェイクを行った上で、同時に複数の再送信を行う構成とした場合、その送信宛先の数に対応して通信ポートそれぞれ設ける必要がある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために本願発明は以下の構成を有する。すなわち、ネットワークを介して接続された装置と通信を行う通信装置であって、指定された宛先に対してデータを送信する送信手段と、前記送信手段による送信に対する応答を受信する受信手段と、前記送信手段による送信が行われた際に当該送信に関する情報を記録し、更に当該送信に対する応答を前記受信手段により受信した際に当該応答の送信元の情報を対応づけて記録する記録手段と、前記記録手段にて記録した情報に基づいて、前記送信手段にデータの再送を行わせる制御手段とを備え、前記制御手段は、前記記録手段に記録されている情報のうち、記録されてから所定の時間が経過し、かつ、前記受信手段にて応答を受信していない情報が示す宛先に対し、前記送信手段によるデータの再送を行わせる。
【発明の効果】
【０００７】
本願発明により、ホストの通信ポートを節約しつつ、応答が返されなかった送信データを複数回再送信することが可能となる。
【図面の簡単な説明】
【０００８】
【図１】ネットワークデバイス管理システムの構成を示すブロック図。
【図２】ホストコンピュータのハードウェア構成の例を示すブロック図。
【図３】第１の実施形態に係る処理部の構成例を示す図。
【図４Ａ】初期化処理およびタイマーの起動処理のフローチャート。
【図４Ｂ】定期的な探索データの送信処理のフローチャート。
【図５Ａ】送信情報追加処理のフローチャート。
【図５Ｂ】遅延呼び出し処理のフローチャート。
【図６】遅延処理のフローチャート。
【図７】受信処理のフローチャート。
【図８】第２の実施形態に係る処理部の構成例を示す図。
【図９】第２の実施形態に係る受信処理のフローチャート。
【図１０】第３の実施形態に係る送信処理のフローチャート。
【発明を実施するための形態】
【０００９】
＜第１の実施形態＞
以下、本発明を実施するための形態について図面を用いて説明する。
【００１０】
［システム構成］
図１は、本発明の第１の実施の形態に係るネットワークデバイス管理システムの構成例を示す図である。図１において、ホストコンピュータ１０１は、ネットワークデバイス管理システムにおけるホストコンピュータとして機能する。画像形成装置１０３、１０４、１０５は、管理対象の画像形成装置である。なお、画像形成装置の数はこれに限定するものではなく、更に多くの画像形成装置が接続されていてもよい。また、画像形成装置としては、ネットワークプリンタ、ＭＦＰ（Ｍｕｌｔｉ−Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）、コピー機などが該当するが特に限定するものではない。また、ネットワークデバイスとしての管理対象は、画像形成装置に限定するものではなく、ホストコンピュータ１０１が管理すべき機器であれば他の機器であってもよい。
【００１１】
ホストコンピュータ１０１及び画像形成装置１０３、１０４、１０５は、ネットワーク１０２に接続され、各装置はネットワーク１０２を介して互いに通信可能となっている。ホストコンピュータ１０１は、ネットワーク１０２を介して画像形成装置１０３、１０４、１０５と通信を行う。ここで、各画像形成装置との通信には、ＳＮＭＰ（Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）が用いられる。ＳＮＭＰはＵＤＰ（Ｕｓｅｒ  Ｄｉａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）上で動作するプロトコルである。ＵＤＰは、データの送信先に対して、事前のハンドシェイクを行うことなくデータを送信する。
【００１２】
ＵＤＰには、以下に述べる特徴がある。送信処理と受信処理を分離することが可能となる。例えば、送信処理では、受信処理が受信待ちをしているポートを送信元ポートとして、複数の宛先に対してデータを送信する。このデータを受信した宛先側では、送信元ポートに対してＵＤＰの応答を送信する。受信処理では、これらの複数の宛先からの応答を受信することができる。これにより、複数の宛先に対するデータの送信と受信とをより少ない処理とポートを用いて実現することが可能となる。これに対して、ハンドシェイクが必要なＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）では、宛先毎に送信処理と受信処理が必要になる。
【００１３】
また、ＵＤＰでは、ハンドシェイクを行わないため、送信したデータが宛先により受信されたか否かの確認や受信がされない場合における再送信の仕組みを持たない。
【００１４】
（ハードウェア構成）
図２は、ホストコンピュータ１０１のハードウェア構成の例を示す図である。図２において、ホストコンピュータ１０１は、ＣＰＵ２０１、ＲＡＭ２０２、ＲＯＭ２０３、および外部記憶装置２０７を備える。ＣＰＵ２０１は、ＲＯＭ２０３や外部記憶装置２０７に記憶された、或いはネットワーク１０２よりダウンロードしたソフトウェアを実行し、システムバス２０９に接続された各デバイスを総括的に制御する。ＲＡＭ２０２は、ＣＰＵ２０１の主メモリあるいはワークエリアなどとして機能する記憶手段である。外部記憶装置２０７は、ハードディスク（ＨＤ）やソリッドステートドライブ（ＳＳＤ）等から構成される記憶手段である。外部記憶装置２０７は、ブートプログラム、オペレーティングシステム（ＯＳ）、認証サーバ、認証クライアント等を含む各種のアプリケーション、データベースデータ、ユーザファイル等を記憶する。
【００１５】
さらにホストコンピュータ１０１は、キーボードコントローラ（ＫＢＤＣ）２０４、ビデオコントローラ（ＶＣ）２０５、ディスクコントローラ（ＤＣ）２０６、およびネットワークインタフェースコントローラ（ＮＩＣ）２０８を備える。ＫＢＤＣ２０４は、不図示のキーボードやポインティングデバイスなどの入力手段からの入力情報をＣＰＵ２０１に送る。ＶＣ２０５は、ＬＣＤ等からなる表示装置の表示を制御する。ＤＣ２０６は、外部記憶装置２０７との通信を制御する。ＮＩＣ２０８は、ホストコンピュータ１０１をネットワーク１０２に接続し、各種通信を制御する。
【００１６】
（ＵＤＰデータの送信処理）
図３は、ホストコンピュータ１０１における、ＳＮＭＰのようなＵＤＰデータ（パケット）の送信処理に関するソフトウェア構成の例を示す図である。図３を用いてデータの送信から再送信までの流れの概要を説明する。ここで、ＵＤＰデータの送信処理は、ホストコンピュータ１０１から、ネットワーク１０２に接続された画像形成装置１０３、１０４、１０５に対してデータを送信するものとする。また、ここではホストコンピュータ１０１の構成のみを示し、画像形成装置側の構成については省略する。なお、画像形成装置１０５は電源が投入されていない等の理由により、このＵＤＰデータに対して応答を返せない状態にあるとする。
【００１７】
送信開始部３０１は、画像形成装置１０３、１０４、１０５に対するＵＤＰデータの送信の指示を行う。送信開始部３０１は、データ送信部３０４、データ受信部３０５、遅延呼出制御部３０２、受信記録部３０６を適時呼び出す。そして、送信開始部３０１は、データ送信部３０４を用いて、送信先の画像形成装置にＵＤＰデータを送信させ、送信情報を遅延呼出制御部３０２に追加させる。送信情報については後述する。
【００１８】
データ送信部３０４は、指定した送信先に対して指定したデータをＵＤＰデータとして送信する。ここで、データの送信先は、アドレスにより指定される。遅延呼出制御部３０２は、送信情報が追加されてから所定の経過時間（Ｔ秒とする）後に、この送信情報を引数として遅延処理実行部３０３による遅延処理を呼び出す。ここでのＴは、予め定義され、保持されているものとする。遅延呼出制御部３０２及び遅延処理実行部３０３による遅延処理に入力される送信情報は、宛先となる画像形成装置のアドレス、再送信のリトライ回数、および送信データを含む。ここで、送信開始部３０１が遅延呼出制御部３０２に送信情報を追加させる際のリトライ回数の値は、データの再送信回数（Ｎ回とする）である。
【００１９】
データ受信部３０５は、ホストコンピュータ１０１が指定したポートに対して送信されたＵＤＰデータを、ネットワーク１０２を介して受信する。データ受信部３０５は、受信したデータがデータ送信部３０４により送信されたデータに対する応答であることを確認し、データの送信元を特定できる情報（この場合はＩＰアドレス）を受信記録部３０６に保存する。受信記録部３０６は、保存された情報を利用して指定された送信元からのデータが受信済みであるか否か判定する機能を有する。ここで、データ受信部３０５が受信待ちするポート番号と、データ送信部３０４がデータを送信する際の送信元のポート番号は同一である。これにより、データ送信部３０４により送信されたデータに対する応答がデータ受信部３０５により受信されることになる。言い換えると、同じポートから送信されたデータに対する応答は、異なる装置から送信（返信）されたデータであっても、同じポートにて受信される。
【００２０】
遅延処理実行部３０３は、遅延処理において、遅延呼出制御部３０２にて追加された送信情報を受け取り、送信情報中のＩＰアドレスからのデータが受信済みか否かを受信記録部３０６に問い合わせる。つまり、送信情報に示されたＩＰアドレスに対して送信したデータに対する応答が、受信されているか否かを問い合わせる。問い合わせの結果、受信済みでない場合は、遅延処理実行部３０３は、データ送信部３０４を用いてデータを再送信する。
【００２１】
次に、送信情報中の「リトライ回数」を１減算した結果が正数（＞０）の場合、遅延処理実行部３０３は、遅延呼出制御部３０２に「リトライ回数」を１減算した送信情報を追加（更新）させる。この再送信処理により、応答を返さない宛先（本例の場合は、画像形成装置１０５）に対しては、Ｔ秒毎に最大Ｎ回のデータの再送信が行われる。つまり、初回の送信と最大Ｎ回の再送信により、Ｎ＋１回のデータの送信が行われうる。なお、例えば、画像形成装置１０５が途中で起動した場合など、画像形成装置１０５から応答があった場合には、それ以降のデータの再送信は行われない。
【００２２】
ここでは、送信するデータを送信情報中に含めた例を示したが、これに限定するものではない。例えば、送信するデータが規定のものである場合、データ送信部３０４あるいは、送信開始部３０１と遅延処理実行部３０３とが、送信するデータを作成することにより、送信情報内の「送信データ」は不要となる。
【００２３】
以下、ネットワーク１０２上の画像形成装置の探索処理を例に挙げて、図３の各ブロックの処理を詳細に説明する。探索処理では、ネットワークにおいて指定されたアドレス群に対してＳＮＭＰバージョン１（ＳＮＭＰｖ１）のデータを順次送信し、その応答として受信した受信データを検証する。ここでのアドレス群としては、例えば、１９２．１６．０．０〜１９２．１６．２５５．２５５の場合、計６５５３６個のアドレスが該当する。このような場合、アドレスを割り当てれられた宛先が存在しない、或いは宛先が起動していない等の理由により、送信したデータの全てに対して応答が返信されるとは限らない。また、応答を返した宛先が全て画像形成装置であるとは限らない。また、ＵＤＰの性質上、送信したＳＮＭＰの要求及び応答データが必ず宛先により受信されるとは限らない。上記の探索処理の対象となるアドレス群に関する情報（範囲）は、予め保持しているものとする。
【００２４】
［処理フロー］
以下に、本実施形態に係る処理フローについて説明する。なお、以下に示す各処理フローは、ホストコンピュータ１０１のＣＰＵ２０１が、ＲＡＭ２０２等に格納されたプログラムを読み出して実行されることにより、実現される。
【００２５】
図４Ａおよび図４Ｂは、本実施形態に係る送信開始部３０１の処理の流れを示すフローチャートである。送信開始部３０１は、各種初期化処理とタイマーにより定期的に実行される探索データの送信処理を行う。タイマーによる定期的な送信処理の実行は、短時間に大量の探索用データを送信せず、毎秒決まった個数のアドレスに対して順次探索用のデータを送信するための仕組みである。図４Ａは、各種初期化処理とタイマーの起動のフローチャートである。図４Ｂは、タイマーにより定期的に実行される探索データの送信処理のフローチャートである。
【００２６】
（初期化処理）
まず、図４Ａに示す各種初期化処理とタイマーの起動処理について説明する。
【００２７】
Ｓ４０１にて、送信開始部３０１は、受信記録部３０６を作成する。なお、ここでの「作成する」とは、各処理部を呼び出し、各種処理を実行するように設定を行うことを意味する。受信記録部３０６は、ＩＰアドレスのリストを保持し、与えられたＩＰアドレスをリストに追加する機能と、与えられたＩＰアドレスがリスト内に存在するか否かを返す機能とを持つ。
【００２８】
Ｓ４０２にて、送信開始部３０１は、データ受信部３０５を作成し、ＵＤＰデータの受信開始をデータ受信部３０５に指示する。この際、データ受信用のポートは、通常、システムにより自動的に割り当てられた未使用のポートが使用される。
【００２９】
Ｓ４０３にて、送信開始部３０１は、データ送信部３０４を作成する。この際、送信開始部３０１は、データ送信元のポート番号として、Ｓ４０２にて割り当てられたデータ受信部３０５の受信ポート番号を用いるようデータ送信部３０４に指示する。
【００３０】
Ｓ４０４にて、送信開始部３０１は、遅延呼出制御部３０２を作成する。この際、送信開始部３０１は、作成した遅延呼出制御部３０２に遅延時間Ｔと、送信情報が入力されてから遅延時間Ｔ後にこの送信情報を引数にして呼び出す遅延処理実行部３０３による遅延処理とを設定する。
【００３１】
Ｓ４０５にて、送信開始部３０１は、タイマーを作成し、一定の時間間隔ｔ１毎に図４Ｂの探索データの送信処理を呼び出すように設定する。ここでの時間間隔ｔ１として、例えば、１秒や０．５秒などの設定が行われる。
【００３２】
Ｓ４０６にて、送信開始部３０１は、Ｓ４０５で作成したタイマーを開始する。これにより、タイマーによる一定時間の経過を検知することにより、その時間毎に図４Ｂに示す探索データ送信処理が起動されることとなる。その後、本処理フローを終了する。
【００３３】
（探索データの送信処理）
次に、図４Ｂに示すタイマーにより定期的に起動される探索データの送信処理について説明する。
【００３４】
Ｓ４１０にて、送信開始部３０１は、変数ｉに値Ｍを設定する。ここで、ＭはＳ４０５で作成したタイマーによる処理の呼び出し間隔（時間間隔ｔ１）内にて送信する探索データ（送信データ）の数である。例えば、タイマーの呼び出し間隔（時間間隔ｔ１）が０．５秒であり、毎秒３０個のアドレスに対して探索データを送信する場合、Ｍは１５（＝３０／０．５）となる。
【００３５】
Ｓ４１１にて、送信開始部３０１は、探索対象として指定されたアドレス群からアドレスを１つ取得する。このとき、アドレスを取得できない場合は、全てのアドレスに対する探索データの送信が完了したことを意味する。従って、ここで取得したアドレスは、アドレス群において処理済みとして扱われる。
【００３６】
Ｓ４１２にて、送信開始部３０１は、Ｓ４１１にてアドレスが取得できたか否かを判定する。アドレスが取得できなかった場合は（Ｓ４１２にてＮＯ）Ｓ４１３へ進み、アドレスが取得できた場合（Ｓ４１２にてＹＥＳ）Ｓ４１４へ進む。
【００３７】
Ｓ４１３にて、送信開始部３０１は、タイマーを停止する。その後、本処理フローを終了する。ここで、タイマーを停止すると、以降、送信開始部３０１による定期的な探索データの送信処理は停止される。
【００３８】
Ｓ４１４にて、送信開始部３０１は、Ｓ４１１で取得したアドレスに対して探索用のデータを送信するようにデータ送信部３０４に指示する。ここで、探索用のデータとは例えば、ＳＮＭＰｖ１のプリンタＭＩＢ（ＲＦＣ３８０５）のルートＯＩＤ（ｍｉｂ−２．４３）のＧｅｔＮｅｘｔ要求である。例えば、この送信データに対してＰｒｉｎｔｅｒＭＩＢ内のＯＩＤを返した宛先は、プリンタであると判断することができる。
【００３９】
Ｓ４１５にて、送信開始部３０１は、アドレスとリトライ回数（Ｎ）とを含む送信情報を作成し、この送信情報をＳ４０４で作成した遅延呼出制御部３０２に入力する。
【００４０】
Ｓ４１６にて、送信開始部３０１は、変数ｉの値を１減ずる。
【００４１】
Ｓ４１７にて、送信開始部３０１は、変数ｉが０か否かを判定する。変数ｉが０でない場合（Ｓ４１７にてＮＯ）、送信開始部３０１はＳ４１１に戻り、次の探索対象のアドレスに対して同様の処理を実行する。変数ｉが０の場合（Ｓ４１７にてＹＥＳ）、送信開始部３０１は、本処理フローを終了する。以上の処理により、ｔ１毎にＭ個のアドレスに対して探索データが送信される。
【００４２】
図５Ａおよび図５Ｂは、遅延呼出制御部３０２の処理の流れを示すフローチャートである。図５Ａは、送信情報の追加処理のフローチャートを示す。図５Ｂは、遅延呼び出し処理のフローチャートである。なお、図４ＡのＳ４０４における遅延呼出制御部３０２の呼び出し時に、図５Ｂに示す遅延呼び出し処理を時間間隔ｔ２毎に呼び出すようにタイマーに設定されているものとする。また、遅延呼出制御部３０２は、追加された送信情報とこれを追加した時刻を組にしたデータのリストを内部的に保持する。
【００４３】
（送信情報追加処理）
図５Ａを用いて、送信情報追加処理の詳細を説明する。
【００４４】
Ｓ５０１にて、遅延呼出制御部３０２は、引数として渡された送信情報と現在時刻を含むデータをリストに追加する。
【００４５】
Ｓ５０２にて、遅延呼出制御部３０２は、リストの要素数が１か否かの判定を行う。判定の結果、要素数が１ではない場合（Ｓ５０２にてＮＯ）、本処理フローを終了する。要素数が１の場合（Ｓ５０２にてＹＥＳ）、Ｓ５０３へ進む。ここで、要素数が２以上である場合にはすでにタイマーは開始されていると判断でき、また、要素数が０である場合には遅延している処理は無いものと判断できる。なお、ここでのタイマーは、図４Ａにて示したタイマーとは異なるものとして説明する。
【００４６】
Ｓ５０３にて、遅延呼出制御部３０２は、遅延呼び出し処理（図５Ｂ）を時間間隔ｔ２毎に呼び出すためのタイマーを開始する。これにより、図５Ｂに示す遅延呼び出し処理が、タイマーによる時間間隔ｔ２毎に呼び出されることとなる。なお、時間間隔ｔ２の値は特に限定するものではないが、例えば、上記の時間間隔ｔ１の値との処理負荷を考慮して設定してよい。その後、本処理フローを終了する。
【００４７】
（遅延呼び出し処理）
Ｓ５１０にて、遅延呼出制御部３０２は、リストに追加されてからＴ時間以上経過した要素群をリストから取り出す。このとき、取り出された要素群はリストから削除される。
【００４８】
Ｓ５１１にて、遅延呼出制御部３０２は、取り出した要素群から要素を１つ取り出す。
【００４９】
Ｓ５１２にて、遅延呼出制御部３０２は、Ｓ５１１にて要素が取り出せたか否かを判定する。要素が取り出せなかった場合は（Ｓ５１２にてＮＯ）Ｓ５１４に遷移し、要素が取り出せた場合は（Ｓ５１２にてＹＥＳ）Ｓ５１３に遷移する。
【００５０】
Ｓ５１３にて、遅延呼出制御部３０２は、要素内の送信情報を引数にして、図４ＡのＳ４０４で登録された遅延処理実行部３０３による処理を呼び出す。その後、遅延呼出制御部３０２は、リストから取り出した要素群の次の要素に対する処理を行うため、Ｓ５１１に遷移する。
【００５１】
Ｓ５１４にて、遅延呼出制御部３０２は、リストが空か否かを判定する。リストが空の場合（Ｓ５１４にてＹＥＳ）Ｓ５１５へ遷移し、リストが空でない場合（Ｓ５１４にてＮＯ）本処理フローを終了する。リストが空の場合は、全ての要素に対する遅延処理が完了したことを意味する。
【００５２】
Ｓ５１５にて、遅延呼出制御部３０２は、Ｓ５０３で開始したタイマーを停止する。これにより、余分な遅延呼び出し処理の呼び出しが抑止される。その後、本処理フローを終了する。
【００５３】
（遅延処理）
図６は、図５ＢのＳ５１３で呼び出される、図４ＡのＳ４０４で遅延呼出制御部３０２に登録された遅延処理実行部３０３による遅延処理の流れを示すフローチャートである。
【００５４】
Ｓ６０１にて、遅延処理実行部３０３は、引数として渡された送信情報内のアドレスが、受信記録部３０６内に存在するか否かを受信記録部３０６に問い合わせる。
【００５５】
Ｓ６０２にて、遅延処理実行部３０３は、Ｓ６０１の問い合わせの結果、アドレスが存在するか否かを判定する。アドレスが存在する場合（Ｓ６０２にてＹＥＳ）、即ちこのアドレスに送信した探索データに対する応答をデータ受信部３０５が既に受信している場合、遅延処理実行部３０３は、本処理フローを終了する。確認の結果、アドレスが存在しない場合（Ｓ６０２にてＮＯ）、即ちこのアドレスからの応答をデータ受信部３０５がまだ受信していない場合、Ｓ６０３に遷移する。
【００５６】
Ｓ６０３にて、遅延処理実行部３０３は、データ送信部３０４に探索データの送信（再送信）を指示する。
【００５７】
Ｓ６０４にて、遅延処理実行部３０３は、引数として受け取った送信情報内のリトライ回数を１減算する。
【００５８】
Ｓ６０５にて、遅延処理実行部３０３は、減算した結果のリトライ回数が０か否かを判定する。リトライ回数が０である場合（Ｓ６０５にてＹＥＳ）、即ち既に探索データをＮ回（送信情報で指定された回数）再送信した場合、本処理フローを終了する。リトライ回数が０でない場合（Ｓ６０５にてＮＯ）、即ちまだ探索データをＮ回再送信していない場合、Ｓ６０６へ遷移する。
【００５９】
Ｓ６０６にて、遅延処理実行部３０３は、Ｓ６０４でリトライ回数を１減算した受信情報を、遅延呼出制御部３０２に追加する。その後、本処理フローを終了する。
【００６０】
（受信処理）
図７は、データ受信部３０５がネットワークからデータを受信した際の受信処理の流れを示すフローチャートである。ここで、受信処理では、受信したデータとデータの送信元のアドレスが取得可能であるとする。
【００６１】
Ｓ７０１にて、データ受信部３０５は、受信データを取得する。
【００６２】
Ｓ７０２にて、データ受信部３０５は、受信したデータがＳＮＭＰの応答データであるか否かを判定する。受信したデータがＳＮＭＰの応答でない場合（Ｓ７０２にてＮＯ）、本処理フローを終了する。受信したデータがＳＮＭＰの応答である場合（Ｓ７０２にてＹＥＳ）、Ｓ７０３に遷移する。
【００６３】
Ｓ７０３にて、データ受信部３０５は、受信データの送信元のアドレスを取り出し、これを受信記録部３０６に登録する。
【００６４】
Ｓ７０４にて、データ受信部３０５は、Ｓ７０１で取得した受信データからＳＮＭＰのＭＩＢのＯＩＤを取り出す。
【００６５】
Ｓ７０５にて、データ受信部３０５は、Ｓ７０４で取り出したＳＮＭＰ応答中のＭＩＢのＯＩＤがプリンタＭＩＢであるか否かを判定する。ここで、ＯＩＤがプリンタＭＩＢであるとは、具体的には、ＯＩＤがプリンタＭＩＢ（ＲＦＣ３８０５）のルートＯＩＤ（ｍｉｂ−２．４３）で始まっていることを意味する。受信したＳＮＭＰ応答がプリンタＭＩＢでない場合（Ｓ７０５にてＮＯ）、本処理フローを終了する。受信したＳＮＭＰ応答がプリンタＭＩＢである場合（Ｓ７０５にてＹＥＳ）、データ受信部３０５は、Ｓ７０６に遷移する。なお、探索対象の装置が画像形成装置以外である場合には、その装置の種類に対応してここでの判定を行うものとする。
【００６６】
Ｓ７０６にて、データ受信部３０５は、詳細情報取得部（不図示）に詳細情報の取得を依頼する。詳細情報取得部は、データ受信部３０５からの依頼に基づいて、受信データを送信した画像形成装置から詳細情報を取得する。ここでの詳細情報とは、画像形成装置の状態情報や動作情報などが含まれるものとするが、特に限定するものではない。その後、本処理フローを終了する。
【００６７】
なお、図４ＢのＳ４１４で送信する探索データと図６のＳ６０３で送信する探索データは必ずしも同一である必要はない。例えば、探索で使用するＳＮＭＰｖ１のコミュニティ名が複数指定されており、その内の１つが規定値であるとする。Ｓ４１４での最初の送信ではこのコミュニティを使用し、後続のＳ６０３では指定されている全てのコミュニティ名のそれぞれを指定した複数の探索データを送信してもよい。
【００６８】
以上、本実施形態により、ホストの通信ポートを節約しつつ、送信データに対して応答を返さなかった送信データを複数回再送信することが可能となる。
【００６９】
＜第２の実施形態＞
本願発明の第２の実施形態について説明する。第１の実施形態では、探索処理で用いるＳＮＭＰとして１のバージョン（ＳＮＭＰｖ１）のみを用いていた。これに対し、本実施形態では、画像形成装置の仕様に対応して、複数のバージョンを用いて探索処理を行う構成について説明する。
【００７０】
図８は、本実施形態に係る探索処理をＳＮＭＰのバージョン１（ＳＮＭＰｖ１）とバージョン３（ＳＮＭＰｖ３）を用いて実行する場合の処理に関するソフトウェア構成の例を示す図である。第１の実施形態にて示した図３の構成と同じ部分については、同じ参照番号を用いて説明する。また、処理に関しても第１の実施形態と異なる部分のみを記すものとする。
【００７１】
ＳＮＭＰｖ３の場合は、ＭＩＢの値に対する要求を送信する前に、事前にエンジン情報をＳＮＭＰのエージェントから取得する必要がある。ここでエンジン情報とは、エンジンＩＤ、エンジンブート、およびエンジンタイムを含んで構成される。詳細は、ＲＦＣ３４１４等に記載されているため、ここでの説明は省略する。
【００７２】
図８において、ＳＮＭＰｖ３データ送信部８０１は、ＳＮＭＰｖ３のエンジン情報を要求するデータを送信する。ＳＮＭＰｖ３データ受信部８０２は、ＳＮＭＰｖ３データ送信部８０１から送信されたデータに対する応答を受信する。
【００７３】
データ送信部３０４及びデータ受信部３０５は、ＳＮＭＰｖ１のデータ送受信に用いられる部位であり、第１の実施形態にて述べた図３のデータ送信部３０４及びデータ受信部３０５に対応する。ここでは、それぞれＳＮＭＰｖ１データ送信部、ＳＮＭＰｖ１データ受信部と記している。それぞれの動作は、第１の実施形態にて述べたように、ＳＮＭＰｖ１を用いたネットワーク１０２上の画像形成装置の探索処理の例に記した通りである。
【００７４】
本実施形態では、図４のＳ４０２の工程において、ＳＮＭＰｖ１データ受信部３０５とＳＮＭＰｖ３データ受信部８０２を作成する。これらは別のポートでデータの受信を待機する。また、Ｓ４０３の工程において、ＳＮＭＰｖ１データ送信部３０４とＳＮＭＰｖ３データ送信部８０１を作成する。ここで、ＳＮＭＰｖ１データ受信部３０５及びＳＮＭＰｖ３データ受信部８０２が受信待ちをしているそれぞれのポートを、データの送信元として使用するように各データ送信部に設定する。更に、図４のＳ４１４及び図６のＳ６０３の探索データの送信処理は、以下の２つのデータを送信する。
１．ＳＮＭＰｖ１データ送信部３０４を用いた、プリンタＭＩＢのルートＯＩＤ（ｍｉｂ−２．４３）のＧｅｔＮｅｘｔのＳＮＭＰｖ１の要求データ
２．ＳＮＭＰｖ３データ送信部８０１を用いた、ＳＮＭＰエージェントのエンジン情報を取得するためのＳＮＭＰｖ３の要求データ
【００７５】
［処理フロー］
図９は、ＳＮＭＰｖ３データ受信部８０２がネットワーク１０２を介してデータを受信した際の受信処理の流れを示すフローチャートである。以下に示す処理フローは、ホストコンピュータ１０１のＣＰＵ２０１が、ＲＡＭ２０２等に格納されたプログラムを読み出して実行されることにより、実現される。また、受信処理では受信したデータとデータの送信元のアドレスが取得可能であるとする。
【００７６】
Ｓ９０１にて、ＳＮＭＰｖ３データ受信部８０２は、受信データを取得する。
【００７７】
Ｓ９０２にて、ＳＮＭＰｖ３データ受信部８０２は、受信したデータがＳＮＭＰの応答データであるか否かを判定する。受信したデータがＳＮＭＰの応答でない場合（Ｓ９０２にてＮＯ）、本処理フローを終了する。受信したデータがＳＮＭＰの応答である場合（Ｓ９０２にてＹＥＳ）、Ｓ９０３に遷移する。
【００７８】
Ｓ９０３にて、ＳＮＭＰｖ３データ受信部８０２は、受信データの送信元のアドレスを取り出し、受信記録部３０６に登録する。
【００７９】
Ｓ９０４にて、ＳＮＭＰｖ３データ受信部８０２は、Ｓ９０１で取得した受信データからＳＮＭＰｖ３のエージェントのエンジン情報を取り出す。
【００８０】
Ｓ９０５にて、ＳＮＭＰｖ３データ受信部８０２は、エンジン情報の取り出しに成功したか否かを判定する。エンジン情報の取り出しに失敗した場合（Ｓ９０５にてＮＯ）、本処理フローを終了する。エンジン情報の取り出しに成功した場合（Ｓ９０５にてＹＥＳ）、Ｓ９０６に遷移する。
【００８１】
Ｓ９０６にて、ＳＮＭＰｖ３データ受信部８０２は、詳細情報取得部（不図示）に詳細情報の取得を依頼する。詳細情報取得部（不図示）は、ＳＮＭＰｖ３データ受信部８０２からの依頼に基づいて、受信データを送信した画像形成装置から詳細情報を取得する。ここでの詳細情報とは、画像形成装置の状態情報や動作情報などが含まれるものとするが、特に限定するものではない。そして、本処理フローを終了する。
【００８２】
以上、本実施形態では、第１の実施形態の効果に加え、ＳＮＭＰの複数のバージョンに対応して探索処理を行うことが可能となる。
【００８３】
＜第３の実施形態＞
本発明の第３の実施形態について説明する。本実施形態は、ネットワークに接続された画像形成装置を管理するアプリケーションが、管理対象の複数の画像形成装置の状態を、ＳＮＭＰを用いて収集する。
【００８４】
画像形成装置の中には、省電力モードに遷移する際や省電力モードから回復する際、電源オフの前、通常動作モードにある場合は定期的に、その旨をネットワークに通知するものがある。これにより、管理アプリケーションは管理対象の画像形成装置の電源状態を管理することが可能である。ただし、全ての管理対象の画像形成装置がこの機能を有するわけではなく、また、通知を確実に受信できるとは限らない。また、画像形成装置の中には、ＳＮＭＰデータの受信により省電力モードから通常動作モードに遷移するが、その際に受信したＳＮＭＰデータに対しては応答を返さないものがある。
【００８５】
このような場合に対応するため、管理アプリケーションの状態収集処理は以下の動作を行う。
１．管理対象の画像形成装置の電源状態を調べ、電源オフ或いは省電力モードにある場合は、状態取得のためのデータを送信しない。
２．電源状態が電源オフ及び省電力モードでない場合（即ち、通常動作モード或いは状態不明）、画像形成装置がＳＮＭＰ要求に対する応答を返信するか確認するために、ＳＮＭＰ要求を送信する。
３．２のＳＮＭＰ要求に対して応答を返した画像形成装置に対しては、状態取得処理を実行する。
４．２のＳＮＭＰ応答に対して応答を返さない画像形成装置に対しては、２の処理を時間Ｔの間隔でＮ回繰り返す。
【００８６】
全体の構成は第２の実施形態にて示した図８と同様である。また、基本的な動作も第１、第２の実施形態の各構成要素の動作と同様であるため、第１、第２の実施形態と異なる部分のみを以下にて説明する。
【００８７】
前述の実施形態では各宛先を識別する情報としてアドレスを用いた。一方、本実施形態では、各画像形成装置に割り当てられた画像形成装置を一意に識別するための情報（以下、画像形成装置ＩＤと記す）を用いる。本実施形態において、ホストコンピュータ１０１が各画像形成装置を管理対象とした管理アプリケーションを備えているものとする。管理アプリケーションは、管理対象の画像形成装置の一覧を保持しており、画像形成装置ＩＤを用いて、一覧から目的の画像形成装置に関する各種情報を取得可能であるとする。ここで各種情報は、画像形成装置のアドレス、ＳＮＭＰｖ１のコミュニティ名、ＳＮＭＰｖ３の認証情報を含む。これに伴い、前述の実施形態にて述べた受信記録部３０６に格納される情報はアドレスではなく画像形成装置ＩＤとなり、図６のＳ６０１、図７のＳ７０３、図９のＳ９０３の各工程において、アドレスではなく画像形成装置ＩＤが用いられる。
【００８８】
［処理フロー］
図１０は、第１、第２の実施形態にて述べた図４Ｂの処理の部分に対応する、送信開始部３０１が各画像形成装置に最初のデータを送信する送信処理のフローチャートである。
【００８９】
Ｓ１００１にて、送信開始部３０１は、変数ｉに値Ｍを設定する。ここで、Ｍは、Ｓ４０５で作成したタイマーによる処理の呼び出し間隔（時間間隔ｔ１）に送信する探索データの数である。
【００９０】
Ｓ１００２にて、送信開始部３０１は、管理対象の画像形成装置群から画像形成装置を１つ取り出す。
【００９１】
Ｓ１００３にて、送信開始部３０１は、画像形成装置の取得に成功したか否かを判定する。画像形成装置の取得に失敗した場合（Ｓ１００３にてＮＯ）、即ち全ての管理対象の画像形成装置に対する処理がなされた場合、Ｓ１００４に遷移する。画像形成装置の取得に成功した場合（Ｓ１００３にてＹＥＳ）、Ｓ１００５に遷移する。
【００９２】
Ｓ１００４にて、送信開始部３０１は、タイマーを停止する。そして、本処理フローを終了する。
【００９３】
Ｓ１００５にて、送信開始部３０１は、取得した画像形成装置の電源状態を電源状態管理部（不図示）に確認する。電源状態管理部（不図示）は、画像形成装置からの電源状態の通知を受信し、画像形成装置の電源状態（オフ／省電力モード／通常動作モード／不明）を保持して、要求に応じて指定された画像形成装置の電源状態を返すものである。なお、電源状態は、上記に示すものに限定するものではなく、他の状態があってもよい。確認の結果、取得した画像形成装置の電源状態がオフあるいは省電力モードである場合（Ｓ１００５にてＹＥＳ）Ｓ１００２に遷移し、次の管理対象の画像形成装置に対して同様の処理を実行する。取得した画像形成装置の電源状態が上記以外の場合（Ｓ１００５にてＮＯ）Ｓ１００８に遷移する。
【００９４】
Ｓ１００８にて、送信開始部３０１は、取得した画像形成装置に確認用のデータの送信を行う。確認用のデータ送信処理として、以下の動作を行う。
１．取得した画像形成装置に対しＳＮＭＰｖ３の認証情報が設定されている場合、ＳＮＭＰｖ３データ送信部８０１を用いてエンジン情報を取得するＳＮＭＰｖ３のデータを送信する。
２．取得した画像形成装置に対しＳＮＭＰｖ１のコミュニティ名が設定されている場合、ＳＮＭＰｖ１データ送信部３０４を用いてＳＮＭＰｖ１のＳｙｓＯｂｊｅｃｔＩＤのＧｅｔ要求を送信する。
【００９５】
Ｓ１００７にて、送信開始部３０１は、取得した画像形成装置を一意に識別する情報とリトライ回数（Ｎ）とを含む送信情報を作成し、Ｓ４０４で作成した遅延呼出制御部３０２に入力する。
【００９６】
Ｓ１００８にて、送信開始部３０１は、変数ｉの値を１減ずる。
【００９７】
Ｓ１００９にて、送信開始部３０１は、変数ｉが０か否かを判定する。変数ｉが０でない場合（Ｓ１００９にてＮＯ）、Ｓ１００２に遷移し、次の管理対象の画像形成装置に対して同様の処理を実行する。変数ｉが０の場合（Ｓ１００９にてＹＥＳ）本処理フローを終了する。以上の処理により、時間間隔ｔ１毎にＭ個の画像形成装置に対して確認データを送信する。
【００９８】
本実施形態において、ＳＮＭＰｖ１データ送信部３０４が送信するデータがＳｙｓＯｂｊｅｃｔＩＤのＧｅｔ要求であるため、図７のＳ７０５のＯＩＤの確認はＳｙｓＯｂｊｃｅｃｔＩＤの値となる。また、図７のＳ７０６及び図９のＳ９０６の呼び出しは、画像形成装置の状態取得処理の呼び出しとなる。
【００９９】
以上、本実施形態により、画像形成装置の状態に応じて、データの送信を制御することができ、無駄なデータの送信／再送信を抑制することができる。
【０１００】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピューターにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１０１】
１０１…情報処理装置、１０２…ネットワーク、１０３〜１０５…画像形成装置、３０１…送信開始部、３０２…遅延呼出制御部、３０３…遅延処理実行部、３０４…データ送信部、３０５…データ受信部、３０６…受信記録部
【図１】
2018125611.tif 000003
【図２】
2018125611.tif 000004
【図３】
2018125611.tif 000005
【図４Ａ】
2018125611.tif 000006
【図４Ｂ】
2018125611.tif 000007
【図５Ａ】
2018125611.tif 000008
【図５Ｂ】
2018125611.tif 000009
【図６】
2018125611.tif 000010
【図７】
2018125611.tif 000011
【図８】
2018125611.tif 000012
【図９】
2018125611.tif 000013
【図１０】
2018125611.tif 000014