(57)【要約】【課題】ネットワーク上のトラフィックを一定に制御する情報処理装置を提供する。【解決手段】他の情報処理装置の周辺装置に対するポーリングのアクセス時刻に関する情報を取得し、その取得されたアクセス時刻に関する情報に基づき、情報処理装置間の周辺装置に対するポーリングの間隔が一定になるように、周辺装置へのポーリングの間隔を調整する。【選択図】図１５
2015056757.tif 000002
【特許請求の範囲】
【請求項１】
他の情報処理装置の周辺装置に対するポーリングのアクセス時刻に関する情報を取得する取得手段と、
前記取得手段により取得されたアクセス時刻に関する情報に基づき、情報処理装置の間での前記周辺装置に対するポーリングの間隔が一定になるように、前記周辺装置へのポーリングの間隔を調整する調整手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記調整手段は、前記周辺装置へのポーリングのアクセス順序と、前記取得手段により取得されたアクセス時刻に関する情報に基づき、情報処理装置の間での前記周辺装置に対するポーリングの間隔が一定になるように、前記周辺装置へのポーリングの間隔を調整することを特徴とする請求項１に記載の情報処理装置
【請求項３】
前記調整手段は、前記周辺装置へのポーリングのアクセス順序と、前記周辺装置にポーリングを行う情報処理装置の台数と、前記取得手段により取得されたアクセス時刻に関する情報に基づき、情報処理装置の間での前記周辺装置に対するポーリングの間隔が一定になるように、前記周辺装置へのポーリングの間隔を調整することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記ポーリングは、前記周辺装置でスキャン指示が実行されたかを確認するためのポーリングであることを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記周辺装置からポーリングに対する応答を受信した際、自装置あての場合、自装置で処理し、他装置あての場合、当該他装置に転送する転送手段、をさらに有することを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
情報処理装置において実行される通信制御方法であって、
前記情報処理装置の取得手段が、他の情報処理装置の周辺装置に対するポーリングのアクセス時刻に関する情報を取得する取得工程と、
前記情報処理装置の調整手段が、前記取得工程において取得されたアクセス時刻に関する情報に基づき、情報処理装置の間での前記周辺装置に対するポーリングの間隔が一定になるように、前記周辺装置へのポーリングの間隔を調整する調整工程と、
を有することを特徴とする通信制御方法。
【請求項７】
前記調整工程では、前記周辺装置へのポーリングのアクセス順序と、前記取得工程において取得されたアクセス時刻に関する情報に基づき、情報処理装置の間での前記周辺装置に対するポーリングの間隔が一定になるように、前記周辺装置へのポーリングの間隔を調整することを特徴とする請求項６に記載の通信制御方法。
【請求項８】
前記調整工程では、前記周辺装置へのポーリングのアクセス順序と、前記周辺装置にポーリングを行う情報処理装置の台数と、前記取得工程により取得されたアクセス時刻に関する情報に基づき、情報処理装置の間での前記周辺装置に対するポーリングの間隔が一定になるように、前記周辺装置へのポーリングの間隔を調整することを特徴とする請求項６又は７に記載の通信制御方法。
【請求項９】
前記ポーリングは、前記周辺装置でスキャン指示が実行されたか確認するためのポーリングであることを特徴とする請求項６乃至８のいずれか１項に記載の通信制御方法。
【請求項１０】
前記周辺装置からポーリングに対する応答を受信した際、自装置あての場合、自装置で処理し、他装置あての場合、当該他装置に転送する転送工程、をさらに有することを特徴とする請求項６乃至９のいずれか１項に記載の通信制御方法。
【請求項１１】
請求項１乃至５の情報処理装置の各手段としてコンピュータを機能させるためのプログラム。
【請求項１２】
複数の情報処理装置と、周辺装置と、を含む通信システムであって、
前記複数の情報処理装置のうちの１つの情報処理装置の前記周辺装置に対するポーリングのアクセス時刻に関する情報を取得する取得手段と、
前記取得手段により取得されたアクセス時刻に関する情報に基づき、前記複数の情報処理装置の間での前記周辺装置に対するポーリングの間隔が一定になるように、前記周辺装置へのポーリングの間隔を調整する調整手段と、
を有することを特徴とする通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置からジョブ実行装置へのポーリングが行われる情報処理装置、通信制御方法およびプログラム、並びに、通信システムに関する。
【背景技術】
【０００２】
近年におけるコンピュータ技術やネットワーク通信技術の発展は著しいものがあり、オフィスだけでなく家庭へもネットワークの普及が進んでいる。これらネットワークを形成する端末としては、ＰＣなどの情報処理装置のみならず、プリンタやスキャナなどの周辺機器もネットワーク機能を搭載したものが登場している。
【０００３】
従来、情報処理装置がネットワークで接続されている周辺装置でのイベント発生状況を取得する方法として、情報処理装置が周辺装置に対してポーリングを行う方法がある。即ち、クライアントである情報処理装置とサーバである周辺装置からなるシステムにおいて、周辺装置でのイベントの発生を検出するために、情報処理装置が周辺装置に対して一定周期（以下、ポーリング周期）毎に問い合わせ要求パケットを送信する方法である。
【０００４】
ここで、周辺機器におけるイベントとして代表的なのはプッシュスキャンサービスがある。プッシュスキャンサービスは、周辺装置側の操作によってスキャンデータを送信する情報処理装置を決定し、スキャン指示をすることで、スキャンデータを情報処理装置に送信する機能である（特許文献１）。この方法ではイベントの発生から検出までに最大でポーリング周期分の時間差が発生するため、ポーリング周期は短い方が望ましいが、その分ネットワーク及び構成装置の負荷が増大してしまう。逆に、ポーリング周期を大きくするとプッシュスキャンイベント発生から検出までの時間差が大きくなり、イベント発生時に行う処理が遅れてしまい、ユーザビリティの低下を招いてしまう。特許文献２には、周辺装置の動作状況により情報処理装置から周辺装置へのポーリング周期を変化させることで、ネットワーク上の無用なトラフィックの軽減を可能にすることが記載されている（特許文献２）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−３５５４８１号公報
【特許文献２】特開２００７−２１９９５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来技術では周辺装置に接続されている情報処理装置は、それぞれが独立してポーリングを行う。そのため、複数の情報処理装置から周辺装置への問い合わせが集中してしまう時間や、情報処理装置から周辺装置への問い合わせが全くない時間があり、ネットワーク上のトラフィックを一定に制御することができない。特に情報処理装置から周辺装置への問い合わせが集中してしまった場合、周辺装置の負荷は極めて大きくなってしまう。
【０００７】
本発明の目的は、このような従来の問題点を解決することにある。上記の点に鑑み、本発明は、ネットワーク上のトラフィックを一定に制御する情報処理装置、通信制御方法およびプログラム、並びに、通信システムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、本発明に係る情報処理装置は、他の情報処理装置の周辺装置に対するポーリングのアクセス時刻に関する情報を取得する取得手段と、前記取得手段により取得されたアクセス時刻に関する情報に基づき、情報処理装置間の前記周辺装置に対するポーリングの間隔が一定になるように、前記周辺装置へのポーリングの間隔を調整する調整手段と、を有することを特徴とする。
【発明の効果】
【０００９】
本発明によると、ネットワーク上のトラフィックを一定に制御することができる。
【図面の簡単な説明】
【００１０】
【図１】ＭＦＰの概略構成を示すブロック図である。
【図２】ＰＣの概略構成を示すブロック図である。
【図３】ネットワークシステムの概略構成を示すブロック図である。
【図４】ＭＦＰの操作パネルのレイアウト構成を示す図である。
【図５】スキャンデータ送信先のＰＣを選択するための画面を示す図である。
【図６】ワークメモリの所定領域に格納されたＰＣの情報を示す図である。
【図７】ＰＣ上で動作するアプリケーションの設定画面である。
【図８】各種要求パケットに共通する概略フォーマットを示す図である。
【図９】要求パケットのパケット識別子の取り得る値と内容を示す図である。
【図１０】各種応答パケットに共通する概略フォーマットを示す図である。
【図１１】応答パケットのパケット識別子の取り得る値と内容を示す図である。
【図１２】応答パケットの応答内容コードの取り得る値と内容を示す図である。
【図１３】ＰＣ間の各種パケットに共通する概略フォーマットを示す図である。
【図１４】各種パケットのパケット識別子の取り得る値と内容を示す図である。
【図１５】ＭＦＰと各ＰＣ間でのポーリングのパケット交換の流れを示す図である。
【図１６】図１５における各ＰＣの処理の手順を示す図である。
【図１７】図１５におけるＭＦＰの処理の手順を示す図である。
【図１８】ポーリング間隔の調整の具体例を示す図である。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して本発明の好適な実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一の構成要素には同一の参照番号を付して、説明を省略する。
【００１２】
本実施形態において用いられるＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ：複合機能周辺装置）、ＰＣなどの情報処理装置、及びこれらを接続するネットワーク構成について説明する。本実施形態では、複合機能周辺装置を周辺装置の一例として説明するが、周辺装置としては、プリンタ機能やストレージ機能を有さないスキャナ装置でもよい。
【００１３】
図１は、本実施形態におけるＭＦＰの概略構成を示すブロック図である。ＭＦＰ１００は、プリンタ機能、スキャナ機能及びストレージ機能を備えており、ネットワークを経由してそれぞれの機能サービスを提供することができる。本実施形態において、ＭＦＰ１００は、各機能サービスの実行を指示するジョブ実行装置の一例である。ＭＦＰ１００において、プリンタ機能はプリンタ部１０１で、スキャナ機能はスキャナ部１０２で、ストレージ機能はメモリカード装着部１０３及びメモリカード１０４で実現される。プリンタ部１０１は、外部から受信したプリントデータやメモリカード１０４に格納されている画像データなどを、インクジェット記録方式や電子写真記録方式などによって印刷用紙等の記録媒体に印刷する。スキャナ部１０２は、原稿台にセットされた原稿を光学的に読み取って電子データに変換し、指定されたファイル形式に変換してネットワーク経由で外部装置に送信する。コピーサービスは、原稿台に置かれた原稿をスキャナ部１０２で読み取って生成した画像データをプリンタ部１０１へ転送してプリンタ部１０１が印刷用紙にその原稿データを印刷する。メモリカード１０４に格納されているファイルを、ネットワークを経由して接続された外部装置が読み出し、編集し、外部装置からメモリカード内にファイルを格納することなども可能である。
【００１４】
更にＭＦＰ１００は、ＭＦＰ各部を制御するための中央制御装置（ＣＰＵ）１０５、ＣＰＵ１０５が読み出すプログラムコードなどを格納するＲＯＭなどのプログラムメモリ１０６を備える。さらに、各サービス実行時に画像データなどを一時格納したり、バッファリングするためのＲＡＭなどのワークメモリ１０７、ＬＣＤなどの表示部１０８、後述する各スイッチからなる操作部１０９を備える。また、ＭＦＰ１００をネットワークに接続して各種通信を行うためのネットワーク通信部１１０と、ネットワーク通信部１１０をＬＡＮ等の通信媒体に接続するためのネットワーク接続部１１１を備える。ネットワーク通信部１１０は、有線ＬＡＮと無線ＬＡＮの内、少なくともいずれかに対応する。有線ＬＡＮ対応の場合、ネットワーク接続部１１１は有線ＬＡＮのケーブルをＭＦＰ１００に接続するためのコネクタであり、無線ＬＡＮ対応の場合、ネットワーク接続部１１１はアンテナである。また、ＭＦＰ１００は、ネットワーク通信部１１０が受信したパケットの送信元情報を格納するために、不揮発性フラッシュメモリなどのメモリ１１２を備える。以上説明したＭＦＰ各部は信号線１１３により接続される。
【００１５】
また、ネットワーク通信部１１０には時間を計測するタイマ１１４を内蔵する。また、ＭＦＰ１００はＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）インタフェースを介して情報処理装置と通信するためのＵＳＢ通信部１１５を備え、情報処理装置とはＵＳＢコネクタなどによるＵＳＢ接続部１１６により接続する。
【００１６】
図２は、本実施形態における情報処理装置の概略構成を示すブロック図である。情報処理装置として、例えば一般的なＰＣが用いられる。図２において、ＣＰＵ２０１は、ＰＣ２００の各部を制御する。ディスク装置２０２は、ＣＰＵ２０１が読み出すアプリケーションプログラムやＯＳ（Ｏｐｅｒａｔｉｏｎ  Ｓｙｓｔｅｍ）などをインストールされ、また各種ファイルなどを格納する。外部ディスク読取装置２０３は、ＣＤ−ＲＯＭなどの外部記憶媒体の内容を読み出す。メモリ２０４は、ＣＰＵ２０１が必要に応じてデータの一時的格納、バッファリング等を行う。表示部２０５は、ＬＣＤなどからなり、操作部２０６は、キーボードやポインティングデバイスなどからなる。ネットワーク通信部２０７は、情報処理装置２００をネットワークに接続して各種通信を行う。ネットワーク接続部２０８は、ネットワーク通信部２０７をネットワーク媒体に接続する。
【００１７】
ＭＦＰ１００と同様に、ネットワーク通信部２０７とネットワーク接続部２０８は、有線ＬＡＮと無線ＬＡＮの内、少なくともいずれかに対応する。具体的な形態は、ＭＦＰ１００に内蔵のネットワーク通信部１１０及びネットワーク接続部１１１と同様に、対応ＬＡＮに応じて必要な機能及び形態をとる。信号線２０９は、各部を相互に通信可能に接続する。ＵＳＢ通信部２１０は、各種周辺装置とＵＳＢインタフェースを介して通信する。ＵＳＢ接続部２１１は、例えばＵＳＢコネクタ等のＵＳＢインタフェースである。タイマ２１２は、ＣＰＵ２０１に内蔵の時間経過を計測するためのタイマである。さらにメモリ２０４には、カウンタ２１３が備えられている。
【００１８】
図３は、図１に示したＭＦＰ１００と図２に示したＰＣ２００とを含むネットワークシステム（通信システム）の概略構成を示すブロック図である。図３において、ＭＦＰ１５０は、ＭＦＰ１００と同様の機能を有するＭＦＰであり、複数のＰＣ３００、３０１、３０２はＰＣ２００と同様の機能を有するＰＣである。ネットワーク３１０は、ＭＦＰ１００、１５０、ＰＣ２００、３００、３０１、３０２を相互に通信可能に接続する。なお、ネットワーク３１０は、有線ＬＡＮであっても無線ＬＡＮであってもよい。また、ネットワーク３１０に接続されているＰＣの台数は図３に示す例に限定されるものではなく、３台以下であっても、また５台以上であってもよい。同様にネットワーク３１０に接続されるＭＦＰの台数に関しても２台に限定するものではなく、１台のみであっても、３台以上であってもよい。以下、ＭＦＰの動作について説明する場合は、特に断らない限り、ＭＦＰ１００を代表として説明し、図３中の他のＭＦＰについても同様とする。また、ＰＣの動作について説明する場合は、特に断らない限り、ＰＣ２００を代表として説明し、図３中の他のＰＣについても同様とする。
【００１９】
図４は、図１に示したＭＦＰ１００の表示部１０８と操作部１０９を含む操作パネル４００のレイアウト構成を示す図である。図４において、ＬＣＤ画面４０１は、表示部１０８に該当するＬＣＤ画面である。また。キー４０２〜４１２は、操作部１０９に形成されてユーザの指示等を受け付ける。キー４０２は、ＭＦＰ１００の各部への電源ＯＮ／ＯＦＦを選択指示するための電源キーである。キー４０３は、ＭＦＰ１００のコピーを開始させる指示を受け付けるコピーキーである。キー４０４は、ＭＦＰ１００のプッシュスキャン処理（以下、単にプッシュスキャンという）の要求指示を受け付けるスキャンキーである。
【００２０】
プッシュスキャンとは、ＭＦＰ１００の操作をトリガとして、原稿台に置かれた原稿を読み取って得られたスキャンデータを、指定したＰＣに出力するサービスのことをいう。つまり、図３に示す各ＰＣ２００、３００、３０１、３０２は、ＭＦＰ１００のジョブ出力先となる。スキャンデータをいずれかのＰＣに送信するか、またはどのようなファイル形式で送信するかなどは、ユーザがＬＣＤ画面４０１を見ながら、後述するキー４１０及びキー４１２を操作することにより選択可能である。
【００２１】
また、キー４０５は、ＭＦＰ１００にメモリカード１０４が装着されている場合に、そのカードに格納されている画像ファイルなどをプリント（以下、メモリカードプリント）、表示させるなどのサービスを開始させる指示を受け付けるメモリカードキーである。キー４０６は、コピー、プッシュスキャン、メモリカードプリントなどをカラーで実行開始させる指示を受け付けるカラースタートキーである。キー４０７は、コピー、プッシュスキャン、メモリカードプリントなどをモノクロで実行開始させる指示を受け付けるモノクロスタートキーである。キー４０８は、実行開始させたコピー、プッシュスキャン、メモリカードプリントなどの中止指示を受け付ける中止キーである。キー４１０は、ユーザが設定したいメニューやメモリカード１０４内のプリントまたは表示したいファイルを検索するための矢印キーである。キー４１１は、メニュー画面を一画面前に戻す場合などに使用されるキーであり、キー４１２は、ユーザがＬＣＤ画面４０１上でカーソル表示されている項目を選択したり決定したりするための決定キーである。
【００２２】
図５は、プッシュスキャン実行時にＭＦＰのＬＣＤ画面４０１に表示されるスキャンデータ送信先のＰＣを選択するためのＰＣ選択画面を示す図である。ＭＦＰの操作パネル４００においてスキャンキー４０４を押下すると、ＬＣＤ画面４０１の表示が図５に示す表示に切り替わる。表示５０１、５０２、５０３は、ＭＦＰ１００がＰＣからＰＣ登録要求パケット受信処理（後述する図１７のＳ６０６）によって格納したＰＣ情報についての表示例である。例えば、表示５０１〜５０３は、「”ログイン名”＠“ＰＣ名”」というフォーマットで表示される。表示５０４は、網掛け表示であり、矢印キー４１０により上下に移動する。ユーザが決定キー４１２を押下した時点で、網掛け表示５０４によって網掛け表示されているコンピュータ名及びログイン名がプッシュスキャンの送信先として選択される。ユーザがスキャンキー２２０４を押下し、続いてＬＣＤ画面４０１からプッシュスキャンの送信先ＰＣを選択して決定キー４１２を押下し、最後にカラースタートキー４０６もしくはモノクロスタートキー４０７を押下する一連の手順を、以下プッシュスキャン操作（ジョブの実行開始指示）と表記する。
【００２３】
図６は、ＭＦＰがＰＣから受信したＰＣ登録パケットに基づいて、ワークメモリ１０７の所定領域に格納されたＰＣの情報を示す図である。図６において、メモリ領域６００は、ワークメモリ１０７内の所定領域を表わす。領域６０１は、ＰＣ登録要求パケットを受信した各ＰＣの管理番号を格納する領域である。領域６０２はＰＣ登録要求パケットを受信した各ＰＣのコンピュータ名及びログイン名を格納する領域である。領域６０３は、ＰＣ登録要求パケットを受信した各ＰＣのＩＰアドレスを格納する領域である。ＩＤ６０４、６０５、６０６は登録中の各ＰＣに割り当てられた管理番号であり、ユーザ情報６０７、６０８、６０９は登録中の各ＰＣのコンピュータ名及びログイン名であり、ＩＰアドレス６１０、６１１、６１２は登録中の各ＰＣのＩＰアドレスである。このようにＭＦＰは、ネットワークシステム上の各ＰＣから登録要求があった順に、管理番号を割り当てていき、コンピュータ名とログイン名とＩＰアドレスを管理する。登録が解除された場合には、解除したＰＣの管理番号と、コンピュータ名およびログイン名と、ＩＰアドレスとをワークメモリ１０７の所定領域から削除する。さらに削除した管理番号を詰めるように管理番号を再割り当てする。以下、上記構成のネットワークシステムにおいて実現される実施形態について説明する。
【００２４】
図７は、ＰＣ上で動作するアプリケーションの設定画面である。各ＰＣは、ＰＣ登録要求パケット及び問い合わせ要求パケットをＭＦＰに送信して、プッシュスキャン操作の有無を監視する。そして、プッシュスキャン操作の発生をＭＦＰから受信した場合に、各ＰＣは、ＭＦＰで原稿台上の原稿を読み取るためのアプリケーション（以下、スキャナドライバ）を呼び出す。図７において、設定画面７００は、ユーザがＰＣ登録要求パケット及び問い合わせ要求パケットをどのＭＦＰに送信するか否かを設定するため、および、その設定状態を表示するための画面である。チェックボックス７０１は、ＭＦＰ１００に対してＰＣ登録要求パケット及び問い合わせ要求パケットを送信するか否かの設定とその設定状態を表示するためのチェックボックスである。同様に、チェックボックス７０２は、ＭＦＰ１５０に対してＰＣ登録要求パケット及び問い合わせ要求パケットを送信するか否かの設定とその設定状態を表示するためのチェックボックスである。チェックが入れられたチェックボックス７０１または７０２に対応するＭＦＰ１００または１５０に対してＰＣ登録要求パケット及び問い合わせ要求パケットを送信する。なお、図７に示す設定画面では、ＭＦＰ１００、ＭＦＰ１５０が表示されているが、スキャナドライバがＰＣにインストールされ、通信可能なＭＦＰが他にもあればＭＦＰ１００、ＭＦＰ１５０と同様に、チェックボックスとともに設定画面７００に表示される。ボタン７０３は、設定変更を有効にするためのＯＫボタンであり、ボタン７０４は、設定変更を無効にするためのキャンセルボタンである。図７に示すアプリケーションは、インストール直後から、またはインストール後はＰＣの電源ＯＮによって自動起動されるようにしても良い。または、一般的なアプリケーションのように、そのアプリケーションをユーザが選択して起動するようにしても良い。
【００２５】
図８は、ＰＣからＭＦＰに送信する各種要求パケットに共通する概略フォーマットの例を示す図である。図８のパケット８００は、ＰＣがＭＦＰに送信する各種要求パケットに共通する概略フォーマットを示す。領域８０１は、要求パケット８００の宛先アドレス、即ち、ＭＦＰのアドレス（例えばＭＡＣアドレス）が格納される領域である。領域８０２は、要求パケット８００の送信元アドレス、即ち、要求パケットを送信したＰＣのネットワーク通信部２０７に付されたＭＡＣアドレスが格納される領域である。領域８０３は、後述する領域８０４、８０５のパケット長が格納される領域である。領域８０４は、ＰＣとＭＦＰとの間で予め取り決められた送受信するパケットに割り当てられるパケット識別子が格納される領域である。領域８０５は、要求パケット５００の送信元ＰＣのコンピュータ名及び現在ログインしているユーザ名が、例えば「“ログイン名＠コンピュータ名”」などのフォーマットで格納される領域である。
【００２６】
図９は、要求パケット８００のパケット識別子８０４の取り得る値とその内容を示す図である。パケット識別子８０４が「０１」であれば、パケット８００は、ＰＣ登録要求パケットを表わす。パケット識別子８０４が「０２」であれば、パケット８００は、問い合わせ要求パケットを表わす。パケット識別子８０４が「０３」であれば、パケット８００は、ＰＣ解除要求パケットを表わす。パケット識別子８０４が「０４」であれば、パケット８００は、スキャンデータ要求パケットを表わす。
【００２７】
図１０は、図８に示した各種要求パケット８００に応答してＭＦＰがＰＣに送信する各応答パケットに共通する概略フォーマットを示す。図１０において、パケット１０００は、ＭＦＰがＰＣに送信する応答パケットである。領域１００１は、応答パケット１０００の宛先アドレスが格納される領域である。例えば、ＭＦＰ１００がＰＣ２００から受信した要求パケット８００に対する応答パケットである場合、要求パケット８００の送信元アドレス８０２をコピーした値、即ち、ＰＣ２００のネットワーク通信部２０７に付されたＭＡＣアドレスが格納される領域である。領域１００２は、応答パケット１０００の送信元アドレス、即ち、ＭＦＰのＭＡＣアドレスが格納される領域である。領域１００３は後述する領域１００４、１００５、１００６、１００７の合計パケット長が格納される領域である。領域１００４は、ＭＦＰとＰＣとの間で予め取り決められた送受信するパケットに割り当てられるパケット識別子が格納される領域である。領域１００５は、応答内容をコードで表す応答コードを格納する領域である。領域１００６は、プッシュスキャンが発生した時にスキャンデータの送信先として指定されたＰＣのアドレスが格納される領域である。領域１００７は、ＭＦＰが現在管理している、ＭＦＰのジョブの実行出力先としてのＰＣの登録数が格納される領域である。領域１００８は、ＭＦＰが管理している管理番号を格納する領域である（図６の領域６０１に対応)。領域１００９は、問い合わせ要求を受信した受信時間と管理番号が「１」のＰＣから問い合わせ要求を受信した最新受信時間との時間差を格納する領域である。
【００２８】
図１１は、応答パケット１０００のパケット識別子１００４の取り得る値とその内容を示す図である。パケット識別子１００４が「１１」であれば、応答パケット１０００は、ＰＣ登録要求パケットに応答するＰＣ登録応答パケットを表わす。パケット識別子１００４が「１２」であれば、応答パケット１０００は、問い合わせ要求パケットに応答する問い合わせ応答パケットを表わす。パケット識別子８０４が「１３」であれば、応答パケット１０００は、ＰＣ解除要求パケットに応答するＰＣ解除応答パケットを表わす。パケット識別子１００４が「１４」であれば、応答パケット１０００は、スキャンデータ要求パケットに応答するスキャンデータパケットを表わす。
【００２９】
図１２は、応答内容コード１００５の取り得る値とその内容を示す図である。問い合わせ応答パケット１０００を送信する際に、プッシュスキャン操作がなされていない場合は「０３」となる。問い合わせ応答パケット１０００を送信する際に、問い合わせ要求パケット８００の受信より前にプッシュスキャン操作が行われた場合は「０４」となる。また、いずれかのＰＣからＰＣ登録要求パケット８００、ＰＣ削除要求パケット８００を受信した場合に、該当する各要求をＭＦＰが受け入れられる場合は「０１」、受け入れられない場合は「０２」となる。
【００３０】
図１３は、ＰＣとＰＣとの間で送受信する各種要求／応答パケットに共通する概略フォーマットを示す。図１３のパケット１３００は、ＰＣが他のＰＣへ送信する各種要求パケット、またはＰＣが他のＰＣから受信する各種応答パケットである。領域１３０１は、要求／応答パケット１３００の宛先アドレス、即ち、送信先ＰＣのネットワーク通信部２０７に付されたＭＡＣアドレスが格納される領域である。領域１３０２は、要求／応答パケット１３００の送信元アドレス、即ち、要求／応答パケットを送信したＰＣのネットワーク通信部２０７に付されたＭＡＣアドレスが格納される領域である。領域１３０３は、後述する領域１３０４、１３０５のパケット長が格納される領域である。領域１３０４は、ＰＣとＰＣとの間で予め取り決められた送受信するパケットに割り当てられるパケット識別子が格納される領域である。領域１３０５は、プッシュスキャンを実行するＭＦＰのアドレス（例えばＭＡＣアドレス）が格納される領域である。
【００３１】
図１４は、パケット識別子１３０４の取り得る値とその内容を示す図である。パケット識別子１３０４が「０５」であれば、パケット１３００は、イベント転送要求パケットを表わす。パケット識別子１３０４が「１５」であれば、パケット１３００は、イベント転送要求パケットに応答するイベント転送応答パケットを表わす。
【００３２】
図１５は、ＭＦＰ１００とＰＣ２００とＰＣ３００とＰＣ３０１とがネットワーク３１０を介して相互に通信し、プッシュスキャン操作の有無（スキャン指示の有無）の確認のためのポーリングを行う通信制御の処理の流れを示す図である。ＰＣ２００は第１の情報処理装置の一例であり、ＰＣ３００は第２の情報処理装置の一例である。なお、ＰＣ２００のディスク装置２０２には、プリンタドライバ、スキャナドライバ、図７で説明したアプリケーションがインストールされているものとする。また、ＰＣ２００の設定画面７００は、図７に示すように、ＭＦＰ１００のチェックボックス７０１にチェックが入れられているものとする。ＰＣ３００とＰＣ３０１についても同様とする。
【００３３】
まず、ＭＦＰ１００に対してＰＣ２００のみがポーリングしている場合について説明する。
【００３４】
ＰＣ２００は、アプリケーションが起動されると、ＭＦＰ１００に対してＰＣ登録要求パケット８００を送信する（Ｓ１０１）。ＭＦＰ１００は、ＰＣ２００からＰＣ登録要求パケット８００を受信し、登録できる状態にある場合、送信元アドレス８０２からアドレス情報を取得し、コンピュータ名８０５からコンピュータ名及びログイン名を取得して、それらを関連付けて登録する（後述する図１７のＳ６０６）。そして、ＰＣ２００に対して、応答コード１００５に「０１」をセットしたＰＣ登録応答パケット１０００を送信する（Ｓ１０２）。
【００３５】
ＰＣ２００は、ＭＦＰ１００から応答コード１００５に「０１」がセットされたＰＣ登録応答パケット１０００を受信した場合、ＭＦＰ１００に対してプッシュスキャン操作の有無を問い合わせるための問い合わせ要求パケット８００を送信する（Ｓ１０３）。
【００３６】
ＭＦＰ１００はＰＣ２００から問い合わせ要求パケット８００を受信し、プッシュスキャン操作が実行されていない場合、ＰＣ２００に対して、応答コード１００５に「０３」をセットした問い合わせ応答パケット１０００を送信する（Ｓ１０４、Ｓ１０６、Ｓ１０８）。この時、ＭＦＰ１００には、ＰＣ２００のみが登録されていることになるので、送信する問い合わせ応答パケット１０００の登録ＰＣ数１００７には「１」がセットされる。さらに、管理番号１００８には「１」がセットされ、時間差１００９には「０」がセットされる。つまり、ＰＣ２００は管理番号が「１」であるので、ＰＣ２００からの問い合わせ要求を受信した時刻と、管理番号が「１」のＰＣから問い合わせ要求を受信した最新時刻とは同じとなるからである。
【００３７】
ＰＣ２００は、ＭＦＰ１００から応答コード１００５に「０３」（即ち、イベント無し）がセットされた問い合わせ応答パケット１０００を受信した場合、登録ＰＣ数１００７を使用して第２の周期（Ｔ２）を決定する。第２の周期は、ＭＦＰ１００に登録中のＰＣ数に応じて決定され、ＰＣ数が少ないほど小さく決定され、多いほど大きく決定される。例えば、登録ＰＣ数が１台の場合に第２の周期は２秒と、登録ＰＣ数が２台の場合に第２の周期は４秒と、登録ＰＣ数が３台の場合に第２の周期は６秒というように予め対応付けて決めておく。また、第２の周期に下限値と上限値を設定してもよい。また、第２の周期はＰＣ数に因らず一定としてもよい。
【００３８】
ＰＣ２００は、次の問い合わせ要求パケット８００を送信する時間を微調整するための調整時間Ｔｗを計算する。調整時間Ｔｗは、式（１）から算出される。
【００３９】
Ｔｗ  ＝  ｛（Ｄ−１）×Ｔ｝／Ｎ−Ｔｘ  ・・・（１）
ここで、Ｄは、管理番号１００８に格納されている値である。Ｔは、上述の第２の周期Ｔ２である。Ｎは、登録ＰＣ数１００７に格納されている値である。Ｔｘは、時間差１００９に格納されている値である。式（１）から明らかなように、管理番号１００９を「１」で受信するＰＣ２００が計算するＴｗは、｛（１−１）×Ｔ｝／１−０で常にゼロとなる。よって、第２の周期Ｔ２の時間経過後、再び、ＭＦＰ１００に対して問い合わせ要求パケット８００を送信する（Ｓ１０５、Ｓ１０７、Ｓ１０９）。よって、Ｓ１０３からＳ１０７までの間は、ＭＦＰ１００は、第２の周期Ｔ２間隔で問い合わせ要求パケット８００をＰＣ２００から受信する。
【００４０】
次に、ＭＦＰ１００に対してＰＣ２００のみがポーリングしている最中に、ＰＣ３００が追加されポーリングを開始する場合について説明する。
【００４１】
ＰＣ３００はアプリケーションが起動されると、ＭＦＰ１００に対してＰＣ登録要求パケット８００を送信する（Ｓ２０１）。ＭＦＰ１００は、ＰＣ３００からＰＣ登録要求パケット８００を受信し、登録できる状態にある場合、送信元アドレス８０２からアドレス情報を取得し、コンピュータ名８０５からコンピュータ名及びログイン名を取得して、それらを登録する（後述する図１７のＳ６０６）。そして、ＰＣ３００に対して、応答コード１００５に「０１」をセットしたＰＣ登録応答パケット１０００を送信する（Ｓ２０２）。
【００４２】
ここで、ＰＣ２００からＭＦＰ１００にポーリングする第２の周期Ｔ３について説明する。
【００４３】
ＰＣ２００は、ＭＦＰ１００に対してプッシュスキャン操作の有無を問い合わせるための問い合わせ要求パケット８００を送信する（Ｓ１０９、Ｓ１１１、Ｓ１１３、Ｓ１１５）。ＭＦＰ１００は、ＰＣ２００から問い合わせ要求パケットを受信し、プッシュスキャン操作が実行されていない場合、ＰＣ２００に対して、応答コード１００５に「０３」をセットした問い合わせ応答パケット１０００を送信する（Ｓ１１０、Ｓ１１２、Ｓ１１４、Ｓ１１６）。この時、ＭＦＰ１００にはＰＣ２００とＰＣ３００が登録されていることになるので、送信する問い合わせ応答パケット１０００の登録ＰＣ数１００７には「２」がセットされる。さらに、管理番号１００８には「１」がセットされ、時間差１００９には「０」がセットされる。ＰＣ２００は、登録ＰＣ数１００７の「２」に応じた第２の周期Ｔ３を決定する。決定については、Ｔ２の決定方法と同じである。また、式（１）におけるＤ及びＴｘ＝０であるので、調整時間Ｔｗはゼロとなる。よって、問い合わせ応答パケット１０００の受信後、第２の周期Ｔ３の経過後、再度、問い合わせ要求パケット８００をＭＦＰ１００に対して送信する。
【００４４】
ここで、ＰＣ３００からＭＦＰ１００にポーリングする第２の周期Ｔ３について説明する。
【００４５】
ＰＣ３００は、ＭＦＰ１００に対してプッシュスキャン操作の有無を問い合わせるための問い合わせ要求パケット８００を送信する（Ｓ２０３）。ＭＦＰ１００は、ＰＣ３００から問い合わせ要求パケット８００を受信し、プッシュスキャン操作が実行されていない場合、ＰＣ３００に対して、応答コード１００５に「０３」をセットした、問い合わせ応答パケット１０００を送信する（Ｓ２０４）。この時、ＭＦＰ１００にはＰＣ２００とＰＣ３００が登録されていることになるので、送信する問い合わせ応答パケット１０００の登録ＰＣ数１００７には「２」がセットされる。さらに管理番号１００８には「２」がセットされる。そして、時間差１００９には、Ｓ２０３での問い合わせ要求を受信した時刻ｔ２と、ｔ２の受信時間以前で最新のＰＣ２００からのＳ１０９での問い合わせ要求パケットを受信した時刻ｔ１の差「ｔ２−ｔ１」がセットされてＰＣ３００に送信される。
【００４６】
ＰＣ３００は受信した応答パケットの登録ＰＣ数１００７に応じて第２の周期Ｔ３を決定する。決定については、Ｔ２の決定方法と同じである。そして、次の問い合わせ要求パケット８００を送信する時間を微調整するための調整時間Ｔｗを算出する。ここで、ＰＣ２００から問い合わせ要求パケット８００を受信した時刻ｔ１と、次にＰＣ３００から問い合わせ要求パケットを受信した時刻ｔ２との間隔がＴ３／２より短いとすると、次に、ＭＦＰ１００が問い合わせ要求パケットを受信する時が（Ｔ３―（ｔ２−ｔ１））後と長い間隔となってしまう。従って、ＭＦＰ１００がＰＣ２００とＰＣ３００から受信する問い合わせ要求パケット８００は、等間隔（Ｔ３／２）で受信されることが、プッシュスキャンの応答速度とネットワークトラフィックの一定化の点から望ましい。本実施形態においては、調整時間Ｔｗで第２の周期Ｔ３を微調整する。調整時間Ｔｗによると、ＰＣ３００は、Ｔｗ＝｛（２−１）×Ｔ３｝／２−（ｔ２−ｔ１）＝Ｔ３／２−（ｔ２−ｔ１）となる。ＰＣ３００は、Ｓ２０４で問い合わせ応答パケット１０００を受信した後の最初の問い合わせ要求パケット８００の送信は、第２の周期Ｔ３＋調整時間Ｔｗの時間経過後に行う（Ｓ２０５）。
【００４７】
ＰＣ３００は、ＭＦＰ１００から問合わせ応答パケット１０００を受信すると（Ｓ２０６）、再度調整時間Ｔｗを計算する。この時、調整時間Ｔｗは、ＰＣ２００が送信する問い合わせ要求パケット８００とＰＣ３００が送信する問い合わせ要求パケット８００とがＭＦＰ１００に対して等間隔（つまり、Ｔ３／２）で送信されていれば、Ｔｗは、Ｔ３／２−Ｔ３／２によりゼロとなる。ＰＣ３００は、第２の周期Ｔ３の経過後、再度、問い合わせ要求パケット８００をＭＦＰ１００に送信する（Ｓ２０７）。ＭＦＰ１００は、ＰＣ３００から問い合わせ要求パケット８００を受信し、プッシュスキャン操作が実行されていない場合、ＰＣ３００に対して、応答コード１００５に「０３」をセットした、問い合わせ応答パケット１０００を送信する（Ｓ２０８）。以上から、Ｓ１１１からＳ１１５までの間、及び、Ｓ２０５からＳ２０７までの間は、ＭＦＰは第２の周期（Ｔ３／２）間隔で、問い合わせ要求パケット８００をＰＣ２００及び３００から受信することになる。
【００４８】
次に、ＭＦＰ１００にＰＣ２００とＰＣ３００がポーリングしている最中に、ＰＣ３０１が追加されポーリングを開始する場合について説明する。
【００４９】
ＰＣ３０１は、アプリケーションが起動されると、ＭＦＰ１００に対してＰＣ登録要求パケット８００を送信する（Ｓ３０１）。ＭＦＰ１００は、ＰＣ３０１からＰＣ登録要求パケットを受信し、登録できる状態にある場合、送信元アドレス８０２からアドレス情報を取得し、コンピュータ名８０５からコンピュータ名及びログイン名を取得して、それらを登録する（後述する図１７のＳ６０６）。そして、ＰＣ３０１に対して、応答コード１００５に「０１」をセットしたＰＣ登録応答パケット１０００を送信する（Ｓ３０２）。  
【００５０】
ここで、ＰＣ３００からＭＦＰ１００にポーリングする第２の周期Ｔ３について説明する。
【００５１】
ＰＣ３００は、ＭＦＰ１００に対してプッシュスキャン操作の有無を問い合わせるための問い合わせ要求パケット８００を送信する（Ｓ２０９）。ＭＦＰ１００は、ＰＣ３００から問い合わせ要求パケット８００を受信し、プッシュスキャン操作が実行されていない場合、ＰＣ３００に対して、応答コード１００５に「０３」をセットした問い合わせ応答パケット１０００を送信する（Ｓ２１０）。この時、ＭＦＰ１００にはＰＣ２００とＰＣ３００とＰＣ３０１が登録されていることになるので、送信する問い合わせ応答パケット１０００の登録ＰＣ数１００７には「３」がセットされる。さらに、管理番号１００８には「２」がセットされ、時間差１００９には、Ｓ２０９で問い合わせ要求８００を受信した時刻ｔ４と、直前のＰＣ２００からの問い合わせ要求パケットをＳ１１５で受信した時刻ｔ３との差「ｔ４−ｔ３」がセットされる。
。
【００５２】
ＰＣ３００は、それらを使用して第２の周期Ｔ４を決定する。決定については、Ｔ２の決定方法と同じである。そして、次の問い合わせ要求パケット８００を送信する時間を微調整するための調整時間Ｔｗを算出する。ここで、Ｄは、管理番号１００８に格納されている値「２」である。Ｔは、決定した第２の周期「Ｔ４」である。Ｎは、登録ＰＣ数１００７に格納されている値「３」である。Ｔｘは、「ｔ４−ｔ３」である。従って、調整時間Ｔｗは、「Ｔ４／３−（ｔ４−ｔ３）」となる。ＰＣ３００は、問い合わせ応答パケット１０００を受信した後（Ｓ２１０）、第２の周期Ｔ４と調整時間Ｔｗの経過後、再度、問い合わせ要求パケット８００をＭＦＰ１００に送信する（Ｓ２１１）。
【００５３】
ここで、ＰＣ３０１からＭＦＰ１００にポーリングする第２の周期Ｔ４について説明する。
【００５４】
ＰＣ３０１は、ＭＦＰ１００に対してプッシュスキャン操作の有無を問い合わせるための問い合わせ要求パケット８００を送信する（Ｓ３０３）。ＭＦＰ１００は、ＰＣ３０１から問い合わせ要求パケット８００を受信し、プッシュスキャン操作が実行されていない場合、ＰＣ２００に対して、応答コード１００５に「０３」をセットした問い合わせ応答パケット１０００を送信する。この時、ＭＦＰ１００にはＰＣ２００とＰＣ３００とＰＣ３０１が登録されていることになるので、送信する問い合わせ応答パケット１０００の登録ＰＣ数１００７には「３」がセットされる。さらに、管理番号１００８には「３」がセットされ、時間差１００９には、Ｓ３０３で問い合わせ要求８００を受信した時刻ｔ５と、直前のＰＣ２００からの問い合わせ要求パケット８００をＳ１１５で受信した時刻ｔ３との差「ｔ５−ｔ３」がセットされる。
【００５５】
ＰＣ３０１は、それらを使用して第２の周期Ｔ４を決定する。決定については、Ｔ２の決定方法と同じである。そして、次の問い合わせ要求パケット８００を送信する時間を微調整するための調整時間Ｔｗを算出する。ここで、Ｄは、管理番号１００８に格納されている値「３」である。Ｔは、決定した第２の周期「Ｔ４」である。Ｎは、登録ＰＣ数１００７に格納されている値「３」である。Ｔｘは、「ｔ５−ｔ３」である。従って、調整時間Ｔｗは、「２×Ｔ４／３−（ｔ５−ｔ３）」となる。ＰＣ３０１は、問い合わせ応答パケットを受信した後（Ｓ３０４）、第２の周期Ｔ４と調整時間Ｔｗの時間経過後、再度、問い合わせ要求パケット８００をＭＦＰ１００に送信する（Ｓ３０５）。
【００５６】
ここで、ＰＣ２００からＭＦＰ１００にポーリングする第２の周期Ｔ４について説明する。
【００５７】
ＰＣ２００は、ＭＦＰ１００に対してプッシュスキャン操作の有無を問い合わせるための問い合わせ要求パケット８００を送信する（Ｓ１１７、Ｓ１１９、Ｓ１２１、Ｓ１２３）。ＭＦＰ１００は、ＰＣ２００から問い合わせ要求パケット８００を受信し、プッシュスキャン操作が実行されていない場合、ＰＣ２００に対して、応答コード１００５に「０３」をセットした問い合わせ応答パケットを送信する（Ｓ１１８、Ｓ１２０、Ｓ１２２、Ｓ１２４）。この時、ＭＦＰ１００にはＰＣ２００とＰＣ３００とＰＣ３０１が登録されていることになるので、送信する問い合わせ応答パケット１０００の登録ＰＣ数１００７には「３」がセットされる。さらに、管理番号１００８には「１」がセットされ、時間差１００９には「０」がセットされる。ＰＣ２００は、登録ＰＣ数１００７の値を使用して第２の周期Ｔ４を決定する。決定については、Ｔ２の決定方法と同じである。そして、前述の通り調整時間Ｔｗはゼロとなる。従って、問い合わせ応答パケット１０００の受信後、第２の周期Ｔ４の経過後、再度、問い合わせ要求パケットをＭＦＰ１００に対して送信する。
【００５８】
再び、ＰＣ３００に着目して説明する。前回の問い合わせ要求パケットの送信（Ｓ２１１）時に送信タイミングをＴｗにより微調整したが、ＰＣ２００のＳ１１７での問い合わせ要求パケット８００の送信が第２の周期Ｔ３のタイミングで行われたため、調整が正常に行われなかった状態となっている。従って、ＰＣ３００は、Ｓ２１３での問い合わせ要求パケット８００の送信タイミングを再度、微調整する。
【００５９】
ＰＣ３００は、ＭＦＰ１００に対してプッシュスキャン操作の有無を問い合わせるための問い合わせ要求パケット８００を送信する（Ｓ２１１）。ＭＦＰ１００は、ＰＣ３００から問い合わせ要求パケット８００を受信し、プッシュスキャン操作が実行されていない場合、ＰＣ２００に対して、応答コード１００５に「０３」をセットした問い合わせ応答パケット１０００を送信する（Ｓ２１２）。この時、ＭＦＰ１００にはＰＣ２００とＰＣ３００とＰＣ３０１が登録されていることになるので、送信する問い合わせ応答パケット１０００の登録ＰＣ数１００７には「３」がセットされる。さらに、管理番号１００８には「２」がセットされ、時間差１００９には、Ｓ２１１で問い合わせ要求を受信した時刻ｔ７と、直前のＰＣ２００からの問い合わせ要求パケット８００をＳ１１７で受信した時刻ｔ６の差「ｔ７−ｔ６」がセットされる。
【００６０】
ＰＣ３００は、それらを使用して第２の周期Ｔ４を決定する。決定については、Ｔ２の決定方法と同じである。そして、次の問い合わせ要求パケット８００を送信する時間を微調整するための調整時間Ｔｗを算出する。ここで、Ｄは、管理番号１００８に格納されている値「２」である。Ｔは、決定した第２の周期「Ｔ４」である。Ｎは、登録ＰＣ数１００７に格納されている値「３」である。Ｔｘは、時間差１００９に格納されている値「ｔ７−ｔ６」である。従って、調整時間Ｔｗは、Ｔ４／３−（ｔ７−ｔ６）となる。ＰＣ３００は、問い合わせ応答パケット１０００を受信した後（Ｓ２１２）、第２の周期Ｔ４と調整時間Ｔｗの時間経過後、再度、問い合わせ要求パケット８００をＭＦＰ１００に送信する（Ｓ２１３）。
【００６１】
ＰＣ３０１も、ＰＣ３００と同様である。つまり、前回の問い合わせ要求パケット８００の送信（Ｓ３０５）時に送信タイミングをＴｗにより微調整したが、ＰＣ２００のＳ１１７での問い合わせ要求パケット８００の送信が第２の周期Ｔ３のタイミングで行われたため、調整が正常に行われなかった状態となっている。従って、ＰＣ３００は、Ｓ３０７での問い合わせ要求パケット８００の送信タイミングを再度、微調整する。
【００６２】
ＰＣ３０１は、ＭＦＰ１００に対してプッシュスキャン操作の有無を問い合わせるための問い合わせ要求パケット８００を送信する（Ｓ３０５）。ＭＦＰ１００は、ＰＣ３０１から問い合わせ要求パケット８００を受信し、プッシュスキャン操作が実行されていない場合、ＰＣ２００に対して、応答コード１００５に「０３」をセットした問い合わせ応答パケット１０００を送信する。この時、ＭＦＰ１００にはＰＣ２００とＰＣ３００とＰＣ３０１が登録されていることになるので、送信する問い合わせ応答パケット１０００の登録ＰＣ数１００７には「３」がセットされる。さらに、管理番号１００８には「３」がセットされ、時間差１００９には、Ｓ３０５で問い合わせ要求を受信した時刻ｔ９と、直前のＰＣ２００からの問い合わせ要求パケットをＳ１１９で受信した時刻ｔ８との差「ｔ９−ｔ８」がセットされる。
【００６３】
ＰＣ３０１は、それらを使用して第２の周期Ｔ４を決定する。さらに、次の問い合わせ要求パケット８００を送信する時間を微調整するための調整時間Ｔｗを算出する。ここで、Ｄは、管理番号１００８に格納されている値「３」である。Ｔは、決定した第２の周期「Ｔ４」である。Ｎは、登録ＰＣ数１００７に格納されている値「３」である。Ｔｘは、時間差時刻１００９に格納されている値「ｔ９−ｔ８」である。従って、調整時間Ｔｗは、２×Ｔ４／３−（ｔ９−ｔ８）となる。ＰＣ３０１は、問い合わせ応答パケット１０００を受信した後（Ｓ３０６）後、第２の周期Ｔ４と調整時間Ｔｗの時間経過後、再度、問い合わせ要求パケット８００をＭＦＰ１００に送信する（Ｓ３０７）。
【００６４】
次に、ＰＣ３００のＳ２１３以降の動作について説明する。
【００６５】
ＰＣ３００は、ＭＦＰ１００に対してプッシュスキャン操作の有無を問い合わせるための問い合わせ要求パケット８００を送信する（Ｓ２１３）。ＭＦＰ１００は、ＰＣ３００から問い合わせ要求パケット８００を受信し、プッシュスキャン操作が実行されていない場合、ＰＣ２００に対して、応答コード１００５に「０３」をセットした問い合わせ応答パケット１０００を送信する（Ｓ２１４）。この時、ＭＦＰ１００にはＰＣ２００とＰＣ３００とＰＣ３０１が登録されていることになるので、送信する問い合わせ応答パケットの登録ＰＣ数１００７には「３」がセットされる。さらに、管理番号１００８には「２」がセットされ、時間差時刻１００９には、Ｓ２１３で問い合わせ要求を受信した時刻ｔ１１と、直前のＰＣ２００からの問い合わせ要求パケット８００をＳ１２１で受信した時刻ｔ１０との差「ｔ１１−ｔ１０」がセットされる。
【００６６】
ＰＣ３００は、それらを使用して第２の周期Ｔ４を決定する。そして、次の問い合わせ要求パケット８００を送信する時間を微調整するための調整時間Ｔｗを算出する。ここで、Ｄは、管理番号１００８に格納されている値「２」である。Ｔは、決定した第２の周期「Ｔ４」である。Ｎは、登録ＰＣ数１００７に格納されている値「３」である。Ｔｘは、時間差１００９に格納されている値「ｔ１１−ｔ１０」である。従って、Ｔｗは、Ｔ４／３−（ｔ１１−ｔ１０）となる。ここで、ｔ１１−ｔ１０はＴ４／３と等しいので、その結果、Ｔｗはゼロとなる。従って、ＰＣ３００は、問い合わせ応答パケット１０００を受信した後（Ｓ２１４）、第２の周期Ｔ４の経過後、再度、問い合わせ要求パケットをＭＦＰ１００に送信する（Ｓ２１５）。
【００６７】
次に、ＰＣ３０１のＳ３０７以降の動作について説明する。
【００６８】
ＰＣ３０１は、ＭＦＰ１００に対してプッシュスキャン操作の有無を問い合わせるための問い合わせ要求パケット８００を送信する（Ｓ３０７）。ＭＦＰ１００は、ＰＣ３０１から問い合わせ要求パケット８００を受信し、プッシュスキャン操作が実行されていない場合、ＰＣ２００に対して、応答コード１００５に「０３」をセットした問い合わせ応答パケットを送信する。この時、ＭＦＰ１００にはＰＣ２００とＰＣ３００とＰＣ３０１が登録されていることになるので、送信する問い合わせ応答パケット１０００の登録ＰＣ数１００７には「３」がセットされる。さらに、管理番号１００８には「３」がセットされ、時間差１００９には、Ｓ３０７で問い合わせ要求を受信した時刻ｔ１２と、直前のＰＣ２００からの問い合わせ要求パケット８００をＳ１２１で受信した時刻ｔ１０との差「ｔ１２−ｔ１０」がセットされる。
【００６９】
ＰＣ３０１は、それらを使用して第２の周期Ｔ４を決定する。そして、次の問い合わせ要求パケット８００を送信する時間を微調整するための調整時間Ｔｗを算出する。ここで、Ｄは、管理番号１００８に格納されている値「３」である。Ｔは、決定した第２の周期「Ｔ４」である。Ｎは、登録ＰＣ数１００７に格納されている値「３」である。Ｔｘは、時間差１００９に格納されている値「ｔ１２−ｔ１０」である。従って、Ｔｗは、２×Ｔ４／３−（ｔ１２−ｔ１０）となる。ここで、「ｔ１２−ｔ１０」は２×Ｔ４／３と等しい。よって、ＰＣ３０１は、問い合わせ応答パケット１０００を受信した後（Ｓ３０４）、第２の周期Ｔ４の経過後、再度、問い合わせ要求パケット８００をＭＦＰ１００に送信する（Ｓ３０９）。以上により、Ｓ１２１〜Ｓ１２３の間と、Ｓ２１３〜Ｓ２１５の間と、Ｓ３０７〜Ｓ３０９の間、ＭＦＰ１００は、第２の周期「Ｔ４／３」間隔で問い合わせ要求パケットを各ＰＣ２００、３００、３０１から受信することになる。
【００７０】
図１６は、図１５に示すフローチャートにおけるＰＣ２００、３００、３０１の処理の手順を示すフローチャートである。図１６の処理は、例えば、各ＰＣのＣＰＵ２０１が図２の各部を制御することにより実行される。まず、ＣＰＵ２０１は、アプリケーションを起動し（Ｓ５０１）、設定画面７００においてＭＦＰ１００のチェックボックス７０１にチェックされているか否かを判定する（Ｓ５０２）。チェックされていると判定された場合には、ＣＰＵ２０１は、チェックされているＭＦＰ１００に対してＰＣ登録要求パケットを送信する（Ｓ５０３）。
【００７１】
次に、ＣＰＵ２０１は、タイマ２１２を起動し（Ｓ５０４）、ＰＣ登録応答パケット１０００の受信を待機する（Ｓ５０５）。ＰＣ登録応答パケット１０００を受信すると、その応答コードが「０１」であるか否かを判定する（Ｓ５０６）。応答コードが「０１」であると判定された場合、そのＰＣ登録応答パケット１０００を送信したＭＦＰ１００に対して問い合わせ要求パケット８００を送信する（Ｓ５０７）。一方、ＰＣ登録応答パケット１０００を受信できない、若しくは、受信したＰＣ登録応答パケット１０００の応答コードが「０２」であった場合には、所定の第１の周期のタイムアウトを待機する（Ｓ５１８）。さらに、設定画面７００のＭＦＰ１００のチェックボックス７０１にチェックされているか否かを判定し（Ｓ５１９）。チェックされていると判定された場合には、ＭＦＰ１００に対してＰＣ登録要求パケット８００を再度送信する（Ｓ５０３）。チェックされていないと判定された場合には、Ｓ５１６に進む。
【００７２】
ＣＰＵ２０１は、Ｓ５０７で問い合わせ要求パケット８００を送信後、タイマ２１２を再起動し（Ｓ５０８）、問い合わせ応答パケット１０００の受信を待機する（Ｓ５０９）。問い合わせ応答パケット１０００を受信すると、その応答コードが「０４」であるか否かを判定する（Ｓ５１０）。「０４」でないと判定された場合には、他のＰＣからのイベント転送要求パケットの受信があるか否かを判定する（Ｓ５１１）。他のＰＣからのイベント転送要求パケットの受信がないと判定された場合に、ＣＰＵ２０１は、受信した問い合わせ応答パケット１０００の登録ＰＣ数１００７を使用して第２の周期を計算する（Ｓ５１２）。さらに、ＣＰＵ２０１は、登録ＰＣ数１００７と管理番号１００８と時間差１００９を使用して式（１）から調整時間Ｔｗを算出する（Ｓ５１３）。そして、ＣＰＵ２０１は、第２の周期と調整時間Ｔｗとの合計時間、タイムアウトを待つ（Ｓ５１４）。
【００７３】
Ｓ５１０で、受信した問い合わせ応答パケットの応答コードが「０４」であると判定された場合、ＣＰＵ２０１は、プッシュスキャン送信先アドレス１００６に格納されているアドレスが他のＰＣのものか否かを判定する（Ｓ５２０）。他のＰＣのアドレスであると判定された場合、プッシュスキャン送信先アドレス１００６に格納されているアドレスへイベント転送要求パケット（パケット識別子１３０４が「０５」）を送信する（Ｓ５２２）。ここで、現在の登録ＰＣ数が予め定められた台数以下の場合はイベント転送パケットを送信しないようにしてもよい。一方、自身のＰＣのアドレスであると判定された場合には、ＣＰＵ２０１は、スキャン処理を実行するようＭＦＰを制御する（Ｓ５２１）。ここでのスキャン処理とは、例えば、ＰＣがＭＦＰ１００に対してスキャン設定を指定し、ＭＦＰ１００がそれに従って画像を読み取り、ＰＣがその画像データを受信するというものである。また、Ｓ５１１において他のＰＣからイベント転送要求パケットを受信した場合にも、Ｓ５２１でスキャン処理を実行するようＭＦＰを制御する。
【００７４】
Ｓ５０９で問い合わせ応答パケット１０００の受信がされなかったと判定された場合、ＣＰＵ２０１は、設定画面７００のＭＦＰ１００のチェックボックス７０１にチェックされているか否かを判定する（Ｓ５１５）。また、Ｓ５１４、Ｓ５２１、Ｓ５２２の処理後もＳ５１４に進む。
【００７５】
Ｓ５１５において、ＭＦＰ１００のチェックボックス７０１にチェックされていると判定された場合、ＭＦＰ１００に対して問い合わせ要求パケット８００を再度送信する（Ｓ５０７）。一方、チェックされていないと判定された場合、ＭＦＰ１００に対してＰＣ解除要求パケット８００を送信する（Ｓ５１６）。その後、ＣＰＵ２０１は、アプリケーションを終了するか否かを判定し（Ｓ５１７）、終了すると判定された場合には、ＭＦＰ１００との間の図１６に示す本処理を終了する。一方、終了しないと判定された場合には、Ｓ５０２からの処理を繰り返す。Ｓ５１７での終了の判定は、例えば、ＭＦＰで読み取られた画像データを受信したことによって、終了と判定するようにしても良い。
【００７６】
図１７は、図１５に示すフローチャートにおけるＭＦＰ１００の処理の手順を示すフローチャートである。図１７の処理は、例えば、ＭＦＰ１００のＣＰＵ１０５が図１の各部を制御することにより実行される。まず、ＭＦＰ１００が起動されると（Ｓ６０１）、ＰＣからのＰＣ登録要求パケット８００を待機する（Ｓ６０２）。ＰＣ登録要求パケット８００の受信があった場合、ＰＣ登録要求パケット８００のコンピュータ名８０５に格納されているコンピュータ名およびログイン名が登録可能であるか否かを判定する（Ｓ６０３）。登録可能であるか否かは、例えば、予めネットワーク管理者等によりネットワーク上で使用可能なＰＣとして登録されたテーブルを参照するようにしても良い。ここで、登録可能であると判定された場合、応答コードに「０１」をセットしたＰＣ登録応答パケット１０００を要求元ＰＣに対して送信する（Ｓ６０４）。一方、登録可能でないと判定された場合、応答コードに「０２」をセットしたＰＣ登録応答パケット１０００を要求元ＰＣに対して送信し（Ｓ６０５）、再びＰＣ登録要求パケット８００を待機する（Ｓ６０２）。また、Ｓ６０２でＰＣ登録要求パケット８００の受信がなかった場合、問い合わせ要求パケット８００を待機する（Ｓ６０８）。
【００７７】
ＣＰＵ１０５は、ＰＣ登録要求パケット８００を送信したＰＣのコンピュータ名およびログイン名、アドレス情報をワークメモリ１０７の所定の領域に格納する（Ｓ６０６）。従って、ワークメモリ１０７に格納されているＰＣの情報の数をカウントすることで現在ＭＦＰ１００に接続しているＰＣ台数を把握する。続いて、ＣＰＵ１０５は、タイマ１１４を起動し、登録したＰＣからの問い合わせ要求パケット８００を待機する（Ｓ６０８）。問い合わせ要求パケット８００の受信があった場合、タイマ１１４による計時を停止し、メモリ内に確保された受信時刻１の領域にその時刻を格納する（Ｓ６０９）。ここで、受信時刻１の領域に既に値が格納されている場合には、Ｓ６０８で新たに受信した値で更新する。さらに、ＣＰＵ１０５は、問い合わせ要求パケット８００の送信元が管理番号「１」のＰＣであるか否かを判定する（Ｓ６１０）。管理番号「１」のＰＣであると判定された場合、メモリ内に確保された受信時刻２の領域にその時刻を格納する（Ｓ６１１）。ここで、受信時刻２の領域に既に値が格納されている場合には、Ｓ６１０で新たに受信した値で更新する。Ｓ６１０で送信元が管理番号「１」のＰＣでないと判定された場合にはＳ６１２に進む。
【００７８】
続いて、ＣＰＵ１０５は、プッシュスキャン操作が実行されているか否かを判定する（Ｓ６１２）。ここで、プッシュスキャン操作が実行されていないと判定された場合、ＣＰＵ１０５は、応答コードに「０３」をセットした問い合わせ応答パケット１０００を、要求元ＰＣに対して送信する（Ｓ６１７）。この時、登録ＰＣ数１００７に現在の登録中のＰＣ数をセットし、管理番号１００８に領域６０１の値をセットし、時間差１００９に受信時刻１と受信時刻２との時間差をセットする。続いて、ＣＰＵ１０５は、ＭＦＰ１００の電源ＯＦＦを判定し（Ｓ６２１）、ＯＦＦでないと判定された場合、再びタイマ１１４による計時を開始し、Ｓ６０２からの処理を繰り返す。
【００７９】
一方、Ｓ６１２でプッシュスキャン操作が実行されていると判定された場合、ＣＰＵ１０５は、応答コードに「０４」をセットし、プッシュスキャン送信先アドレス１００６にプッシュスキャン画像の送信先に指定されたＰＣのアドレスをセットした問い合わせ応答パケット１０００を、要求元に対して送信する（Ｓ６１３）。ここで、Ｓ６１２において、問い合わせ要求パケットの送信元のアドレスとプッシュスキャン送信先のアドレスを照合して一致しなかった場合、プッシュスキャン操作が実行されていないとして、Ｓ６１７に移行してもよい。
【００８０】
Ｓ６０８でタイマ１１４の計時中に問い合わせ要求パケット８００を受信しなかった場合、さらに、ＰＣ削除要求パケット８００の受信があるか否かを判定する（Ｓ６１４）。ＰＣ削除要求パケット８００の受信があれば、ＣＰＵ１０５は、タイマ１１４による計時を停止し、登録情報の削除が可能な状態にあるか否かを判定する（Ｓ６１５）。登録情報の削除が可能であると判定された場合、応答コードに「０１」をセットしたＰＣ削除応答パケット１０００を、要求元に対して送信する（Ｓ６１８）。さらにワークメモリ１０７の所定領域から削除要求のあったコンピュータ名およびログイン名、アドレス情報を削除する（Ｓ６１９）。続いてＭＦＰ１００の電源ＯＦＦを判定し（Ｓ６２１）、ＯＦＦでなければＳ６０２からの処理を繰り返す。一方、登録情報の削除が不可能な状態であると判定された場合、ＣＰＵ１０５は、応答コードに「０２」をセットしたＰＣ削除応答パケット１０００を、要求元に対して送信する（Ｓ６１６）。さらにＭＦＰ１００の電源ＯＦＦを判定し（Ｓ６１８）、ＯＦＦでなければ再びタイマ１１４による計時を開始し、Ｓ６０２からの処理を繰り返す。
【００８１】
Ｓ６０８及びＳ６１４で問い合わせ要求パケット８００もＰＣ削除要求パケット８００も受信しないと判定された場合、さらに所定のタイムアウト時間が経過したか否かを判定する（Ｓ６２０）。ここで、所定のタイムアウト時間が経過したなら、ワークメモリ１０７の所定領域に格納していた情報処理装置のコンピュータ名およびログイン名、アドレス情報を削除し（Ｓ６１９）、ＭＦＰの電源ＯＦＦを判定し（Ｓ６２１）、ＯＦＦでなければＳ６０２からの処理を繰り返す。一方、タイムアウト時間が経過していないならば、ＭＦＰ１００の電源ＯＦＦを判定し（Ｓ６２１）、ＯＦＦでなければ、Ｓ６０２からの処理を繰り返す。Ｓ６２１においてＭＦＰ１００の電源ＯＦＦであると判定された場合、図１７の本処理を終了する。
【００８２】
次に、図１８を参照しながら、本実施形態のポーリング間隔の調整について具体的に数値を用いて説明する。例えば、現在、３台のＰＣそれぞれが１台のＭＦＰに対してポーリングによりアクセスするとする。ここで、ＰＣ＿Ａ、ＰＣ＿Ｂ、ＰＣ＿Ｃのアクセス順序で、ＭＦＰにアクセスする。また、図１８に示すように、１巡目の各ＰＣのアクセス時刻は、ＰＣ＿Ａが００：００であり、ＰＣ＿Ｂは００：０２であり、ＰＣ＿Ｃは００：０５である。また、ＰＣ＿Ａは、１２秒ごとにポーリングを行うので、２巡目のＰＣ＿ＡのＭＦＰへのアクセス時刻は００：１２である。
【００８３】
ここで、ＰＣ＿Ａのアクセス後、４秒後にＰＣ＿ＢがＭＦＰにアクセスするように、且つ、ＰＣ＿Ａのアクセス後、８秒後にＰＣ＿ＣがＭＦＰにアクセスするように、各ＰＣのポーリング間隔を調整する。この場合、ＰＣ＿Ｂのポーリング間隔は、式（２）から算出される。
【００８４】
ポーリング間隔＝１２秒＋（アクセス順−１）×１２秒／台数−（前回のＰＣ＿Ｂのアクセス時刻−前回のＰＣ＿Ａのアクセス時刻）  ・・・（２）
つまり、ＰＣ＿Ｂのポーリング間隔＝１２秒＋（２−１）×１２秒／３−（「００：０２」−「００：００」）＝１２秒＋４秒−２秒＝１４秒となり、２巡目のＰＣ＿ＢのＭＦＰへのアクセス時刻は、００：０２の１４秒後の００：１６となる。
【００８５】
また、ＰＣ＿Ｃのポーリング間隔は、式（３）から算出される。
【００８６】
ポーリング間隔＝１２秒＋（アクセス順−１）×１２秒／台数−（前回のＰＣ＿Ｃのアクセス時刻−前回のＰＣ＿Ａのアクセス時刻）  ・・・（３）
つまり、ＰＣ＿Ｃのポーリング間隔＝１２秒＋（３−１）×１２秒／３−（「００：０５」−「００：００」）＝１２秒＋８秒−５秒＝１５秒となり、２巡目のＰＣ＿ＣのＭＦＰへのアクセス時刻は、００：０５の１５秒後の００：２０となる。
【００８７】
上記の「前回のＰＣ＿Ｂのアクセス時刻−前回のＰＣ＿Ａのアクセス時刻」や「前回のＰＣ＿Ｃのアクセス時刻−前回のＰＣ＿Ａのアクセス時刻」は、図１５の例えば「ｔ２−ｔ１」に相当する。
【００８８】
以上のように、本実施形態においては、ＰＣがＭＦＰに対してポーリングを行うシステムにおいて、ポーリングを行うＰＣの数が変化しても、ネットワークのトラフィックをほぼ均一になるように制御することができる。
【００８９】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又はコンピュータ読取可能な各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2015056757.tif 000003
【図２】
2015056757.tif 000004
【図３】
2015056757.tif 000005
【図４】
2015056757.tif 000006
【図５】
2015056757.tif 000007
【図６】
2015056757.tif 000008
【図７】
2015056757.tif 000009
【図８】
2015056757.tif 000010
【図９】
2015056757.tif 000011
【図１０】
2015056757.tif 000012
【図１１】
2015056757.tif 000013
【図１２】
2015056757.tif 000014
【図１３】
2015056757.tif 000015
【図１４】
2015056757.tif 000016
【図１５】
2015056757.tif 000017
【図１６】
2015056757.tif 000018
【図１７】
2015056757.tif 000019
【図１８】
2015056757.tif 000020