以下、図面に基づいて本発明の実施の形態を説明する。図1は、本発明の実施の形態における情報処理システムの構成例を示す図である。同図の情報処理システム1において、一台以上の画像形成装置10と、一台以上のユーザ端末20とは、LAN(Local Area Network)又はインターネット等のネットワーク(有線又は無線の別は問わない。)を介して接続されている。
画像形成装置10は、印刷、スキャン、コピー、及びFAX送受信等の機能を一台の筐体によって実現する複合機である。但し、いずれか一つの機能を実現する装置(プリンタ、スキャナ、コピー機、ファクシミリ等)を画像形成装置10として用いてもよい。本実施の形態においては、スキャン機能を実現するためのハードウェアを備えていればよい。
ユーザ端末20は、ユーザが利用する個人端末であり、ソフトウェアプログラムのインストール及び実行が可能であり、通信機能を有するものであれば、特定の装置に限定されない。ユーザ端末20の具体例として、デスクトップ型のPC(Personal Computer)、ノートPC、PDA(Personal Digital Assistance)、又は携帯電話等が挙げられる。
ユーザ端末20のソフトウェア構成について説明する。図1において、ユーザ端末20は、スキャンウィジェット21a、スキャン配信ウィジェット21b、スキャン翻訳ウィジェット21c、印刷ウィジェット21d、ウィジェットマネージャ22、及びOS25等を有する。
スキャンウィジェット21a、スキャン配信ウィジェット21b、スキャン翻訳ウィジェット21c、及び印刷ウィジェット21dは、本実施の形態において、「ウィジェット21」として総称されるアプリケーションプログラムである。近年では、ウィジェット(Widget)又はガジェット(Gadget)とよばれる手軽なアプリケーションが流通している。本実施の形態では、手軽にインストールして利用可能なアプリケーションという程度の意味においてこれらのアプリケーションをウィジェット21と呼ぶ(すなわち、技術的な意義において限定する趣旨ではない)。但し、本実施の形態において、各ウィジェット21は、ネットワーク上又はユーザ端末20において提供されているサービスを利用して、所定の機能(例えば、ワークフロー等の一連の処理フロー)を実現するという点において共通する。
スキャンウィジェット21aは、画像形成装置10にスキャンを実行させ、スキャンされた画像データをユーザ端末20内に保存するウィジェット21である。スキャン配信ウィジェット21bは、画像形成装置10にスキャンを実行させ、スキャンされた画像データを所定の宛先に配信するウィジェット21である。スキャン翻訳ウィジェット21cは、画像形成装置10にスキャンを実行させ、スキャンされた画像データにOCR(Optical Character Recognition)処理を実行し、OCR処理の結果として出力されるテキストデータに対して翻訳処理を実行するウィジェット21である。印刷ウィジェット21dは、ユーザ端末20内に保存されている文書データの印刷を画像形成装置10に実行させるウィジェット21である。
ウィジェットマネージャ22は、ウィジェット21のフレームワークとして位置付けられ、ウィジェット21と画像形成装置10との間の通信の仲介等を行う。各ウィジェット21は、ウィジェットマネージャ22によって規定されるインタフェース及び処理手順を備える必要がある。換言すれば、ウィジェットマネージャ22と協調して動作するアプリケーションが、本実施の形態におけるウィジェット21である。
OS25は、いわゆるOS(Operating System)である。ユーザ端末20上の各ソフトウェアは、OS25上においてプロセス又はスレッドとして動作する。
画像形成装置10のソフトウェア構成について説明する。図1において、画像形成装置10は、標準アプリ121、SDKアプリ122、SDKプラットフォーム123、コントロールサービス124、及びOS125等を有する。
標準アプリ121は、画像形成装置10に標準的に(出荷時に予め)実装されているアプリケーションの集合である。同図では、スキャンアプリ1211、印刷アプリ1212、コピーアプリ1213、及びFAXアプリ1214が例示されている。スキャンアプリ1211は、スキャンジョブを実行する。印刷アプリ1212は印刷ジョブを実行する。コピーアプリ1213は、コピージョブを実行する。FAXアプリ1214は、FAXの送信ジョブ又は受信ジョブを実行する。
コントロールサービス124は、各種のハードウェアリソース等を制御するための機能を上位アプリケーション等に対して提供するソフトウェアモジュール群であり、例えば、ネットワーク通信に関する機能、スキャナの制御機能、プリンタの制御機能、メモリの管理機能等を有する。
SDKアプリ122は、画像形成装置10の出荷後において、画像形成装置10の機能拡張を図るためのプラグインとして追加的にインストールされるアプリケーションである。同図では、SDKアプリ122として、プロバイダアプリ1221が例示されている。プロバイダアプリ1221は、ウィジェット21を画像形成装置10より操作可能とするための処理を実行する。
SDKプラットフォーム123は、SDKアプリ122の実行環境を提供する。各SDKアプリ122は、SDKプラットフォーム123が提供するAPI(Application Program Interface)を利用して開発される。例えば、SDKプラットフォーム123は、スキャン機能を利用させるためのインタフェース、印刷機能を利用させるためのインタフェース、コピー機能を利用させるためのインタフェース等をSDKアプリ122に提供する。なお、SDKプラットフォーム123のAPIは公開されており、サードベンダ等によってもSDKアプリ122は開発されうる。
OS125は、いわゆるOS(Operating System)である。画像形成装置10上の各ソフトウェアは、OS125上においてプロセス又はスレッドとして動作する。
続いて、各装置のハードウェア構成について説明する。図2は、本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。図2において、画像形成装置10は、コントローラ11、スキャナ12、プリンタ13、モデム14、操作パネル15、ネットワークインタフェース16、及びSDカードスロット17等のハードウェアを有する。
コントローラ11は、CPU111、RAM112、ROM113、及びHDD114等を有する。ROM113には、各種のプログラムやプログラムによって利用されるデータ等が記録されている。RAM112は、プログラムをロードするための記憶領域や、ロードされたプログラムのワーク領域等として用いられる。CPU111は、RAM112にロードされたプログラムを処理することにより、各種の機能を実現する。HDD114には、プログラムやプログラムが利用する各種のデータ等が記録される。
スキャナ12は、原稿より画像データを読み取るためのハードウェアである。プリンタは13、印刷データを印刷用紙に印刷するためのハードウェアである。モデム14は、電話回線に接続するためのハードウェアであり、FAX通信による画像データの送受信を実行するために用いられる。操作パネル15は、ユーザからの入力の受け付けを行うめのボタン等の入力手段や、液晶パネル等の表示手段を備えたハードウェアである。ネットワークインタフェース16は、LAN等のネットワーク(有線又は無線の別は問わない。)に接続するためのハードウェアである。SDカードスロット17は、SDカード80に記録されたプログラムを読み取るために利用される。すなわち、画像形成装置10では、ROM113に記録されたプログラムだけでなく、SDカード80に記録されたプログラムもRAM112にロードされ、実行されうる。なお、他の記録媒体(例えば、CD−ROM又はUSB(Universal Serial Bus)メモリ等)によってSDカード80が代替されてもよい。すなわち、SDカード80の位置付けに相当する記録媒体の種類は、所定のものに限定されない。この場合、SDカードスロット17は、記録媒体の種類に応じたハードウェアによって代替されればよい。
図3は、本発明の実施の形態におけるユーザ端末のハードウェア構成例を示す図である。図3のユーザ端末20は、それぞれバスBで相互に接続されているドライブ装置200と、補助記憶装置202と、メモリ装置203と、CPU204と、インタフェース装置205と、表示装置206と、入力装置207とを有する。
ユーザ端末20での処理を実現するプログラムは、CD−ROM又はメモリカード等の記録媒体201によって提供される。プログラムを記録した記録媒体201がドライブ装置200にセットされると、プログラムが記録媒体201からドライブ装置200を介して補助記憶装置202にインストールされる。但し、プログラムのインストールは必ずしも記録媒体201より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置202は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
メモリ装置203は、プログラムの起動指示があった場合に、補助記憶装置202からプログラムを読み出して格納する。CPU204は、メモリ装置203に格納されたプログラムに従ってユーザ端末20に係る機能を実現する。インタフェース装置205は、ネットワーク接続用のインタフェース、USB(Universal Serial Bus)接続用のインタフェース、Bluetooth(登録商標)等の無線通信用のインタフェース等、各種通信用のインタフェースである。表示装置206はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置207はキーボード、マウス、又はボタン等で構成され、様々な操作指示を入力させるために用いられる。
続いて、ウィジェット21、ウィジェットマネージャ22、及びプロバイダアプリ1221について更に詳しく説明する。図4は、第一の実施の形態におけるウィジェット、ウィジェットマネージャ、及びプロバイダアプリの機能構成例を示す図である。
同図に示されるように、各ウィジェット21は、ウィジェットUI部211、ウィジェット情報送信部212、連携部213、ロジック部214、及び属性情報管理ファイル215等を有する。
ウィジェットUI部211は、ウィジェット21関する各種の表示画面をユーザ端末20の表示装置206に表示させる。ウィジェット情報送信部212は、ウィジェット21が起動されたときに、ウィジェット情報の登録要求をウィジェットマネージャ22に送信する。ウィジェット情報にはウィジェット21の実行に必要な情報が含まれる。連携部213は、プロバイダアプリ1221との連携のためのコミュニケーション(情報のやりとり等)を制御する。属性情報管理ファイル215は、ウィジェット21対する設定情報等を格納するファイルである。ロジック部214は、各ウィジェット21に固有の機能が実装される部分である。例えば、スキャンウィジェット21aのロジック部215は、スキャンされた画像データの保存処理を実行する。スキャン配信ウィジェット21bのロジック部215は、スキャンされた画像データの配信処理を実行する。スキャン翻訳ウィジェット21cのロジック部は、スキャンされた画像データに対するOCR処理、及びOCR結果に対する翻訳処理を実行する。
ウィジェットマネージャ22は、ウィジェット情報登録部221、広告部222、ウィジェット情報提供部223、仲介部224、画像入力制御部225、画像転送部226、及びウィジェット情報管理テーブル227等を有する。
ウィジェット情報登録部221は、ウィジェット21より送信されるウィジェット情報の登録要求を受信し、当該ウィジェット情報をウィジェット情報管理テーブル227に保存する。ウィジェット情報管理テーブル227には、ユーザ端末20において起動されている各ウィジェット21のウィジェット情報が登録されるテーブルであり、ユーザ端末20の補助記憶装置202に記録される。
広告部222は、ウィジェット情報登録部221によって受信されたウィジェット情報に含まれるユーザID等をネットワーク上に広告(ブロードキャスト又はマルチキャスト等)する。広告は、ユーザ単位(ユーザID単位)で発行される。具体的には、ユーザ端末20内における或るウィジェット21の起動に応じてユーザAに関して広告が発行された後、当該ユーザ端末20内において、他のウィジェット21が起動されたとしても当該ウィジェット情報に応じた広告は発行されない。本実施の形態では、便宜上、ユーザ端末20とユーザとは一対一に対応する。したがって、広告部222による広告は、何らかのウィジェット21を利用可能になったユーザが新たに発生したことを画像形成装置10に通知するための情報である。但し、ウィジェット情報単位で広告が行われてもよい。この場合、同一ユーザについて重複して広告が発行されることになるが、重複の排除は画像形成装置10側で行えばよい。
ウィジェット情報提供部223は、画像形成装置10からの要求に応じ、ウィジェット情報管理テーブル227に登録されているウィジェット情報を画像形成装置10に提供(送信)する。仲介部224は、ウィジェット21とプロバイダアプリ1221とのコミュニケーションを仲介又は中継する。画像入力制御部225は、インタフェース装置205を介して接続される外部機器からの画像データの入力処理又は取得処理を制御する。インタフェース装置205を介して接続される外部機器としては、例えば、デジタルカメラ(デジタルスチルカメラ)やモバイルデバイス等が挙げられる。画像転送部226は、画像入力制御部225によって入力又は取得された画像データの転送先とするウィジェット21を判定し、当該ウィジェット21に当該画像データを転送する。
プロバイダアプリ1221は、ユーザ検知部131、UI制御部132、ウィジェット情報取得部133、ウィジェット連携部134、機能制御部135、及びユーザ管理テーブル136等を有する。
ユーザ検知部131は、ウィジェットマネージャ22より発行される広告に基づいて、ウィジェット21を利用可能なユーザの存在を検知し、広告に含まれているユーザID等をユーザ管理テーブル136に登録する。ユーザ管理テーブル136は、利用可能なウィジェット21がネットワーク上に存在するユーザの一覧を管理するテーブルである。
UI制御部132は、ユーザよりウィジェット21の操作指示等の入力を受け付ける。すなわち、ウィジェット21は、ユーザ端末20に配置されているが、画像形成装置10の操作パネルからも操作されうる。ウィジェット情報取得部133は、ユーザ管理テーブル136に登録されているユーザの中から選択されたユーザに属するウィジェット21のウィジェット情報をウィジェットマネージャ22より取得する。ウィジェット連携部134は、ウィジェット21とのコミュニケーションを制御する。機能制御部135は、ウィジェット21から要求された機能の実行を制御する。機能を実現するための処理は、標準アプリ121や他のSDKアプリ122に委譲される。
以下、情報処理システム1の処理手順について説明する。本実施の形態では、スキャンウィジェット21aに関する処理手順を代表例として説明する。
ユーザ端末20においてユーザによって入力されるスキャンウィジェット21aの起動指示に応じ、ウィジェットUI部211は、スキャンウィジェット21aのメイン画面を表示装置206に表示させる。
図5は、スキャンウィジェットのメイン画面の表示例を示す図である。同図において、スキャンウィジェット21aのメイン画面530の右隣には、スキャン設定画面540が付属している。スキャン設定画面540の詳細な表示例は図中右側に示されている。同図の例では、スキャン設定画面540において、解像度、カラーモード(カラー又はモノクロの別)、及びスキャンされた画像データ(スキャン画像)の保存場所としてユーザ端末20のファイルシステム上におけるパス名等の設定が可能とされている。但し、これらの設定項目はあくまでも例示であり、設定項目の種類は所定のものに限定されない。
スキャン設定画面540において各設定項目の値が設定されると、ウィジェットUI部211は、設定された情報(以下、「スキャン設定情報」という。)をメモリ装置203に記録しておく。
なお、スキャン設定画面540の各項目に表示される初期値は、属性情報管理ファイル215より取得される。すなわち、属性情報管理ファイル215には、ユーザ所望のスキャン設定情報が予め含まれている。したがって、必ずしもスキャン設定画面540は表示されなくてもよい。スキャン設定画面540を表示させない場合、属性情報管理ファイル215より取得されたスキャン設定情報がメモリ装置203にロードされればよい。
続いて、ウィジェット情報送信部212は、上記のステップにおいて取得された情報に基づいてスキャンウィジェット21aのウィジェット情報を生成し、当該ウィジェット情報(画像形成装置10に対するスキャンの実行要求)の登録要求をウィジェットマネージャ22に送信する。
図6は、スキャンウィジェットのウィジェット情報の例を示す図である。同図において、スキャンウィジェット21aのウィジェット情報は、ウィジェットID、ユーザID、連携機能識別子、ウィジェットアドレス、表示名、及びスキャン設定情報等を含む。
ウィジェットIDは、各ウィジェット21を一意に識別する識別情報である。ユーザIDは、スキャンウィジェット21aの所有者であるユーザの識別情報である。連携機能識別子は、スキャンウィジェット21aと連携する画像形成装置10が有している必要のある機能(換言すれば、スキャンウィジェット21aが利用する機能)を識別するための情報である。連携機能識別子の一例として「print」、「scan」等が挙げられる。「print」は、印刷機能を示す。「scan」は、スキャン機能を示す。スキャンウィジェット21aは、画像形成装置10のスキャン機能を利用する。したがって、図6の例では、「scan」が連携機能識別子とされている。ウィジェットアドレスは、ネットワーク通信において各ウィジェットを一意に識別するための識別情報(例えば、URL等)である。表示名は、スキャンウィジェット21aの名前の表示用の文字列である。なお、ウィジェットID、ユーザID、連携機能識別子、ウィジェットアドレス、及び表示名は、例えば、属性情報管理ファイル215より取得される。
スキャン設定情報は、スキャン設定画面540において設定されたスキャン設定情報、又は属性情報管理ファイル215より取得されたスキャン設定情報である。
続いて、ウィジェット情報の送信に応じて実行される処理手順について説明する。図7は、ウィジェット情報の送信時の処理手順を説明するためのシーケンス図である。
ステップS111において、スキャンウィジェット21aのウィジェット情報送信部212より送信されたウィジェット情報(図6参照)は、ウィジェットマネージャ22のウィジェット情報登録部221によって受信される。ウィジェット情報登録部221は、受信されたウィジェット情報に含まれているユーザIDに対応するウィジェット情報管理テーブル227に当該ウィジェット情報を登録する。当該ユーザIDに対応するウィジェット情報管理テーブル227が存在しない場合、ウィジェット情報登録部221は、当該ユーザIDに対応するウィジェット情報管理テーブル227を生成し、生成されたウィジェット情報管理テーブル227にウィジェット情報を登録する(S112)。
ウィジェット情報管理テーブル227が新たに生成された場合(すなわち、受信されたウィジェット情報に含まれているユーザIDに係るユーザについて、初めてウィジェット情報が登録された場合)、広告部222は、受信されたウィジェット情報に含まれているユーザIDと、ウィジェット情報取得用URL(Uniform Resource Locator)とを含む広告をネットワーク上に発行する(S113)。ウィジェット情報取得用URLとは、ウィジェット情報管理テーブル227ごとに一意なURLである。例えば、ウィジェット情報登録部221は、ウィジェット情報管理テーブル227を生成した際に、当該ウィジェット情報管理テーブル227に対するウィジェット情報取得用URLを生成する。ここで、ウィジェット情報管理テーブル227は、ユーザごとに生成される。したがって、ウィジェット情報取得用URLはユーザごとに一意となる。
続いて、プロバイダアプリ1221のユーザ検知部131は、広告を受信すると、当該広告に含まれているユーザID及びウィジェット情報取得用URLをユーザ管理テーブル136に登録する(S114)。
図8は、ユーザ管理テーブルの構成例を示す図である。同図に示されるように、ユーザ管理テーブル136は、ユーザIDとウィジェット情報取得用URLとの組(ペア)を管理する。同図では、ユーザA及びユーザBについてレコードが登録されている例が示されている。なお、ユーザ管理テーブル136は、例えば、HDD114に記憶されている。
一方、スキャンウィジェット21aは、ウィジェット情報を送信した後、画像形成装置10において画像データがスキャンされたことを確認するためのポーリングを行い、画像データの転送(返信)を待機する。具体的には、スキャンウィジェット21aの連携部213は、スキャンされた画像データ(スキャン画像)の取得要求をウィジェットマネージャ22の仲介部224に送信する(S115)。仲介部224は、当該取得要求に対する応答を行う(S116)。この段階では、画像データはスキャンされていないため、スキャン画像は無いことを示す応答が返信される。その後もスキャン画像の取得要求(S115)は一定間隔ごとに繰り返し行われる。スキャン画像の取得要求には、ウィジェットIDを含めるようにしてもよい。
なお、スキャン配信ウィジェット21b、スキャン翻訳ウィジェット21c、及び印刷ウィジェット21dについても、起動に応じて図7と同様の処理が実行される。但し、印刷ウィジェット21dは、スキャン画像の取得要求は行わない。
ユーザ端末20においてスキャンウィジェット21aを起動させた後、ユーザは、スキャンウィジェット21aを利用するために画像形成装置10の設置場所へ移動する。なお、複数の画像形成装置10がネットワークに接続されている場合、同一の広告が各画像形成装置10のユーザ検知部131によって受信され、それぞれの画像形成装置10のユーザ管理テーブル136にユーザID及びウィジェット情報取得用URLが登録される。したがって、ユーザは、複数の画像形成装置10のいずれからも各ウィジェット21を利用することができる。
続いて、画像形成装置10におけるユーザによる操作に応じて実行される処理について説明する。図9は、スキャンウィジェット実行時の処理手順を説明するためのシーケンス図である。
ユーザによって操作パネル15を介してウィジェットの利用指示が入力されると(S201)、プロバイダアプリ1221のUI制御部132は、ユーザ管理テーブル136に登録されている情報に基づいてユーザ選択画面を操作パネル15に表示させる(S202)。
図10は、ユーザ選択画面の表示例を示す図である。同図に示されるユーザ選択画面610には、ユーザIDごとにボタンが表示されている。同図では、ユーザAに対応するボタン611とユーザBに対応するボタン612とが表示されている。
続いて、ユーザは、ユーザ選択画面610において自らのユーザIDに対応するボタンを押下する(S203)。ボタンの押下に応じ、ウィジェット情報取得部133は、選択されたボタンに対応するユーザIDに関連付けられているウィジェット情報取得用URLをユーザ管理テーブル136より取得する。なお、ユーザIDに対応するボタンの押下に応じ、ユーザの認証を行い、ユーザが認証された場合にのみ以降の処理が実行されるようにしてもよい。
続いて、ウィジェット情報取得部133は、選択されたユーザIDに対応するウィジェット情報取得用URL宛に、ウィジェット情報の取得要求を送信する(S204)。ウィジェット情報の取得要求は、ウィジェットマネージャ22のウィジェット情報提供部223によって受信される。ウィジェット情報提供部223は、ウィジェット情報取得用URLに対応するウィジェット情報管理テーブル227(すなわち、画像形成装置10を操作中のユーザに対応するウィジェット情報管理テーブル227)に登録されているウィジェット情報の一覧を取得し、当該一覧をプロバイダアプリ1221に送信する(S205)。ウィジェット情報の一覧の送信に際し、ウィジェット情報提供部223は、プロバイダアプリ1221と各ウィジェット21との通信を中継するためのURL(以下、「ウィジェット中継用URL」という。)をウィジェットごと(ウィジェット情報ごと)に一意に生成する。ウィジェット情報提供部223は、ウィジェットごとに生成されたウィジェット中継用URLを、各ウィジェットに対応するウィジェット情報に付加し、ウィジェット中継用URLが付加されたウィジェット情報の一覧をプロバイダアプリ1221に送信する。したがって、ステップS205において送信されるウィジェット情報は、例えば、図11に示されるような構成を有する。
図11は、ウィジェットマネージャからプロバイダアプリに送信されるスキャンウィジェットのウィジェット情報の構成例を示す図である。
図11に示されるウィジェット情報は、図6のウィジェット情報に対してウィジェット中継用URLが付加されたものである。ステップS205では、同図に示されるようなウィジェット情報の一覧が送信される。ここでは、ウィジェット情報が一つしか含まれないものもウィジェット情報の一覧という。
続いて、プロバイダアプリ1221のUI制御部132は、受信されたウィジェット情報の一覧をRAM112に記録しておき、当該ウィジェット情報の一覧に基づいて、ユーザに利用可能なウィジェット21の一覧を含む画面(ウィジェット選択画面)を表示させる(S206)。
図12は、ウィジェット選択画面の表示例を示す図である。同図においてウィジェット選択画面620には、ウィジェットごとにボタンが表示されている。同図では、スキャンウィジェット21aに対応するボタン621と、スキャン配信ウィジェット21bに対応するボタン622と、スキャン翻訳ウィジェット21cに対応するボタン623とが表示されている。
画像形成装置10に原稿がセットされ、ウィジェット選択画面620において、スキャンウィジェット21aに対応するボタン621が選択されると(S207)、プロバイダアプリ1221のウィジェット連携部134は、押下されたボタンに対応するウィジェット情報(以下、「カレントウィジェット情報」という。)に含まれている連携機能識別子(「scan」)に基づいて、スキャンを実行すべきことを認識する。そこで、ウィジェット連携部134は、スキャンの実行を機能制御部135に要求する。
機能制御部135は、カレントウィジェット情報に含まれているスキャン設定情報に基づいて、原稿からの画像データの読み取りを制御する(S208)。より詳しくは、機能制御部135は、画像形成装置10にセットされた原稿に対するスキャンをスキャナ12に実行させ、その結果得られる画像データ(スキャン画像)をウィジェット連携部134に出力する。
ウィジェット連携部134は、当該スキャン画像をカレントウィジェット情報に含まれているウィジェット中継用URL宛に送信する(S209)。ウィジェット中継用URL宛に送信されたスキャン画像は、ウィジェットマネージャ22の仲介部224によって受信される。続いて、仲介部224は、スキャン画像の受信後に受信される、当該ウィジェット中継用URLに対応するスキャンウィジェット21aからのスキャン画像の取得要求(S115)に応じ、スキャン画像を当該スキャンウィジェット21aの連携部213に転送する(S121)。
連携部213は、スキャン画像を受信すると、当該スキャン画像をロジック部214に入力する。ロジック部214は、スキャン画像を処理対象として、自らに実装されている処理(ロジック)を実行する(S122)。具体的には、ロジック部214は、属性情報管理ファイル215に設定されている保存先にスキャン画像を保存する。なお、実行対象のウィジェット21がスキャン配信ウィジェット21bである場合、スキャン画像は、所定の宛先に配信される。また、実行対象のウィジェット21がスキャン翻訳ウィジェット21cである場合、スキャン画像に対してOCR処理が実行され、OCR結果に対して翻訳処理が実行される。すなわち、スキャン系ウィジェット21(スキャンウィジェット21a、スキャン配信ウィジェット21b、及びスキャン翻訳ウィジェット21c等、連携識別子が「scan」であるウィジェット21)に関する処理手順は、ステップS122の具体的な内容を除いて同様のものとなる。
続いて、連携部213は、次のスキャンウィジェット21aの実行に備えて、スキャン画像取要求のポーリングを再開し(S115)、スキャン画像の転送を待機する。
続いて、画像形成装置10以外の外部機器から取得される画像データを、スキャンウィジェット21aの処理対象とされる例について説明する。第一の実施の形態では、デジタルカメラを画像データの取得先とした例について説明する。
図13は、第一の実施の形態においてユーザ端末にデジタルカメラが接続された情報処理システムの構成例を示す図である。図13中、図1と同一部分には同一符号を付し、その説明は省略する。同図では、デジタルカメラ50が、ユーザ端末20にUSB接続された例が示されている。デジタルカメラ50内には、既に撮像された画像データが記録されていることとする。
図14は、第一の実施の形態においてデジタルカメラより取得される画像データをスキャンウィジェットに処理させる場合の処理手順を説明するためのシーケンス図である。同図において、スキャンウィジェット21aは、スキャン画像取得要求のポーリング(S115、S116)を行っている状態であるとする。
ユーザが、デジタルカメラ50をユーザ端末20にUSB接続すると(S301)、その接続イベントは、OS25を介してウィジェットマネージャ22の画像入力制御部225によって検知される(S302、S303)。デジタルカメラ50の接続の検知に応じ、画像入力制御部225は、デジタルカメラ50に記録されている画像データを取得する(S304、S305)。デジタルカメラ50からの画像データの取得は、公知のプロトコル等に基づいて行えばよい。例えば、デジタルカメラ50がUSBマスストレージ対応されていれば、USBマスストレージクラスに従った方法によって、画像データの取得が実行されればよい。
続いて、画像転送部226は、取得された画像データの転送先のウィジェット21を判定する(S306)。当該判定処理の詳細については後述する。続いて、画像転送部226は、画像データの転送先と判定されたスキャンウィジェット21aからのスキャン画像取得要求(S115)に対する応答として、当該画像データを転送する(S121)。すなわち、画像転送部226は、仲介部224の代わりに仲介部224と同じ通信手順によって画像データを転送する。その後は、図9において説明した通りの処理が実行される。
図9と図14とを比較すると明らかなように、スキャンウィジェット21aに関する処理手順に変更はない。すなわち、図14においても、スキャンウィジェット21aは、ポーリングの応答として返信される画像データを受信し、当該画像データに対して所定の処理を実行すればよい。これは、画像データの入力元が画像形成装置10からデジタルカメラ50に変わったことによる処理手順に対する影響がウィジェットマネージャ22によって吸収されているからである。したがって、スキャンウィジェット21aの実装を変更することなく、デジタルカメラ50から取得される画像データをスキャンウィジェット21aの処理対象とすることができる。
なお、デジタルカメラ50以外の他のUSBデバイス(例えば、USBメモリ等)を画像データの取得先としてもよい。この場合に実行する処理手順は、図14におけるデジタルカメラ50を当該他のUSBデバイスに置き換えたものとすればよい。
次に、第二の実施の形態について説明する。図15は、第二の実施の形態における情報処理システムの構成例を示す図である。図15中、図13と同一部分には同一符号を付し、その説明は省略する。
図15に示されるように、第二の実施の形態では、携帯電話等のモバイルデバイス60とユーザ端末20とが、Bluetooth接続される。すなわち、第二の実施の形態では、Bluetooth接続されたモバイルデバイス60が、画像データの取得先とされる。
図16は、第二の実施の形態においてモバイルデバイスより取得される画像データをスキャンウィジェットに処理させる場合の処理手順を説明するためのシーケンス図である。
ウィジェットマネージャ22の画像入力制御部225は、ウィジェットマネージャ22の起動時等において、使用するBluetoothプロファイル(例えば、BIP(Basic Imaging Profile)又はFTP(File Transfer Profile)等)を示す情報をOS25のBluetoothスタックに登録する(S401)。なお、当該Bluetoothプロファイルは、モバイルデバイス60が使用するものと一致することとする。
ユーザが、モバイルデバイス60を操作し、Bluetooth接続可能な機器の検索指示を入力すると、モバイルデバイス60は、ユーザ端末20(OS25)との間でペアリング処理を行う(S403)。続いて、OS25は、モバイルデバイス60が使用するBluetoothプロファイルによる通信を待機している画像入力制御部225を、Bluetooth接続のエンドポイントとする(S404)。
続いて、ユーザによって、エンドポイントに対する画像データの転送指示がモバイルデバイス60に入力されると、モバイルデバイス60は、Bluetooth通信によって、画像データを画像入力制御部225に送信する(S405)。
ステップS406以降は、図14のステップS306以降と同様であるため、説明を省略する。
上述したように、第二の実施の形態によれば、Bluetooth接続が可能な外部機器から取得された画像データを、スキャン系ウィジェット21の処理対象とさせることができる。なお、第一の実施の形態及び第二の実施の形態において説明した通信方式(USB接続、Bluetooth以外の通信方式によって通信を行う外部機器から画像データが取得され、当該画像データがスキャン系ウィジェット21の処理対象とされてもよい。
ところで、第一及び第二の実施の形態に関して、スキャンウィジェット21a以外のスキャン系ウィジェット21(スキャン配信ウィジェット21b、又はスキャン翻訳ウィジェット21c)についても、図14又は図16と同様の処理手順を適用することができる。このことは、同一のユーザ端末20において複数のスキャン系ウィジェット21が起動されている場合、デジタルカメラ50等のUSBデバイスより取得された画像データの転送先の候補が複数存在しうることを意味する。この場合、複数の候補のうちのいずれを転送先とするかが問題となる。そこで、ステップS306及びステップS406の詳細について説明する。
ステップS306又はS406において、スキャン系ウィジェット21が複数起動されている場合、画像転送部226は、画像データの転送先のウィジェット21を絞り込むための処理を実行する。なお、起動されているスキャン系ウィジェット21の数は、ウィジェット情報管理テーブル227に基づいて判定される。
例えば、画像転送部226は、ウィジェット情報管理テーブル227に基づいて、起動されているスキャン系ウィジェット21の一覧画面を表示装置206に表示させ、転送先のウィジェット21を当該一覧画面においてユーザに選択させる。
または、補助記憶装置202に予め記録されているフィルタリング情報に基づいて、画像データの転送先のウィジェット21を判定させるようにしてもよい。フィルタリング情報としては、例えば、画像データの転送先とする特定のウィジェット21のウィジェットIDが記録されたものでもよい。この場合、フィルタリング情報が編集されない限り、常に同じウィジェット21に対して画像データが転送されることになる。
または、画像データのフォーマット(データ形式)とスキャン系ウィジェット21との対応情報をフィルタリング情報としてもよい。この場合、画像転送部21は、USBデバイスより取得された画像データのデータ形式とフィルタリング情報とに基づいて、転送先のスキャン系ウィジェット21を判定する。この判定方法は、ウィジェット21によって処理対象とする(又は処理可能な)データ形式が異なる場合に有効である。
または、各スキャン系ウィジェット21における画像データの用途とデータ形式又は画像データの取得先の外部機器の種別との対応情報をフィルタリング情報としてもよい。画像データの用途とは、スキャンウィジェット21aであれば「保存」であり、スキャン配信ウィジェット21bであれば「配信」であり、スキャン翻訳ウィジェット21cであれば「OCR」又は「翻訳」である。したがって、これらの用途を示すキーワード又は識別子と、データ形式又は画像データの取得先の外部機器の種別との対応情報がフィルタリング情報とされる。この場合、画像転送部226は、起動されている各スキャン系ウィジェット21に画像データの用途を問い合わせる。または、画像データの用途はウィジェット情報に含まれていてもよい。画像転送部226は、各スキャン系ウィジェット21より取得された用途と、画像データのデータ形式又は画像データの取得先の外部機器の種別と、フィルタリング情報とに基づいて、転送先のスキャン系ウィジェット21を判定する。
または、画像データのデータサイズ又は画素数とスキャン系ウィジェット21との対応情報をフィルタリング情報としてもよい。この場合、画像転送部21は、外部機器より取得された画像データのデータサイズ又は画素数とフィルタリング情報とに基づいて、転送先のスキャン系ウィジェット21を判定する。
または、スキャン系ウィジェット21と外部機器の種別との対応情報をフィルタリング情報としてもよい。この場合、画像転送部21は、画像データの取得先の外部機器の種別とフィルタリング情報とに基づいて、転送先のスキャン系ウィジェット21を判定する。
または、各スキャン系ウィジェット21がユーザ端末20の外部に画像データを出力するか否かを示す情報をフィルタリング情報としてもよい。この場合、画像転送部21は、フィルタリング情報に基づいて、ユーザ端末20の外部に画像データを出力しないスキャン系ウィジェット21を、画像データの転送先として判定する。この判定方法によれば、デジタルカメラ50等によって撮像された個人的な画像が、ネットワークを介して配信されてしまうのを防止することができる。
また、上記した各種フィルタリング情報を組み合わせてもよい。なお、フィルタリング情報では、一つに絞り込めない場合も有る。この場合、絞り込まれた複数のスキャン系ウィジェット21の全てを転送先としてもよいし、確実に一つに絞り込める情報に基づいて、転送先のスキャン系ウィジェット21が選択されてもよい。
確実に一つに絞り込める情報としては、ウィジェット21が利用された時期やウィジェット21に関する設定情報が変更された時期等が挙げられる。利用された時期は、図9のステップS204が実行された時刻をウィジェット21ごとに記録しておくことにより判定すればよい。また、設定情報が変更されたウィジェット21に関しては、図7のステップS111及びS112が再実行される。したがって、設定情報が変更された時期は、ステップS112が実行された時刻をウィジェット21ごとに記録しておくことにより判定すればよい。この場合、画像転送部226は、最近利用されたスキャン系ウィジェット21、又は最近設定情報が変更されたスキャン系ウィジェット21を画像データの転送先として判定する。特に、ウィジェット21の設定情報は、ウィジェット21が利用されるときに変更される可能性が高い。したがって、設定情報が変更された時期が最近のウィジェット21は、ユーザが画像データの転送先として期待しているウィジェット21である可能性が高いといえる。
なお、起動されている全てのスキャン系ウィジェット21を無条件に画像データの転送先としてもよい。
一方、ステップS206において、起動されているスキャン系ウィジェット21が一つである場合、画像転送部226は、起動されているスキャン系ウィジェット21に無条件に画像データを転送してもよいし、上記各種フィルタ条件に基づいて転送の可否を判定してもよい。
次に、第三の実施の形態について説明する。図17は、第三の実施の形態における情報処理システムの構成例を示す図である。図17中、図1と同一部分には同一符号を付し、その説明は省略する。
図17において、ユーザ端末20は、画像入力ウィジェット21eを有する。画像入力ウィジェット21eは、画像形成装置10とは連携しない点において、他のウィジェット21と異なる。したがって、画像入力ウィジェット21eについては、図7及び図9に示されるような処理手順は実行されない。但し、手軽にインストールして利用可能なアプリケーションであるという点において他のウィジェット21と共通するため、本実施の形態では、画像入力ウィジェット21eも「ウィジェット」と呼ぶこととする。
画像入力ウィジェット21eは、モバイルデバイス60からの画像データの取得を制御する。画像入力ウィジェット21eの存在により、ウィジェットマネージャ22における画像入力制御部225及び画像転送部226は不要となる。画像入力ウィジェット21eは、画像入力制御部225及び画像転送部226の機能を代替するからである。
図18は、第三の実施の形態においてモバイルデバイスより取得される画像データをスキャンウィジェットに処理させる場合の処理手順を説明するためのシーケンス図である。
ステップS501〜S505では、図16のステップS401〜S405と同様の処理手順に基づいて、Bluetooth通信によってモバイルデバイス60から画像入力ウィジェット21eに対して画像データが送信される。続いて、画像入力ウィジェット21eは、図14のステップS306と同様の判定方法によって、画像データの転送先のスキャン系ウィジェット21を判定する(S506)。なお、画像入力ウィジェット21eは、ウィジェット情報管理テーブル227を参照可能であるとする。又は、画像入力ウィジェット21eは、ウィジェットマネージャ22よりウィジェット管理テーブル227の登録内容を取得するようにしてもよい。
続いて、画像入力ウィジェット21eは、画像データの転送先として判定されたスキャン系ウィジェット21のウィジェット中継用URL宛に、画像データを送信する(S507)。ここでの通信手順(通信プロトコル)は、図9のステップS209において、プロバイダアプリ1221のウィジェット連携部134が画像データを送信するときに利用する通信手順と同じである。したがって、画像入力ウィジェット21eによって送信された画像データは、ウィジェットマネージャ22の仲介部224によって受信される。
続いて、仲介部224は、画像データの受信後に受信される、当該ウィジェット中継用URLに対応するスキャンウィジェット21aからのスキャン画像の取得要求(S115)に応じ、受信された画像データを当該スキャンウィジェット21aの連携部213に転送する(S121)。以降の処理手順は、上述した通りである。
上述したように、第三の実施の形態によれば、ウィジェットマネージャ22は、モバイルデバイス60からの画像データの取得に関して特別な処理を実行する必要はない。当該特別な処理は画像入力ウィジェット21eによって吸収されるからである。したがって、モバイルデバイス60以外の外部機器(例えば、デジタルカメラ50等)に対応する場合は、当該新たな外部機器に対応した画像入力ウィジェット21eを作成し、各ユーザ端末20に配布すればよく、各ユーザ端末20にインストール済みのウィジェットマネージャ22の実装を修正する必要はない。よって、保守作業を簡便化することができる。
次に、第四の実施の形態について説明する。図19は、第四の実施の形態における情報処理システムの構成例を示す図である。図19中、図17と同一部分には同一符号を付し、その説明は省略する。
図19において、ユーザ端末20は、ローカル画像入力ウィジェット21fを有する。ローカル画像入力ウィジェット21fは、画像形成装置10とは連携しない点において、他のウィジェット21と異なる。したがって、ローカル画像入力ウィジェット21fについては、図7及び図9に示されるような処理手順は実行されない。但し、手軽にインストールして利用可能なアプリケーションであるという点において他のウィジェット21と共通するため、本実施の形態では、ローカル画像入力ウィジェット21fも「ウィジェット」と呼ぶこととする。
ローカル画像入力ウィジェット21fは、ローカル環境(ユーザ端末20の補助記憶装置102)に記録されている画像データの取得を制御する。ローカル画像入力ウィジェット21fの存在により、ウィジェットマネージャ22における画像入力制御部225及び画像転送部226は不要となる。ローカル画像入力ウィジェット21fは、画像入力制御部225及び画像転送部226の機能を代替するからである。
図20は、第四の実施の形態においてローカル環境より取得される画像データをスキャンウィジェットに処理させる場合の処理手順を説明するためのシーケンス図である。
ステップS601において、ローカル画像入力ウィジェット21fは、処理対象の画像データの指定をユーザより受け付ける。画像データの指定は、ローカル画像入力ウィジェット21fが表示装置206に表示させる画面において、画像データを格納するファイルのファイル名が指定されてもよいし、当該ファイルのアイコンがドラッグ・アンド・ドロップされてもよい。
続いて、ローカル画像入力ウィジェット21fは、図14のステップS306と同様の判定方法によって、画像データの転送先のスキャン系ウィジェット21を判定する(S602)。なお、ローカル画像入力ウィジェット21fは、ウィジェット情報管理テーブル227を参照可能であるとする。又は、ローカル画像入力ウィジェット21fは、ウィジェットマネージャ22よりウィジェット管理テーブル227の登録内容を取得するようにしてもよい。
続いて、ローカル画像入力ウィジェット21fは、指定された画像データを補助記憶装置102より取得し、画像データの転送先として判定されたスキャン系ウィジェット21のウィジェット中継用URL宛に当該画像データを送信する(S603)。したがって、当該画像データは、ウィジェットマネージャ22の仲介部224によって受信される。
以降の処理は、図18と同様である。
上述したように、第四の実施の形態によれば、補助記憶装置102に記録された画像データに関して、第三の実施の形態と同様の効果を得ることができる。すなわち、補助記憶装置102に記録された画像データについて、ウィジェットマネージャ22の実装を修正することなく、スキャン系ウィジェット21の処理対象とさせることができる。
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。