(57)【特許請求の範囲】
【請求項１】
第１の通信および第２の通信を情報処理装置との間で実行可能な通信インターフェースと、
記憶部と、
原稿を読み取るスキャン処理を行うことで画像データを生成する画像生成部と、
制御部と、
を備えるスキャナであって、
前記記憶部には、第１情報が記憶されており、前記第１情報は、前記通信インターフェースが前記第１の通信を行うために必要であり、かつ、前記スキャナの個体を識別する個体識別情報であり、
前記記憶部には、前記情報処理装置で実行可能なスキャンプログラムと、第２情報と、が記憶されており、
前記第２情報は、前記第１情報が含まれるファイルを識別するファイル識別情報であり、
前記第１の通信は、前記第１情報に含まれているアドレス情報に基づいて行われる通信であり、
前記第２の通信は、ファイル共有プロトコルに基づいた通信であり、
前記スキャンプログラムは、前記情報処理装置で実行可能なプログラムであって、前記スキャナで実行される前記スキャン処理を制御するためのプログラムであり、
前記制御部は、前記スキャナを、
前記記憶部に記憶されている前記スキャンプログラムおよび前記第２情報が示すファイルの読み出し要求情報を、前記通信インターフェースを介して、前記第２の通信によって前記情報処理装置から受信したか否かを判断する第１判断手段と、
前記第１判断手段で前記読み出し要求情報を受信したと判断されたことに応じて、前記スキャンプログラムおよび前記第２情報を、前記通信インターフェースを介して、前記第２の通信によって前記情報処理装置へ送信する第１送信手段と、
前記スキャンプログラムを前記情報処理装置に送信した後に、スキャン指示情報を、前記通信インターフェースを介して、前記第１の通信によって前記情報処理装置から受信したか否かを判断する第２判断手段と、
前記第２判断手段で前記スキャン指示情報を受信したと判断されたことに応じて、前記スキャン処理を実行して画像データを生成するスキャン処理手段と、
前記スキャン処理手段で生成した前記画像データを、前記通信インターフェースを介して、前記第１の通信によって前記情報処理装置へ送信する送信手段と、
して機能させることを特徴とするスキャナ。
【請求項２】
前記記憶部は、前記記憶部の第１領域に前記第１情報を記憶しており、
前記通信インターフェースは、前記第１領域にアクセスして、前記第１情報を用いて、第１の通信を行い、
前記記憶部は、前記記憶部の第２領域に前記スキャンプログラムと、前記第１領域からコピーした前記第１情報と、を記憶しており、
前記第２情報は、前記第２領域に記憶された前記第１情報が含まれるファイルを識別するファイル識別情報であり、
前記制御部は、前記スキャナを、
前記第１情報の変更を指示する変更指示入力を受け付ける受付手段と、
前記受付手段が変更指示入力を受け付けたことに応じて、前記第１領域に記憶されている前記第１情報を変更する変更手段と、
前記第１情報が変更されたか否かを判断する第３判断手段と、
前記第３判断手段で前記第１情報が変更されたと判断されたことに応じて、前記第２領域に、変更された前記第１情報をコピーする記憶制御手段と、
をさらに備えることを特徴とする請求項１に記載のスキャナ。
【請求項３】
前記スキャンプログラムは、前記情報処理装置で実行された場合に、第１検出処理および受信処理を前記情報処理装置に実行させるプログラムであり、
前記第１検出処理は、前記スキャナの前記記憶部に記憶されている前記第２情報が識別するファイルに含まれる前記第１情報が変更されたことを、前記第２の通信を用いて検出する処理であり、
前記受信処理は、前記第２情報が識別するファイルに含まれる前記第１情報が変更されたことが前記第１検出処理によって検出されたことに応じて、前記第２の通信を用いて実行される処理であり、かつ、前記第２情報が識別するファイルに含まれる前記第１情報を前記情報処理装置に受信させる処理であることを特徴とする請求項１または２に記載のスキャナ。
【請求項４】
前記第１検出処理は、前記第２の通信を用いて、前記スキャナの前記記憶部に記憶されている前記第２情報が識別するファイルの最終更新日時を、前記スキャナから受信する日時情報受信処理を含み、
前記情報処理装置で実行されている前記スキャンプログラムの最終更新日時と、前記日時情報受信処理で受信した前記第２情報が識別するファイルの最終更新日時と、が一致しない場合に、前記記憶部に記憶されている前記第２情報が識別するファイルに含まれる前記第１情報が変更された、と検出する処理であることを特徴とする請求項３に記載のスキャナ。
【請求項５】
前記スキャンプログラムは、前記情報処理装置で実行された場合に、第２検出処理および待機処理、を前記情報処理装置に実行させるプログラムであり、
前記第２検出処理は、前記第２の通信を用いた前記スキャナとの間の通信が実行可能であることを検出する処理であり、
前記待機処理は、前記第２の通信を用いた前記スキャナとの間の通信が実行できないことが前記第２検出処理によって検出されたことに応じて、接続が切れた場合に、前記第２の通信を用いた前記スキャナとの間の通信が再び可能になるまで待機する処理であり、
前記受信処理において、前記第２の通信を用いた前記スキャナとの間の通信が再び可能になったことが前記第２検出処理によって検出され、かつ、前記記憶部に記憶されている前記第２情報が識別するファイルに含まれる前記第１情報が変更されたことが前記第１検出処理によって検出されたことに応じて、変更後の前記第１情報を含んだファイルを識別する前記第２情報を前記第２の通信を用いて取得する、
ことを特徴とする請求項３または４に記載のスキャナ。
【請求項６】
前記スキャンプログラムは、前記情報処理装置で実行された場合に、第３検出処理、スキャン指示情報送信処理、および、中断処理を前記情報処理装置にさらに実行させるプログラムであり、
前記第３検出処理は、前記スキャン処理を開始する指示が前記スキャナに入力されたことを示す開始情報が、前記スキャナから前記第１の通信によって送信されてきたか否かを検出する処理であり、
前記スキャン指示情報送信処理は、前記開始情報が送信されてきたことが前記第３検出処理によって検出されたことに応じて、前記スキャン指示情報を、前記第１の通信によって前記スキャナへ送信する処理であり、
前記中断処理は、前記第２の通信を用いた前記スキャナとの間の通信が実行できないことが前記第２検出処理によって検出されたことに応じて、前記第３検出処理の実行を中断する処理であり、
前記受信処理は、前記中断処理によって前記第３検出処理の実行が中断された後に、前記記憶部に記憶されている前記第２情報が識別するファイルに含まれる前記第１情報が変更されていないと前記第１検出処理で判断された場合に、前記第３検出処理の実行を再開することを特徴とする請求項５に記載のスキャナ。
【請求項７】
前記第２検出処理は、前記スキャンプログラムが前記スキャナの前記記憶部に記憶されていることを確認できるか試行する試行処理を含み、
前記スキャンプログラムが前記スキャナの前記記憶部に記憶されていることが確認できない場合に、前記第２の通信を用いた前記スキャナとの間の通信が実行不可能である、と検出することを特徴とする請求項５または６に記載のスキャナ。
【請求項８】
前記第１送信手段は、前記スキャンプログラムの実行を前記情報処理装置へ指示する実行指示情報を、前記第２の通信によって前記情報処理装置へさらに送信することを特徴とする請求項１〜７の何れか１項に記載のスキャナ。
【請求項９】
前記記憶部に記憶されている前記スキャンプログラムは、前記情報処理装置を制御するオペレーティングシステムに依存しない言語で記載されたプログラムであることを特徴とする請求項１〜８の何れか１項に記載のスキャナ。
【請求項１０】
前記記憶部に記憶されている前記スキャンプログラムは、Ｊａｖａ（登録商標）言語で記載されたプログラムであることを特徴とする請求項９に記載のスキャナ。
【請求項１１】
前記第１情報は、前記スキャン処理に関する各種の設定の内容を示す設定情報を含んでおり、
前記情報処理装置で生成される前記スキャン指示情報は、前記設定情報に基づいて生成されることを特徴とする請求項１〜１０の何れか１項に記載のスキャナ。
【請求項１２】
前記第１情報は、前記スキャンプログラムに含まれており、
前記記憶部の第２領域に記憶されている前記スキャンプログラムに含まれている前記第１情報を、変更された前記第１情報に書き換える前記記憶制御手段を備えることを特徴とする請求項２に記載のスキャナ。
【請求項１３】
前記第１情報は、前記スキャンプログラムとは別体の特定ファイルとして前記記憶部の第２領域に記憶されており、
前記第１情報と前記スキャンプログラムとは、前記スキャンプログラムから前記第１情報を読み込むことが可能なように関連付けがされており、
前記第２領域に記憶されている前記特定ファイルを、変更された前記第１情報に書き換える前記記憶制御手段を備えることを特徴とする請求項２に記載のスキャナ。
【請求項１４】
第１の通信および第２の通信を情報処理装置との間で実行可能な通信インターフェースと、
記憶部と、
原稿を読み取るスキャン処理を行うことで画像データを生成する画像生成部と、
制御部と、
を備えるスキャナに読込まれるスキャナの制御プログラムであって、
前記記憶部には、第１情報が記憶されており、前記第１情報は、前記通信インターフェースが前記第１の通信を行うために必要であり、かつ、前記スキャナの個体を識別する個体識別情報であり、
前記記憶部には、前記情報処理装置で実行可能なスキャンプログラムと、第２情報と、が記憶されており、
前記第２情報は、前記第１情報が含まれるファイルを識別するファイル識別情報であり、
前記第１の通信は、前記第１情報に含まれているアドレス情報に基づいて行われる通信であり、
前記第２の通信は、ファイル共有プロトコルに基づいた通信であり、
前記スキャンプログラムは、前記情報処理装置で実行可能なプログラムであって、前記スキャナで実行される前記スキャン処理を制御するためのプログラムであり、
前記制御部を、
前記記憶部に記憶されている前記スキャンプログラムおよび前記第２情報が示すファイルの読み出し要求情報を、前記通信インターフェースを介して、前記第２の通信によって情報処理装置から受信したか否かを判断する第１判断手段と、
前記第１判断手段で前記読み出し要求情報を受信したと判断されたことに応じて、前記スキャンプログラムおよび前記第２情報を、前記通信インターフェースを介して、前記第２の通信によって前記情報処理装置へ送信する第１送信手段と、
前記スキャンプログラムを前記情報処理装置に送信した後に、スキャン指示情報を、前記通信インターフェースを介して、前記第１の通信によって前記情報処理装置から受信したか否かを判断する第２判断手段と、
前記第２判断手段で前記スキャン指示情報を受信したと判断されたことに応じて、前記スキャン処理を実行して画像データを生成するスキャン処理手段と、
前記スキャン処理手段で生成した前記画像データを、前記通信インターフェースを介して、前記第１の通信によって前記情報処理装置へ送信する送信手段と、
して機能させることを特徴とする制御プログラム。
【請求項１５】
スキャナと情報処理装置を備えた通信システムであって、
前記スキャナは、
第１の通信および第２の通信を情報処理装置との間で実行可能な第１通信インターフェースと、
記憶部と、
原稿を読み取るスキャン処理を行うことで画像データを生成する画像生成部と、
を備え、
前記記憶部には、第１情報が記憶されており、前記第１情報は、前記第１通信インターフェースが前記第１の通信を行うために必要であり、かつ、前記スキャナの個体を識別する個体識別情報であり、
前記記憶部には、前記情報処理装置で実行可能なスキャンプログラムと、第２情報と、が記憶されており、
前記第２情報は、前記第１情報が含まれるファイルを識別するファイル識別情報であり、
前記第１の通信は、前記第１情報に含まれているアドレス情報に基づいて行われる通信であり、
前記第２の通信は、ファイル共有プロトコルに基づいた通信であり、
前記スキャンプログラムは、前記情報処理装置で実行可能なプログラムであって、前記スキャナで実行される前記スキャン処理を制御するためのプログラムであり、
前記情報処理装置は、前記第１の通信および前記第２の通信を前記スキャナとの間で実行可能な第２通信インターフェースを備え、
前記情報処理装置は、前記記憶部に記憶されている前記スキャンプログラムおよび前記第２情報が示すファイルの読み出し要求情報を、前記第２通信インターフェースを介して、前記第２の通信によって前記スキャナへ送信する第１送信手段を備え、
前記スキャナは、
前記読み出し要求情報を、前記第１通信インターフェースを介して、前記第２の通信によって前記情報処理装置から受信したか否かを判断する第１判断手段と、
前記第１判断手段で前記読み出し要求情報を受信したと判断されたことに応じて、前記スキャンプログラムおよび前記第２情報を、前記第１通信インターフェースを介して、前記第２の通信によって前記情報処理装置へ送信する第２送信手段と、
を備え、
前記情報処理装置は、前記スキャンプログラムおよび前記第２情報を受信した後に、スキャン指示情報を、前記第２通信インターフェースを介して、前記第１の通信によって前記スキャナへ送信する第３送信手段をさらに備え、
前記スキャナは、
前記スキャンプログラムを前記情報処理装置に送信した後に、前記スキャン指示情報を、前記第１通信インターフェースを介して、前記第１の通信によって前記情報処理装置から受信したか否かを判断する第２判断手段と、
前記第２判断手段で前記スキャン指示情報を受信したと判断されたことに応じて、前記スキャン処理を実行して画像データを生成するスキャン処理手段と、
前記スキャン処理手段で生成した前記画像データを、前記第１通信インターフェースを介して、前記第１の通信によって前記情報処理装置へ送信する送信手段と、
をさらに備え、
前記スキャナは、前記画像データを前記第２通信インターフェースを介して受信する受信手段をさらに備えることを特徴とする通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に開示する技術は、各種のデータを通信することができるスキャナ等に関する。
【背景技術】
【０００２】
特許文献１には、以下の技術が開示されている。スキャナと情報処理装置が、ＵＳＢ（Universal Serial Busの略）によって接続されている。スキャナのストレージに、スキャンプログラムが記憶されている。情報処理装置は、スキャナのストレージから読み出したスキャンプログラムを実行する。これにより、スキャナと情報処理装置との間の連携が可能となる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−８７６６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
スキャナと情報処理装置が、ＵＳＢではなくＬＡＮ（Local Area Networkの略）で接続される場合がある。このような場合、文献１のスキャンプログラムは、スキャナと情報処理装置との間で行われるＬＡＮ通信で用いられるネットワークアドレスを認識できないため、スキャナのストレージに記憶されているスキャンプログラムを情報処理装置が取得し、実行したとしても、スキャナと情報処理装置との間で、ＬＡＮを用いた連携ができないおそれがある。本明細書では、このような不便性を解消することができる技術を提供する。
【課題を解決するための手段】
【０００５】
（１）本明細書に記載されているスキャナは、第１の通信および第２の通信を情報処理装置との間で実行可能な通信インターフェースと、記憶部と、原稿を読み取るスキャン処理を行うことで画像データを生成する画像生成部と、制御部と、を備えるスキャナであって、記憶部には、第１情報が記憶されており、第１情報は、通信インターフェースが第１の通信を行うために必要であり、かつ、スキャナの個体を識別する個体識別情報であり、記憶部には、情報処理装置で実行可能なスキャンプログラムと、第２情報と、が記憶されており、第２情報は、第１情報が含まれるファイルを識別するファイル識別情報であり、第１の通信は、第１情報に含まれているアドレス情報に基づいて行われる通信であり、第２の通信は、ファイル共有プロトコルに基づいた通信であり、スキャンプログラムは、情報処理装置で実行可能なプログラムであって、スキャナで実行されるスキャン処理を制御するためのプログラムであり、制御部は、スキャナを、記憶部に記憶されているスキャンプログラムおよび第２情報が示すファイルの読み出し要求情報を、通信インターフェースを介して、第２の通信によって情報処理装置から受信したか否かを判断する第１判断手段と、第１判断手段で読み出し要求情報を受信したと判断されたことに応じて、スキャンプログラムおよび第２情報を、通信インターフェースを介して、第２の通信によって情報処理装置へ送信する第１送信手段と、スキャンプログラムを情報処理装置に送信した後に、スキャン指示情報を、通信インターフェースを介して、第１の通信によって情報処理装置から受信したか否かを判断する第２判断手段と、第２判断手段でスキャン指示情報を受信したと判断されたことに応じて、スキャン処理を実行して画像データを生成するスキャン処理手段と、スキャン処理手段で生成した画像データを、通信インターフェースを介して、第１の通信によって情報処理装置へ送信する送信手段と、して機能させることを特徴とする。
【０００６】
上記構成によれば、第１及び第２の通信を用いることで、スキャナと情報処理装置との間で適切に通信を実行することができる。これにより、スキャナでスキャン処理を実行して画像データを生成し、生成した画像データを情報処理装置へ送信することが可能となる。
【０００７】
（２）好ましくは、本明細書に記載されているスキャナは、記憶部は、記憶部の第１領域に第１情報を記憶しており、通信インターフェースは、第１領域にアクセスして、第１情報を用いて、第１の通信を行い、記憶部は、記憶部の第２領域にスキャンプログラムと、第１領域からコピーした第１情報と、を記憶しており、第２情報は、第２領域に記憶された第１情報が含まれるファイルを識別するファイル識別情報であり、制御部は、スキャナを、第１情報の変更を指示する変更指示入力を受け付ける受付手段と、受付手段が変更指示入力を受け付けたことに応じて、第１領域に記憶されている第１情報を変更する変更手段と、第１情報が変更されたか否かを判断する第３判断手段と、第３判断手段で第１情報が変更されたと判断されたことに応じて、第２領域に、変更された第１情報をコピーする記憶制御手段と、をさらに備えることを特徴とする。
【０００８】
上記構成によれば、更新された第１情報を、常に情報処理装置に取得させることができる。これにより、スキャナと情報処理装置との間で適切に通信を実行することが可能となる。
【０００９】
（３）好ましくは、本明細書に記載されているスキャナは、スキャンプログラムは、情報処理装置で実行された場合に、第１検出処理および受信処理を情報処理装置に実行させるプログラムであり、第１検出処理は、スキャナの記憶部に記憶されている第２情報が識別するファイルに含まれる第１情報が変更されたことを、第２の通信を用いて検出する処理であり、受信処理は、第２情報が識別するファイルに含まれる第１情報が変更されたことが第１検出処理によって検出されたことに応じて、第２の通信を用いて実行される処理であり、かつ、第２情報が識別するファイルに含まれる第１情報を情報処理装置に受信させる処理である、ことを特徴とする。
【００１０】
上記構成によれば、スキャナに記憶されている所定情報が変更されたことを、情報処理装置側で検出することができる。そして、所定の情報が検出されたことに応じて、所定情報を情報処理装置に受信させることができる。これにより、常に最新の所定情報を、情報処理装置に持たせることが可能となる。
【００１１】
（４）好ましくは、本明細書に記載されているスキャナは、第１検出処理は、第２の通信を用いて、スキャナの記憶部に記憶されている第２情報が識別するファイルの最終更新日時を、スキャナから受信する日時情報受信処理を含み、情報処理装置で実行されているスキャンプログラムの最終更新日時と、日時情報受信処理で受信した第２情報が識別するファイルの最終更新日時と、が一致しない場合に、記憶部に記憶されている第２情報が識別するファイルに含まれる第１情報が変更された、と検出する処理であることを特徴とする。
【００１２】
上記構成によれば、第２情報の変更の有無を適切に検出することが可能となる。
【００１３】
（５）好ましくは、本明細書に記載されているスキャナは、スキャンプログラムは、情報処理装置で実行された場合に、第２検出処理および待機処理、を情報処理装置に実行させるプログラムであり、第２検出処理は、第２の通信を用いたスキャナとの間の通信が実行可能であることを検出する処理であり、待機処理は、第２の通信を用いたスキャナとの間の通信が実行できないことが第２検出処理によって検出されたことに応じて、接続が切れた場合に、第２の通信を用いたスキャナとの間の通信が再び可能になるまで待機する処理であり、受信処理において、第２の通信を用いたスキャナとの間の通信が再び可能になったことが第２検出処理によって検出され、かつ、記憶部に記憶されている第２情報が識別するファイルに含まれる第１情報が変更されたことが第１検出処理によって検出されたことに応じて、変更後の第１情報を含んだファイルを識別する第２情報を第２の通信を用いて取得する、ことを特徴とする。
【００１４】
上記構成によれば、第２の通信を用いたスキャナとの間の通信が実行可能であるか否かを、情報処理装置に確認させることができる。そして、第２の通信を用いた通信が再度可能になるまで、情報処理装置を待機させることができる。これにより、スキャナと情報処理装置との通信を確実に実行することが可能となる。
【００１５】
（６）好ましくは、本明細書に記載されているスキャナは、スキャンプログラムは、情報処理装置で実行された場合に、第３検出処理、スキャン指示情報送信処理、および、中断処理を情報処理装置にさらに実行させるプログラムであり、第３検出処理は、スキャン処理を開始する指示がスキャナに入力されたことを示す開始情報が、スキャナから第１の通信によって送信されてきたか否かを検出する処理であり、スキャン指示情報送信処理は、開始情報が送信されてきたことが第３検出処理によって検出されたことに応じて、スキャン指示情報を、第１の通信によってスキャナへ送信する処理であり、中断処理は、第２の通信を用いたスキャナとの間の通信が実行できないことが第２検出処理によって検出されたことに応じて、第３検出処理の実行を中断する処理であり、受信処理は、中断処理によって第３検出処理の実行が中断された後に、記憶部に記憶されている第２情報が識別するファイルに含まれる第１情報が変更されていないと第１検出処理で判断された場合に、第３検出処理の実行を再開することを特徴とする。
【００１６】
上記構成によれば、情報処理装置とスキャナとの間の通信が不可能な状態から可能な状態に復帰した場合に、第１情報が変更されていない場合には、中断前の通信設定を引き継いで、通信を再開することができる。通信を再開する際の処理負担を軽減することが可能となる。
【００１７】
（７）好ましくは、本明細書に記載されているスキャナは、第２検出処理は、スキャンプログラムがスキャナの記憶部に記憶されていることを確認できるか試行する試行処理を含み、スキャンプログラムがスキャナの記憶部に記憶されていることが確認できない場合に、第２の通信を用いたスキャナとの間の通信が実行不可能である、と検出することを特徴とする。
【００１８】
上記構成によれば、情報処理装置は、スキャンプログラムがスキャナの記憶部に記憶されているか否かを確認することで、スキャナとの間の通信の実行可否を適切に判断することが可能となる。
【００１９】
（８）好ましくは、本明細書に記載されているスキャナは、第１送信手段は、スキャンプログラムの実行を情報処理装置へ指示する実行指示情報を、第２の通信によって情報処理装置へさらに送信することを特徴とする。
【００２０】
上記構成によれば、スキャナは、スキャンプログラムの実行を情報処理装置へ指示することができる。これにより、スキャンプログラムを情報処理装置に適切に実行させることが可能となる。
【００２１】
（９）好ましくは、本明細書に記載されているスキャナは、記憶部に記憶されているスキャンプログラムは、情報処理装置を制御するオペレーティングシステムに依存しない言語で記載されたプログラムであることを特徴とする。
【００２２】
上記構成によれば、情報処理装置に搭載されているオペレーティングシステムに依存せずに、スキャンプログラムを情報処理装置に実行させることが可能となる。
【００２３】
（１０）好ましくは、本明細書に記載されているスキャナは、記憶部に記憶されているスキャンプログラムは、Ｊａｖａ（登録商標）言語で記載されたプログラムであることを特徴とする。
【００２４】
上記構成によれば、スキャンプログラムを記載しているプログラム言語に依存せずに、スキャンプログラムを情報処理装置に実行させることが可能となる。
【００２５】
（１１）好ましくは、本明細書に記載されているスキャナは、第１情報は、スキャン処理に関する各種の設定の内容を示す設定情報を含んでおり、情報処理装置で生成されるスキャン指示情報は、設定情報に基づいて生成されることを特徴とする。
【００２６】
上記構成によれば、スキャナに記憶されている設定情報に基づいたスキャン指示情報を、情報処理装置に生成させることが可能となる。
【００２７】
（１２）好ましくは、本明細書に記載されているスキャナは、第１情報は、スキャンプログラムに含まれており、記憶制御手段は、第２領域に記憶されているスキャンプログラムに含まれている第１情報を、変更された第１情報に書き換えることを特徴とする。
【００２８】
上記構成によれば、スキャンプログラムに、最新の第１情報を含ませることが可能となる。
【００２９】
（１３）好ましくは、本明細書に記載されているスキャナは、第１情報は、スキャンプログラムとは別体の特定ファイルとして記憶部の第２領域に記憶されており、第１情報とスキャンプログラムとは、スキャンプログラムから第１情報を読み込むことが可能なように関連付けがされており、記憶制御手段は、第２領域に記憶されている特定ファイルを、変更された第１情報に書き換えることを特徴とする。
【００３０】
上記構成によれば、スキャンプログラムとは別体の特定ファイルに、最新の第１情報を書き込んでおくことが可能となる。
【００３１】
上記のスキャナを実現するための制御方法、及び、当該コンピュータプログラムを格納するコンピュータ読取可能記録媒体も、新規で有用である。
【図面の簡単な説明】
【００３２】
【図１】通信システム１の電気的構成を示す図である。
【図２】ＭＦＰの動作を示すフローチャートである。
【図３】ＩＰ/設定変更監視タスクの内容を説明するフローチャートである。
【図４】プッシュスキャン監視プログラムの動作内容を説明するフローチャートである。
【図５】プッシュスキャン監視プログラムの動作内容を説明するフローチャートである。
【図６】プッシュスキャン監視スレッドの動作内容を説明するフローチャートである。
【図７】スキャンプログラムの動作内容を説明するフローチャートである。
【図８】スキャンプログラムの動作内容を説明するフローチャートである。
【発明を実施するための形態】
【００３３】
＜通信システムの構成＞
図１に、本願に係る第１実施形態として例示される通信システム１の電気的構成を示す。通信システム１は、パーソナルコンピュータ（以降、ＰＣとも記す）９、多機能周辺装置（以降ＭＦＰとも記す）５１、アクセスポイント９３を備えている。ＭＦＰ５１は、プリンタ機能、スキャナ機能、コピー機能、ファクシミリ機能などを備える。
【００３４】
＜ＰＣ９の構成＞
ＰＣ（Personal Computerの略）９は、ＣＰＵ（Central Processing Unitの略）１０、ＲＯＭ（Read Only Memoryの略）１１、ＲＡＭ（Random Access Memoryの略）１２、表示部１３、操作部１４、記憶部１５、ＵＳＢホストインターフェース部（図１ではＵＳＢホストＩＦ部と記す）１６、及び、ネットワークインターフェース部（図１ではネットワークＩＦ部と記す）１７、無線送受信部２６、無線アンテナ部２７、を備えている。
【００３５】
ＣＰＵ１０は、ＲＯＭ１１や記憶部１５に記憶されているプログラムを実行することによってＰＣ９の各部を制御する。ＲＯＭ１１には、ＣＰＵ１０によって実行されるプログラムやデータなどが記憶されている。ＲＡＭ１２は、ＣＰＵ１０が各種の処理を実行するための主記憶装置として用いられる。表示部１３は、液晶ディスプレイなどの表示装置、表示装置を駆動するディスプレイ駆動回路などを備えている。操作部１４は、キーボードやマウス、それらが接続されるインターフェースなどを備えている。記憶部１５は、ハードディスクやフラッシュメモリなどの不揮発性のメモリを用いて各種のプログラムやデータを記憶する装置である。記憶部１５には、オペレーティングシステム（ＯＳと記す）２１、ファイルマネージャプログラム２２、などのプログラムが記憶されている。ＯＳ２１は、ＰＣ９の全体を管理するためのプログラムである。ＯＳ２１の一例としては、ウインドウズ（Microsoft Corporationの登録商標）が挙げられる。ファイルマネージャプログラム２２は、ファイルシステムを扱うためのユーザインターフェースを提供するコンピュータプログラムである。ファイルマネージャプログラム２２は、ファイルの移動やコピー、削除、改名、検索などの処理を行うプログラムである。ファイルマネージャプログラム２２の一例としては、エクスプローラ（Microsoft Corporationの登録商標）が挙げられる。ＵＳＢホストインターフェース部１６は、ＵＳＢホストコントローラ（不図示）、ＵＳＢケーブルが接続されるジャック（不図示）、などを備えている。ネットワークインターフェース部１７は、ＬＡＮ１８を介して、ＭＦＰ５１と通信を行う部位である。無線送受信部２６は、無線アンテナ部２７を介して、アクセスポイント９３との間で無線通信９５を行う部位である。
【００３６】
＜ＭＦＰ５１の構成＞
ＭＦＰ５１は、プリンタ１９、スキャナ２０、制御部３０、記憶部３５、無線送受信部３６、無線アンテナ部３７、ボタン入力部３８、パネル３９、モデム４０、電話回線接続部４１、ＵＳＢインターフェース部（図１ではＵＳＢ＿ＩＦ部と記す）４２、ＬＡＮインターフェース部（図１ではＬＡＮ＿ＩＦ部と記す）４３、を主に備えている。これらの構成要素は、入出力ポート４４を介して互いに通信可能とされている。制御部３０は、バス接続されたＣＰＵ３２、ＲＯＭ３３、ＲＡＭ３４を備えている。ＲＯＭ３３は、各種のプログラムを記憶する。ＣＰＵ３２は、ＲＯＭ３３に記憶されているプログラムを実行する。ＲＡＭ３４は、揮発性のメモリである。
【００３７】
記憶部３５は、ハードディスクやフラッシュメモリなどの不揮発性のメモリを用いて各種のプログラムやデータを記憶する装置である。記憶部３５には、ＯＳ６１、ＣＩＦＳ記憶領域６２、通信設定記憶領域８４、スキャン設定記憶領域８８が備えられている。ＯＳ６１は、ＭＦＰ５１全体を管理するためのプログラムである。
【００３８】
通信設定記憶領域８４には、ＩＰアドレス８６が記憶されている。ＩＰアドレス８６は、ネットワーク上でＭＦＰ５１を識別するための情報である。またＩＰアドレス８６は、ＬＡＮ１８を介して第１の通信を実行するために必要な情報である。第１の通信については後述する。ＩＰアドレス８６は、動的に変化する場合がある。例えば、不図示のＤＨＣＰサーバによってＩＰアドレス８６がＭＦＰ５１に割り当てられる場合や、ユーザがボタン入力部３８を介してＩＰアドレス８６を入力する場合などである。
【００３９】
スキャン設定記憶領域８８には、スキャン設定情報８９が記憶されている。スキャン設定情報８９は、スキャナ２０でスキャン処理を行う際の各種の設定を示す情報である。スキャン設定情報８９は、例えば、ユーザがボタン入力部３８を操作することで入力される。スキャン設定情報８９が示す設定の一例としては、解像度、カラービット数、画像サイズ、データフォーマットなどが挙げられる。
【００４０】
ＣＩＦＳ記憶領域６２は、記憶部３５内の記憶領域の一部である。ＣＩＦＳ記憶領域６２には、外部装置から、ＣＩＦＳ（Common Internet File Systemの略）プロトコルに準拠した通信により、ネットワークを介してアクセス可能である。ＣＩＦＳプロトコルは、ファイル共有のためのプロトコルである。ＣＩＦＳプロトコルは、ウインドウズＯＳ、または、ウインドウズＯＳ以外の種類のＯＳやネットワーク外のアプリケーションを利用して、ファイル共有を行うことが可能なプロトコルである。ＣＩＦＳプロトコルを用いてネットワーク通信するためのプログラムは、ＯＳ２１などのウインドウズＯＳには標準搭載されている。また、ＭＦＰ５１のＯＳ６１にも、ＣＩＦＳプロトコルを用いてネットワーク通信するためのプログラムを搭載している。すなわち、ＰＣ９は、ＣＩＦＳ記憶領域６２に記憶されているファイルにＣＩＦＳプロトコルを用いてアクセスし、ファイルを読み出すことが可能である。なお、ＰＣ９がＭＦＰ５１のＣＩＦＳ記憶領域６２に記憶されているファイルにアクセスするとき、ＭＦＰ５１のＯＳ６１がＣＩＦＳサーバとして動作し、ＰＣ９のＯＳ２１がＣＩＦＳクライアントとして動作している。
【００４１】
ＣＩＦＳ記憶領域６２には、プッシュスキャン監視プログラム８１、スキャンプログラム８２、第１属性情報１０１、第２属性情報１０２、が記憶されている。プッシュスキャン監視プログラム８１およびスキャンプログラム８２は、ＰＣ９で実行可能なプログラムである。プッシュスキャン監視プログラム８１は、ＭＦＰ５１でプッシュスキャンが開始されたか否かを、ＰＣ９が監視するためのプログラムである。スキャンプログラム８２は、スキャン処理の実行を、ＰＣ９からＭＦＰ５１に指示するためのプログラムである。プッシュスキャン監視プログラム８１およびスキャンプログラム８２は、は、ＰＣ９を制御するオペレーティングシステムに依存しない言語（例：Ｊａｖａ（登録商標）言語）で記載されたプログラムである。
【００４２】
プッシュスキャン監視プログラム８１は、ＩＰアドレス情報９１およびスキャン設定情報１１１、を含んでいる。ＩＰアドレス情報９１は、通信設定記憶領域８４に記憶されているＩＰアドレス８６をプッシュスキャン監視プログラムにコピーした情報である。スキャン設定情報１１１は、スキャン設定記憶領域８８に記憶されているスキャン設定情報８９をコピーした情報である。なお、「ＩＰアドレス８６をプログラムにコピーした情報」は、各種の形態であってよい。物理的にＩＰアドレス８６がプログラムにＩＰアドレス情報９１としてハードコーディングした形でコピーされていてもよいし、ＩＰアドレス８６が記憶されている記憶領域を示すファイルパスを示す情報がＩＰアドレス情報９１として、プログラムにハードコーディングされていてもよい。ＣＩＦＳプロトコルを用いた通信により、ＩＰアドレス８６が記憶されている記憶領域を示すファイルパスへ、外部装置から読み出し指示があった場合、ＣＰＵ３２は、ＩＰアドレス８６を記憶領域から読み出し、読み出したＩＰアドレス８６を、ＣＩＦＳプロトコルを用いた通信にて、外部装置へ送信する。また、「スキャン設定情報８９をプログラムにコピーした情報」についても同様である。
【００４３】
スキャンプログラム８２は、ＩＰアドレス情報９２およびスキャン設定情報１１２、を含んでいる。ＩＰアドレス情報９２は、通信設定記憶領域８４に記憶されているＩＰアドレス８６をスキャンプログラム８２にコピーした情報である。スキャン設定情報１１２は、スキャン設定記憶領域８８に記憶されているスキャン設定情報８９をスキャンプログラム８２にコピーした情報である。
【００４４】
第１属性情報１０１は、プッシュスキャン監視プログラム８１に関する各種の情報として、プログラム名、タイムスタンプを含んでいる。プログラム名は、プッシュスキャン監視プログラム８１を識別する情報である。換言すると、プログラム名は、ＩＰアドレスを含んでいるファイルを識別する情報である。タイムスタンプは、プッシュスキャン監視プログラム８１の最終更新日時を示す情報である。
【００４５】
第２属性情報１０２は、スキャンプログラム８２に関する各種の情報として、プログラム名、タイムスタンプを含んでいる。第２属性情報１０２の内容は、前述した第１属性情報１０１の内容と同様であるため、ここでは説明を省略する。
【００４６】
ＬＡＮインターフェース部４３は、ＬＡＮ１８を介してＰＣ９と通信を行う部位である。ＬＡＮインターフェース部４３は、第１の通信および第２の通信を、ＰＣ９との間で実行可能である。第１の通信は、ＩＰプロトコルに基づいて行われる通信であって、プッシュスキャン監視プログラム８１に記憶されているＩＰアドレス情報９１、スキャンプログラム８２に記憶されているＩＰアドレス情報９２の何れかを送信先として、ＰＣ９からＭＦＰ５１に各種の情報が送信され、通信設定記憶領域８４に記憶されているＩＰアドレス８６を送信元として、ＭＦＰ５１からＰＣ９に各種の情報が送信される通信である。第２の通信は、ＭＦＰ５１がＣＩＦＳサーバとなり、ＰＣ９がＣＩＦＳクライアントとなって、前述したＣＩＦＳプロトコルに基づいて行われる通信である。
【００４７】
ＵＳＢインターフェース部４２は、ＵＳＢ通信を行う部位である。無線送受信部３６は、無線アンテナ部３７を介して、アクセスポイント９３との間で無線通信９４を行う部位である。ボタン入力部３８は、第１ＭＦＰ５１の各機能を実行するためのキーである。ボタン入力部３８は、タッチパネルとして、パネル３９と一体に構成されていてもよい。パネル３９は、各種の画像を表示する。プリンタ１９は、印刷用紙に印刷を実行する部位である。スキャナ２０は、紙の原稿をスキャンして、画像データを生成する部位である。モデム４０は、ファクシミリ機能によって送信する原稿データを、電話回線網１００に伝送可能な信号に変調して電話回線接続部４１を介して送信したり、電話回線網１００から電話回線接続部４１を介して入力された信号を受信し、原稿データへ復調するものである。
【００４８】
＜ＭＦＰの動作（その１）＞
ＭＦＰ５１の動作を、図２のフローを用いて説明する。ＭＦＰ５１の電源が投入されると、図２のフローが開始する。Ｓ１０においてＭＦＰ５１のＣＰＵ３２は、ＩＰ/設定変更監視タスクを生成する。このＩＰ／設定変更監視タスクは、起動後そのまま常駐するタスクであり、後述するＳ１５以降の処理と並行して動作する。
【００４９】
＜ＩＰ/設定変更監視タスク＞
図３を用いて、ＩＰ/設定変更監視タスクの内容を説明する。Ｓ１１０においてＣＰＵ３２は、通信設定記憶領域８４に記憶されているＩＰアドレス８６と、スキャン設定記憶領域８８に記憶されているスキャン設定情報８９とを読み出す。ＩＰアドレス８６は、ＭＦＰ５１に対して設定された情報であり、ＭＦＰ５１をＩＰネットワーク上で識別するための情報である。
【００５０】
Ｓ１１５においてＣＰＵ３２は、Ｓ１１０で読み出したＩＰアドレス８６と、スキャン設定情報８９とを、ＣＩＦＳ記憶領域６２に記憶されているプッシュスキャン監視プログラム８１に埋め込む処理を行う。具体的には、Ｓ１１０で読み出したＩＰアドレス８６を、プッシュスキャン監視プログラム８１に含まれているＩＰアドレス情報９１へ、上書きコピーする。またＳ１１５においてＣＰＵ３２は、Ｓ１１０で読み出したスキャン設定情報８９を、スキャンプログラム８２に含まれているスキャン設定情報１１２へ、上書きコピーする。
【００５１】
Ｓ１２０においてＣＰＵ３２は、Ｓ１１０で読み出したＩＰアドレス８６と、スキャン設定情報８９とを、ＣＩＦＳ記憶領域６２に記憶されているスキャンプログラム８２に埋め込む処理を行う。具体的な処理内容は、Ｓ１１５と同様である。
【００５２】
Ｓ１２５においてＣＰＵ３２は、ＭＦＰ５１に設定されているＩＰアドレスまたはスキャン設定が変更されたか否かを判断する。具体的には、通信設定記憶領域８４に記憶されているＩＰアドレス８６、または、スキャン設定記憶領域８８に記憶されているスキャン設定情報８９が変更されたか否かを検出する。否定判断される場合（Ｓ１２５：ＮＯ）にはＳ１２５へ戻り、肯定判断される場合（Ｓ１２５：ＹＥＳ）にはＳ１１０へ戻る。
【００５３】
＜ＭＦＰの動作（その２）＞
図２に戻り、ＭＦＰの動作の説明を続ける。Ｓ１５においてＣＰＵ３２は、第１サーバタスクを生成する。第１サーバタスクは、ＰＣ９に対してサーバ機能を提供するためのタスクである。第１サーバタスクは、ＰＣ９から送信される各種指示に基づいて処理を実行する。
【００５４】
＜ＣＩＦＳサーバタスク＞
Ｓ２０においてＣＰＵ３２は、ＣＩＦＳサーバタスクを生成する。ＣＩＦＳサーバタスクは、ＣＩＦＳプロトコルに基づく第２の通信を用いて実行される常駐タスクであり、Ｓ２０以降の処理と並行して動作する。
【００５５】
ＭＦＰ５１におけるＣＩＦＳサーバタスクの実行および、ＰＣ９のＯＳ２１が備えるＣＩＦＳクライアントプログラムおよびファイルマネージャプログラム２２の実行により、ＰＣ９のユーザは、ＭＦＰ５１のＣＩＦＳ記憶領域６２に記憶されているファイルを、ＰＣ９が備えるファイルマネージャプログラム２２を用いて、ＰＣ９に記憶されているファイルと同様に操作することが可能となる。以降に、具体的に説明する。
【００５６】
ＭＦＰ５１の記憶部３５の設定領域には、ＣＩＦＳ記憶領域６２に記憶されているプッシュスキャン監視プログラム８１およびスキャンプログラム８２に対応する、プッシュスキャン監視プログラムファイル名、スキャンプログラムファイル名が記憶されている。なお、各プログラムのプログラムファイル名は、そのファイルがプログラムファイルであることを示す拡張子を含んでいる。なお、プログラムファイルを示す拡張子は、複数のＯＳで共通して用いられる、ＯＳ非依存の拡張子である。もちろん、ウインドウズや、ウインドウズ以外のＯＳが用いる拡張子であってもよい。複数のＯＳで共通して用いられる、プログラムファイルを示す拡張子の例は“ｃｌａｓｓ”、“ｐｌ”、“ｅｘｅ”などである。
【００５７】
ファイルをＰＣ９のユーザが、操作部１４を介した操作によって、ＰＣ９のファイルマネージャプログラム２２を起動し、さらに、ユーザが、ファイルマネージャプログラム２２を介して、ＭＦＰ５１のＣＩＦＳ記憶領域６２をＣＩＦＳクライアントプログラムにマウントさせる操作を行うと、ファイルマネージャプログラム２２は、ＭＦＰ５１のＣＩＦＳ記憶領域６２に記憶されているファイル名の返信を、ＣＩＦＳクライアントプログラムを介した第２の通信によってＭＦＰ５１に要求する。要求を受けた、ＭＦＰ５１のＣＩＦＳサーバタスクは、記憶部３５の設定領域を参照し、プッシュスキャン監視プログラムファイル名およびスキャンプログラムファイル名、および、オートラン指示ファイル名を、ＰＣ９に第２の通信によって送信する。オートラン指示ファイル名について詳しくは後述する。ファイルマネージャプログラム２２は、ＣＩＦＳクライアントプログラムを介して各ファイル名を取得し、各ファイル名を付したファイルアイコンとともに表示部１３に表示する。
【００５８】
なお、ＣＩＦＳ記憶領域６２がＣＩＦＳクライアントプログラムにマウントされた状態でファイルマネージャプログラムが起動された場合も、ファイルマネージャプログラム２２は、ファイル名の返信をＭＦＰ５１に要求する。なお、ＣＩＦＳ記憶領域６２のＣＩＦＳクライアントプログラムへのマウントは、ＯＳ２１のオートマウント機能によって行われてもよい。
【００５９】
ＰＣ９のユーザが、操作部１４を介してファイルアイコンをダブルクリックするなどの操作をすると、ファイルマネージャプログラム２２は、ダブルクリックされたファイルアイコンに対応するファイルの読み出しを要求する指示情報を、ＣＩＦＳクライアントプログラムを介した第２の通信によってＭＦＰ５１に送信する。
【００６０】
要求を受けた、ＭＦＰ５１のＣＩＦＳサーバタスクは、記憶部３５の設定領域を参照し、読み出しを要求されたファイルを読み出す。スキャンプログラムファイルの読み出しを要求する指示情報を受信した場合には、スキャンプログラム８２を読み出す。そして、ＭＦＰ５１のＣＩＦＳサーバタスクは、スキャンプログラム８２を、ＰＣ９に第２の通信によって送信する。ここで、ファイルマネージャプログラム２２は、ダブルクリックされたファイルアイコンに付されたファイル名に、そのファイルがプログラムファイルであることを示す拡張子が含まれていることを認識している。ファイルマネージャプログラム２２は、ＣＩＦＳクライアントプログラムを介してスキャンプログラム８２を取得すると、スキャンプログラム８２を実行させる。
【００６１】
なお、ＣＩＦＳ記憶領域６２に存在しているプログラムを、ＭＦＰ５１のＣＰＵ３２が読み出してＰＣ９へ送信し、ＰＣ９のＣＰＵ１０によって実行することを、「ＣＰＵ１０がＣＩＦＳ記憶領域６２のプログラムを読み出して実行する」などと、便宜的に記載する。
【００６２】
ここで、オートラン指示ファイル名について説明する。前記した記憶部３５のＣＩＦＳ記憶領域６２には、オートラン指示ファイルに対応するオートラン指示ファイル名が記憶されている。オートラン指示ファイル名は、ウインドウズＯＳで用いられる、オートラン指示ファイルを示すファイル名である。もちろん、ウインドウズだけでなく、ウインドウズ以外のＯＳが用いるファイル名であってもよい。オートラン指示ファイルを示すファイル名の例は“ａｕｔｏｒｕｎ．ｉｎｆ”などである。なお、この実施例では、オートラン指示ファイルに、プッシュスキャン監視プログラムファイル名が書き込まれている。
【００６３】
ＯＳ２１は、ＣＩＦＳクライアントプログラムが受信したファイル名に、オートラン指示ファイル名が含まれていた場合、ユーザによるダブルクリックなどの操作を必須とせずに、オートラン指示ファイルの読み出しを要求する指示情報をＭＦＰ５１に送信する。要求を受けた、ＭＦＰ５１のＣＩＦＳサーバタスクは、記憶部３５の設定領域を参照し、オートラン指示ファイルを読み出す。そして、ＭＦＰ５１のＣＩＦＳサーバタスクは、オートラン指示ファイルを、ＰＣ９に第２の通信によって送信する。ＯＳ２１は、オートラン指示ファイルを取得すると、オートラン指示ファイルに書き込まれているプログラムファイルの読み出しを要求する指示情報をＭＦＰ５１に送信し、ＭＦＰ５１において読み出されて返信されたプログラムを実行する。すなわち、この実施例では、ＯＳ２１は、プッシュスキャン監視プログラムファイル名が書き込まれているオートラン指示ファイルを取得するので、ＣＩＦＳ記憶領域６２のプッシュスキャン監視プログラム８１を、ファイルマネージャプログラム２２へのユーザ操作を必須とせずに読み出して実行する。ユーザ操作を必須としない実行のことを、自動実行と言い換えてもよい。
【００６４】
もちろん、ＰＣ９のユーザが、ファイルマネージャプログラム２２を介して、プッシュスキャン監視プログラムファイル名をダブルクリックする操作を行った場合も、ファイルマネージャプログラム２２は、ＭＦＰ５１から、プッシュスキャン監視プログラム８１を取得し、プッシュスキャン監視プログラム８１を実行させることができる。
【００６５】
オートラン指示ファイルによって、プッシュスキャン監視プログラム８１を自動実行させる場合に、ユーザにとって、操作が必要なプログラムを認識しやすくするために、スキャンプログラム８２には「ダブルクリックＯＫ：スキャンプログラム．ｅｘｅ」など、ユーザからの操作を示唆するファイル名を対応付けてもよい。
【００６６】
なお、この実施例では、プッシュスキャン監視プログラム８１に含まれるＩＰアドレス情報９１およびスキャン設定情報１１１も、ＰＣ９へ送信されることになる。また、スキャンプログラム８２に含まれるＩＰアドレス情報９２およびスキャン設定情報１１２も、ＰＣ９へ送信されることになる。
【００６７】
＜ＭＦＰの動作（その３）＞
図２に戻り、ＭＦＰの動作の説明を続ける。Ｓ２５においてＣＰＵ３２は、ＩＰアドレス変更指示が入力されたか否かを判断する。具体的には、不図示のＤＨＣＰサーバから新たなＩＰアドレスの割り当てが行われたか、または、ボタン入力部３８を介して新たなＩＰアドレスの入力が行われたかを判断する。否定判断される場合（Ｓ２５：ＮＯ）にはＳ４０へ進み、肯定判断される場合（Ｓ２５：ＹＥＳ）にはＳ３０へ進む。Ｓ３０においてＣＰＵ３２は、通信設定記憶領域８４に記憶されているＩＰアドレス８６を更新する。
【００６８】
Ｓ４０においてＣＰＵ３２は、プッシュスキャン指示情報が入力されたか否かを判断する。プッシュスキャン指示情報は、スキャナ２０にセットされた原稿を読み込んで画像データを生成し、ＰＣ９へ送信することを指示する情報である。プッシュスキャン指示情報は、例えば、ボタン入力部３８を介してユーザによって入力される。プッシュスキャン指示情報は、画像データ処理の内容を示す情報も含んでいる。画像データ処理は、ＰＣ９で行われる処理である。画像データ処理の内容は、ユーザが選択することが可能である。画像データ処理の内容の一例としては、ファイル保存、アプリケーション処理、ファイル送信、メール添付、などが挙げられる。
【００６９】
ファイル保存は、生成した画像データをＰＣ９の記憶部１５に保存する処理である。アプリケーション処理は、生成した画像データを、プッシュスキャン監視プログラム８１を介して、ＰＣ９が備える所定のアプリケーションに受け渡す処理である。アプリケーションは、受け渡された画像データを加工するアプリケーションであってもよいし、受け渡された画像データを、他の装置に送信するアプリケーションであってもよい。ファイル送信は、生成した画像データを、プッシュスキャン監視プログラム８１を介して、ＰＣ９から、ＰＣ９にネットワーク接続した外部ストレージ装置に送信する処理である。外部ストレージ装置は、インターネット接続したクラウドストレージであってもよい。ファイル送信は、生成した画像データを、プッシュスキャン監視プログラム８１を介して、ＰＣ９が備えるファイル送信アプリケーションに受け渡す処理であってもよい。メール添付は、生成した画像データを、プッシュスキャン監視プログラム８１を介して、メールに添付してＰＣ９から送信する処理である。メール添付は、生成した画像データを、プッシュスキャン監視プログラム８１を介して、ＰＣ９が備えるメールアプリケーションに受け渡す処理であってもよい。
【００７０】
Ｓ４０において否定判断される場合（Ｓ４０：ＮＯ）にはＳ５０へ進み、肯定判断される場合（Ｓ４０：ＹＥＳ）にはＳ４５へ進む。Ｓ４５においてＣＰＵ３２は、プッシュスキャン要求情報をＰＣ９へ送信する。プッシュスキャン要求情報は、ＩＰアドレスに基づく第１の通信で送信される。プッシュスキャン要求情報は、プッシュスキャン指示情報がＭＦＰ５１に入力されたことを示す情報である。プッシュスキャン要求情報は、プッシュスキャン指示情報の内容を含んでいる。このプッシュスキャン要求情報は、ＰＣ９に備えられた、第１の通信を行うための通信プログラムによって受信されると、ＰＣ９にて実行されているプッシュスキャン監視プログラム８１に受け渡される。
【００７１】
Ｓ５０においてＣＰＵ３２は、ＰＣ９からスキャン指示情報を受信したか否かを判断する。スキャン指示情報は、スキャン処理の実行をＭＦＰ５１へ指示するための情報である。すなわちスキャン指示情報は、プルスキャンの実行指示情報である。スキャン指示情報は、ＩＰアドレスに基づく第１の通信で送信される。スキャン指示情報は、後述するＳ３４５においてＰＣ９から送信される情報である。スキャン指示情報の受信は、Ｓ１５で生成された第１サーバタスクによって行われる。Ｓ５０において否定判断される場合（Ｓ５０：ＮＯ）にはＳ２５へ戻り、肯定判断される場合（Ｓ５０：ＹＥＳ）にはＳ５５へ進む。このスキャン指示情報は、ＰＣ９にて実行されているスキャンプログラム８２から、ＰＣ９に備えられた、第１の通信を行うための通信プログラムを介して、ＭＦＰ５１へ送信される。なお、スキャン指示情報は、不図示の一般的なスキャナドライバをＰＣ９が実行した場合に、ＭＦＰ５１へ送信されるスキャン指示情報と同等であってよい。
【００７２】
Ｓ５５においてＣＰＵ３２は、スキャン処理をスキャナ２０に実行させる。これにより、画像データを生成することができる。Ｓ６０においてＣＰＵ３２は、画像データをＰＣ９へ送信する。画像データは、第１の通信によって送信される。そしてＳ２５へ戻る。
【００７３】
＜プッシュスキャン監視プログラム８１の動作＞
図４のフローを用いて、プッシュスキャン監視プログラム８１の動作内容を説明する。Ｓ２１０においてＣＰＵ１０は、プッシュスキャン監視プログラム８１自身の元ファイルが記憶されているパスを取得する。すなわち、ＭＦＰ５１のＣＩＦＳ記憶領域６２のパスを取得する。具体的には、ＭＦＰ５１のＣＩＦＳサーバとしてのサーバ名と、ＣＩＦＳ記憶領域６２のフォルダパスと、の組合せを取得する。このような組み合わせの一例としては、“ HYPERLINK "\\\\ＭＦＰ５１\\ＳｃａｎＦｏｌｄｅｒ\\" ￥￥ＭＦＰ５１￥ＰｒｏｇｒａｍＦｏｌｄｅｒ￥Ｓｃａｎ”が挙げられる。この場合、“￥￥ＭＦＰ５１”がサーバ名であり、 HYPERLINK "\\\\ＭＦＰ５１\\ＳｃａｎＦｏｌｄｅｒ\\" “ＰｒｏｇｒａｍＦｏｌｄｅｒ￥Ｓｃａｎ”がフォルダパスである。Ｓ２１２においてＣＰＵ１０は、ＰＣ９のＲＡＭ１２に展開されているプッシュスキャン監視プログラム８１の最終更新日時を取得し、記憶部１５に一時的に記憶させる。なお、プッシュスキャン監視プログラム８１は、ＯＳ９に自身の元ファイルが記憶されているパスを問い合わせ、ＯＳ９が出力したパスを取得する。あるいは、プッシュスキャン監視プログラム８１がＰＯＳＩＸ（Portable Operating System Interfaceの略）準拠のＣ言語プログラムであるなら、プロセスの第1引数にあるパス情報を、ｒｅａｌｐａｔｈ関数にかけることで、プッシュスキャン監視プログラム８１自身の元ファイルが記憶されているパスを取得してもよい。
【００７４】
Ｓ２１５においてＣＰＵ１０は、プッシュスキャン監視スレッド（図６）を立ち上げる。プッシュスキャン監視スレッドの処理内容は、後述する。
【００７５】
Ｓ２２０においてＣＰＵ１０は、試行処理を実行する。試行処理は、ＰＣ９のＲＡＭ１２に展開されているプッシュスキャン監視プログラム８１の元ファイルが、ＭＦＰ５１のＣＩＦＳ記憶領域６２に記憶されていることを確認できるか否かを試行する処理である。試行処理は、ＣＩＦＳプロトコルに基づく第２の通信を用いて実行される。具体的には、対象となるファイルをＲＥＡＤモードでオープンすることが試行される。試行処理が成功した場合（Ｓ２２０：成功）には、ＣＩＦＳプロトコルに基づく第２の通信を用いたＭＦＰ５１との間の通信が、実行可能であると判断することができる。そしてＳ２６０へ進む。
【００７６】
Ｓ２６０においてＣＰＵ１０は、ＣＩＦＳ記憶領域６２に記憶されているプッシュスキャン監視プログラム８１に含まれている、ＩＰアドレス情報９１またはスキャン設定情報１１１が、実行中のプッシュスキャン監視プログラム８１に含まれているＩＰアドレス情報９１またはスキャン設定情報１１１とは異なる値に変更されているか否かを判断する。具体的には、ＣＩＦＳプロトコルに基づく第２の通信を用いて、ＣＩＦＳ記憶領域６２に記憶されている第１属性情報１０１を取得する。そして、第１属性情報１０１から、ＣＩＦＳ記憶領域６２に記憶されているプッシュスキャン監視プログラム８１の最終更新日時を読み出す。そして、第１属性情報１０１から読み出した最終更新日時と、Ｓ２１２で一時記憶した最終更新日時と、が一致するか否かを判断する。一致しない場合には、ＣＩＦＳ記憶領域６２に記憶されているプッシュスキャン監視プログラム８１に含まれている、ＩＰアドレス情報９１またはスキャン設定情報１１１が、実行中のプッシュスキャン監視プログラム８１に含まれているＩＰアドレス情報９１またはスキャン設定情報１１１とは異なる値に変更されている、と判断することができる。
【００７７】
Ｓ２６０において否定判断される場合（Ｓ２６０：ＮＯ）にはＳ２６２へ進む。Ｓ２６２においてＣＰＵ１０は、所定時間（例：１秒）待機する。そしてＳ２２０へ戻る。一方、Ｓ２６０において肯定判断される場合（Ｓ２６０：ＹＥＳ）には、Ｓ２６５へ進む。Ｓ２６５においてＣＰＵ１０は、Ｓ２１５で起動したプッシュスキャン監視スレッドへ、終了要求情報を出力する。
【００７８】
Ｓ２７０においてＣＰＵ１０は、実行中のプッシュスキャン監視プログラム８１自身のプロセスの、ＣＩＦＳ記憶領域６２に記憶されているプッシュスキャン監視プログラム８１のプロセスへの置き換えを行う。具体的には、プッシュスキャン監視プログラム８１を実行中のＣＰＵ１０が、ＣＩＦＳ記憶領域６２に記憶されているプッシュスキャン監視プログラム８１を読み出して実行し、実行していたプッシュスキャン監視プログラム８１を終了する。なお、置き換え後のプロセスのプログラムは、置き換え前のプロセスとプログラムのパスが同一である。ただし、置き換え後のプロセスのプログラムは、Ｓ１１５で更新されたプログラムである。したがって、置き換え後のプロセスのアルゴリズムは、置き換え前のプロセスのアルゴリズムと同一である。置き換え後のプロセスで用いられるＩＰアドレス情報９１は置き換え前のプロセスで用いられていたＩＰアドレス情報９１とは異なる、または、置き換え後のプロセスで用いられるスキャン設定情報１１１は置き換え前のプロセスで用いられていたスキャン設定情報１１１とは異なる。ＩＰアドレス情報９１と、スキャン設定情報１１１の双方が異なっていてもよい。
【００７９】
一方、Ｓ２２０において、試行処理が失敗した場合（Ｓ２２０：失敗）には、ＣＩＦＳプロトコルに基づく第２の通信を用いたＭＦＰ５１との間の通信が実行不可能であると判断することができる。このように判断される場合の例としては、ＬＡＮ１８のケーブルが抜かれている場合が挙げられる。そして、Ｓ２２５（図５）へ進む。
【００８０】
Ｓ２２５においてＣＰＵ１０は、プッシュスキャン監視スレッドへサスペンド要求情報を出力する。サスペンド要求情報は、プッシュスキャン監視スレッドの処理を中断させるための情報である。Ｓ２３０においてＣＰＵ１０は、ＲＡＭ１２に展開されているプッシュスキャン監視プログラム８１の読み出し元のプログラムがＭＦＰ５１のＣＩＦＳ記憶領域６２に記憶されていることが、再び確認できるようになったか否かを判断する。否定判断される場合（Ｓ２３０：ＮＯ）にはＳ２３０へ戻り、肯定判断される場合（Ｓ２３０：ＹＥＳ）にはＳ２３５へ進む。
【００８１】
Ｓ２３５においてＣＰＵ１０は、ＣＩＦＳ記憶領域６２に記憶されているプッシュスキャン監視プログラム８１に含まれている、ＩＰアドレス情報９１またはスキャン設定情報１１１が、変更されているか否かを判断する。肯定判断される場合（Ｓ２３５：ＹＥＳ）にはＳ２６５（図４）へ進み、否定判断される場合（Ｓ２３５：ＮＯ）にはＳ２４０へ進む。
【００８２】
Ｓ２４０においてＣＰＵ１０は、プッシュスキャン監視スレッドへレジューム要求情報を出力する。レジューム要求情報は、プッシュスキャン監視スレッドの処理を再開させるための情報である。これにより、ＣＩＦＳ記憶領域６２を、ファイルマネージャの画面上に再マウントすることができる。また、Ｓ２２５でプッシュスキャン監視スレッドを中断させる前に使用していたドライブ（例：Ｄドライブ）と同一のドライブ名で、ＣＩＦＳ記憶領域６２を、再マウントすることができる。ＣＩＦＳ記憶領域６２の再マウントは、mDNS（Multicast Domain Name Systemの略）およびServiceDiscoveryという仕組みを用いて、自動的に行われるとしてもよい。また再マウントは、ボンジュール（登録商標）と呼ばれるプログラムを用いて実現してもよい。
【００８３】
Ｓ２４５においてＣＰＵ１０は、所定時間（例：１秒）待機する。そしてＳ２２０へ戻る。
【００８４】
＜プッシュスキャン監視スレッドの動作＞
図６のフローを用いて、プッシュスキャン監視スレッドの動作内容を説明する。プッシュスキャン監視スレッドは、Ｓ２１５で起動されるプログラムである。プッシュスキャン監視スレッドは、プッシュスキャン指示情報（図２、Ｓ４５を参照）のＭＦＰ５１からの送信の有無を監視するためのプログラムである。
【００８５】
Ｓ４１５においてＣＰＵ１０は、Ｓ２６５にて発行された終了要求情報を受信したか否かを判断する。肯定判断される場合（Ｓ４１５：ＹＥＳ）にはプッシュスキャン監視スレッドを終了し、否定判断される場合（Ｓ４１５：ＮＯ）にはＳ４２０へ進む。
【００８６】
Ｓ４２０においてＣＰＵ１０は、サスペンド要求情報を受信したか否かを判断する。サスペンド要求情報は、Ｓ２２５においてプッシュスキャン監視プログラム８１から出力される情報である。否定判断される場合（Ｓ４２０：ＮＯ）にはＳ４３０へ進み、肯定判断される場合（Ｓ４２０：ＹＥＳ）にはＳ４２２へ進む。Ｓ４２２においてＣＰＵ１０は、プッシュスキャン監視スレッドの処理をサスペンドする。
【００８７】
Ｓ４２５においてＣＰＵ１０は、レジューム要求情報を受信したか否かを判断する。レジューム要求情報は、Ｓ２４０においてプッシュスキャン監視プログラム８１から出力される情報である。肯定判断される場合（Ｓ４２５：ＹＥＳ）にはＳ４３０へ進み、否定判断される場合（Ｓ４２５：ＮＯ）にはＳ４２７へ進む。Ｓ４２７においてＣＰＵ１０は、Ｓ２６５にて発行された終了要求情報を受信したか否かを判断する。Ｓ２６５にて発行された終了要求情報を受信していると判断した場合（Ｓ４２７：ＹＥＳ）には、プッシュスキャン監視スレッドを終了し、受信していないと判断した場合（Ｓ４２７：ＮＯ）には、Ｓ４２５へ戻る。
【００８８】
Ｓ４３０においてＣＰＵ１０は、ＭＦＰ５１に、プッシュスキャン要求の有無を問合せる問い合わせ処理を行う。すなわち、ＭＦＰ５１でプッシュスキャン指示情報の入力が受け付けられたか否かを問合せる問合せ情報を、第１の通信を用いて送信する。問合せ情報を受信したＭＦＰ５１は、プッシュスキャン指示情報を入力されていれば、プッシュスキャン要求情報を、第１の通信を用いてＰＣ９に送信する。プッシュスキャン監視プログラム８１による、ＰＣ９からＭＦＰ５１へ情報を送信する第１の通信においては、プッシュスキャン監視プログラム８１に含まれるＩＰアドレス情報９１が示すＩＰアドレスが、送信先のＩＰアドレスとして用いられる。ＭＦＰ５１からＭＦＰ９へ情報を返信する第１の通信においては、当該ＩＰアドレスが、送信元のＩＰアドレスとして用いられる。
【００８９】
Ｓ４３５においてＣＰＵ１０は、プッシュスキャン要求情報を受信したか否かを判断する。プッシュスキャン要求情報は、Ｓ４５においてＭＦＰ５１から、第１の通信を用いて出力される情報である。Ｓ４３５において否定判断される場合（Ｓ４３５：ＮＯ）にはＳ４４０へ進む。Ｓ４４０においてＣＰＵ１０は、所定時間（例：０．５秒）待機する。そしてＳ４１５へ戻る。
【００９０】
一方、Ｓ４３５において肯定判断される場合（Ｓ４３５：ＹＥＳ）には、Ｓ４５０へ進む。Ｓ４５０においてＣＰＵ１０は、ＣＩＦＳ記憶領域６２に記憶されているスキャンプログラム８２を読み出して実行する。これにより、後述するＳ３１０において、スキャンプログラム８２がバックエンドモードで実行される。そして、Ｓ４５５においてＣＰＵ１０は、プッシュスキャン要求情報に含まれるプッシュスキャン指示情報に従った処理を実行する。具体的には、ファイル保存、アプリケーション処理、ファイル送信、メール添付、などのうち、プッシュスキャン指示情報が示す処理を実行する。Ｓ４５５にて、プッシュスキャン指示情報に従った処理を実行すると、Ｓ４１５へ戻る。
【００９１】
＜スキャンプログラム８２の動作＞
図７および図８のフローを用いて、スキャンプログラム８２の動作内容を説明する。スキャンプログラム８２は、その起動方法によって、２つのモードで動作可能である。スキャンプログラム８２は、ファイルマネージャプログラム２２を介したユーザ操作によって起動された場合には、スタンドアロンモードで動作する。スキャンプログラム８２は、Ｓ４５０にてプッシュスキャン監視プログラム８１によって起動された場合には、バックエンドモードで動作する。Ｓ３１０においてＣＰＵ１０は、起動トリガの内容を判断する。具体的には、プッシュスキャン監視プログラム８１による起動であったか否かを判断する。起動トリガが、プッシュスキャン監視プログラム８１による起動でない場合（Ｓ３１０：ＮＯ）、すなわち、起動トリガがユーザ操作である場合にはＳ３１５へ移る。一方、プッシュスキャン監視プログラム８１による起動である場合（Ｓ３１０：ＹＥＳ）には、Ｓ３５５へ進む。
【００９２】
Ｓ３５５においてＣＰＵ１０は、スキャンプログラム８２に埋め込まれたＩＰアドレス情報９２およびスキャン設定情報１１２を読み込む。これらの情報は、Ｓ１２０でスキャンプログラム８２に埋め込まれたものである。
【００９３】
Ｓ３６５においてＣＰＵ１０は、スキャン指示情報を生成する。スキャン指示情報には、Ｓ３５５で読み込まれたスキャン設定情報１１２が含まれる。そして、第１の通信によって、スキャン指示情報をＭＦＰ５１へ送信する。送信したスキャン指示情報は、前述したＳ５０において、ＭＦＰ５１によって受信される。
【００９４】
Ｓ３６７においてＣＰＵ１０は、第１の通信を用いて、画像データをＭＦＰ５１から受信する。画像データは、前述したＳ６０において、ＭＦＰ５１によって送信される。Ｓ３７０においてＣＰＵ１０は、受信した画像データを記憶部１５に一時的に保存する。スキャンプログラム８２による、ＰＣ９からＭＦＰ５１へ情報を送信する第１の通信においては、スキャンプログラム８２に含まれるＩＰアドレス情報９２が示すＩＰアドレスが、送信先のＩＰアドレスとして用いられる。ＭＦＰ５１からＭＦＰ９へ情報を返信する第１の通信においては、当該ＩＰアドレスが、送信元のＩＰアドレスとして用いられる。
【００９５】
Ｓ３７５においてＣＰＵ１０は、スキャンプログラム８２を起動したプログラムに、受信した画像データを記憶部１５に保存したことを示す情報を出力し、フローを終了する。すなわち、プッシュスキャン監視プログラム８１に、受信した画像データを記憶部１５に保存したことを通知して、フローを終了する。通知を受けたプッシュスキャン監視プログラム８１は、記憶部１５に保存された画像データを読み出し、Ｓ４５５の処理を実行する。
【００９６】
一方、Ｓ３１０において否定判断された場合（Ｓ３１０：ＮＯ）には、Ｓ３１５へ進む。Ｓ３１５においてＣＰＵ１０は、ユーザに操作入力を促すダイアログを、表示部１３に表示する。この際、ＣＰＵ１０はスキャンプログラム８２に埋め込まれたスキャン設定情報１１２が示す設定値を、スキャン設定値として読み出し、一時的に記憶する。
【００９７】
Ｓ３２０においてＣＰＵ１０は、ユーザによる指示の入力を受け付ける。そして、入力された指示内容を判断する。終了が指示された場合（Ｓ３２０：終了）には、スキャンプログラム８２を終了する。設定変更が指示された場合（Ｓ３２０：設定変更）には、Ｓ３１５において一時的に記憶したスキャン設定値を変更する（Ｓ３２５）。そしてＳ３１５へ戻る。ファイル書込みが指示された場合（Ｓ３２０：ファイル書込み）には、スキャン処理によって生成された画像データを、記憶部１５に保存する。そしてＳ３１５へ戻る。キャンセルが指示された場合（Ｓ３２０：キャンセル）には、スキャン処理の受付をキャンセルする処理を実行し、Ｓ３１５へ戻る。スキャンが指示された場合（Ｓ３２０：スキャン）には、Ｓ３４５へ進む。
【００９８】
Ｓ３４５においてＣＰＵ１０は、スキャン指示情報を生成する。スキャン指示情報には、スキャン設定値が含まれる。そして、第１の通信によって、スキャン指示情報をＭＦＰ５１へ送信する。送信したスキャン指示情報は、前述したＳ５０において、ＭＦＰ５１によって受信される。Ｓ３４７においてＣＰＵ１０は、第１の通信を用いて、画像データをＭＦＰ５１から受信する。そして、Ｓ３１５へ戻る。
【００９９】
＜効果＞
本明細書に記載されているＭＦＰ５１によれば、ＭＦＰ５１に割り当てられているＩＰアドレスが含まれているファイルを示す特定情報、および、プッシュスキャン監視プログラム８１およびスキャンプログラム８２を、ＣＩＦＳプロトコルに基づく第２の通信によって、ＰＣ９に取得させることができる。ここで、「ＭＦＰ５１に割り当てられているＩＰアドレスが含まれているファイル」の一例としては、プッシュスキャン監視プログラム８１およびスキャンプログラム８２が挙げられる。特定情報の一例としては、第１属性情報１０１および第２属性情報１０２が挙げられる。ＣＩＦＳプロトコルは、ＰＣ９のＯＳに非依存のプロトコルである。従って、プッシュスキャン監視プログラム８１、スキャンプログラム８２、および特定情報を、ＰＣ９に確実に取得させることが可能となる。ＰＣ９は、特定情報を用いてＭＦＰ５１のＩＰアドレスを取得する。そしてＰＣ９は、ＩＰアドレスに基づく第１の通信を用いて、スキャン指示情報（Ｓ３４５、Ｓ３６５）や画像データ（Ｓ３４７、Ｓ３６７）をＭＦＰ５１と通信することができる。以上より、次の効果が得られる。第１に、ＭＦＰ５１に記憶されているプッシュスキャン監視プログラム８１およびスキャンプログラム８２を、ＰＣ９に確実に実行させることができる。よって、スキャン処理の失敗を回避することができる。第２に、ＰＣ９とＭＦＰ５１との間でＣＩＦＳプロトコルに基づく第２の通信を実行するだけで、ＰＣ９にスキャン処理を実行させることが可能となる。プッシュスキャン監視プログラム８１およびスキャンプログラム８２を、事前にＰＣ９にインストールしておく必要がないため、ユーザの利便性を高めることができる。
【０１００】
本明細書に記載されているＭＦＰ５１によれば、ＭＦＰ５１の通信設定記憶領域８４に記憶されているＩＰアドレス８６や、スキャン設定記憶領域８８に記憶されているスキャン設定情報８９が変更（Ｓ３０）されたことを検出することができる（Ｓ１２５）。そして、変更されたＩＰアドレス８６やスキャン設定情報８９を、プッシュスキャン監視プログラム８１やスキャンプログラム８２に上書きコピーすることができる（Ｓ１１５、Ｓ１２０）これにより、最新のＩＰアドレスやスキャン設定情報を、常にＰＣ９に取得させることができる。よって、ＭＦＰ５１に割り当てられるＩＰアドレスが動的に変化する場合においても、ＰＣ９にスキャン処理を適切に実行させることが可能となる。また、ＭＦＰ５１のスキャン設定が変更された場合においても、変更後の設定でＰＣ９にスキャン処理を実行させることが可能となる。
【０１０１】
本明細書に記載されているＭＦＰ５１によれば、ＭＦＰ５１のＣＩＦＳ記憶領域６２に記憶されているプッシュスキャン監視プログラム８１およびスキャンプログラム８２の最終更新日時を、第２の通信を用いて、ＰＣ９に報知することができる（Ｓ２６０）。そして、ＰＣ９で実行されているプッシュスキャン監視プログラム８１およびスキャンプログラム８２の最終更新日時と、ＣＩＦＳ記憶領域６２に記憶されているプッシュスキャン監視プログラム８１およびスキャンプログラム８２の最終更新日時とを、ＰＣ９に比較させることができる（Ｓ２６０）。そして、両者が一致しない場合には、ＩＰアドレスやスキャン設定情報が変更されたと判断することができる（Ｓ２６０）。そして、変更後のＩＰアドレスやスキャン設定情報を、ＰＣ９に受信させることができる（Ｓ２７０）。これにより、最新のＩＰアドレスやスキャン設定情報を、常にＰＣ９に取得させることができる。
【０１０２】
本明細書に記載されているＭＦＰ５１によれば、ＰＣ９とＭＦＰ５１との間のＣＩＦＳプロトコルに基づく第２の通信の実行可否を、ＰＣ９に検出させることができる（Ｓ２２０）。第２の通信が実行できないことが検出された場合（Ｓ２２０：ＮＯ）には、第２の通信が再び可能となるまで、プッシュスキャン監視スレッドの処理をＰＣ９に中断させることができる（Ｓ２２５）。そして、第２の通信が実行可能な状態に復帰した場合（Ｓ２３０：ＹＥＳ）に、ＩＰアドレスやスキャン設定情報が変更されていることがＰＣ９で検出された場合（Ｓ２３５：ＹＥＳ）には、変更後のＩＰアドレスやスキャン設定情報をＰＣ９に受信させることができる（Ｓ２７０）。これにより、最新のＩＰアドレスやスキャン設定情報を用いて、第２の通信を再接続することが可能となる。また、第２の通信が実行可能な状態に復帰した場合（Ｓ２３０：ＹＥＳ）に、ＩＰアドレスやスキャン設定情報が変更されていないことがＰＣ９で検出された場合（Ｓ２３５：ＮＯ）には、中断前に使用していたＩＰアドレスやスキャン設定情報を用いて、ＰＣ９にプッシュスキャン監視スレッドを再開させることができる（Ｓ２４０）。これにより、ＩＰアドレスやスキャン設定情報の更新処理を省略できるため、プッシュスキャン監視スレッドを素早く再開することが可能となる。
【０１０３】
本明細書に記載されているＭＦＰ５１によれば、試行処理をＰＣ９に実行させることができる（Ｓ２２０）。試行処理は、ＰＣ９のＲＡＭ１２に展開されているプッシュスキャン監視プログラム８１の読み出し元のプログラムが、ＭＦＰ５１のＣＩＦＳ記憶領域６２に記憶されていることを確認できるか否かを試行する処理である。試行処理が失敗した場合（Ｓ２２０：失敗）には、ＣＩＦＳプロトコルに基づく第２の通信が実行不可能であると判断することができる。これにより、第２の通信の実行可否を、ＰＣ９に確実に判断させることが可能となる。
【０１０４】
本明細書に記載されているＭＦＰ５１によれば、プッシュスキャン監視プログラム８１およびスキャンプログラム８２のオートラン指示ファイル名を、ＰＣ９へ送信することができる。これにより、プッシュスキャン監視プログラム８１およびスキャンプログラム８２を、ＭＦＰ５１に適切に実行させることが可能となる。
【０１０５】
本明細書に記載されているＭＦＰ５１によれば、プッシュスキャン監視プログラム８１およびスキャンプログラム８２は、ＰＣ９を制御するオペレーティングシステムに依存しない言語（例：Ｊａｖａ（登録商標）言語）で記載されている。これにより、ＰＣ９に搭載されているＯＳに依存せずに、プッシュスキャン監視プログラム８１およびスキャンプログラム８２をＰＣ９に実行させることが可能となる。
【０１０６】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。以下に変形例を説明する。
【０１０７】
＜変形例＞
ＩＰアドレス情報９１および９２、スキャン設定情報１１１および１１２は、プッシュスキャン監視プログラム８１およびスキャンプログラム８２に組み込まれている形態に限られず、これらのプログラムとは別体の特定ファイルとして存在していてもよい。特定ファイルには、通信設定記憶領域８４に記憶されているＩＰアドレス８６、および、スキャン設定記憶領域８８に記憶されているスキャン設定情報８９がコピーされるとしてもよい。特定ファイルは、ＣＩＦＳ記憶領域６２に記憶されていてもよい。特定ファイルとスキャンプログラム８２とは、関連付けがされていてもよい。そして、この関連付けに基づいて、スキャンプログラム８２から特定ファイルを読み込むことが可能とされていてもよい。関連付けの一例としては、パスでリンクを作成する方法が挙げられる。またＳ１２０では、ＩＰアドレス８６およびスキャン設定情報８９を、特定ファイルに埋め込む処理を行ってもよい。これにより、プログラムの再起動（Ｓ２７０）を実行することなく、変更後のＩＰアドレスおよびスキャン設定情報を読み込むことが可能になる。
【０１０８】
Ｓ２６０の判断は、実行中のプッシュスキャン監視プログラム８１に含まれるＩＰアドレス情報９１またはスキャン設定情報１１１と、ＣＩＦＳ記憶領域６２に記憶されているスキャンプログラム８２に含まれるＩＰアドレス情報９２またはスキャン設定情報１１２とを比較することで行ってもよい。これは、Ｓ１１５においてプッシュスキャン監視プログラム８１に含まれるＩＰアドレス情報９１とスキャン設定情報１１１とが更新されるとともに、Ｓ１２０においてスキャンプログラム８２に含まれるＩＰアドレス情報９２とスキャン設定情報１１２も更新されるためである。
【０１０９】
請求項において、第２情報は、「第１情報が含まれるファイルを識別するファイル識別情報である」と定義した。この定義は、第２情報そのものが第１情報である概念を含むものである。すなわち、本実施例では、第２情報の一例として、「ＩＰアドレスが含まれるプッシュスキャン監視プログラム８１を識別する第１属性情報１０１」や、「ＩＰアドレスが含まれるスキャンプログラム８２を識別する第２属性情報１０２」を説明した。しかし、第１属性情報１０１や第２属性情報１０２がＩＰアドレスを含んでいてもよい。
【０１１０】
請求項に記載されている「記憶部」は、様々な形態であってよい。すなわち、請求項の記憶部の一例は、図１の記憶部３５に限られない。ＲＯＭ３３、ＲＡＭ３４、ＣＰＵ３２内の不図示のバッファ、なども、請求項の記憶部の一例である。
【０１１１】
ＭＦＰ５１のＣＩＦＳ記憶領域６２は、ＵＳＢバスパワーで動作させてもよい。これにより、ＰＣ９の立ち上げ時にＭＦＰ５１が電源オフである場合においても、プッシュスキャン監視プログラムファイル名、スキャンプログラムファイル名、オートラン指示ファイル名やプログラムファイルを受信することが可能となる。
【０１１２】
本実施例では、請求項の第１情報の一例として、ＩＰアドレスを用いたが、この形態に限られない。第１情報は、ＵＳＢのシリアル番号など、各種の情報であってよい。
【０１１３】
ＬＡＮ１８を介して、第１の通信および第２の通信を行う形態を説明したが、この形態に限らない。無線通信９４および９５を介して、第１の通信および第２の通信を行ってもよい。
【０１１４】
また、上記の実施形態のＰＣ９及びＭＦＰ５１において、記憶部１５、３５に記憶された各種プログラムがＣＰＵ１０、３２によって実行されることによって、本発明の各処理が実現される例を説明した。しかしながら、制御部の構成はこれに限定されず、その一部又は全部を集積回路（ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略）とも言う。）等のハードウェアで実現してもよい。
【０１１５】
さらに、本発明は、ＰＣ９及びＭＦＰ５１として実現できるだけでなく、ＰＣ９及びＭＦＰ５１に処理を実行させるプログラムとして実現してもよい。そして、当該プログラムは、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな記録媒体に記録されて提供されてもよい。ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな記録媒体は、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等の他、通信ネットワークを通じてＰＣ９及びＭＦＰ５１に接続可能なサーバに搭載された記憶部を含んでもよい。そして、サーバの記憶部に記憶されたプログラムは、当該プログラムを示す情報或いは信号として、インターネット等の通信ネットワークを通じて配信されてもよい。
【０１１６】
＜本明細書における注意事項＞
なお、本明細書中の「データ」と「情報」とは、コンピュータによって取り扱い可能なビット或いはビット列である点において共通する。「データ」とは、各ビットが示す意味内容をコンピュータが考慮することなく取り扱えるものを指す。これに対して、「情報」とは、各ビットが示す意味内容によってコンピュータの動作が分岐するものを指す。さらに、「指示」は、送信先の装置に対して次の動作を促すための制御信号であって、情報を含んでいることもあるし、それ自体が情報としての性質を有していることもある。
【０１１７】
また、「データ」及び「情報」は、形式（例えば、テキスト形式、バイナリ形式、フラグ形式等）がコンピュータ毎に変更されたとしても、同一の意味内容と認識される限り、同一のデータ及び情報として取り扱われる。例えば、「２つ」であることを示す情報が、あるコンピュータではＡＳＣＩＩコードで”０ｘ３２“というテキスト形式の情報として保持され、別のコンピュータでは二進数表記で”１０“というバイナリ形式の情報として保持されてもよい。
【０１１８】
但し、上記の「データ」及び「情報」の区別は厳密なものではなく、例外的な取り扱いも許容される。例えば、データが一時的に情報として扱われてもよいし、情報が一時的にデータとして扱われてもよい。また、ある装置ではデータとして扱われるものが、他の装置では情報として扱われてもよい。さらには、データの中から情報が取り出されてもよいし、情報の中からデータが取り出されてもよい。
【０１１９】
なお、記憶部１５および３５は、コンピュータが読み取り可能なストレージ媒体であってもよい。コンピュータが読み取り可能なストレージ媒体とは、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体である。ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体には、上記の例の他に、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等の記録媒体も含まれる。また、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体は、ｔａｎｇｉｂｌｅな媒体でもある。一方、インターネット上のサーバなどからダウンロードされるプログラムを搬送する電気信号は、コンピュータが読み取り可能な媒体の一種であるコンピュータが読み取り可能な信号媒体であるが、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙなコンピュータが読み取り可能なストレージ媒体には含まれない。
【０１２０】
ＭＦＰ５１の記憶部３５に記憶されているプログラムは、ＣＰＵ３２によって実行される。しかしながら、本明細書では、ＣＰＵ３２を省略して各プログラムの動作を説明することがある。すなわち、以下の説明において、「プログラムＡが処理Ａを実行する」という趣旨の記述は、「ＣＰＵ３２がプログラムＡに記述された処理Ａを実行する」ことを指してもよい。ＰＣ９についても同様である。
【０１２１】
また、記憶部３５および１５に記憶されているプログラムは、事象を判断し、判断結果に応じて動作する。しかしながら、本明細書では、判断することを省略して各プログラムの動作を説明することがある。すなわち、以下の説明において、「制御プログラムが条件Ａに応じて、処理Ａを実行する」という趣旨の記述は、「制御プログラムは条件Ａであるか否かを判断する。制御プログラムは、肯定判断であることに応じて、処理Ａを実行する」ことを指してもよい。
【０１２２】
また、記憶部３５および１５に記憶されているプログラムは、データ等を特定し、抽出し、或いは選択する。プログラムがデータ等を特定するとは、例えば、複数のデータ等のうちから条件に合致するデータを特定し、当該データ等そのもの或いは当該データ等を識別する情報を、予め定められた記憶領域に記憶させる処理を指す。データ等を識別する情報とは、例えば、当該データ等を識別する識別情報、当該データ等が記憶された配列のインデックス、当該データ等が記憶された記憶領域のポインタ等である。プログラムがデータ等を抽出し、或いは選択する処理も同様である。
【０１２３】
また、記憶部３５および１５に記憶されているプログラムは、データ等を取得する。プログラムがデータ等を取得するとは、例えば、データが記憶された記憶領域からデータを読み出す処理を指してもよい。プログラムがデータ等を取得するとは、例えば、外部装置から送信されたデータを受信する処理を指してもよい。プログラムがデータ等を取得するとは、例えば、外部データにデータの返信を要求し、外部装置から返信されたデータを受信する処理を指してもよい。プログラムがデータ等を取得するとは、例えば、ＯＳなどの他のプログラムが出力したデータを受信する処理を指してもよい。プログラムがデータ等を取得するとは、例えば、他のプログラムにデータの出力を要求し、他のプログラムから出力されたデータを受信する処理を指してもよい。
【０１２４】
＜符号の対応の一例＞
ＩＰプロトコルに基づいて行われる通信は、第１の通信の一例である。「第２の通信」には、ＣＩＦＳプロトコルに基づいて行われる通信は、第２の通信の一例である。ＰＣ９は、情報処理装置の一例である。ＬＡＮインターフェース部４３は、通信インターフェースの一例である。スキャナ２０は、画像生成部の一例である。ＭＦＰ５１は、スキャナの一例である。ＩＰアドレスおよびスキャン設定情報は、第１情報の一例である。プッシュスキャン監視プログラム８１およびスキャンプログラム８２は、スキャンプログラムの一例である。第１属性情報１０１および第２属性情報１０２は、第２情報の一例である。プッシュスキャン監視プログラム８１のプログラムファイル、および、スキャンプログラム８２のプログラムファイルは、「第１情報が含まれるファイル」および「第２情報が示すファイル」の一例である。ＣＩＦＳプロトコルは、ファイル共有プロトコルの一例である。ＣＰＵ３２は、制御部の一例である。Ｓ２０で生成されるＣＩＦＳサーバタスクに関連する、「ダブルクリックされたファイルアイコンに対応するファイルの読み出しを要求する指示情報」は、「前記記憶部に記憶されている前記スキャンプログラムおよび前記第２情報が示すファイルの読み出し要求情報」の一例である。Ｓ２０で生成されるＣＩＦＳサーバタスクに関連する、「要求を受けた、ＭＦＰ５１のＣＩＦＳサーバタスク」は、「ファイルの読み出し要求情報を前記情報処理装置から受信したか否かを判断する“第１判断手段”」の一例である。「要求を受けた、ＭＦＰ５１のＣＩＦＳサーバタスクは、記憶部３５の設定領域を参照し、読み出しを要求されたファイルを読み出す。スキャンプログラムファイルの読み出しを要求する指示情報を受信した場合には、スキャンプログラム８２を読み出す。そして、ＭＦＰ５１のＣＩＦＳサーバタスクは、スキャンプログラム８２を、ＰＣ９に第２の通信によって送信する。」の記載や、「要求を受けた、ＭＦＰ５１のＣＩＦＳサーバタスクは、記憶部３５の設定領域を参照し、プッシュスキャン監視プログラムファイル名およびスキャンプログラムファイル名、および、オートラン指示ファイル名を、ＰＣ９に第２の通信によって送信する。」の記載は、「前記第１判断手段で前記読み出し要求情報を受信したと判断されたことに応じて、前記スキャンプログラムおよび前記第２情報を、前記通信インターフェースを介して、前記第２の通信によって前記情報処理装置へ送信する“第１送信手段”」の一例である。Ｓ５０を実行するＣＰＵは、第２判断手段の一例である。Ｓ５５を実行するＣＰＵは、スキャン処理手段の一例である。Ｓ６０を実行するＣＰＵは、送信手段の一例である。通信設定記憶領域８４は、第１領域の一例である。ＣＩＦＳ記憶領域６２は、第２領域の一例である。Ｓ２５を実行するＣＰＵは、受付手段の一例である。Ｓ３０を実行するＣＰＵは、変更手段の一例である。Ｓ１２５を実行するＣＰＵは、第３判断手段の一例である。Ｓ１１５およびＳ１２０を実行するＣＰＵは、記憶制御手段の一例である。Ｓ２６０を実行するＣＰＵは、第１検出処理の一例である。Ｓ２７０を実行するＣＰＵは、受信処理の一例である。Ｓ２６０を実行するＣＰＵは、日時情報受信処理の一例である。Ｓ２２０を実行するＣＰＵは、第２検出処理の一例である。Ｓ２３０を実行するＣＰＵは、待機処理の一例である。Ｓ４３５を実行するＣＰＵは、第３検出処理の一例である。Ｓ３６５を実行するＣＰＵは、スキャン指示情報送信処理の一例である。Ｓ４２２を実行するＣＰＵは、中断処理の一例である。プッシュスキャン要求情報は、開始情報の一例である。オートラン指示ファイル名は、実行指示情報の一例である。スキャン設定情報１１１および１１２は、設定情報の一例である。請求項１５の「第１送信手段」および「第１判断手段」の内容は、請求項１および１４の「第１判断手段」の内容に対応する。請求項１５の「第２送信手段」の内容は、請求項１および１４の「第１送信手段」の内容に対応する。「Ｓ３６５においてＣＰＵ１０は、スキャン指示情報を生成する。スキャン指示情報には、Ｓ３５５で読み込まれたスキャン設定情報１１２が含まれる。そして、第１の通信によって、スキャン指示情報をＭＦＰ５１へ送信する。送信したスキャン指示情報は、前述したＳ５０において、ＭＦＰ５１によって受信される。」の記載や、「Ｓ３４５においてＣＰＵ１０は、スキャン指示情報を生成する。スキャン指示情報には、スキャン設定値が含まれる。そして、第１の通信によって、スキャン指示情報をＭＦＰ５１へ送信する。送信したスキャン指示情報は、前述したＳ５０において、ＭＦＰ５１によって受信される。」の記載は、請求項１５の「前記スキャンプログラムおよび前記第２情報を受信した後に、スキャン指示情報を、前記第２通信インターフェースを介して、前記第１の通信によって前記スキャナへ送信する“第３送信手段”」の一例である。ＬＡＮインターフェース部４３は、第１通信インターフェースの一例である。ネットワークインターフェース部１７は、第２通信インターフェースの一例である。
【符号の説明】
【０１２５】
９：ＰＣ、２０：スキャナ、３２：ＣＰＵ、４３：ＬＡＮインターフェース部、５１：ＭＦＰ、６２：ＣＩＦＳ領域、８１：プッシュスキャン監視プログラム、８２：スキャンプログラム、８４：通信設定記憶領域
【図１】
0006572683.tif 000002
【図２】
0006572683.tif 000003
【図３】
0006572683.tif 000004
【図４】
0006572683.tif 000005
【図５】
0006572683.tif 000006
【図６】
0006572683.tif 000007
【図７】
0006572683.tif 000008
【図８】
0006572683.tif 000009