(57)【要約】【課題】スキャナドライバインターフェースを用いて、スキャナ以外の外部装置から容易に画像を読取ることができる。【解決手段】スキャナドライバＩ／Ｆ部３２Ａは、アプリケーション３０から呼出され、スキャナドライバで用いる規約に沿って動作する。プラグイン部３６は、外部装置２０に対応して設けられている。格納部３７は、データを記憶した外部装置２０へのアクセス方法を示すアクセス情報を格納する。変換部３８は、外部装置２０から取得されたデータを、スキャナドライバで処理可能な画像データに変換する。出力部３４Ａは、選択された外部装置２０に対応するプラグイン部３６におけるアクセス情報を用いて該外部装置２０からデータを取得し該外部装置２０に対応するプラグイン部３６へ出力する。管理部３４Ｂは、選択された外部装置２０に対応するプラグイン部３６で変換された画像データを、スキャナドライバＩ／Ｆ部３２Ａを介してアプリケーション３０へ出力する。【選択図】図２
2016174333.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションから呼出され、スキャナドライバで用いる規約に沿って動作するスキャナドライバインターフェース部と、
データを記憶した外部装置へのアクセス方法を示すアクセス情報を格納する格納部と、前記外部装置から取得された前記データを、前記スキャナドライバで処理可能な画像データに変換する変換部と、を有し、前記外部装置に対応して設けられたプラグイン部と、
アクセス対象の前記外部装置の選択を受け付ける受付部と、
選択された前記外部装置に対応する前記プラグイン部における前記アクセス情報を用いて、選択された前記外部装置から前記データを取得し、選択された前記外部装置に対応する前記プラグイン部へ出力する出力部と、
前記プラグイン部を管理し、選択された前記外部装置に対応する前記プラグイン部で変換された前記画像データを、前記スキャナドライバインターフェース部を介して前記アプリケーションへ出力する管理部と、
を備える情報処理装置。
【請求項２】
新たな前記プラグイン部をインストールするインストール部を備える、請求項１に記載の情報処理装置。
【請求項３】
前記出力部は、複数の前記プラグイン部間で共通の処理を実行する、請求項１または請求項２に記載の情報処理装置。
【請求項４】
前記外部装置は、ＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）サーバであり、前記共通の処理は、ＨＴＴＰ処理である、請求項３に記載の情報処理装置。
【請求項５】
前記外部装置は、クラウド上に設けられたクラウドサーバである、請求項１〜請求項４の何れか１項に記載の情報処理装置。
【請求項６】
コンピュータを、
アプリケーションから呼出され、スキャナドライバで用いる規約に沿って動作するスキャナドライバインターフェース部と、
データを記憶した外部装置へのアクセス方法を示すアクセス情報を格納する格納部と、前記外部装置から取得された前記データを、前記スキャナドライバで処理可能な画像データに変換する変換部と、を有し、前記外部装置に対応して設けられたプラグイン部と、
アクセス対象の前記外部装置の選択を受け付ける受付部と、
選択された前記外部装置に対応する前記プラグイン部における前記アクセス情報を用いて、選択された前記外部装置から前記データを取得し、選択された前記外部装置に対応する前記プラグイン部へ出力する出力部と、
前記プラグイン部を管理し、選択された前記外部装置に対応する前記プラグイン部で変換された前記画像データを、前記スキャナドライバインターフェース部を介して前記アプリケーションへ出力する管理部と、
して機能させるためのプログラム。
【請求項７】
アプリケーションから呼出され、スキャナドライバで用いる規約に沿って動作するスキャナドライバインターフェースと、データを記憶した外部装置へのアクセス方法を示すアクセス情報を格納する格納部、および前記外部装置から取得された前記データを、前記スキャナドライバで処理可能な画像データに変換する変換部、を有し、前記外部装置に対応して設けられたプラグイン部と、を備えた情報処理装置で実行する情報処理方法であって、
アクセス対象の前記外部装置の選択を受け付けるステップと、
選択された前記外部装置に対応する前記プラグイン部における前記アクセス情報を用いて、選択された前記外部装置から前記データを取得し、選択された前記外部装置に対応する前記プラグイン部へ出力するステップと、
前記プラグイン部を管理し、選択された前記外部装置に対応する前記プラグイン部で変換された前記画像データを、前記スキャナドライバインターフェース部を介して前記アプリケーションへ出力するステップと、
を含む情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、プログラム、および情報処理方法に関する。
【背景技術】
【０００２】
特定のアプリケーションやシステムにおいて、標準規格に準拠したスキャナドライバをインターフェースとして用いて、スキャナや複合機などから画像データを取り込むことが行われている。
【０００３】
上記特定のアプリケーションやシステムにおいてインターフェースを変えずに、スキャナドライバを用いて、サーバ装置などのスキャナ以外の外部装置からの画像取り込みを実現出来れば、容易に外部装置から画像取り込みを行うことができる。しかし、スキャナドライバに外部装置の各々へのアクセス機能を搭載する場合、外部装置ごとにスキャナドライバへの機能追加が必要となる。また、外部装置ごとにスキャナドライバを用意する場合、各々のスキャナドライバを評価および管理する必要が生じる。また、スキャナにウェブサーバ機能を追加する場合（例えば、特許文献１参照）、スキャナドライバを変更する必要があった。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
このため、従来では、スキャナドライバをインターフェースとして用いて、スキャナ以外の外部装置から容易に画像を読取ることは困難であった。
【課題を解決するための手段】
【０００５】
上述した課題を解決するために、本発明は、アプリケーションから呼出され、スキャナドライバで用いる規約に沿って動作するスキャナドライバインターフェース部と、データを記憶した外部装置へのアクセス方法を示すアクセス情報を格納する格納部と、前記外部装置から取得された前記データを、前記スキャナドライバで処理可能な画像データに変換する変換部と、を有し、前記外部装置に対応して設けられたプラグイン部と、アクセス対象の前記外部装置の選択を受け付ける受付部と、選択された前記外部装置に対応する前記プラグイン部における前記アクセス情報を用いて、選択された前記外部装置から前記データを取得し、選択された前記外部装置に対応する前記プラグイン部へ出力する出力部と、前記プラグイン部を管理し、選択された前記外部装置に対応する前記プラグイン部で変換された前記画像データを、前記スキャナドライバインターフェース部を介して前記アプリケーションへ出力する管理部と、を備える。
【発明の効果】
【０００６】
本発明によれば、スキャナドライバインターフェースを用いて、スキャナ以外の外部装置から容易に画像を読取ることができる、という効果を奏する。
【図面の簡単な説明】
【０００７】
【図１】図１は、情報処理システムの一例を示す図である。
【図２】図２は、情報処理装置および外部装置の機能ブロック図である。
【図３】図３は、外部装置の一覧を示す識別情報の一例を示す図である。
【図４】図４は、外部装置の選択画面の一例を示す図である。
【図５】図５は、ログイン画面の一例を示す図である。
【図６】図６は、データ一覧の一例を示す図である。
【図７】図７は、スキャン設定の設定画面の一例を示す図である。
【図８】図８は、設定された解像度の一例を示す図である。
【図９】図９は、情報処理の流れの一例を示すシーケンス図である。
【図１０】図１０は、情報処理装置および外部装置の機能ブロック図である。
【図１１】図１１は、インストール部の機能ブロック図である。
【図１２】図１２は、インストールパッケージの一例を示す図である。
【図１３】図１３は、インストール設定ファイルの一例を示す図である。
【図１４】図１４は、インストール処理の手順を示すフローチャートである。
【図１５】図１５は、ハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【０００８】
以下に添付図面を参照して、情報処理装置、プログラム、および情報処理方法の一の実施の形態を詳細に説明する。
【０００９】
（第１の実施の形態）
図１は、情報処理システム１０の一例を示す図である。
【００１０】
情報処理システム１０は、情報処理装置１２と、スキャナ１４と、外部装置２０と、を備える。
【００１１】
情報処理装置１２は、公知のパーソナルコンピュータなどである。情報処理装置１２は、ネットワーク１６に接続されている。ネットワーク１６は、例えば、社内ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などのローカルネットワークである。
【００１２】
スキャナ１４は、原稿から画像を読取る公知のスキャナ機能を実行する装置である。スキャナ１４は、ネットワーク１６に接続されている。なお、ネットワーク１６には、公知の画像形成装置や、ファックス装置や、複数の機能を有するＭＦＰ（Ｍｕｌｔｉｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）などが更に接続された形態であってもよい。また、ネットワーク１６には、複数のスキャナ１４が接続された形態であってもよい。
【００１３】
外部装置２０は、クラウド１８上に設置されている。外部装置２０は、クラウド１８およびネットワーク１６を介して、情報処理装置１２と通信可能である。
【００１４】
外部装置２０は、例えば、ＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）サーバである。また、外部装置２０は、例えば、クラウド１８上に設けられたクラウドサーバである。
【００１５】
なお、本実施の形態では、一例として、外部装置２０は、ＨＴＴＰサーバであり、且つ、クラウド１８上に設けられたクラウドサーバである場合を説明する。
【００１６】
図２は、情報処理装置１２および外部装置２０の機能ブロック図である。
【００１７】
情報処理装置１２は、制御部２２と、ＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）部２４と、を備える。ＵＩ部２４および制御部２２は、データや信号授受可能に接続されている。
【００１８】
ＵＩ部２４は、表示部２６と、入力部２８と、を備える。表示部２６は、各種画像を表示する。表示部２６は、例えば、ＬＣＤ（ｌｉｑｕｉｄ  ｃｒｙｓｔａｌ  ｄｉｓｐｌａｙ）、有機ＥＬ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ）等の公知の表示装置である。入力部２８は、ユーザが各種の操作入力を行うための手段である。入力部２８は、例えば、マウス、ボタン、リモコン、キーボード、および、マイクなどの音声認識装置等である。
【００１９】
なお、表示部２６および入力部２８は、一体的に構成されていてもよい。具体的には、表示部２６および入力部２８は、表示機能および入力機能の双方を備えたＵＩ部２４として一体的に構成されてもよい。ＵＩ部２４には、タッチパネル付ＬＣＤなどがある。
【００２０】
制御部２２は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、およびＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などを含んで構成されるコンピュータである。制御部２２は、情報処理装置１２全体を制御する。なお、制御部２２は、ＣＰＵ以外の回路などであってもよい。
【００２１】
制御部２２は、アプリケーション３０と、仮想スキャナドライバ３２と、中間モジュール３４と、プラグイン部３６と、を備える。プラグイン部３６は、情報処理装置１２と通信可能な外部装置２０の各々に対応して設けられている。このため、制御部２２は、複数のプラグイン部３６を含む。アプリケーション３０、仮想スキャナドライバ３２、中間モジュール３４、および複数のプラグイン部３６の一部または全ては、例えば、ＣＰＵなどの処理装置にプログラムを実行させること、すなわち、ソフトウェアにより実現してもよいし、ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などのハードウェアにより実現してもよいし、ソフトウェアおよびハードウェアを併用して実現してもよい。
【００２２】
アプリケーション３０は、仮想スキャナドライバ３２を呼出し、外部装置２０から画像データを取得する。アプリケーション３０は、呼出部３０Ａと、取得部３０Ｂと、を含む。
【００２３】
呼出部３０Ａは、ＵＩ部２４からスキャン開始指示を取得する。また、呼出部３０Ａは、スキャン開始指示を取得すると、仮想スキャナドライバ３２を呼び出す。具体的には、呼出部３０Ａは、仮想スキャナドライバ３２のスキャナドライバＩ／Ｆ部３２Ａを呼び出す。取得部３０Ｂは、仮想スキャナドライバ３２および中間モジュール３４を介して、ユーザによって選択された外部装置２０から画像データを取得する。
【００２４】
仮想スキャナドライバ３２は、スキャナドライバインターフェース（Ｉ／Ｆ）部３２Ａと、受付部３２Ｂと、を備える。スキャナドライバＩ／Ｆ部３２Ａは、呼出部３０Ａによって呼び出される。また、スキャナドライバＩ／Ｆ部３２Ａは、スキャナドライバで用いる規約に沿って動作する。すなわち、スキャナドライバＩ／Ｆ部３２Ａは、スキャナドライバで用いる、データ形式や、ソースコードや、関数の引数や、解像度などの設定値を定めるためのＩＤ（識別情報）などに沿って動作するインターフェースである。
【００２５】
受付部３２Ｂは、アクセス対象の外部装置２０（２０Ａ、２０Ｂ）の選択を受け付ける。詳細には、受付部３２Ｂは、スキャナドライバＩ／Ｆ部３２Ａがアプリケーション３０によって呼び出されると、中間モジュール３４へアクセスし、中間モジュール３４で管理している外部装置２０の一覧を示す識別情報を取得する。
【００２６】
図３は、仮想スキャナドライバ３２の受付部３２Ｂが中間モジュール３４から取得する外部装置２０の一覧を示す識別情報の一例である。図３に示す例では、受付部３２Ｂは、外部装置２０の外部装置名と、対応するプラグイン部３６のプラグイン名と、を含む。
【００２７】
受付部３２Ｂは、受付けた外部装置２０の一覧を表示部２６に表示する。図４は、外部装置２０の選択画面の一例を示す図である。ユーザは、入力部２８を操作し、選択画面に表示された外部装置２０の一覧の中から、画像データを取得する対象の外部装置２０の外部装置名を入力する。これにより、受付部３２Ｂは、アクセス対象の外部装置２０の選択を受け付ける。
【００２８】
図２に戻り、プラグイン部３６は、外部装置２０の各々に対応して設けられている。本実施の形態では、情報処理装置１２には複数の外部装置２０として、外部装置２０Ａおよび外部装置２０Ｂが接続されている場合を一例として説明する。このため、制御部２２は、外部装置２０Ａに対応するプラグイン部３６Ａと、外部装置２０Ｂに対応するプラグイン部３６Ｂと、を備える場合を説明する。なお、プラグイン部３６Ａおよびプラグイン部３６Ｂを総称して説明する場合、単に、プラグイン部３６と称して説明する。
【００２９】
プラグイン部３６は、格納部３７と、変換部３８と、設定部３９と、を含む。格納部３７は、外部装置２０へのアクセス方法を示すアクセス情報を格納する。すなわち、格納部３７は、対応する外部装置２０（外部装置２０Ａまたは外部装置２０Ｂ）へのアクセス方法を示すアクセス情報を格納する。アクセス情報は、対応する外部装置２０のアドレスや、対応する外部装置２０へのログイン方法や、対応する外部装置２０に記憶されているデータ一覧の取得方法や、該外部装置２０に記憶されているデータの取得方法（例えば、外部装置２０のＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）の呼び出し方）などを含む。このため、格納部３７に格納されているアクセス情報を用いることで、中間モジュール３４が外部装置２０へアクセス可能となる。
【００３０】
変換部３８は、対応する外部装置２０から取得したデータを、上述したスキャナドライバで処理可能な画像データに変換する。変換後の画像データは、例えば、ＢＭＰ（ＢｉｔＭａＰ）やＴＩＦＦ（Ｔａｇｇｅｄ  Ｉｍａｇｅ  Ｆｉｌｅ  Ｆｏｒｍａｔ）などである。
【００３１】
設定部３９は、外部装置２０へログインするためのＩＤとパスワードを設定するためのインターフェースや、外部装置２０における何れのデータをスキャンするかを設定するためのインターフェースを含む。
【００３２】
設定部３９は、外部装置２０へログインするためのＩＤとパスワードを設定するためのインターフェースを用いて、ログイン画面を表示部２６へ表示する。図５は、ログイン画面の一例を示す図である。ユーザは、入力部２８を操作することによって、自己の識別情報（ユーザＩＤ）と、パスワードを入力する。設定部３９は、入力されたユーザＩＤとパスワードを用いて、対応する選択された外部装置２０へログインする。そして、設定部３９は、ログインした外部装置２０に格納されているデータ一覧を取得する。
【００３３】
図６は、データ一覧の一例を示す図である。例えば、設定部３９は、選択された外部装置２０に格納されているデータのデータ名と、サイズと、データ形式と、を該外部装置２０から取得する。
【００３４】
そして、設定部３９は、外部装置２０における何れのデータをスキャンするかを設定するためのインターフェースを用いて、スキャン設定を行うための設定画面を表示部２６へ表示する。
【００３５】
図７は、スキャン設定の設定画面の一例を示す図である。設定部３９は、選択された外部装置２０に格納されているデータ一覧を選択可能に表示する。また、設定部３９は、スキャン時の詳細設定（例えば、解像度や色）の入力画面を表示する。ユーザは、入力部２８を操作することで、スキャン対象のデータの選択や、スキャン時の解像度の入力を行う。これにより、設定部３９は、スキャン対象のデータの識別情報、およびスキャン時の解像度を取得する。
【００３６】
図８は、設定された解像度の一例を示す図である。ユーザによる入力部２８の操作により、ユーザ所望の解像度や色が設定される。
【００３７】
図２に戻り、中間モジュール３４は、複数のプラグイン部３６の各々を管理し、仮想スキャナドライバ３２と複数のプラグイン部３６の各々との間のデータのやり取りを管理する。
【００３８】
中間モジュール３４は、出力部３４Ａと、管理部３４Ｂと、を含む。出力部３４Ａは、選択された外部装置２０に対応するプラグイン部３６におけるアクセス情報を用いて、選択された外部装置２０から、選択された識別情報によって識別されるデータを取得し、選択された外部装置２０に対応するプラグイン部３６へ出力する。
【００３９】
出力部３４Ａは、例えば、ＨＴＴＰクライアントとして機能する。この場合、出力部３４Ａは、ＨＴＴＰに沿った処理を行う。詳細には、出力部３４Ａは、プラグイン部３６の各々が対応する外部装置２０へアクセスする際に、ＨＴＴＰのメソッドであるＧＥＴ／ＰＯＳＴ／ＰＵＴなどの処理を行う。出力部３４Ａは、選択された外部装置２０に対応するプラグイン部３６の格納部３７に格納されたアクセス情報を用いて、選択された外部装置２０へアクセスを行う。
【００４０】
このため、出力部３４Ａは、複数のプラグイン部３６間で共通の処理を実行する。また、出力部３４Ａが行う共通の処理は、すなわち、ＨＴＴＰ処理である。
【００４１】
管理部３４Ｂは、複数のプラグイン部３６の各々を管理する。具体的には、管理部３４Ｂは、仮想スキャナドライバ３２から外部装置２０の一覧の取得要求を受け付けると、制御部２２に設けられたプラグイン部３６の各々に対応する外部装置２０の一覧を示す情報を仮想スキャナドライバ３２へ出力する。
【００４２】
また、管理部３４Ｂは、選択された外部装置２０に対応するプラグイン部３６で変換された画像データを、スキャナドライバＩ／Ｆ部３２Ａを介してアプリケーション３０へ出力する。言い換えると、管理部３４Ｂは、アクセス対象として１つの外部装置２０が選択されると、選択された外部装置２０に対応するプラグイン部３６と、仮想スキャナドライバ３２と、がデータ授受可能となるように、橋渡しを行う。
【００４３】
情報処理装置１２に接続される外部装置２０（２０Ａ、２０Ｂ）は、各々、ＡＰＩ４０と、ＨＴＴＰサーバ機能部４１と、を含む。また、外部装置２０は、記憶部を備えており、各種データを予め記憶する。
【００４４】
ＡＰＩ４０は、外部装置２０におけるクラウドサービス機能を、ＨＴＴＰを介して外部から使用可能とする。クラウドサービス機能は、例えば、ＧｏｏｇｌｅＤｒｉｖｅや、Ｅｖｅｒｎｏｔｅなどである。
【００４５】
すなわち、ＡＰＩ４０は、情報処理装置１２からの要求に応じて、外部装置２０に格納されているデータの一覧や、データなどを情報処理装置１２へ送信する。ＨＴＴＰサーバ機能部４１は、情報処理装置１２における、対応するプラグイン部３６からの要求に応答するために、ＨＴＴＰサーバ機能を実装する。
【００４６】
次に、本実施の形態の情報処理システム１０で実行する情報処理の流れを説明する。
【００４７】
本実施の形態の情報処理システム１０では、情報処理装置１２のアプリケーション３０が仮想スキャナドライバ３２を呼び出す。仮想スキャナドライバ３２は、中間モジュール３４と連携して、選択された外部装置２０に対応するプラグイン部３６を呼び出す。そして、制御部２２は、プラグイン部３６、中間モジュール３４、および仮想スキャナドライバ３２を介して、画像データを外部装置２０から取得する。
【００４８】
図９は、本実施の形態の情報処理システム１０で実行する情報処理の流れを示すシーケンス図である。
【００４９】
まず、アプリケーション３０の呼出部３０Ａが、ＵＩ部２４からスキャン開始指示を取得する（ＳＥＱ１００）。呼出部３０Ａは、スキャン開始指示を取得すると、仮想スキャナドライバ３２を呼び出す（ＳＥＱ１０２）。呼出部３０Ａは、スキャン開始指示を仮想スキャナドライバ３２へ送信することによって、仮想スキャナドライバ３２を呼び出す。
【００５０】
仮想スキャナドライバ３２の受付部３２Ｂは、中間モジュール３４へアクセスし、中間モジュール３４で管理している外部装置２０の一覧を示す識別情報を取得する（ＳＥＱ１０４、ＳＥＱ１０６、ＳＥＱ１０８）。
【００５１】
仮想スキャナドライバ３２の受付部３２Ｂは、受付けた外部装置２０の一覧を表示部２６に表示する（ＳＥＱ１１０）。ユーザは、ＵＩ部２４の入力部２８を操作し、選択画面に表示された外部装置２０の一覧の中から、画像データを取得する対象の外部装置２０の外部装置名を入力する。これにより、仮想スキャナドライバ３２の受付部３２Ｂは、アクセス対象の外部装置２０の選択を受け付ける（ＳＥＱ１１２）。
【００５２】
仮想スキャナドライバ３２の受付部３２Ｂは、選択された外部装置２０の識別情報を中間モジュール３４へ送信する（ＳＥＱ１１４）。中間モジュール３４の管理部３４Ｂは、選択された外部装置２０の識別情報を、該識別情報によって識別される外部装置２０（ここでは、一例として外部装置２０Ａとする）に対応するプラグイン部３６（ここでは、一例として、プラグイン部３６Ａとする）へ出力する（ＳＥＱ１１６）。
【００５３】
プラグイン部３６Ａの設定部３９は、外部装置２０ＡへログインするためのＩＤとパスワードを設定するためのインターフェースを用いて、ログイン画面を表示部２６へ表示する（ＳＥＱ１１８）。ユーザは、ＵＩ部２４の入力部２８を操作することによって、自己の識別情報（ユーザＩＤ）と、パスワードを入力する（ＳＥＱ１２０）。設定部３９は、入力されたユーザＩＤとパスワードを用いて、対応する選択された外部装置２０Ａへログインする（ＳＥＱ１２２、ＳＥＱ１２４、ＳＥＱ１２６）。
【００５４】
なお、ログインが失敗した場合、ＳＥＱ１１８、ＳＥＱ１２０の処理をログインが成功するまで繰り返し実行すればよい。また、ログインを続行しない場合には、本シーケンスを終了すればよい。
【００５５】
そして、プラグイン部３６Ａの設定部３９は、外部装置２０Ａへログイン済であることを示す情報を中間モジュール３４へ出力する（ＳＥＱ１２８）。中間モジュール３４の出力部３４Ａは、プラグイン部３６Ａの格納部３７に格納されているアクセス情報から、外部装置２０Ａに記憶されているデータ一覧の取得方法を得る（ＳＥＱ１３０、ＳＥＱ１３２、ＳＥＱ１３４）。
【００５６】
そして、出力部３４Ａは、取得したデータ一覧の取得方法を用いて、外部装置２０Ａから、外部装置２０Ａに記憶されているデータ一覧を取得する（ＳＥＱ１３６、ＳＥＱ１３８、ＳＥＱ１４０）。次に、出力部３４Ａは、取得したデータ一覧と、スキャン設定画面の表示指示と、を、外部装置２０Ａに対応するプラグイン部３６Ａへ出力する（ＳＥＱ１４２）。
【００５７】
プラグイン部３６Ａの設定部３９は、中間モジュール３４から、データ一覧およびスキャン設定画面の表示指示を受付ける。そして、設定部３９は、外部装置２０Ａにおける何れのデータをスキャンするかを設定するためのインターフェースを用いて、スキャン設定を行うための設定画面を表示部２６へ表示する（ＳＥＱ１４４）。
【００５８】
この設定画面は、ＳＥＱ１４２で中間モジュール３４から受け付けた、外部装置２０Ａに記憶されているデータ一覧と、スキャン時の詳細設定（例えば、解像度や色）の入力画面と、を含む（図７参照）。ユーザは、入力部２８を操作することで、スキャン対象のデータの選択や、スキャン時の解像度の入力を行う。これにより、プラグイン部３６Ａの設定部３９は、スキャン対象のデータの識別情報、およびスキャン時の詳細設定を取得する（ＳＥＱ１４６）。なお、スキャンを続行しない場合には、本シーケンスを終了すればよい。
【００５９】
プラグイン部３６Ａの設定部３９は、ＳＥＱ１４６で取得した、スキャン対象のデータの識別情報と、スキャン時の詳細設定と、を中間モジュール３４へ出力する（ＳＥＱ１４８、ＳＥＱ１５０）。
【００６０】
中間モジュール３４の出力部３４Ａは、プラグイン部３６Ａの格納部３７に格納されているアクセス情報から、外部装置２０Ａからデータを取得するデータ取得方法を読取る（ＳＥＱ１５２、ＳＥＱ１５４、ＳＥＱ１５６）。
【００６１】
中間モジュール３４の出力部３４Ａは、読取ったデータ取得方法に沿って、選択された外部装置２０Ａから、選択された識別情報によって識別されるデータを取得する（ＳＥＱ１５８、ＳＥＱ１６０、ＳＥＱ１６２）。そして、出力部３４Ａは、取得したデータを、プラグイン部３６Ａへ出力する（ＳＥＱ１６４）。なお、データ取得が失敗した場合、本シーケンスを終了すればよい。
【００６２】
プラグイン部３６Ａの変換部３８は、中間モジュール３４から受け付けたデータを、スキャナドライバで処理可能な画像データに変換する（ＳＥＱ１６６）。そして、プラグイン部３６Ａの変換部３８は、変換後の画像データを、中間モジュール３４へ出力する（ＳＥＱ１６８）。
【００６３】
中間モジュール３４の出力部３４Ａは、プラグイン部３６Ａから受け付けた画像データを、仮想スキャナドライバ３２へ出力する（ＳＥＱ１７０）。仮想スキャナドライバ３２のスキャナドライバＩ／Ｆ部３２Ａは、中間モジュール３４から受け付けた画像データを、アプリケーション３０へ出力する（ＳＥＱ１７２）。アプリケーション３０は、受付けた画像データを、ＵＩ部２４の表示部２６へ表示する（ＳＥＱ１７４）。そして、本シーケンスを終了する。
【００６４】
以上説明したように、本実施の形態の情報処理システム１０は、情報処理装置１２を備える。情報処理装置１２は、スキャナドライバＩ／Ｆ部３２Ａと、格納部３７と、プラグイン部３６と、受付部３２Ｂと、出力部３４Ａと、管理部３４Ｂと、を備える。
【００６５】
スキャナドライバＩ／Ｆ部３２Ａは、アプリケーション３０から呼出され、スキャナドライバで用いる規約に沿って動作する。プラグイン部３６（３６Ａ、３６Ｂ）は、外部装置２０（２０Ａ、２０Ｂ）に対応して設けられている。プラグイン部３６は、格納部３７と、変換部３８と、を含む。格納部３７は、データを記憶した外部装置２０へのアクセス方法を示すアクセス情報を格納する。変換部３８は、外部装置２０から取得されたデータを、スキャナドライバで処理可能な画像データに変換する。受付部３２Ｂは、アクセス対象の外部装置２０の選択を受け付ける。出力部３４Ａは、選択された外部装置２０に対応するプラグイン部３６におけるアクセス情報を用いて、選択された外部装置２０からデータを取得し、選択された外部装置２０に対応するプラグイン部３６へ出力する。管理部３４Ｂは、プラグイン部３６を管理し、選択された外部装置２０に対応するプラグイン部３６で変換された画像データを、スキャナドライバＩ／Ｆ部３２Ａを介してアプリケーション３０へ出力する。
【００６６】
このように、本実施の形態の情報処理システム１０では、情報処理装置１２が、外部装置２０の各々に対応するプラグイン部３６と、複数のプラグイン部３６の各々を管理する中間モジュール３４と、を備える。そして、情報処理装置１２のアプリケーション３０は、スキャナドライバＩ／Ｆ部３２Ａを用いて、中間モジュール３４およびアクセス対象の外部装置２０に対応するプラグイン部３６を介して、アクセス対象の外部装置２０から画像データを取得する。
【００６７】
従って、本実施の形態の情報処理装置１２では、スキャナドライバインターフェースを用いて、スキャナ以外の外部装置２０から容易に画像を読取ることができる。
【００６８】
また、出力部３４Ａは、複数のプラグイン部３６間で共通の処理を実行する。
【００６９】
例えば、外部装置２０は、ＨＴＴＰサーバであり、出力部３４Ａが実行する共通の処理は、ＨＴＴＰ処理である。
【００７０】
また、外部装置２０は、クラウド１８上に設けられたクラウドサーバである。
【００７１】
なお、本実施の形態では、外部装置２０は、クラウドサービス機能を実行するサーバである場合を一例として説明した。しかし、外部装置２０は、クラウドサービス機能を実行するサーバに限定されない。例えば、外部装置２０は、ＨＴＴＰサーバ機能を持ったＰＣやスマートデバイスであってもよい。
【００７２】
なお、制御部２２における、仮想スキャナドライバ３２と中間モジュール３４とは、１つのモジュールとして一体的に構成したプログラムであってもよいし、別々のモジュールとして構成したプログラムであってもよい。
【００７３】
しかし、仮想スキャナドライバ３２と中間モジュール３４とは、別々のモジュールとして構成したプログラムであることが好ましい。仮想スキャナドライバ３２と中間モジュール３４とを、別々のモジュールで構成することによって、変更されにくい部分と、変更されやすい部分と、を別々のモジュールで構成することができる。このため、保守作業の効率化を図ることができる。
【００７４】
具体的には、仮想スキャナドライバ３２のスキャナドライバＩ／Ｆ部３２Ａは、古くから用いられている規格であり、変更されにくい。一方、ＨＴＴＰクライアント部として機能する出力部３４Ａは、頻繁に変更される可能性が高い。例えば、ＳＳＬ（Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔｓ  Ｌａｙｅｒ）通信を行う際には、ＯｐｅｎＳＳＬなどのプログラムが使われ、出力部３４Ａが頻繁にセキュリティアップデートされる。このため、仮想スキャナドライバ３２と中間モジュール３４とは、別々のモジュールとして構成したプログラムであることが好ましい。
【００７５】
なお、情報処理装置１２は、スキャナ１４から画像データを取得する場合には、スキャナドライバＩ／Ｆ部３２Ａを用いて、公知の方法により画像データを取得すればよい。
【００７６】
（第２の実施の形態）
図１は、本実施の形態の情報処理システム１０Ａの一例を示す図である。情報処理システム１０Ａは、情報処理装置１２Ａと、スキャナ１４と、外部装置２０と、を備える。スキャナ１４および外部装置２０は、第１の実施の形態と同様である。
【００７７】
情報処理装置１２Ａは、公知のパーソナルコンピュータなどである。情報処理装置１２Ａは、ネットワーク１６に接続されている。ネットワーク１６は、第１の実施の形態と同様である。
【００７８】
図１０は、情報処理装置１２Ａおよび外部装置２０の機能ブロック図である。外部装置２０の機能ブロック図は、第１の実施の形態と同様である。
【００７９】
情報処理装置１２Ａは、制御部２２Ａと、ＵＩ部２４と、を備える。ＵＩ部２４および制御部２２Ａは、データや信号授受可能に接続されている。ＵＩ部２４は、第１の実施の形態と同様である。
【００８０】
制御部２２Ａは、ＣＰＵ、ＲＯＭ、およびＲＡＭなどを含んで構成されるコンピュータである。制御部２２Ａは、情報処理装置１２Ａ全体を制御する。なお、制御部２２Ａは、ＣＰＵ以外の回路などであってもよい。
【００８１】
制御部２２Ａは、アプリケーション３０と、仮想スキャナドライバ３２と、中間モジュール３３と、プラグイン部３６と、を備える。プラグイン部３６は、情報処理装置１２Ａと通信可能な外部装置２０の各々に対応して設けられている。このため、制御部２２Ａは、複数のプラグイン部３６を含む。アプリケーション３０、仮想スキャナドライバ３２、中間モジュール３３、および複数のプラグイン部３６の一部または全ては、例えば、ＣＰＵなどの処理装置にプログラムを実行させること、すなわち、ソフトウェアにより実現してもよいし、ＩＣなどのハードウェアにより実現してもよいし、ソフトウェアおよびハードウェアを併用して実現してもよい。
【００８２】
アプリケーション３０、仮想スキャナドライバ３２、およびプラグイン部３６は、第１の実施の形態と同様である。すなわち、制御部２２Ａは、中間モジュール３４に代えて中間モジュール３３を備えた以外は、第１の実施の形態の制御部２２と同様である。
【００８３】
中間モジュール３３は、複数のプラグイン部３６の各々を管理し、仮想スキャナドライバ３２と複数のプラグイン部３６の各々との間のデータのやり取りを管理する。
【００８４】
中間モジュール３３は、出力部３４Ａと、管理部３４Ｂと、インストール部３４Ｃと、を含む。出力部３４Ａおよび管理部３４Ｂは、第１の実施の形態と同様である。すなわち、中間モジュール３３は、インストール部３４Ｃを更に備えた以外は、第１の実施の形態の中間モジュール３４と同様である。
【００８５】
インストール部３４Ｃは、新たなプラグイン部３６を情報処理装置１２Ａへインストールする。新たなプラグイン部３６とは、制御部２２Ａで未対応の外部装置２０に対応するプラグイン部３６である。
【００８６】
図１１は、インストール部３４Ｃの機能ブロック図である。インストール部３４Ｃは、格納部３５Ａと、受付部３５Ｂと、実行部３５Ｄと、を含む。
【００８７】
格納部３５Ａは、インストールパッケージを記憶する。インストールパッケージは、新たにインストールする対象のプラグイン部３６をインストールするための各種データやファイルを含む。
【００８８】
図１２は、インストールパッケージ３５Ｃの一例を示す図である。インストールパッケージ３５Ｃは、インストール設定ファイル４４と、プラグイン実行ファイル４５と、を含む。インストール設定ファイル４４は、新たにインストールするプラグイン部３６と、該プラグイン部３６を制御部２２Ａで用いることが可能となるように制御部２２Ａ内に行う各種設定を定めたファイルである。
【００８９】
図１３は、インストール設定ファイル４４の一例を示す図である。インストール設定ファイル４４には、インストール設定ファイル４４によってインストールされるプラグイン部３６のプラグイン名や、対応する外部装置２０の識別情報（例えば、ＵＲＬ）などが含まれる。インストール設定ファイル４４は、例えば、ＪＳＯＮ（ＪａｖａＳｃｒｉｐｔ（登録商標）  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ）形式で表される（図１３参照）。
【００９０】
図１２に戻り、プラグイン実行ファイル４５は、対応するインストール設定ファイル４４に沿って、新たなプラグイン部３６を制御部２２Ａにインストールすると共に、インストール設定ファイル４４に設定された各種設定を行う。プラグイン実行ファイル４５は、例えば、．ｅｘｅファイルなどの、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）上で実行可能な形式のファイルである。
【００９１】
情報処理装置１２Ａのインストール部３４Ｃは、ネットワーク１６に新たな外部装置２０が接続されたとき、または、ユーザによる入力部２８の操作指示によってインストールが指示されたときに、各外部装置２０に対応するインストールパッケージ３５Ｃを該外部装置２０からダウンロードし、格納部３５Ａに予め格納する。
【００９２】
すなわち、格納部３５Ａは、新たにインストールする対象の外部装置２０の各々に対応するインストールパッケージ３５Ｃを予め格納する。
【００９３】
受付部３５Ｂは、インストール対象のインストールパッケージ３５Ｃの選択をＵＩ部２４から受け付ける。例えば、受付部３５Ｂは、格納部３５Ａに格納されているインストールパッケージ３５Ｃの各々に対応する外部装置２０の識別情報の一覧を表示部２６に表示する。ユーザは、入力部２８を操作することによって、表示された外部装置２０の識別情報の一覧の中から、新たにインストールする対象のプラグイン部３６に対応する外部装置２０の識別情報を選択する。そして、受付部３５Ｂは、選択された識別情報に対応する外部装置２０のインストールパッケージ３５Ｃの選択を受け付ける。
【００９４】
実行部３５Ｄは、選択を受け付けたインストールパッケージ３５Ｃにおけるプラグイン実行ファイル４５を実行する。これにより、実行部３５Ｄは、該インストールパッケージ３５Ｃにおけるインストール設定ファイル４４に沿って新たなプラグイン部３６をインストールすると共に、インストール設定ファイル４４に設定された各種設定を行う。
【００９５】
次に、本実施の形態の情報処理システム１０Ａで実行する情報処理の流れを説明する。
【００９６】
本実施の形態の情報処理システム１０Ａでは、情報処理システム１０と同様の処理を行う。すなわち、情報処理装置１２Ａのアプリケーション３０が仮想スキャナドライバ３２を呼び出す。仮想スキャナドライバ３２は、中間モジュール３３と連携して、選択された外部装置２０に対応するプラグイン部３６を呼び出す。そして、制御部２２Ａは、プラグイン部３６、中間モジュール３３、および仮想スキャナドライバ３２を介して、画像データを外部装置２０から取得する。
【００９７】
本実施の形態では、情報処理装置１２Ａは、更に、新たなプラグイン部３６のインストール処理を実行する。
【００９８】
図１４は、インストール処理の手順を示すフローチャートである。
【００９９】
まず、受付部３５Ｂが、インストール対象のインストールパッケージ３５Ｃの選択をＵＩ部２４から受け付ける（ステップＳ２００）。次に、実行部３５Ｄが、選択を受け付けたインストールパッケージ３５Ｃを読取る（ステップＳ２０２）。そして、実行部３５Ｄは、読取ったインストールパッケージ３５Ｃにおけるプラグイン実行ファイル４５を実行することで、新たなプラグイン部３６をインストールする（ステップＳ２０４）。そして、本ルーチンを終了する。
【０１００】
以上説明したように、本実施の形態の情報処理装置１２Ａは、第１の実施の形態の情報処理装置１２に更にインストール部３４Ｃを備えた構成である。インストール部３４Ｃは、新たなプラグイン部３６をインストールする。
【０１０１】
このため、本実施の形態の情報処理装置１２Ａは、第１の実施の形態の効果に加えて、新たな外部装置２０がネットワーク１６に接続された場合であっても、情報処理装置１２Ａは、新たな外部装置２０から、スキャナドライバインターフェースを用いて容易に画像を読取ることができる。
【０１０２】
（第３の実施の形態）
次に、上記実施の形態における情報処理装置１２、１２Ａ、外部装置２０（２０Ａ、２０Ｂ）のハードウェア構成を説明する。
【０１０３】
図１５は、上記実施の形態における情報処理装置１２、１２Ａ、外部装置２０（２０Ａ、２０Ｂ）のハードウェア構成の一例を示す図である。
【０１０４】
上記実施の形態における情報処理装置１２、１２Ａ、外部装置２０（２０Ａ、２０Ｂ）は、ＣＰＵ６０、ＲＡＭ６２、ＲＯＭ６４、およびＩ／Ｆ（Ｉｎｔｅｒｆａｃｅ）６６を有する。ＣＰＵ６０、ＲＡＭ６２、ＲＯＭ６４、および、Ｉ／Ｆ６６は、バス７２により相互に接続されており、通常のコンピュータを利用したハードウェア構成となっている。また、Ｉ／Ｆ６６には、公知の表示装置などのＬＣＤ６８や、ユーザによる各種操作を受け付ける操作部７０が接続されている。
【０１０５】
上記実施の形態における情報処理装置１２、１２Ａ、外部装置２０（２０Ａ、２０Ｂ）で実行される上記各種処理を実行するためのプログラムは、ＲＯＭ等に予め組み込んで提供される。
【０１０６】
なお、上記実施の形態における情報処理装置１２、１２Ａ、外部装置２０（２０Ａ、２０Ｂ）で実行される上記各種処理を実行するためのプログラムは、これらの装置にインストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記憶媒体に記憶されて提供するように構成してもよい。
【０１０７】
また、上記実施の形態における情報処理装置１２、１２Ａ、外部装置２０（２０Ａ、２０Ｂ）で実行される上記各種処理を実行するためのプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、上記実施の形態における情報処理装置１２、１２Ａ、外部装置２０（２０Ａ、２０Ｂ）で実行される上記各種処理を実行するためのプログラムを、インターネット等のネットワーク経由で提供または配布するように構成してもよい。
【０１０８】
上記実施の形態における情報処理装置１２、１２Ａ、外部装置２０（２０Ａ、２０Ｂ）で実行される上記各種処理を実行するためのプログラムは、上述した各部を含むモジュール構成となっている。実際のハードウェアとしてはＣＰＵがＲＯＭ等の記憶媒体から各プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、主記憶装置上に生成されるようになっている。
【０１０９】
なお、上記には、実施の形態を説明したが、上記実施の形態は、例として提示したものであり、発明の範囲を限定すること、は意図していない。これら新規な実施の形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施の形態は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１１０】
１０、１０Ａ  情報処理システム
１２、１２Ａ  情報処理装置
２０、２０Ａ、２０Ｂ  外部装置
３０  アプリケーション
３２Ａ  スキャナドライバＩ／Ｆ部
３２Ｂ  受付部
３４Ａ  出力部
３４Ｃ  インストール部
３６、３６Ａ、３６Ｂ  プラグイン部
３７  格納部
３８  変換部
【先行技術文献】
【特許文献】
【０１１１】
【特許文献１】特開２００６−３３３０５９号公報
【図１】
2016174333.tif 000003
【図２】
2016174333.tif 000004
【図３】
2016174333.tif 000005
【図４】
2016174333.tif 000006
【図５】
2016174333.tif 000007
【図６】
2016174333.tif 000008
【図７】
2016174333.tif 000009
【図８】
2016174333.tif 000010
【図９】
2016174333.tif 000011
【図１０】
2016174333.tif 000012
【図１１】
2016174333.tif 000013
【図１２】
2016174333.tif 000014
【図１３】
2016174333.tif 000015
【図１４】
2016174333.tif 000016
【図１５】
2016174333.tif 000017