(57)【要約】【課題】  デバイスドライバやソフトウエアを情報処理装置にインストールすることなく周辺装置の利用を可能とし、周辺装置が情報処理装置に接続されてから使用可能になるまでの待機時間を短縮し、周辺装置の記憶領域の容量増大を防ぐこと。【解決手段】情報処理装置に接続される周辺装置は、情報処理装置が周辺装置を使用するために、情報処理装置で実行されるソフトウエアを記憶した記憶部と、情報処理装置の外部記憶装置として記憶部を情報処理装置に認識させる為に、情報処理装置と通信する通信部と、情報処理装置からの要求に応じて、記憶部に記憶されているソフトウエアを構成するモジュールを転送する転送部と、を備える。転送部は、情報処理装置によるモジュールの実行に応じて情報処理装置から要求される他のモジュールの転送を、情報処理装置によるモジュールの実行と並列に処理する。  【選択図】図６
2014120065.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置に接続される周辺装置であって、
前記情報処理装置が前記周辺装置を使用するために、前記情報処理装置で実行されるソフトウエアを記憶した記憶手段と、
前記情報処理装置の外部記憶装置として前記記憶手段を前記情報処理装置に認識させる為に、前記情報処理装置と通信する通信手段と、
前記情報処理装置からの要求に応じて、前記記憶手段に記憶されている前記ソフトウエアを構成するモジュールを転送する転送手段と、を備え、
前記転送手段は、前記情報処理装置による前記モジュールの実行に応じて前記情報処理装置から要求される他のモジュールの転送を、前記情報処理装置による前記モジュールの実行と並列に処理することを特徴とする周辺装置。
【請求項２】
前記情報処理装置からの要求に応じて転送すべきモジュールを前記記憶手段から選択する選択手段を更に備えることを特徴とする請求項１に記載の周辺装置。
【請求項３】
前記転送手段は、前記情報処理装置からの要求に応じて前記ソフトウエアを起動するための起動モジュールを転送することを特徴とする請求項１または２に記載の周辺装置。
【請求項４】
前記情報処理装置による前記起動モジュールの実行後、前記転送手段は、前記情報処理装置からの要求に応じて前記ソフトウエアを実行するための実行モジュールを転送することを特徴とする請求項３に記載の周辺装置。
【請求項５】
前記情報処理装置による前記実行モジュールの実行後、前記転送手段は、前記情報処理装置からの要求に応じて前記ソフトウエアを設定するための設定モジュールを転送することを特徴とする請求項４に記載の周辺装置。
【請求項６】
転送すべきモジュールが複数ある場合、前記転送手段はモジュール毎に予め定められている優先順位の高い順に前記モジュールを転送することを特徴とする請求項１乃至５のいずれか１項に記載の周辺装置。
【請求項７】
前記優先順位は前記情報処理装置により実行される順序の早い順に従って定められることを特徴とする請求項６に記載の周辺装置。
【請求項８】
前記通信手段は、前記周辺装置の種類を認識するための情報を前記情報処理装置に通信することを特徴とする請求項１乃至７のいずれか１項に記載の周辺装置。
【請求項９】
前記通信手段の通信は、ネットワークを介して前記情報処理装置と接続するためのＵＳＢマスストレージクラスインターフェースを介して実行されることを特徴とする請求項１乃至８のいずれか１項に記載の周辺装置。
【請求項１０】
情報処理装置が周辺装置を使用するために、前記情報処理装置で実行されるソフトウエアを記憶した記憶手段を有する周辺装置の制御方法であって、
前記周辺装置の通信手段が、前記情報処理装置の外部記憶装置として前記記憶手段を前記情報処理装置に認識させる為に、前記情報処理装置と通信する通信工程と、
前記周辺装置の転送手段が、前記情報処理装置からの要求に応じて、前記記憶手段に記憶されている前記ソフトウエアを構成するモジュールを転送する転送工程と、を有し、
前記転送工程は、前記情報処理装置による前記モジュールの実行に応じて前記情報処理装置から要求される他のモジュールの転送を、前記情報処理装置による前記モジュールの実行と並列に処理することを特徴とする周辺装置の制御方法。
【請求項１１】
コンピュータを、請求項１乃至９のいずれか１項に記載の周辺装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に接続される周辺装置、周辺装置の制御方法およびプログラムに関する。
【背景技術】
【０００２】
コンピュータなどの情報処理装置上で周辺機器を使用するためには、予め、デバイスドライバやアプリケーションをインストールしなければならない。
【０００３】
しかし、ソフトウエアをインストールすることが制限されている情報処理装置において、管理者権限を持たないユーザはデバイスドライバやアプリケーションのインストールができないため、情報処理装置上で周辺機器を使用できないことがある。
【０００４】
特許文献１、２では、情報処理装置に周辺機器をＵＳＢマスストレージデバイスとして認識させることで、デバイスドライバやアプリケーションを情報処理装置にインストールすることなく、周辺機器の利用を可能にしている。先行技術を利用した周辺機器は、一般に、以下のような構成をとっている。
【０００５】
・周辺機器は、記憶領域とＵＳＢマスストレージクラスインターフェースおよびＵＳＢディスクドライブインターフェースを有しており、情報処理装置からディスクドライブとして認識されるようになっている。周辺機器がディスクドライブとして認識されることにより、周辺機器の記憶領域に情報処理装置が接続できるようになる。
【０００６】
・情報処理装置から接続が可能な周辺機器の記憶領域には、予め、周辺機器の制御アプリケーションが保存されている。このような周辺機器が情報処理装置から使用可能になるまでのフローチャートを図１に示し、以下説明する。
【０００７】
１．周辺機器が情報処理装置に接続されると、周辺機器がＵＳＢマスストレージクラスインターフェースとＵＳＢディスクドライブインターフェースを有しているため、情報処理装置はディスクドライブとして認識する(ステップＳ１)。
【０００８】
２．情報処理装置は、ディスクドライブとして認識される周辺機器の記憶領域に保存されている制御アプリケーションを認識する(ステップＳ２)。
【０００９】
３．ユーザが制御アプリケーションの起動を指示する (ステップＳ３) 。
【００１０】
４．周辺機器は、制御アプリケーションを構成するファイルを周辺機器内の記憶領域から情報処理装置の記憶領域に転送する(ステップＳ４)。
【００１１】
５．情報処理装置は、情報処理装置１００内の記憶領域に制御アプリケーションの転送が完了した後、転送された制御アプリケーションを起動する(ステップＳ５)。以上のような５つのステップを経て、先行技術を用いた周辺機器は情報処理装置から使用可能になる。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２００４-３３４４４９号公報
【特許文献２】特開２０１０−１１３７０２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
先行技術を用いた場合、制御アプリケーションを転送（ステップＳ４）している間、ユーザに待機時間が発生するという問題がある。
【００１４】
また、制御アプリケーションの機能が拡充されるに従い、プログラムサイズが増大していく。そのため、周辺機器の記憶領域の容量もプログラムサイズに合わせて大きくする必要があるが、それに伴い、待機時間は更に増大してしまう。また、記憶領域の増大はコストアップの要因となってしまう。
【課題を解決するための手段】
【００１５】
本発明は、デバイスドライバやソフトウエアを情報処理装置にインストールすることなく周辺装置の利用を可能とし、周辺装置が情報処理装置に接続されてから使用可能になるまでの待機時間を短縮し、周辺装置の記憶領域の容量増大を防ぐことを可能にする技術の提供を目的とする。
【００１６】
上記の目的を達成する本発明の一つの側面に係る周辺装置は、情報処理装置に接続される周辺装置であって、
前記情報処理装置が前記周辺装置を使用するために、前記情報処理装置で実行されるソフトウエアを記憶した記憶手段と、
前記情報処理装置の外部記憶装置として前記記憶手段を前記情報処理装置に認識させる為に、前記情報処理装置と通信する通信手段と、
前記情報処理装置からの要求に応じて、前記記憶手段に記憶されている前記ソフトウエアを構成するモジュールを転送する転送手段と、を備え、前記転送手段は、前記情報処理装置による前記モジュールの実行に応じて前記情報処理装置から要求される他のモジュールの転送を、前記情報処理装置による前記モジュールの実行と並列に処理することを特徴とする。
【発明の効果】
【００１７】
本発明によれば、デバイスドライバやソフトウエアを情報処理装置にインストールすることなく周辺装置の利用を可能とし、周辺装置が情報処理装置に接続されてから使用可能になるまでの待機時間を短縮し、周辺装置の記憶領域の容量増大を防ぐことが可能になる。
【図面の簡単な説明】
【００１８】
【図１】先行技術に係る、情報処理装置から周辺機器が使用可能になるまでのフローチャートを示した図である。
【図２】第１の実施形態に係る、情報処理装置と周辺機器のソフトウエアブロック図である。
【図３】第１の実施形態に係る、情報処理装置と周辺機器のハードウエアブロック図である。
【図４】周辺機器２００が情報処理装置１００にディスクドライブとして認識されるまでのフローチャートを示した図である。
【図５】周辺機器２００が情報処理装置１００にディスクドライブとして認識された際のフォルダを示した図である。
【図６】キャプチャアプリケーション２０１のモジュール構成を示した図である。
【図７】キャプチャアプリケーション２０１のモジュールのひとつである画像ファイル作成モジュール４０４の構成を示した図である。
【図８】キャプチャアプリケーション２０１のモジュールのひとつであるＯＣＲモジュール４０５の構成を示した図である。
【図９】キャプチャアプリケーション２０１の起動から終了までのフローチャートを示した図である。
【図１０】キャプチャアプリケーション２０１のユーザインターフェースであるダイアログ７００を示した図である。
【図１１】ユーザがスキャン設定を行っている間に、ＣＰＵ１２１がモジュールの転送を行う際のフローチャートを示した図である。
【図１２】キャプチャアプリケーション２０１を構成するモジュールにおいて、モジュールの転送優先順位を示した図である。
【図１３】スキャン設定とスキャン実行に必要なモジュールの関連付けを記述した表を示した図である。
【図１４】スキャナ操作モジュール４０２がスキャン可能かを判断する際のフローチャートを示した図である。
【図１５】ファイル転送モジュール４０１とスキャナ操作モジュール４０２の実行が並列処理される様子を示した図である。
【図１６】本発明の第２の実施形態に係る、情報処理装置１００と周辺機器２００とサーバコンピュータ８００のソフトウエアブロック図である。
【図１７】本発明の第２の実施形態に係る、情報処理装置１００と周辺機器２００とサーバコンピュータ８００のハードウエアブロック図である。
【図１８】本発明の第２の実施形態に係る、キャプチャアプリケーション２０１を構成するモジュールの保存場所を示した図である。
【図１９】本発明の第２の実施形態に係る、ＣＰＵ１２１がファイル転送モジュール４０１を実行した際のフローチャート図である。
【図２０】本発明の第２の実施形態に係る、キャプチャアプリケーション２０１を構成するモジュールの保存場所を記述したファイルを示した図である。
【発明を実施するための形態】
【００１９】
＜第１実施形態＞
本発明の実施の形態について図面を参照して詳細に説明する。図２は、本発明の第１の実施形態に係る、一般的な情報処理装置１００として例示したコンピュータと、周辺機器（周辺装置）の一例であるスキャナのソフトウエアブロック図である。
【００２０】
図２において、情報処理装置１００には、オペレーティングシステム１０１、ファイルシステム１０２、ＵＳＢマスストレージドライバ１０３及びＵＳＢインターフェースドライバ１０４がインストールされている。オペレーティングシステム１０１は、情報処理装置１００の基本ソフトウエアであり、本実施形態では、マイクロソフトウインドウズ（登録商標）とする。
【００２１】
ファイルシステム１０２は、ハードディスクドライブなどの記憶装置にファイルを格納するためのソフトウエアである。
【００２２】
ＵＳＢマスストレージドライバ１０３は、ハードディスクドライブ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ−Ｒ、ＵＳＢメモリなどのマスストレージを制御するためのソフトウエアである。
【００２３】
ＵＳＢインターフェースドライバ１０４は、ＵＳＢインターフェースに接続されたＵＳＢデバイスを制御するためのソフトウエアである。
【００２４】
なお、ファイルシステム１０２、ＵＳＢマスストレージドライバ１０３およびＵＳＢインターフェースドライバ１０４はＯＳの一部であってもよい。
【００２５】
また、マイクロソフトウインドウズ（登録商標）は、標準で、ＵＳＢマスストレージドライバ１０３を含んでいるため、マスストレージクラスのＵＳＢデバイスにアクセスする際、デバイスドライバ等のインストールを必要としない。
【００２６】
一方、スキャナである周辺機器２００には、キャプチャアプリケーション２０１、ＵＳＢディスクドライブインターフェース２０２及びＵＳＢマスストレージクラスインターフェース２０３が備えられている。
【００２７】
キャプチャアプリケーション２０１は、スキャナである周辺機器２００が画像を読み取るための制御を行うソフトウエアであり、情報処理装置１００上で実行される。
【００２８】
ＵＳＢディスクドライブインターフェース２０２およびＵＳＢマスストレージクラスインターフェース２０３は、周辺機器２００に備えられているメモリ（フラッシュメモリ、ＥＥＰＲＯＭなど）をディスクドライブとして使用するためのソフトウエアである。
【００２９】
図３は、本発明の第１の実施形態に係る、一般的な情報処理装置として例示したコンピュータと、周辺機器の一例であるスキャナのハードウエアブロック図である。図３において、情報処理装置１００は、ＣＰＵ１２１、ＲＯＭ１２２、ＲＡＭ１２３、ハードディスクドライブ１２４、ＵＳＢインターフェース１２５を備えている。ＵＳＢインターフェース１２５は、ＵＳＢケーブル３００を介して周辺機器２００と接続される。また、キーボード／マウス１２６とディスプレイ１２７はＣＰＵ１２１に接続されている。情報処理装置１００に電力が投入されると、ＣＰＵ１２１は、ＲＯＭ１２２からファームウエアを起動し、ハードディスクドライブ１２４からオペレーティングシステム１０１を起動する。  
【００３０】
一方、スキャナである周辺機器２００は、ＣＰＵ２２１、ＲＯＭ２２２、ＲＡＭ２２３、画像読み取り部２２４、ＵＳＢコントローラ２２５、ＵＳＢインターフェース２２６を備えている。周辺機器２００に電力が投入されると、ＣＰＵ２２１は、ファームウエアをＲＯＭ２２２から起動する。
【００３１】
図４は、周辺機器２００が情報処理装置１００に接続されてから、ディスクドライブとして認識されるまでのフローチャートである。
【００３２】
まず、情報処理装置１００内のＣＰＵ１２１は、ＵＳＢインターフェース１２５を介して、周辺機器２００が接続されたことを確認する（ステップＳ１００１）。
【００３３】
接続が確認されると、ＣＰＵ１２１は周辺機器２００のＵＳＢインターフェース２２６にアクセスする。情報処理装置１００のアクセスがあると、周辺機器２００は情報処理装置１００をＵＳＢマスストレージクラスインターフェース２０３に接続させる（ステップＳ１００２）。
【００３４】
ＣＰＵ１２１は周辺機器２００のＵＳＢマスストレージクラスインターフェース２０３から情報を取得する（ステップ１００３）。この情報により接続された周辺機器２００の種類が認識できる。
【００３５】
周辺機器２００がＵＳＢマスストレージクラスインターフェース２０３を有しているため、ＣＰＵ１２１／オペレーティングシステム１０１は周辺機器２００をＵＳＢマスストレージデバイスと認識する（ステップＳ１００４）。
【００３６】
周辺機器２００がＵＳＢマスストレージクラスインターフェース２０３のサブクラスとしてＵＳＢディスクドライブインターフェース２０２を有している。このため、ＣＰＵ１２１／オペレーティングシステム１０１は、周辺機器２００のＲＯＭ２２２やＲＡＭ２２３を、ディスクドライブとして認識する。（ステップＳ１００５）。
【００３７】
オペレーティングシステム１０１は、周辺機器２００内に格納してある、キャプチャアプリケーション２０１をディスクドライブ上のファイルとして認識する（ステップＳ１００６）。つまりユーザは、図５に示されるフォルダ２１０を情報処理装置１００に接続されたキーボード／マウス１２６を使用して開くことができる。ユーザはフォルダ２１０にあるキャプチャアプリケーション２０１をクリックすることでキャプチャアプリケーション２０１を起動することができる。
【００３８】
このとき、周辺機器２００は、情報処理装置１００のオペレーティングシステム１０１に、ディスクドライブ（外部記憶装置）として認識されている。情報処理装置１００は、外部記憶装置として周辺機器２００にアクセスしているのにすぎないので、直接的に画像読み取り部２２４を制御することはできない。つまり、ユーザが画像読み取り部２２４を制御するには、キャプチャアプリケーション２０１を情報処理装置１００上で実行する必要がある。
【００３９】
図６はキャプチャアプリケーション２０１のモジュール構成を示したブロック図である。キャプチャアプリケーション２０１は、ファイル転送モジュール４０１、スキャナ操作モジュール４０２、画像処理モジュール４０３、画像ファイル作成モジュール４０４、ＯＣＲモジュール４０５、で構成される。それぞれのモジュールは単一または複数のファイルで構成される。ここで、ファイル転送モジュール４０１およびスキャナ操作モジュール４０２は、ソフトウエア（キャプチャアプリケーション２０１）を起動するための起動モジュールとして機能する。画像処理モジュール４０３は情報処理装置１００による起動モジュールの実行後、キャプチャアプリケーション２０１の処理を実行するための実行モジュールとして機能する。また、画像ファイル作成モジュール４０４およびＯＣＲモジュール４０５は情報処理装置１００による実行モジュールの実行後、キャプチャアプリケーション２０１の設定に必要な処理を行うための設定モジュールとして機能する。
【００４０】
スキャナ操作モジュール４０２は、ＣＰＵ１２１によって実行されるモジュールであり、ユーザが周辺機器２００に対してスキャン開始指示やスキャン設定指示を行う為に、情報処理装置１００がダイアログを表示するためのソフトウエアである。
【００４１】
画像処理モジュール４０３は、ＣＰＵ１２１が、画像全体が平均的に一様な明るさとなるように補正するシェーディング補正や画像の明るさ補正などの画像処理を周辺機器２００によって読み込まれた画像に対して実行するためのソフトウエアである。
【００４２】
画像ファイル作成モジュール４０４は、ＣＰＵ１２１が、周辺機器２００によって読み込まれた画像データをＪＰＥＧやＰＤＦなどのファイル形式へと変換するためのソフトウエアである。図７のように、画像ファイル作成モジュール４０４は、ＪＰＥＧファイルを作成するためのＪＰＥＧファイル作成モジュール５０１とＰＤＦファイルを作成するためのＰＤＦファイル作成モジュール５０２で構成される。また、他のファイルフォーマットでファイルを作成する場合は、ファイルフォーマットに対応したモジュールを追加してもよい。
【００４３】
ＯＣＲモジュール４０５は、ＣＰＵ１２１が、周辺機器２００によって読み込まれた画像に対してＯＣＲ処理を行い文字の認識をするためのソフトウエアである。図８のように、ＯＣＲモジュール４０５は、日本語を認識するための日本語ＯＣＲ辞書データ５０３、英語を認識するための英語ＯＣＲ辞書データ５０４で構成される。また、他言語についてＯＣＲ処理を行う場合は、各言語に対応したモジュールを追加してもよい。
【００４４】
ファイル転送モジュール４０１は、キャプチャアプリケーションを構成するモジュールの中から任意のモジュールを情報処理装置１００内のＲＡＭ１２３へ転送するためのソフトウエアである。キャプチャアプリケーションを構成するモジュールであるスキャナ操作モジュール４０２、画像処理モジュール４０３、画像ファイル作成モジュール４０４、ＯＣＲモジュール４０５の中から任意のモジュールが転送される。
【００４５】
ＣＰＵ１２１は、ファイル転送モジュール４０１の実行によって、“任意”のモジュールを転送するのであり、必ずしもキャプチャアプリケーション２０１を構成する全てのモジュールを転送するのではない。また、ＣＰＵ１２１が、キャプチャアプリケーション２０１を起動する際、必ずしも全てのモジュールを必要とするものではない。ファイル転送モジュール４０１とスキャナ操作モジュール４０２が情報処理装置１００内のＲＡＭ１２３に転送されていれば、ＣＰＵ１２１はキャプチャアプリケーション２０１を起動できる。
【００４６】
また、ＣＰＵ１２１が、スキャン実行を指示し画像ファイルを作成する際も、必ずしも全てのモジュールを必要とするものではない。例えば、ユーザが画像ファイルの形式をＪＰＥＧに指定し、ＯＣＲ文字認識を行わない場合を想定する。この場合、ファイル転送モジュール４０１とスキャナ操作モジュール４０２と画像処理モジュール４０３とＪＰＥＧファイル作成モジュール５０１が情報処理装置１００に転送されていれば、ＣＰＵ１２１はユーザが指定したとおりに画像ファイルを作成できる。つまり、ＣＰＵ１２１がキャプチャアプリケーション２０１を実行するにあたり、画像ファイル作成モジュール４０４とＯＣＲモジュール４０５はスキャン設定によって必要になるモジュールである。また、画像処理モジュール４０３はスキャン実行に必要なモジュールである。図６の点線で、キャプチャアプリケーション２０１の起動に必要なモジュール、スキャン実行に必要なモジュール、スキャン設定によって必要になるモジュールを区別している。
【００４７】
また、ＣＰＵ１２１は、ファイル転送モジュール４０１を実行すると、以下のようなファイルの転送状態を示すデータを情報処理装置１００のＲＡＭ１２３に記憶する。
・ファイルの転送中であることを示すデータ
・スキャン実行に必要なモジュールの転送が完了したことを示すデータ
・スキャン設定によって必要になるモジュールのうち、転送が完了したモジュールを示すデータ
これらのデータによって、ＣＰＵ１２１はファイルの転送状態を確認する。
【００４８】
図９は、キャプチャアプリケーション２０１の起動から終了までのフローチャートである。ステップＳ４００１において、ユーザがキャプチャアプリケーション２０１の起動を指示すると、ＣＰＵ１２１は、ファイル転送モジュール４０１を実行する。
【００４９】
ステップＳ４００２において、ＣＰＵ１２１はファイル転送モジュール４０１を実行して、スキャナ操作モジュール４０２を周辺機器２００内のＲＯＭ２２２から情報処理装置１００内のＲＡＭ１２３へ転送する（第１の転送）。
【００５０】
ステップＳ４００３において、ＣＰＵ１２１はスキャナ操作モジュール４０２を実行（起動）し、図１０に例示するダイアログ７００をディスプレイ１２７に表示する。ユーザは、ダイアログ７００上でスキャン設定を行い、ダイアログ７００上のスキャンボタン７０１を押下することで、周辺機器２００に対してスキャン実行を指示することができる。また、本実施形態では、ユーザはキーボード/マウス１２６を使用して、読み取りモード（例えば、白黒）、用紙サイズ（例えば、Ａ４）、解像度（例えば、３００ｄｐｉ）を入力することができる。また、ユーザはキーボード/マウス１２６を使用して、読み取り面（例えば、両面）、ファイル形式（例えば、ＰＤＦ）、ＯＣＲ設定（例えば、日本語）を選択し、保存ファイル名（例えば、ｔｅｓｔ１）を入力することができる。
【００５１】
ステップＳ４００４において、ＣＰＵ１２１は、未転送のモジュールの中から、転送すべきモジュールがあるかを確認し、あれば転送する。図１１のフローチャートを用いてステップＳ４００４の詳細を述べる。
【００５２】
図１１のステップＳ４０１０において、ＣＰＵ１２１は、スキャン実行に必要なモジュール（本実施形態では、画像処理モジュール４０３）の転送が完了しているか、を確認する。スキャン実行に必要なモジュールの転送が完了していない場合は、ステップＳ４０１１において、ＣＰＵ１２１はスキャン実行に必要なモジュールを転送する（第２の転送）。転送が完了している場合は、ステップＳ４０１２において、スキャン設定によって必要になるモジュール（本実施形態では、画像ファイル作成モジュール４０４とＯＣＲモジュール４０５）の転送が完了しているか、を確認する。スキャン設定によって必要になるモジュールの転送が完了していない場合は、ステップＳ４０１３において、転送するモジュールを選択する。転送するモジュールの選択は、図１２の表に示すようにモジュール毎に転送優先順位を定め、転送が完了していないモジュールの中で最も転送優先順位の高いモジュールを選択する。本実施形態では、ＣＰＵ１２１によって実行される順序が早いモジュールから順に転送されるように転送優先順位を定めている。しかし、ＣＰＵ１２１によって実行された回数が多いモジュールから順に転送されるように転送優先順位を定めてもよいし、ファイルサイズの大きいモジュールから順に転送されるように転送優先順位を定めてもよい。転送するモジュールを選択したら、ステップＳ４０１４において、選択したモジュールを転送する。以上のようなフローチャートによって、ユーザがスキャン設定を行っている間に、ＣＰＵ１２１はモジュールの転送を行う。
【００５３】
ステップＳ４００５において、ＣＰＵ１２１は、実行中のスキャナ操作モジュール４０２によって、スキャンボタン７０１が押下されたことを定期的に確認する。ＣＰＵ１２１は、スキャンボタン７０１が押下されたことを確認すると、ステップＳ４００６へと処理を進める。
【００５４】
ステップＳ４００６において、ＣＰＵ１２１は、図１０のダイアログ７００上でユーザが入力したスキャン設定を読み込み、読み込んだスキャン設定から、必要なモジュールを選択する。本実施形態における、スキャン設定と必要なモジュールの対応づけを、図１３の表１３０１、１３０２に示す。スキャン設定が表１３０１の（１）に該当するとき、スキャンに必要なモジュールは、画像処理モジュール４０３とＰＤＦファイル作成モジュール５０２と日本語ＯＣＲ辞書データ５０３になる（表１３０２の（１））。また、スキャン設定が表１３０１の（２）に該当するときは、スキャンに必要なモジュールは、画像処理モジュール４０３とＰＤＦファイル作成モジュール５０２である（表１３０２の（２））。図１３の表１３０１、１３０２のようなスキャン設定と必要なモジュールの対応づけをスキャナ操作モジュール４０２に記録しておき、記録した対応付けをもとにＣＰＵ１２１は必要なモジュールを選択する。
【００５５】
ステップＳ４００７において、ＣＰＵ１２１は、スキャン可能かを判断する。この判断について、図１４のフローチャートを用いて述べる。ステップＳ４０１５において、ＣＰＵ１２１は、モジュールを転送中か確認する。モジュールが転送中のときはスキャン不可能として、ＣＰＵ１２１は転送の完了を待つ。モジュール転送中でなかったら、ステップＳ４０１６において、ＣＰＵ１２１は、スキャンに必要なモジュールの転送が完了しているかを確認する。完了している場合は、スキャン可能と判断する。完了していない場合は、ステップＳ４０１７において、ＣＰＵ１２１はファイル転送モジュール４０１によって対象モジュールの転送を行う。モジュールの転送が完了したら、ＣＰＵ１２１はスキャン可能と判断する。
【００５６】
ステップＳ４００８において、ＣＰＵ１２１は、周辺機器２００にスキャン指示を送る。スキャンが終了し、画像データが周辺機器２００から情報処理装置１００へ送られると、ＣＰＵ１２１は、ユーザのスキャン設定に従って画像処理および画像ファイルの作成を行う。
【００５７】
ステップＳ４００９において、ＣＰＵ１２１は、ユーザからスキャン終了の指示を受け取るとスキャナ操作モジュール４０２の実行を終了する。終了の指示がない場合は、ステップＳ４００３に戻る。
【００５８】
また、ステップＳ４００２からステップＳ４００９が処理されるまでの間、ＣＰＵ１２１が、ファイル転送モジュール４０１とスキャナ操作モジュール４０２の実行を並列に処理する様子を図１５に示す。図１５では、ユーザがスキャン設定を行っている間に、ＣＰＵ１２１がキャプチャアプリケーション２０１を構成する全てのモジュールの転送を完了した場合の処理の様子を示す。アプリケーション全体を転送してから起動する従来の構成だと、図１５のＴ２の時点までユーザは待機する必要がある。本実施形態のように、ＣＰＵ１２１がファイル転送モジュール４０１とスキャナ操作モジュール４０２の実行を並列に処理するように構成することでＴ１までユーザが待機する時間を短縮することができる。
【００５９】
このように、本実施形態ではキャプチャアプリケーション２０１の起動に必要なファイルを情報処理装置１００へ転送し終わった時点で、キャプチャアプリケーション２０１の起動および実行を行う。実行後は、ユーザがキャプチャアプリケーション２０１を操作している時間を利用してファイルの転送を行う。この為、キャプチャアプリケーション２０１全体の転送が終了してから起動を行っていた従来技術よりも、ユーザの待機時間を短縮できる。
【００６０】
＜第２実施形態＞
図１６は、本発明の第２の実施形態に係る、一般的な情報処理装置として例示した情報処理装置と、周辺機器の一例であるスキャナと、ネットワークを介してサービスを提供するサーバコンピュータのブロック図である。周辺機器２００のソフトウエア構成は第１の実施形態と同様なので説明を省略する。
【００６１】
情報処理装置１００には、オペレーティングシステム１０１、ファイルシステム１０２、ＵＳＢマスストレージドライバ１０３、ＵＳＢインターフェースドライバ１０４、Ｗｅｂクライアント１０５、ネットワークドライバ１０６がインストールされている。情報処理装置１００のソフトウエア構成は第１の実施形態とほぼ同じである。以下、第１の実施形態との相違点である、Ｗｅｂクライアント１０５、ネットワークドライバ１０６について説明する。
【００６２】
Ｗｅｂクライアント１０５は、サーバコンピュータ８００のＷｅｂサーバ８０４と通信し、データの送受信などの処理を行うためのソフトウエアである。
【００６３】
ネットワークドライバ１０６は、ネットワークインターフェースに接続されたネットワークデバイスを制御するためのソフトウエアである。なお、これらのソフトウエアはＯＳの一部であってもよい。
【００６４】
サーバコンピュータ８００には、オペレーティングシステム８０１、ファイルシステム８０２、ネットワークドライバ８０３、Ｗｅｂサーバ８０４、キャプチャアプリケーションモジュール８０５が備えられている。オペレーティングシステム８０１は、いわゆるＯＳのことであり、情報処理装置（サーバコンピュータ８００）の基本ソフトウエアである。
【００６５】
ファイルシステム８０２は、ハードディスクドライブなどの記憶装置にファイルを格納するためのソフトウエアである。ネットワークドライバ８０３は、ネットワークインターフェースに接続されたネットワークデバイスを制御するためのソフトウエアである。
【００６６】
Ｗｅｂサーバ８０４は、情報処理装置１００のＷｅｂクライアント１０５と通信を行い、データの送受信などの処理を行うためのソフトウエアである。なお、これらのソフトウエアはＯＳの一部であってもよい。
【００６７】
キャプチャアプリケーションモジュール８０５は、キャプチャアプリケーション２０１を構成するモジュールのひとつである。本実施形態では、例えば、ＯＣＲモジュール４０５とする。図１８に示すように、サーバコンピュータ８００のハードディスクドライブに、ＯＣＲモジュール４０５を保存する。また、周辺機器２００のＲＯＭ２２２に、ファイル転送モジュール４０１、スキャナ操作モジュール４０２、画像処理モジュール４０３および画像ファイル作成モジュール４０４を保存する。サーバコンピュータ８００のハードディスクドライブ８２２に保存するモジュールは、画像処理モジュール４０３や画像ファイル作成モジュール４０４でもよい。また、それらのモジュール全てでもよい。
【００６８】
図１７は、情報処理装置と周辺機器(スキャナ)とサーバコンピュータのハードウエアブロック図である。情報処理装置１００および周辺機器２００のハードウエア構成は第１の実施形態とほぼ同じである。以下では、第１の実施形態との相違点である、情報処理装置１００のネットワークインターフェース１２８、サーバコンピュータ８００、ネットワークケーブル９００について説明する。
【００６９】
情報処理装置１００のネットワークインターフェース１２８は、ＣＰＵ１２１が、ネットワークケーブル９００によって接続されているサーバコンピュータ８００のＣＰＵ８２１と通信を行なう。また、ネットワークインターフェース１２８は、サーバコンピュータ８００のハードディスクドライブ８２２、ＲＯＭ８２３およびＲＡＭ８２４上にあるファイルの転送を要求する。
【００７０】
ネットワークケーブル９００は、情報処理装置１００とサーバコンピュータ８００を接続するケーブルである。本実施形態ではネットワークケーブル９００はＩＥＥＥ８０２．３規格に則ったイーサネット（登録商標）ケーブルとするが、これに限らず、例えば、ＩＥＥＥ８０２．１１規格に則った無線通信技術を使用してもよい。
【００７１】
サーバコンピュータ８００は、ＣＰＵ８２１、ハードディスクドライブ８２２、ＲＯＭ８２３、ＲＡＭ８２４、ネットワークインターフェース８２５を備えている。サーバコンピュータ８００は、ネットワークインターフェース８２５、ネットワークケーブル９００によって情報処理装置１００と接続している。
【００７２】
第２の実施形態において、周辺機器２００が情報処理装置１００に接続されてから、ディスクドライブとして認識されるまでのフローチャートは第１の実施形態と同様であり、図４に示したとおりである。
【００７３】
第２の実施形態において、キャプチャアプリケーション２０１のモジュール構成は、第１の実施形態と同様であり、図６に示したとおりである。しかし、情報処理装置１００のＣＰＵ１２１がファイル転送モジュール４０１を実行してファイルを転送する際の処理が異なる。第２の実施形態では、ＣＰＵ１２１は、周辺機器２００内のＲＯＭ２２２もしくはサーバコンピュータ８００内のハードディスクドライブ８２２のどちらからファイルを転送するかを選択し、情報処理装置１００内のＲＡＭ１２３に転送する。
【００７４】
第２の実施形態において、キャプチャアプリケーション２０１の起動から終了までのフローチャートは、第１の実施形態と同様であり、図９に示したとおりである。また、図９にある、ＣＰＵ１２１がスキャン可能かを判断する処理（ステップＳ４００７）も第１の実施形態と同様のフローチャートであり、図１４に示したとおりである。また、図９にある、ＣＰＵ１２１が、未転送のモジュールの中から転送すべきモジュールを選択し転送する際の処理（ステップＳ４００４）も第１の実施形態と同様のフローチャートであり、図１１に示したとおりである。
【００７５】
図１９は、第２の実施形態において、情報処理装置１００のＣＰＵ１２１がファイル転送モジュール４０１を実行したときのフローチャートである。
【００７６】
ステップＳ５００１において、ＣＰＵ１２１は、ファイル転送モジュール４０１の実行指示を受けると、予め周辺機器２００のＲＯＭ２２２に保存しておいた、Ｐａｔｈ．ｔｘｔファイルを読み込む。図２０のようにＰａｔｈ．ｔｘｔには、ファイル名とその保存場所が記述されている。例えば、「ＳｃａｎｎｅｒＯｐｅｒａｔｏｒ．ｅｘｅ」は周辺機器２００内のＲＯＭ２２２に保存されていて、「ＯｃｒＪｐｎ．ｅｘｅ」はサーバコンピュータ８００内のハードディスクドライブ８２２のファイルパス「ｏｃｒ／ｊｐｎ」に保存されている。また、本実施形態では、モジュールの保存場所をテキストファイル形式で記録しているが、テキストファイル形式で記録する必要はない。
【００７７】
ステップＳ５００２において、ＣＰＵ１２１は、転送すべきファイルの名前をＰａｔｈ．ｔｘｔから検索し、その保存場所を確認する。
【００７８】
ステップＳ５００３において、ファイル転送モジュール４０１は、転送すべきファイルが周辺機器２００内のＲＯＭ２２２に保存されているか、サーバコンピュータ８００内のハードディスクドライブ８２２に保存されているか判断する。
【００７９】
転送すべきファイルが周辺機器２００内のＲＯＭ２２２に保存されていると判断したら、ステップＳ５００４において、ＣＰＵ１２１は周辺機器２００内のＲＯＭ２２２からファイルを転送する。
【００８０】
サーバコンピュータ８００に保存されていると判断したら、ステップＳ５００５において、ＣＰＵ１２１はＷｅｂクライアント１０５およびＷｅｂサーバ８０４を介してサーバコンピュータ８００内のＣＰＵ８２１にファイルの転送要求とファイルパスを送る。サーバコンピュータ８００内のＣＰＵ８２１は転送要求とファイルパスを受け取ると、受け取ったファイルパスで指定されたファイルを情報処理装置１００のＲＡＭ１２３へと転送する。以上の処理によって、ファイル転送モジュール４０１はファイル転送を行う。
【００８１】
このように、本実施形態ではキャプチャアプリケーション２０１のモジュールの一部をサーバコンピュータ８００のような周辺機器２００の外部に保存しておく。そのため、キャプチャアプリケーション２０１の機能が拡充されプログラムサイズが増大しても、プログラムサイズに合わせて周辺機器２００の記憶装置の容量を大きくする必要がない。さらに、サーバコンピュータ上に常に最新のモジュールを置くことによって、ユーザは常に最新のモジュールを使えるようになり、ユーザがソフトウエアのアップデートを行う手間が省ける。
【００８２】
［他の実施形態］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウエア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2014120065.tif 000003
【図２】
2014120065.tif 000004
【図３】
2014120065.tif 000005
【図４】
2014120065.tif 000006
【図５】
2014120065.tif 000007
【図６】
2014120065.tif 000008
【図７】
2014120065.tif 000009
【図８】
2014120065.tif 000010
【図９】
2014120065.tif 000011
【図１０】
2014120065.tif 000012
【図１１】
2014120065.tif 000013
【図１２】
2014120065.tif 000014
【図１３】
2014120065.tif 000015
【図１４】
2014120065.tif 000016
【図１５】
2014120065.tif 000017
【図１６】
2014120065.tif 000018
【図１７】
2014120065.tif 000019
【図１８】
2014120065.tif 000020
【図１９】
2014120065.tif 000021
【図２０】
2014120065.tif 000022