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