以下、図面に基づいて本発明の実施の形態を説明する。図1は、第一の実施の形態における情報処理システムの構成例を示す図である。同図の情報処理システム1において、一台以上の画像形成装置10と、一台以上のユーザ端末20と、OCRサーバ30と、翻訳サーバ40とは、LAN(Local Area Network)又はインターネット等のネットワーク(有線又は無線の別は問わない。)を介して接続されている。
画像形成装置10は、印刷、スキャン、コピー、及びFAX送受信等の機能を一台の筐体によって実現する複合機である。但し、いずれか一つの機能を実現する装置(プリンタ、スキャナ、コピー機、ファクシミリ等)を画像形成装置10として用いてもよい。本実施の形態においては、スキャン機能を実現するためのハードウェアを備えていればよい。
ユーザ端末20は、ユーザが利用する個人端末であり、ソフトウェアプログラムのインストール及び実行が可能であり、通信機能を有するものであれば、特定の装置に限定されない。ユーザ端末20の具体例として、デスクトップ型のPC(Personal Computer)、ノートPC、PDA(Personal Digital Assistance)、又は携帯電話等が挙げられる。
OCRサーバ30は、OCRサービスアプリ31を有するコンピュータである。OCRサービスアプリ31は、OCR(Optical Character Recognition)機能をWebサービス(翻訳サービス)としてネットワーク上に提供するアプリケーションプログラムである。
翻訳サーバ40は、翻訳サービスアプリ41を有するコンピュータである。翻訳サービスアプリ41は、文書データの翻訳機能(例えば、英語から日本語への翻訳)をWebサービス(翻訳サービス)としてネットワーク上に提供するアプリケーションプログラムである。
ユーザ端末20のソフトウェア構成について説明する。図1において、ユーザ端末20は、スキャンウィジェット21a、印刷ウィジェット21b、スキャン翻訳ウィジェット21c、ウィジェットマネージャ22、OCRソフト23、翻訳ソフト24、及びOS25等を有する。
スキャンウィジェット21a、印刷ウィジェット21b、及びスキャン翻訳ウィジェット21cは、本実施の形態において、ウィジェット21として総称されるアプリケーションプログラムである。近年では、ウィジェット(Widget)又はガジェット(Gadget)とよばれる手軽なアプリケーションが流通している。本実施の形態では、手軽にインストールして利用可能なアプリケーションという程度の意味においてこれらのアプリケーションをウィジェット21と呼ぶ(すなわち、技術的な意義において限定する趣旨ではない)。但し、本実施の形態において、各ウィジェット21は、ネットワーク上又はユーザ端末20において提供されているサービスを利用して、所定の機能(例えば、ワークフロー等の一連の処理フロー)を実現するという点において共通する。
スキャンウィジェット21aは、画像形成装置10にスキャンを実行させ、スキャンされた画像データをユーザ端末20内に保存するウィジェット21である。
印刷ウィジェット21bは、ユーザ端末20内に保存されている文書データの印刷を画像形成装置10に実行させるウィジェット21である。
スキャン翻訳ウィジェット21cは、画像形成装置10にスキャンを実行させ、スキャンされた画像データにOCRを実行し、OCRされたテキストデータに対して翻訳を実行するウィジェット21である。OCR処理及び翻訳処理に関しては、ネットワーク上(画像形成装置10、OCRサーバ30、若しくは翻訳サーバ40)又はユーザ端末20(OCRソフト23若しくは翻訳ソフト24)において提供されているサービスが利用される。
ウィジェットマネージャ22は、ウィジェット21のフレームワークとして位置付けられ、ウィジェット21と画像形成装置10との間の通信の仲介等を行う。各ウィジェット21は、ウィジェットマネージャ22によって規定されるインタフェース及び処理手順を備える必要がある。換言すれば、ウィジェットマネージャ22と協調して動作するアプリケーションが、本実施の形態におけるウィジェット21である。
OCRソフト23は、OCR(Optical Character Recognition)機能を実行するソフトウェアであり、市販されているものであってもよい。OCRソフト23は、プロセス間通信等によってウィジェット21に対してOCRサービスを提供可能である。
翻訳ソフト24は、翻訳機能を実行するソフトウェアであり、市販されているものであってもよい。翻訳ソフト24は、プロセス間通信等によってウィジェット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、OCRアプリ1222、及び翻訳アプリ1223が例示されている。
プロバイダアプリ1221は、ウィジェット21を画像形成装置10より操作可能とするための処理を実行する。OCRアプリ1222は、OCR処理を実行する。翻訳アプリ1223は、翻訳処理を実行する。
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上においてプロセス又はスレッドとして動作する。
続いて、ウィジェット21、ウィジェットマネージャ22、及びプロバイダアプリ1221について更に詳しく説明する。図2は、第一の実施の形態におけるウィジェット、ウィジェットマネージャ、及びプロバイダアプリの機能構成例を示す図である。
同図に示されるように、各ウィジェット21は、ウィジェットUI部211、ウィジェット情報送信部212、連携部213、ロジック部214、及び属性情報管理ファイル215等を有する。
ウィジェットUI部211は、ウィジェット21関する各種の表示画面をユーザ端末20の表示装置に表示させる。ウィジェット情報送信部212は、ウィジェット21が起動されたときに、ウィジェット情報の登録要求をウィジェットマネージャ22に送信する。ウィジェット情報にはウィジェット21の実行に必要な情報が含まれる。連携部213は、プロバイダアプリ1221との連携のためのコミュニケーション(情報のやりとり等)を制御する。属性情報管理ファイル215は、ウィジェット21対する設定情報等を格納するファイルである。ロジック部214は、各ウィジェット21に固有の機能が実装される部分である。
ウィジェットマネージャ22は、プロファイルデータ取得部221、サービス推奨部222、ウィジェット情報登録部223、広告部224、ウィジェット情報提供部225、中継部226、ウィジェット情報管理テーブル227、及びプロファイルデータ管理部228等を有する。
プロファイルデータ取得部221は、通信可能な画像形成装置10を探索し、探索された画像形成装置10よりプロファイルデータを取得する。プロファイルデータとは、ウィジェット21が利用可能なサービスごとに生成され、当該サービスの属性情報が記録されたデータである。本実施の形態における画像形成装置10は、複数のサービス(スキャン、印刷、コピー、FAX、OCR、翻訳等)を提供することができる。したがって、当該画像形成装置10からは複数のプロファイルデータが取得される。プロファイルデータ取得部221は、取得されたプロファイルデータをプロファイルデータ管理部228に登録する。なお、本実施の形態において、ウィジェット21によって利用されるサービスとは、少なくともサービスの種別(提供される機能)とサービスの提供者(サービス提供者)との組み合わせによって区別される。したがって、同一種別のサービス(同一機能を提供するサービス)であってもサービス提供者が異なれば、別のプロフィルデータが生成される。
プロファイルデータ管理部228は、ユーザ端末20が有する記憶装置において、プロファイルデータを記憶するための記憶領域である。プロファイルデータ管理部228には、画像形成装置10から取得されたプロファイルデータだけでなく、ユーザ端末20内に存在するプログラム(OCRソフト23等)や、ネットワーク上において提供されているサービスに関するプロファイルデータも登録されている。
サービス推奨部222は、ウィジェット21からのサービスの利用要求に応じ、利用要求に応えるサービスとして最適なサービスを、プロファイルデータ管理部228に登録されているプロファイルデータに基づいて判定する。すなわち、ネットワーク上又はユーザ端末20内には、同一の機能を提供可能なサービス(同一種別のサービス)が複数存在する。ウィジェット21は、サービス推奨部222によって、同一種別に係る複数のサービスの中から最適なものを知ることができる。
ウィジェット情報登録部223は、ウィジェット21より送信されるウィジェット情報の登録要求を受信し、当該ウィジェット情報をウィジェット情報管理テーブル227に保存する。ウィジェット情報管理テーブル227には、ユーザ端末20において起動されている各ウィジェット21のウィジェット情報が登録されるテーブルであり、ユーザ端末20の記憶装置に保存される。
広告部224は、ウィジェット情報登録部223によって受信されたウィジェット情報に含まれるユーザIDをネットワーク上に広告(ブロードキャスト又はマルチキャスト等)する。広告は、ユーザ単位(ユーザID単位)で発行される。具体的には、ユーザ端末20内における或るウィジェット21の起動に応じてユーザAに関して広告が発行された後、当該ユーザ端末20内において、他のウィジェット21が起動されたとしても当該ウィジェット情報に応じた広告は発行されない。本実施の形態では、便宜上、ユーザ端末20とユーザとは一対一に対応する。したがって、広告部224による広告は、何らかのウィジェット21を利用可能になったユーザが新たに発生したことを画像形成装置10に通知するための情報である。但し、ウィジェット情報単位で広告が行われてもよい。この場合、同一ユーザについて重複して広告が発行されることになるが、重複の排除は画像形成装置10側で行えばよい。
ウィジェット情報提供部225は、画像形成装置10からの要求に応じ、ウィジェット情報管理テーブル227に登録されているウィジェット情報を画像形成装置10に提供(送信)する。中継部226は、ウィジェット21とプロバイダアプリ1221とのコミュニケーションを中継する。
プロバイダアプリ1221は、プロファイルデータ提供部131、ユーザ検知部132、UI制御部133、ウィジェット情報取得部134、ウィジェット連携部135、サービス制御部136、サービス課金部137、ユーザ管理テーブル138、プロファイルデータ管理部139、及びサービス課金カウンタ140等を有する。
プロファイルデータ提供部131は、ウィジェットマネージャ22からのプロファイルデータの取得要求に応じ、プロファイルデータ管理部228に登録されているプロファイルデータを返信する。
プロファイルデータ管理部228は、画像形成装置10の記憶装置において、画像形成装置10が提供可能な各サービスのプロファイルデータを記憶するための記憶領域である。
ユーザ検知部132は、ウィジェットマネージャ22より発行される広告に基づいて、ウィジェット21を利用可能なユーザの存在を検知し、広告に含まれているユーザID等をユーザ管理テーブル138に登録する。ユーザ管理テーブル138は、利用可能なウィジェット21がネットワーク上に存在するユーザの一覧を管理するテーブルである。
UI制御部は、ユーザよりウィジェット21の操作指示等の入力を受け付ける。すなわち、ウィジェット21は、ユーザ端末20に配置されているが、画像形成装置10の操作パネルからも操作されうる。ウィジェット情報取得部134は、ユーザ管理テーブル138に登録されているユーザの中から選択されたユーザに属するウィジェット21のウィジェット情報をウィジェットマネージャ22より取得する。
ウィジェット連携部135は、ウィジェット21とのコミュニケーションを制御する。
サービス制御部136は、ウィジェット21から要求されたサービスの実行を制御する。サービスを実現するための処理は、標準アプリ121や他のSDKアプリ122に委譲される。
サービス課金部137は、サービス制御部136によるサービスの実行に応じて、サービス課金カウンタ140を更新する。サービス課金カウンタ140は、画像形成装置10が提供可能なサービスごとの課金カウンタの集合である。例えば、画像形成装置10において10個のサービスを提供可能な場合、10個の課金カウンタがサービス課金カウンタ140に含まれる。すなわち、本実施の形態では、画像形成装置10において実行されるサービスごとに(実行されるサービスの数に応じて)課金が行われる。
続いて、各装置のハードウェア構成について説明する。図3は、本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。図3において、画像形成装置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にロードされ、実行されうる。
図4は、本発明の実施の形態におけるユーザ端末のハードウェア構成例を示す図である。図4のユーザ端末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は、ネットワークに接続するためのインタフェースとして用いられる。表示装置206はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置207はキーボード、マウス、又はボタン等で構成され、様々な操作指示を入力させるために用いられる。
以下、第一の実施の形態の情報処理システム1の処理手順について説明する。図5は、第一の実施の形態におけるウィジェットマネージャ及びウィジェットの起動時の処理手順を説明するためのシーケンス図である。
ウィジェット21を利用するには、まず、ユーザ端末20においてウィジェットマネージャ22が起動される。ウィジェットマネージャ22の起動に応じ、プロファイルデータ取得部221は、ブロードキャスト等によって通信可能な画像形成装置10を探索(検索)し、探索された画像形成装置10にプロファイルデータの取得を要求する(S101)。画像形成装置10のプロファイルデータ提供部131は、当該要求に応じ、プロファイルデータ管理部139よりプロファイルデータの一覧を取得し、当該一覧を返信する(S102)。
プロファイルデータ取得部221は、プロファイルデータの一覧を受信すると、受信されたプロファイルデータをプロファイルデータ管理部228に登録する(S103)。
図6は、第一の実施の形態においてウィジェットマネージャのプロファイルデータ管理部に登録されたプロファイルデータの例を示す図である。同図において、一つの行は、一つのプロファイルデータを示す。なお、同図では、便宜上、テーブル形式によって表現しているが、各プロファイルデータは、それぞれファイルに格納されて保存されていてもよい。
同図に示されるように、各プロファイルデータは、サービスID、種別識別子、提供者名、サービスカテゴリ、有効期限、アドレス情報、インタフェース情報、品質、コスト、及び納期等のデータ項目を含む。
サービスIDは、各サービスに一意な識別子である。本実施の形態では、一意性が確保されればサービスIDの形式は統一されていなくてもよい。したがって、例えば、後述される各サービスのアドレス情報をサービスIDとしてもよい。種別識別子は、サービスを機能面において分類した種別の識別子であり、同図では、「OCR」、「TRANSLATION」、及び「SCAN」が例示されている。「OCR」は、OCR機能を提供するサービス(OCRサービス)を示す。「TRANSLATION」は、翻訳機能を提供するサービス(翻訳サービス)を示す。「SCAN」は、スキャン機能を提供するサービス(スキャンサービス)を示す。
提供者名は、サービスの提供者の識別名である。同図では、サービスを提供するアプリケーション(サービス提供者)の名前が提供者名とされている。各プロファイルデータは、一行目から順に、OCRソフト23、翻訳ソフト24、OCRサービスアプリ31、翻訳サービスアプリ41、スキャンアプリ1211、OCRアプリ1222、翻訳アプリ1223によって提供されるサービスに関するプロファイルデータであることが分かる。
サービスカテゴリは、サービス提供者の配置位置に関する分類であり、「ローカルアプリ」、「Webサービス」、又は「MFP」のいずれかに分類される。「ローカルアプリ」は、ローカルな(すなわち、ウィジェット21と同一のユーザ端末20内で動作する)アプリケーションを示す。「Webサービス」は、インターネット上のWebサービスを示す。MFPは、画像形成装置10を示す。なお、MFPは、Multifunction Peripheralの略語である。
有効期限は、サービスを利用可能な有効期限である。例えば、Webサービスやローカルアプリを時限ライセンスによって使用している場合、有効期限が登録される。アドレス情報は、サービス提供者と通信するためのアドレス情報であり、例えば、IPアドレス、URL(Uniform Resource Locator)、又はファイルパス名等が該当する。インタフェース情報は、サービスを利用するためのインタフェース情報である。例えば、メソッド名、引数名、引数のデータ型、戻り値の型等が定義される。インタフェース情報の規定の仕方については、多数存在する公知技術の中から適当なものを選択すればよい。
品質、コスト、及び納期は、サービスの内容に関する評価情報であり、具体的には、サービスの品質、コスト、又は納期についての10段階(10点満点)による評価値である。品質は、サービスの種別によって意味が異なりうる。例えば、OCRサービスであれば認識率が考えられる。スキャンサービスであれば、画像データの画質等が考えられる。翻訳サービスであれば、翻訳の精度が考えられる
コストは、サービスの利用に必要とされる費用である。例えば、買い取り型のサービスの場合、サービスの利用毎に課金はされない。したがってこの場合、評価値は10となる。一方、利用の度に課金されるサービスについては、課金額に応じた評価値が付与される。納期は、主として、サービスの性能(実行要求から結果が得られるまでの時間(ターンアラウンド時間))である。
本実施の形態において、品質、コスト、及び納期は、サービスを比較するためのパラメータとして利用される。但し、サービスを比較するためのパラメータは、これらに限定されない。運用に合わせて適切なパラメータを選択すればよい。
なお、図6において、サービスカテゴリが「MFP」であるプロファイルデータが、ステップS103において登録されたプロファイルデータである。画像形成装置10は、印刷サービス、FAXサービス、及びコピーサービス等、他のサービスも提供可能であるが、同図では、便宜上、本実施の形態に関係するサービスに関するプロファイルデータのみ例示している。
一方、サービスカテゴリが「MFP」以外であるプロファイルデータは、ユーザ端末20において予め登録されていたプロファイルデータである。当該プロファイルデータの流通形態については、特に限定されない。サービス提供者(アプリケーション)に付属しているものがダウンロード等されたものでもよいし、ユーザによって作成されたものであってもよい。または、推奨されるサービスのプロファイルデータが所定のサーバにおいて一元的に管理されていてもよい。流通形態がどのようなものであったとしても、各プロファイルデータの品質、コスト、及び納期等は、ユーザの主観によって変更可能(編集可能)としてもよい。そうすることにより、ユーザの好みをサービスの選択に反映させることができる。この点は、サービスカテゴリが「MFP」であるプロファイルデータについても当てはまる。
ウィジェットマネージャ22の起動後、ユーザは、利用したいウィジェット21を起動させる。例えば、スキャン翻訳ウィジェット21cが起動されると、スキャン翻訳ウィジェット21cの連携部213は、スキャン翻訳ウィジェット21cが利用予定のサービスの一覧情報(サービス利用予定情報)をウィジェットマネージャ22のサービス推奨部222に送信する(S104)。
図7は、第一の実施の形態におけるサービス利用予定情報の構成例を示す図である。同図において、サービス利用予定情報には、利用予定のサービスのサービスIDの一覧が実行順(利用順)に含まれている。サービス利用予定情報に含まれているサービスIDは、スキャン翻訳ウィジェット21cの既定値として設定されているものである。すなわち、第一の実施の形態において、スキャン翻訳ウィジェット21cは、サービスIDが「scan001」のスキャンサービス(スキャンアプリ1211によって提供されるスキャンサービス)と、サービスIDが「ocrserv」のOCRサービス(OCRサービスアプリ31によって提供されるOCRサービス)と、サービスIDが「transserv」の翻訳サービス(翻訳サービスアプリ41によって提供される翻訳サービス)を既定の処理として利用するように実装されている。なお、利用対象とするサービスの既定値は、スキャン翻訳ウィジェット21cのソースコード内に記述されていてもよいし、属性情報管理ファイル215に記述されていてもよい。後者の場合、ユーザによって変更可能であるという利便性を確保することができる。
続いて、サービス推奨部222は、受信されたサービス利用予定情報においてサービスIDが指定さているサービスと種別識別子が一致するサービスの中で最適なサービス(推奨サービス)を判定し(S105)、推奨サービスの判定結果をスキャン翻訳ウィジェット21cの連携部213に返信する(S106)。推奨サービスの判定処理の詳細については後述するが、ここでは、図8に示されるような判定結果が得られたこととする。
図8は、第一の実施の形態における推奨サービスの判定結果の例を示す図である。同図における判定結果の構成は、利用予定とされたサービスの種別と同じ順序で(すなわち実行順で)サービスID、種別識別子、及び提供者名等を含む。同図では、図7の利用予定情報に対してOCRサービスが異なっている。サービス推奨部222が、OCRサービスアプリ31によるものよりOCRアプリ1222によって提供されているものの方が適切である(利用価値が高い)と判定した結果である。
続いて、スキャン翻訳ウィジェット21cのウィジェット情報送信部212は、図8の判定結果と属性情報管理ファイル215に登録されている情報とに基づいてウィジェット情報を生成し、当該ウィジェット情報をウィジェットマネージャ22のウィジェット情報登録部223に送信する(S107)。
図9は、第一の実施の形態におけるスキャン翻訳ウィジェットのウィジェット情報の例を示す図である。同図において、スキャン翻訳ウィジェット21cのウィジェット情報は、ウィジェットID、ユーザID、ウィジェットアドレス、表示名、及びサービス利用情報等を含む。
ウィジェットIDは、各ウィジェット21を一意に識別する識別情報である。ユーザIDは、スキャン翻訳ウィジェット21cのユーザの識別子である。すなわち、各ウィジェット21は、当該ウィジェット21がインストールされたユーザ端末20のユーザに関連付けられている。ウィジェットアドレスは、ネットワーク通信において各ウィジェット21を一意に識別するための識別情報(例えば、URL等)である。表示名は、ウィジェット21の名前の表示用の文字列である。
サービス利用情報は、ウィジェット21が利用すると決定したサービスの実行順に、サービスID、種別識別子、提供者名、及び設定情報等を含む。同図のサービス利用情報は、サービス推奨部222による判定結果(図8参照)がそのまま採用されている。すなわち、翻訳サービスについては、翻訳ソフト24によるものが利用対象とされている。なお、サービス推奨部222による判定結果を採用するか否かは、ウィジェット21側の自由である(ウィジェット21の実装に依存する)。常に判定結果に従うようにしてもよいし、常に判定結果を拒否してもよい(この場合、ステップS104〜S106は実行されなくてもよい。)。又は、ウィジェットUI部211が判定結果を表示装置206に表示させ、判定結果の採否の決定をユーザに仰いでもよい。サービス利用情報における設定情報は、各サービスに対する設定情報(実行条件)である。例えば、スキャンサービスであれば、解像度、カラーモード等に関する指定である。また、OCRサービスであれば、文書の方向(横書き又は縦書き)や言語の種別等に関する指定である。翻訳サービスであれば、翻訳元と翻訳先の言語の指定等である。
なお、ウィジェットID、ユーザID、連携機能識別子、ウィジェットアドレス、表示名、及びサービス利用情報における設定情報は、スキャン翻訳ウィジェット21cの属性情報管理ファイル215より取得される。したがって、各ユーザは、属性情報管理ファイル215を編集することにより、ウィジェット21をパーソナライズすることができる。
続いて、ウィジェット情報登録部223は、受信されたウィジェット情報に含まれているユーザIDに対応するウィジェット情報管理テーブル227に当該ウィジェット情報を登録する(S108)。当該ユーザIDに対応するウィジェット情報管理テーブル227が存在しない場合、ウィジェット情報登録部223は、当該ユーザIDに対応するウィジェット情報管理テーブル227を生成し、生成されたウィジェット情報管理テーブル227にウィジェット情報を登録する。なお、本実施の形態では、ユーザ端末20とユーザとは一対一に対応する。また、ウィジェット情報管理テーブル227は、ウィジェットマネージャ22の終了時に削除される。したがって、本実施の形態では、ユーザ端末20の起動後において初めてウィジェット21が起動された場合、ウィジェット情報管理テーブル227が生成される。
ウィジェット情報管理テーブル227が新たに生成された場合(すなわち、受信されたウィジェット情報に含まれているユーザIDに係るユーザについて、初めてウィジェット情報が登録された場合)、広告部224は、受信されたウィジェット情報に含まれているユーザIDと、ウィジェット情報取得用URL(Uniform Resource Locator)とを含む広告をネットワーク上に発行する(S109)。ウィジェット情報取得用URLとは、ウィジェットマネージャ22ごとに(すなわち、ユーザ端末20ごとに)一意なURLである。
当該広告は、ユーザ端末20と通信可能な状態にある画像形成装置10のユーザ検知部132によって受信される。ユーザ検知部132は、広告の受信に応じ、当該広告に含まれているユーザID及びウィジェット情報取得用URLをユーザ管理テーブル138に登録する(S110)。
図10は、ユーザ管理テーブルの構成例を示す図である。同図に示されるように、ユーザ管理テーブル138は、ユーザIDとウィジェット情報取得用URLとの組(ペア)を管理する。同図では、ユーザA及びユーザBについてレコードが登録されている例が示されている。
以上によって、スキャン翻訳ウィジェット21cの存在はウィジェットマネージャ22によって認識された。また、ユーザ端末20のユーザの存在は、画像形成装置10に認識された。したがって、当該ユーザは、画像形成装置10よりスキャン翻訳ウィジェット21cを利用できる状態となった。なお、当該ユーザが、スキャンウィジェット21aや印刷ウィジェット21bを続けて起動した場合、これらのウィジェット21についてもウィジェット情報がウィジェットマネージャ22のウィジェット情報管理テーブル227に登録される。但し、広告は発行されない。当該ユーザに関する広告は既に発行されているからである。
また、図5では、ウィジェットマネージャ22の起動に応じて画像形成装置10のプロファイルデータの取得(S101、S102)が実行される例について説明した。但し、当該ステップは、ウィジェットマネージャ22の起動後において定期的に実行されてもよい。または、ユーザによる指示入力に応じて実行されてもよい。
ユーザ端末20においてスキャン翻訳ウィジェット21cを起動させた後、ユーザは、スキャン翻訳ウィジェット21cを動作させるために画像形成装置10の設置場所へ移動する。なお、複数の画像形成装置10がユーザ端末20と通信可能な状態である場合、同一の広告が各画像形成装置10のユーザ検知部132によって受信され、それぞれの画像形成装置10のユーザ管理テーブル138にユーザID及びウィジェット情報取得用URLが登録される。したがって、ユーザは、複数の画像形成装置10の中で所望の画像形成装置10に赴いてウィジェット21を動作させることができる。
続いて、画像形成装置10におけるユーザによる操作に応じて実行される処理について説明する。図11は、第一の実施の形態におけるスキャン翻訳ウィジェット実行時の処理手順を説明するためのシーケンス図である。
ユーザによって操作パネル15を介してプロバイダアプリ1221の利用指示が入力されると(S121)、プロバイダアプリ1221のUI制御部133は、ユーザ管理テーブル138に登録されている情報に基づいてユーザ選択画面を操作パネル15に表示させる(S122)。なお、ステップS122において、UI制御部133は、ウィジェットマネージャ22よりユーザ情報を取得し、取得されたユーザ情報に基づいてユーザ選択画面を表示させるようにしてもよい。この場合、図5のステップS109は必ずしも行われなくてもよい。但し、例えば、ウィジェットマネージャ22とサブネットが異なる特定の(予め、ウィジェットマネージャ22にIPアドレスが登録されている)画像形成装置10に対してユニキャストによってステップS109が実行されてもよい。
図12は、ユーザ選択画面の表示例を示す図である。同図に示されるユーザ選択画面610には、ユーザIDごとにボタンが表示されている。同図では、ユーザAに対応するボタン611とユーザBに対応するボタン612とが表示されている。
続いて、ユーザは、ユーザ選択画面610において自らのユーザIDに対応するボタンを押下する(S123)。ボタンの押下に応じ、ウィジェット情報取得部134は、選択されたボタンに対応するユーザIDに関連付けられているウィジェット情報取得用URLをユーザ管理テーブル138より取得する。なお、ユーザIDに対応するボタンの押下に応じ、ユーザの認証を行い、ユーザが認証された場合にのみ、以降の処理が実行されるようにしてもよい。
続いて、ウィジェット情報取得部134は、ウィジェット情報取得用URL宛に、ウィジェット情報の取得要求を送信する(S124)。ウィジェット情報取得用URL宛のウィジェット情報の取得要求は、ウィジェットマネージャ22のウィジェット情報提供部225によって受信される。ウィジェット情報提供部225は、ウィジェット情報管理テーブル227に登録されている全てのウィジェット21のウィジェット情報を取得し、取得されたウィジェット情報の一覧をプロバイダアプリ1221に送信する(S125)。ウィジェット情報の一覧の送信に際し、ウィジェット情報提供部225は、プロバイダアプリ1221と各ウィジェット21との通信を中継するためのURL(以下、「ウィジェット中継用URL」という。)をウィジェット21ごと(ウィジェット情報ごと)に一意に生成する。ウィジェット情報提供部225は、ウィジェット21ごとに生成されたウィジェット中継用URLを、各ウィジェット21に対応するウィジェット情報に付加し、ウィジェット中継用URLが付加されたウィジェット情報の一覧をプロバイダアプリ1221に送信する。したがって、ステップS125において送信されるウィジェット情報は、例えば、図13に示されるような構成を有する。
図13は、第一の実施の形態においてウィジェットマネージャからプロバイダアプリに送信されるスキャン翻訳ウィジェットのウィジェット情報の構成例を示す図である。
図13に示されるウィジェット情報は、図9のウィジェット情報に対してウィジェット中継用URLが付加されたものである。ステップS125では、同図に示されるようなウィジェット情報の一覧が送信される。ここでは、ウィジェット情報が一つしか含まれないものもウィジェット情報の一覧という。
なお、ウィジェット中継用URLは、ウィジェット情報登録部223が、ウィジェット情報をウィジェット情報管理テーブル227に登録する際に生成し、ウィジェット情報に付加しておいてもよい。
続いて、プロバイダアプリ1221のUI制御部133は、受信されたウィジェット情報の一覧をRAM112に記録しておき、当該ウィジェット情報の一覧に基づいて、ユーザに利用可能なウィジェット21の一覧を含む画面(ウィジェット選択画面)を表示させる(S126)。
図14は、ウィジェット選択画面の表示例を示す図である。同図に示されウィジェット選択画面620には、ウィジェット21ごとにボタンが表示されている。同図では、スキャン翻訳ウィジェット21cに対応するボタン621と、スキャンウィジェット21aに対応するボタン622と、印刷ウィジェット21bに対応するボタン623とが表示されている。
ウィジェット選択画面620において、スキャン翻訳ウィジェット21cに対応するボタン621が選択され、スキャナ12に原稿がセットされた後、操作パネル15のスタートキーが押下されると(S127)、プロバイダアプリ1221のサービス制御部136は、押下されたボタンに対応するウィジェット情報(以下、「カレントウィジェット情報」という。)に含まれているサービス利用情報の第一エントリ(図13参照)に含まれている種別識別子「SCAN」と提供者名「スキャンアプリ1211」とに基づいて、スキャンアプリ1211がスキャンサービスを実行すべきことを認識する。そこで、サービス制御部136は、当該第一エントリに含まれている設定情報を指定して、スキャンの実行指示をスキャンアプリ1211に入力する。スキャンアプリ1211は、原稿に対するスキャンをスキャナ12に実行させ、その結果得られる画像データ(スキャン画像)をサービス制御部136に出力する(S128)。
続いて、サービス制御部136は、当該サービス利用情報の第二エントリに含まれている種別識別子「OCR」と提供者名「OCRアプリ1222」とに基づいて、OCRアプリ1222がOCRサービスを実行すべきことを認識する。そこで、そこで、サービス制御部136は、当該第二エントリに含まれている設定情報を指定して、スキャン画像に対するOCR処理の実行指示をOCRアプリ1222に入力する。OCRアプリ1222は、スキャン画像に対するOCR処理を実行し、OCR処理の結果得られるテキストデータをサービス制御部136に出力する(S129)。
続いて、サービス制御部136は、当該サービス利用情報の第三エントリに含まれている提供者名「翻訳サービスアプリ」が画像形成装置10内におけるサービスの提供者名ではないことに基づいて、プロバイダアプリ1221に対して要求された全てのサービスの実行は完了と判断し、実行したサービスに関する課金処理をサービス課金部137に要求する。当該要求には、実行したサービスのサービスIDの一覧が指定される。サービス課金部137は、当該要求に応じ、サービス課金カウンタ140を更新する(S130)。具体的には、各サービスIDに対応するそれぞれの課金カウンタがカウントアップされる。なお、各サービスの提供者名が画像形成装置10内おけるサービスの提供者名であるか否かは、当該提供者名に対応するプログラムモジュールが画像形成装置10内に存在するか否かに基づいて判定してもよいし、当該サービスのサービスIDに対応するプロファイルデータが、画像形成装置10のプロファイルデータ管理部139に登録されているか否かに基づいて判定してもよい。
課金処理が完了すると、サービス制御部136は、テキストデータと最後に実行されたサービスのサービスID(ここでは、「ocr002」。以下「最終サービスID」という。)とをウィジェット連携部135に入力する。続いて、ウィジェット連携部135は、当該テキストデータと最終サービスIDとをカレントウィジェット情報に含まれているウィジェット中継用URL宛に送信する(S131)。ウィジェット中継用URL宛に送信されたテキストデータ及び最終サービスIDは、ウィジェットマネージャ22の中継部226によって受信される。中継部226は、当該ウィジェット中継用URLに対応するウィジェット情報をウィジェット情報管理テーブル227より取得し、当該ウィジェット情報に含まれているウィジェットアドレス宛にテキストデータ及び最終サービスIDを転送する(S132)。
当該ウィジェットアドレス宛に送信されたテキストデータ及び最終サービスIDは、スキャン翻訳ウィジェット21cの連携部213によって受信される。連携部213は、当該テキストデータ及び最終サービスIDをスキャン翻訳ウィジェット21cのロジック部214に入力する。ロジック部214は、最終サービスIDに基づいて、OCRサービスの実行までが行われたことを認識し、サービス利用情報(図9参照)に基づいて、翻訳処理の実行要求を翻訳サービスアプリ41に送信する(S133)。当該翻訳処理の実行要求にはテキストデータが含まれる。また、当該翻訳処理の実行要求は、翻訳サービスアプリ41のプロファイルデータに含まれているインタフェース情報に基づいて行われる。当該インタフェース情報は、翻訳サービスアプリ41に係るサービスIDに基づいて、ウィジェットマネージャ22を介してプロファイルデータ管理部228より取得される。
続いて、翻訳サービスアプリ41は、テキストデータに対する翻訳処理を実行し(S134)、翻訳処理の結果得られるテキストデータ(翻訳結果データ)をスキャン翻訳ウィジェット21cのロジック部214に返信する(S135)。ロジック部214は、翻訳結果データを受信すると、翻訳結果データを処理対象として所定の処理(ロジック)を実行する(S136)。例えば、ロジック部214は、属性情報管理ファイル215に設定されている保存先にテキストデータを保存する。
なお、翻訳サービスアプリ41の利用に関する課金については、画像形成装置10の関与するところではない。すなわち、翻訳サービスアプリ41の利用契約については、ユーザと翻訳サービスアプリ41による翻訳サービスの提供者との間の問題だからである。したがって、画像形成装置10において、翻訳サービスに関するサービス課金カウンタ140は更新されない。
但し、ウィジェットマネージャ22が翻訳サービスアプリ41の利用履歴を所定のコンピュータの記憶装置に記録するようにしてもよい。この場合、例えば、スキャン翻訳ウィジェット21cが、ステップS135以降に翻訳サービスアプリ41を利用したこと(例えば、翻訳サービスアプリ41のサービスID)をウィジェットマネージャ22に通知すればよい。当該通知(サービスの利用通知)により、ウィジェットマネージャ22は、翻訳サービスアプリ41が利用されたことを検知することができ、上記利用履歴を記録することができる。または、所定のタイミング(例えば、ステップS131等)において、ウィジェット連携部135は、スキャン翻訳ウィジェット21のウィジェット情報(図9参照)をウィジェットマネージャ22に送信するようにしてもよい。ウィジェットマネージャ22は、当該ウィジェット情報に含まれているサービス利用情報をサービスの利用通知として参照することにより、翻訳サービスアプリ41が利用されることを検知することができ、上記利用履歴を記録することができる。なお、ウィジェットマネージャ22は、翻訳サービスアプリ41が画像形成装置10以外によって提供されるサービスであることは、プロファイルデータ管理部228に登録されているプロファイルデータ(図6参照)のサービスカテゴリを参照して判断することができる。
ウィジェットマネージャ22は、当該利用履歴を定期的にウィジェットマネージャ22の提供者(例えば、画像形成装置10の販売者等)へ通知してもよい。このとき、個人を特定する情報は必要としない。ウィジェットマネージャ22の提供者は、集められた利用履歴ら計算した全ユーザの全使用回数に応じて、翻訳サービスアプリ41の提供者にたいして簡易的に課金(翻訳サービスアプリ41の利用を推奨したことに対する紹介料の課金)を行うことが可能である。これによりユーザは翻訳サービスアプリ41の利用契約のみ気にすればよい。また、各ユーザの個人情報を取得する必要がないので定期的に通知しやすくなる。
ところで、図11の処理の実行中において、図5の処理も並列的に実行されうる。具体的には、画像形成装置10を現在操作中のユーザとは異なるユーザに係るユーザ端末20が有するウィジェット21からのウィジェット情報の登録要求に基づいて、画像形成装置10のユーザ管理テーブル138には、当該ウィジェット情報に含まれているユーザID等が登録されうる。
続いて、図5のステップS105の詳細について説明する。図15は、第一の実施の形態における推奨サービスの判定処理の処理手順を説明するためのフローチャートである。
ステップS1051において、サービス推奨部222は、サービス利用予定情報(図7参照)に含まれているサービスIDを一つ取得する。例えば、「scan001」が取得される。続いて、サービス推奨部222は、当該サービスIDに係るプロファイルデータをプロファイルデータ管理部228より取得し、プロファイルデータリストに記録する(S1052)。プロファイルデータリストは、プロファイルデータのリストを格納可能な作業用の配列である。続いて、サービス推奨部222は、取得されたプロファイルデータと種別識別子が一致する全てのプロファイルデータをプロファイルデータ管理部228より取得し、取得されたプロファイルデータをプロファイルデータリストに追加する(S1053)。したがって、例えば、種別識別子が「SCAN」である全てのプロファイルデータがプロファイルリストに記録される。
続いて、サービス推奨部222は、有効期限が切れているプロファイルデータをプロファイルデータリストより除去する(S1054)。続いて、サービス推奨部222は、プロファイルデータリストに含まれている各プロファイルデータの品質(Q)、コスト(C)、及び納期(D)の評価値に基づいて、各サービスの総合評価値を算出し、当該総合評価値(S)に基づいて最適なサービスを判定する(S1055)。すなわち、総合評価値(S)が最も高いものを最適なサービスであると判定する。
本実施の形態において、総合評価値(S)は、以下の評価式で算出される。
S=α×Q+β×C+γ×D
ここで、α、β、及びγは、品質、コスト、又は納期に対する重み付け係数である。各係数の値は、ウィジェット21ごとに設定可能とするとよい。例えば、ウィジェット21の起動後であって、サービス利用予定情報の送信前にウィジェット21のUI制御部が設定画面を表示させる。連携部213は、当該設定画面を介して入力された各係数の値をサービス利用予定情報と共にサービス推奨部222に送信する。サービス推奨部222は、利用予定情報と共に受信された係数の値を用いて総合評価値(S)を算出する。そうすることにより、状況に応じて利用対象とするサービスの優先順位を変更することができる。また、評価式についても係数と同様にユーザによる設定を可能としてもよい。
なお、評価値が最も高いサービスが複数存在する場合、サービス利用予定情報に含まれているサービスを優先的に選択してもよい。
続いて、サービス推奨部222は、最適であると判定されたサービスの利用の可否を判定する(S1056)。例えば、当該サービスのサービスカテゴリが「MFP」であれば、当該サービスに関するプロファイルデータが取得されていることに基づいて、当該サービスは利用可能であると判定する。当該サービスのサービスカテゴリが「Webサービス」であれば、当該サービスの提供者(OCRサービスアプリ31又は翻訳サービスアプリ41等)との通信の可否に基づいて、当該サービスの利用の可否を判定する。通信の可否の判定は、例えば、アドレス情報に基づいてpingコマンドを発行することにより行ってもよい。当該サービスのサービスカテゴリが「ローカルアプリ」であれば、当該サービスの提供者(OCRソフト23又は翻訳ソフト24等)が起動されているか、又は起動可能であるか否かに基づいて利用の可否を判定する。
当該サービスの利用が不可能であると判定された場合(S1056でNo)、サービス推奨部222は、当該サービスをプロファイルデータリストより除去し(S1057)、ステップS1055及びS1056を繰り返し実行する。当該サービスの利用が可能であると判定された場合(S1056でYes)、サービス推奨部222は、当該サービスのサービスID、種別識別子、及び提供者名を判定結果に含める(S1058)。
ステップS1051〜S1058までの処理がサービス利用予定情報に含まれている全てのサービス(サービスID)に関して完了すると(S1065でYes)、図15の処理は終了する。
なお、サービス利用予定情報に含まれているサービスの利用の可否を最初に確認し、利用できない場合に限って他のサービスとの中から最適なものを選択するようにしてもよい。
上述したように、第一の実施の形態によれば、各サービスのプロファイルデータに基づいてサービス推奨部222によって適切なサービスが自動的に判定される。したがって、各ウィジェット21は、適切なサービスを利用して自らの機能を実現及び提供することができる。
また、画像形成装置10においては、画像形成装置10がネットワークを介して提供可能なサービスごとに課金管理が行われる。したがって、利用されたサービスの数に応じて課金額を変化させることができる。また、画像形成装置10課の利用に対する課金額の分配をサービス単位で容易かつ明確に行うことができる(この点については第四の実施の形態により更に明確となる。)。したがって、画像形成装置10を利用した新たなビジネスモデルの構築の可能性を高めることができる。
なお、画像形成装置10におけるサービスの種別(種別識別子)の単位は、画像形成装置10の製造者又は販売者側において決定される。基本的には、画像形成装置10の標準アプリ121又はSDKアプリ122によって提供可能なサービスの種別が画像形成装置10におけるサービスの種別の単位とされる。このことは、画像形成装置10の製造者又は販売者以外のサービスの提供者から見た場合、画像形成装置10におけるサービスの種別の単位は固定的であることを意味する。したがって、画像形成装置10におけるサービスに代替させるサービスを提供する場合、当該代替させるサービスの提供者は画像形成装置10において定義されているサービスの種別の単位に拘束される。具体的には、画像形成装置10において定義されているサービスの種別によって分類される単位でサービスを提供する必要がある。
但し、このことは、画像形成装置10の製造者又は販売者以外のサービスの提供者が任意にサービスの種別を定義できないことを意味するものではない。新たなサービスの種別を定義し、当該種別に属するサービスに関するプロファイルデータを定義し、当該種別に属するサービスを利用するウィジェット21が実装されれば、当該ウィジェットによって当該サービスは利用される。すなわち、ウィジェットマネージャ22は、画像形成装置10において定義されたサービスの種別と、画像形成装置10以外において定義されたサービスの種別とを区別なく扱う。具体的には、サービス推奨部222は、最適なサービスを判定する際に、サービスの種別が画像形成装置10において定義されたものであるか否かについては関与しない。斯かる構成により、サービスの拡張性が担保されている。
なお、上記では、ウィジェットマネージャ22がウィジェット21と同じユーザ端末20内に実装された例を説明した。但し、ウィジェットマネージャ22は、ユーザ端末20とは異なるコンピュータに実装されていてもよい。例えば、複数のユーザ端末20におけるウィジェット21に対応した処理が一つのウィジェットマネージャ21によって統合的に行われてもよい。
次に、第二の実施の形態について説明する。第二の実施の形態では、画像形成装置10におけるOCRアプリ1222は、OCR処理における一部の機能を下位のプログラムモジュール(プログラム部品)を利用して実現していることとする。
図16は、第二の実施の形態におけるOCRアプリと下位モジュールとの関係例を示す図である。同図において、OCRアプリ1222は、OCR処理の中で、地肌除去処理については地肌除去モジュールを利用し、罫線認識処理については罫線認識モジュールを利用することが示されている。なお、画像形成装置10には、地肌除去モジュールの実体として、標準で搭載されている地肌除去モジュールA及び後からプラグイン等で追加した地肌除去モジュールBがインストールされており、罫線認識モジュールの実体として、標準で搭載されている罫線認識モジュールA及び後からプラグイン等で追加した罫線認識モジュールBがインストールされていることとする。また、OCRアプリ1222は、既定の(デフォルトの)動作として地肌除去処理については地肌除去モジュールAを利用し、罫線認識処理については罫線認識モジュールAを利用するように実装されていることとする。
以下、第二の実施の形態の情報処理システム1の処理手順について説明する。
第二の実施の形態において、ウィジェットマネージャ22及びウィジェット21の起動時の処理手順は、第一の実施の形態とほぼ同様である(図5参照)。但し、第二の実施の形態では、ステップS103において、図17に示されるようなプロファイルデータがプロファイルデータ管理部228に登録される。
図17は、第二の実施の形態においてウィジェットマネージャのプロファイルデータ管理部に登録されたプロファイルデータの例を示す図である。
同図に示されるように、第二の実施の形態では、下位サービスの項目(列)が追加されている。下位サービスには、下位モジュールの入れ替えが可能なサービスについて、下位モジュールが提供するサービスのサービスIDが登録されている。これにより、下位サービスとの関連情報が構成させる。同図では、OCRアプリ1222に関して、「ocr002.jihadaA」及び「ocr002.keisenA」が登録されている。ocr002.jihadaAは、地肌除去モジュールAが提供するサービス(地肌除去サービス)のサービスIDである。ocr002.keisennAは、罫線認識モジュールAが提供するサービス(罫線認識サービス)のサービスIDである。なお、下位サービスのサービスIDは、接頭子として上位サービスのサービスIDが付加される。プログラムの処理において、上位サービスと下位サービスとの関係を容易に把握するための便宜的なものである。
また、同図では、地肌除去モジュールA、罫線認識モジュールA、地肌除去モジュールB、及び罫線認識モジュールBに関するプロファイルデータも登録されている。具体的には、サービスIDが、それぞれocr002.jihadaA、ocr002.keisenA、ocr002.jihadaB、ocr002.keisenBであるプロファイルデータが登録されている。すなわち、入れ替え可能な下位モジュール(第二階層以下のモジュール)によって提供されるサービスについても、第一階層のサービスと同様の形成のプロファイルデータが定義され、プロファイルデータ管理部228に登録されるのである。したがって、下位モジュールによって提供されるサービスについても、品質、コスト、及び納期等の評価値が登録される。
このように、第二の実施の形態では、下位モジュールによって提供されるサービスについても、画像形成装置10のサービス単位において1単位として扱われる。
なお、第一の実施の形態においても説明したように、図17に示されるプロファイルデータのうちサービスカテゴリが「MFP」であるプロファイルデータは、プロファイルデータ管理部139に登録されていたものがプロバイダアプリ1221より取得され、ステップS103において登録されたものである。
第二の実施の形態では、プロファイルデータの構成の変化に応じてサービス推奨部222による推奨サービスの判定処理が変化する。
図18は、第二の実施の形態における推奨サービスの判定処理の処理手順を説明するためのフローチャートである。図18中、図15と同一ステップには同一ステップ番号を付し、その説明は省略する。
図18では、ステップS1061及びS1062が追加されている。ステップS1061において、サービス推奨部222は、最適であると判定されたサービスのプロファイルデータに下位サービスのサービスIDが登録されているか(すなわち、下位サービスの入れ替えが可能であるか否か)を判定する。下位サービスのサービスIDが登録されている場合(S1061でYes)、サービス推奨部222は、下位サービスのサービスIDをサービスサービス利用予定情報として、推奨サービス判定処理(すなわち、図18の処理)を再帰的に実行する(S1062)。
例えば、図17に示されるプロファイルデータを用いて説明すると、OCRサービスに関してサービスIDが「ocr002」であるサービスが最適であると判定された場合、当該サービスのプロファイルデータには、下位サービスのサービスID(ocr.jihadaA、ocr002.keisenA)が登録されている。したがって、サービス推奨部222は、この二つのサービスIDをサービス利用予定情報として、ステップS1051以降の処理を再帰的に実行する。その結果、例えば、図19に示されるような判定結果がサービス推奨部222からスキャン翻訳ウィジェット21cの連携部213に返信される。
図19は、第二の実施の形態における推奨サービスの判定結果の例を示す図である。同図に示されるように、第二の実施の形態では、下位サービスについてもサービスID、種別識別子、及び提供者名が含まれている。なお、同図では、地肌除去サービス及び罫線認識サービスの双方についてデフォルトではないサービス(すなわち、地肌除去モジュールBによるサービスと罫線認識モジュールBによるサービス)が選択された例が示されている。下位サービスについてデフォルトのサービスが選択された場合は、当該サービスのサービスID等は、当該判定結果に含まれなくてもよい。
図19に示される判定結果をスキャン翻訳ウィジェット21cが採用した場合、図5のステップS107及びS108では、図20に示されるようなウィジェット情報がウィジェット情報登録部223に送信され、ウィジェット情報管理テーブル227に登録される。
図20は、第二の実施の形態におけるスキャン翻訳ウィジェットのウィジェット情報の例を示す図である。
同図のウィジェット情報のサービス利用情報には、地肌除去サービス及び罫線認識サービスに関する情報が含まれている。このように、第二の実施の形態では、下位サービスに関する情報もウィジェット情報のサービス利用情報に含まれうる。
続いて、第二の実施の形態におけるスキャン翻訳ウィジェット21cの処理手順について説明する。当該処理手順は、第一の実施の形態(図11)とほぼ同様である。但し、ステップS129において、サービス制御部136は、図20に示されるサービス利用情報の第二エントリに含まれている種別識別子「OCR」と提供者名「OCRアプリ1222」とに基づいて、OCRアプリ1222がOCRサービスを実行すべきことを認識すると共に、当該サービス利用情報の第三エントリ及び第四エントリに、OCRアプリ1222によるOCRサービスのサービスID(ocr002)を接頭子とするサービスIDが含まれていることに基づいて、当該エントリに係る下位モジュール(下位サービス)を利用したOCRサービスを実行すべきことを認識する。
そこで、サービス制御部136は、当該第二エントリに含まれている設定情報と当該第三エントリ及び第四エントリの内容とを指定して、スキャン画像に対するOCR処理の実行指示をOCRアプリ1222に入力する。OCRアプリ1222はスキャン画像に対するOCR処理を実行し、OCR処理の結果得られるテキストデータをサービス制御部136に出力する。この際、OCRアプリ1222は、地肌除去処理については地肌除去モジュールBを利用し、罫線認識処理については罫線認識モジュールBを利用する。
続いて、サービス制御部136は、実行したサービスのサービスIDの一覧を指定して、課金処理の実行をサービス課金部137に要求する。この際、当該サービスIDの一覧には、下位サービスのサービスID(ocr.jihadaB、ocr002.keisenB)も含まれる。したがって、サービス課金部137は、下位サービスについてもサービスごとにサービス課金カウンタ140を更新する(S130)。すなわち、第二の実施の形態では、下位サービスも一つのサービス単位として扱われるため、下位サービスごとに課金カウンタが存在するのである。
なお、上記では、便宜上、モジュール構成が2階層である例について説明したが、図17に示したプロファイルデータの構成例や、図18に示した処理手順から自明なように、第二の実施の形態は、3階層以上のモジュール構成に関しても適用可能である。例えば、罫線認識モジュールAに関して下位モジュールが存在する場合は、罫線認識モジュールAに対応するプロファイルデータの下位サービスの項目に、当該下位モジュールによるサービスのサービスIDを登録し、当該下位モジュールのサービスに関するプロファイルデータを定義すればよい。
だだし、下位モジュール(第二階層以下のモジュール)が入れ替え可能な範囲をサービスカテゴリが共通する範囲に限定してもよい。あるサービスの全階層構造を予め決定しておくことが困難であり、サービスカテゴリが共通する範囲で決定する方が都合がよいからである。また、下位モジュールを入れ替えることによってサービスカテゴリ間の通信が増加することを回避できる。
上述したように、第二の実施の形態によれば、サービスが階層構造を有する場合に、最上位のサービスのみならず、下位のサービスについても適切なものが自動的に判定され、利用されうる。したがって、状況に応じたサービスの利用形態の柔軟性を更に向上させることができる。
また、第二の実施の形態によれば、下位サービスごとに課金カウンタが更新される。したがって、より柔軟性の高い課金管理を行うことができる。
次に、第三の実施の形態について説明する。第三の実施の形態では、図1に示される情報処理システム1について、より具体的な状況設定を当てはめる。すなわち、画像形成装置10は、コンビニエンスストアに設置されていることとする。ユーザ端末20のユーザは、当該コンビニエンスストアに設置されている画像形成装置10を利用しに訪れた顧客である。したがって、ユーザ端末20は、可搬性のある端末である。ユーザ端末20と画像形成装置10とは無線通信によって通信可能である。但し、当該コンビニエンスストアの無線通信は、無線LANで接続する顧客に対して店舗外のネットワークに接続できないように制限されているか、ブルートゥース(Bluetooth)等の短距離無線通信で画像形成装置10とローカル接続をする。 以上の様な状況設定において、ユーザがユーザ端末20においてウィジェットマネージャ22を起動させ、更に、スキャン翻訳ウィジェット21cを起動させると図5の処理が実行される。ここで、ステップS101及びS102では、当該コンビニエンスストアに設置されている画像形成装置10のプロファイルデータが取得される。当該画像形成装置10が提供する各サービスは、有料である。したがって、当該各サービスのプロファイルデータのコストの評価値は、課金額に応じて低くされている。
続いて、ステップS104において、スキャン翻訳ウィジェット21cの連携部213が、図7に示した通りのサービス利用予定情報をウィジェットマネージャ22のサービス推奨部222に送信すると、ウィジェットマネージャ22は、推奨サービスの判定処理を実行する(S105)。ここで、当該コンビニエンスストアでは、外部との通信は行えないため、当該判定処理(図15)のステップS1056において、通信不可を理由にOCRサービスアプリ31及び翻訳サービスアプリ41は利用対象から除外される。その結果、サービス推奨部222による判定結果は、例えば図21に示されるようなものとなる。
図21は、第三の実施の形態における推奨サービスの判定結果の例を示す図である。同図に示されるように、第三の実施の形態では、第一又は第二の実施の形態における判定結果と異なり、翻訳ソフト24による翻訳サービスが推奨されている。翻訳サービスアプリ41が推奨されないのは、上述の通りネットワーク通信が不可能なためである。画像形成装置10における翻訳アプリ1223が推奨されないのは、コストにおける評価値の低さが影響したものと推測される。
図21に示される判定結果が採用された場合のスキャン翻訳ウィジェット21cの処理手順について説明する。図22は、第三の実施の形態におけるスキャン翻訳ウィジェット実行時の処理手順を説明するためのシーケンス図である。図22中、図11と同一ステップには同一ステップ番号を付し、その説明は適宜省略する。
ステップS125において、スキャン翻訳ウィジェット21cに関しては図23に示されるようなウィジェット情報がプロバイダアプリ1221のウィジェット情報取得部134に送信され、プロファイルデータ管理部139に登録される。
図23は、第三の実施の形態においてウィジェットマネージャからプロバイダアプリに送信されるスキャン翻訳ウィジェットのウィジェット情報の構成例を示す図である。同図のウィジェット情報のサービス利用情報では、翻訳ソフト24による翻訳サービスが利用対象とされている。
図23に示されるウィジェット情報によって、ステップS141以降の処理が図11とは異なったものとなる。すなわち、スキャン翻訳ウィジェット21cの連携部213によってテキストデータ及び最終サービスIDが受信されると(S132)、当該テキストデータ及び最終サービスIDはスキャン翻訳ウィジェット21cのロジック部214に入力される。ロジック部214は、最終サービスIDに基づいて、OCRサービスの実行までが行われたことを認識し、サービス利用情報(図23参照)に基づいて、翻訳処理の実行要求を翻訳ソフト24に送信する(S141)。当該翻訳処理の実行要求にはテキストデータが含まれる。なお、当該翻訳処理の実行要求は、翻訳ソフト24のプロファイルデータに含まれているインタフェース情報に基づいて行われる。
続いて、翻訳ソフト24は、テキストデータに対する翻訳処理を実行し(S142)、翻訳処理の結果得られる翻訳結果データをスキャン翻訳ウィジェット21cのロジック部214に返信する(S143)。ロジック部214は、翻訳結果データを受信すると、翻訳結果データを処理対象として所定の処理(ロジック)を実行する(S144)。例えば、ロジック部214は、属性情報管理ファイル215に設定されている保存先にテキストデータを保存する。
図22の処理では、スキャンサービス及びOCRサービスに関して画像処理装置10が利用された。したがって、ユーザ(顧客)には、サービス課金カウンタ140に基づいて、スキャンサービス及びOCRサービスの利用に関する課金額が請求される。
上述したように、第三の実施の形態によれば、外出先等で画像形成装置10を利用する環境が異なる場合でも、普段使用しているウィジェットを変更することなく画像形成装置を利用することができる。
次に、第四の実施の形態について説明する。第四の実施の形態では、第三の実施の形態とは別の具体的な状況設定を情報処理システム1(図1参照)に当てはめる。すなわち、画像形成装置10は、プリントサービス(当該「サービス」は、ビジネス上のサービスをいい、本実施の形態においてコンピュータシステムによって提供されるサービスよりも広義である。)を提供している企業の店舗に設置されていることとする。翻訳サーバ40は、当該企業によって運用されているサーバである。画像形成層装置10の翻訳アプリ1223は、それ自身に翻訳処理が実装されているのではなく、翻訳サーバ40の翻訳サービスアプリ41に翻訳処理を委譲するように実装されている。翻訳サーバ40は、ユーザ端末20からは隠蔽されている。すなわち、ユーザ端末20のユーザは、翻訳サービスアプリ41による翻訳サービスの存在を認識していない。ユーザ端末20のユーザは、当該店舗に設置されている画像形成装置10を利用しに訪れた顧客である。したがって、ユーザ端末20は、可搬性のある端末である。ユーザ端末20と画像形成装置10とは無線LAN、又はブルートゥース(Bluetooth)等の無線通信によって通信可能である。
以上の様な状況設定において、ユーザがユーザ端末20においてウィジェットマネージャ22を起動させ、更に、スキャン翻訳ウィジェット21cを起動させると図5の処理が実行される。ここで、ステップS101及びS102では、当該店舗に設置されている画像形成装置10のプロファイルデータが取得される。その結果、ステップS103の段階において、ウィジェット情報管理テーブル227に登録されているプロファイルデータは、図24に示す通りである。
図24は、第四の実施の形態においてウィジェットマネージャのプロファイルデータ管理部に登録されたプロファイルデータの例を示す図である。
同図のプロファイルデータにおいて、第一の実施の形態(図6参照)と大きく異なる点は、翻訳サービスアプリ41によるサービスに関するプロファイルデータ(サービスIDが「transserv」であるプロファイルデータ)が含まれていない点である。上記したように、翻訳サーバ40は、ユーザ端末20からは隠蔽されており、ユーザ端末20のユーザは、翻訳サービスアプリ41による翻訳サービスの存在を認識していないからである。
また、第四の実施の形態において、画像形成装置10が提供する各サービスは有料である。したがって、当該各サービスのプロファイルデータのコストの評価値は、課金額に応じて低くされている。
なお、同図において、翻訳アプリ1223に関する品質、コスト、及び納期に関する評価値は、実質的には翻訳サーバにおける翻訳サービスアプリ41に関する品質、コスト、又は納期に関する評価値である。
その後、ステップS104において、スキャン翻訳ウィジェット21cの連携部213が、図7に示した通りのサービス利用予定情報をウィジェットマネージャ22のサービス推奨部222に送信すると、ウィジェットマネージャ22は、推奨サービスの判定処理を実行する(S105)。ここで、サービス推奨部222による判定結果は、図25に示される通りであるとする。
図25は、第四の実施の形態における推奨サービスの判定結果の例を示す図である。同図に示されるように、第四の実施の形態では、OCRソフト23によるOCRサービスと、翻訳アプリ1223による翻訳サービスとが推奨されている。OCRソフト23が推奨されたのは、コストにおける評価値が影響したものと推測される。翻訳アプリ1223が推奨されたのは、品質における評価値が影響したものと推測される。
図25に示される判定結果が採用された場合のスキャン翻訳ウィジェット21cの処理手順について説明する。図26は、第四の実施の形態におけるスキャン翻訳ウィジェット実行時の処理手順を説明するためのシーケンス図である。図26中、図11と同一ステップには同一ステップ番号を付し、その説明は適宜省略する。
ステップS125において、スキャン翻訳ウィジェット21cに関しては図27に示されるようなウィジェット情報がプロバイダアプリ1221のウィジェット情報取得部134に送信され、プロファイルデータ管理部139に登録される。
図27は、第四の実施の形態においてウィジェットマネージャからプロバイダアプリに送信されるスキャン翻訳ウィジェットのウィジェット情報の構成例を示す図である。同図のウィジェット情報のサービス利用情報では、図25に示した判定結果がそのまま採用されている。
図27に示されるウィジェット情報(カレントウィジェット情報)によって、ステップS151以降の処理が図11とは異なったものとなる。すなわち、スキャンの実行後、サービス制御部136は、図27に示されるウィジェット情報におけるサービス利用情報の第二エントリに含まれている提供者名「OCR」が画像形成装置10内におけるサービスの提供者名ではないこと、及び第三エントリに含まれている提供者名「翻訳アプリ」が画像形成装置10内におけるサービスの提供者名であることに基づいて、プロバイダアプリ1221に対して要求されている全てのサービスの実行は完了してはいないが、これまでのサービスの実行結果(スキャン画像)を一度出力する必要があることを認識し、スキャン画像及び最終サービスID(ここでは、「scan001」)と、プロバイダアプリ1221に対して要求されているサービスは残っていることを示す情報とウィジェット連携部135に入力する。なお、サービス制御部136は、プロバイダアプリ1221に対して要求されている次のサービス(翻訳サービス)のサービスIDをRAM112に記録しておく。
続いて、ウィジェット連携部135は、当該スキャン画像と最終サービスIDとをカレントウィジェット情報に含まれているウィジェット中継用URL宛に送信する(S151)。その後、ウィジェット連携部135は、プロバイダアプリ1221に対して要求されているサービスは残っていることを示す情報に基づいて、ウィジェットマネージャ22からの要求を待機する。
ウィジェット中継用URL宛に送信されたスキャン画像及び最終サービスIDは、ウィジェットマネージャ22の中継部226によって受信される。中継部226は、当該ウィジェット中継用URLに対応するウィジェット情報をウィジェット情報管理テーブル227より取得し、当該ウィジェット情報に含まれているウィジェットアドレス宛にスキャン画像及び最終サービスIDを転送する(S152)。
当該ウィジェットアドレス宛に送信されたスキャン画像及び最終サービスIDは、スキャン翻訳ウィジェット21cの連携部213によって受信される。連携部213は、当該スキャン画像及び最終サービスIDをスキャン翻訳ウィジェット21cのロジック部214に入力する。ロジック部214は、最終サービスIDに基づいて、スキャンサービスの実行までが行われたことを認識し、サービス利用情報(図27参照)に基づいて、OCR処理の実行要求をOCRソフト23に送信する(S153)。当該OCR処理の実行要求にはスキャン画像が含まれる。なお、当該OCR処理の実行要求は、OCRソフト23のプロファイルデータに含まれているインタフェース情報に基づいて行われる。
続いて、OCRソフト23は、スキャン画像に対するOCR処理を実行し(S154)、OCR処理の結果得られるテキストデータをスキャン翻訳ウィジェット21cのロジック部214に返信する(S155)。
続いて、ロジック部214は、テキストデータを連携部213に入力する。連携部213は、当該テキストデータをウィジェットマネージャ22の中継部226に転送する(S156)。中継部226は、受信されたテキストデータをプロバイダアプリ1221のウィジェット連携部135に送信する(S157)。ウィジェットマネージャ22からの要求を待機していたウィジェット連携部135は、テキストデータを受信すると、当該テキストデータをサービス制御部136に入力する。
サービス制御部136は、RAM112に記録されている、次に実行するサービスのサービスIDに基づいて、翻訳アプリ1223に対して当該テキストデータを入力し、翻訳処理の実行を要求する。続いて、翻訳アプリ1223は、翻訳サービスアプリ41に対してテキストデータを送信し、翻訳処理の実行を要求する(S158)。続いて、翻訳サービスアプリ41は、当該テキストデータに対して翻訳処理を実行し(S159)、翻訳結果データを翻訳アプリ1223に返信する(S160)。翻訳アプリ1223は、受信した翻訳結果データをサービス制御部136に出力する。
続いて、サービス制御部136は、サービス利用情報(図27参照)に第四エントリは無いことに基づいてプロバイダアプリ1221に対して要求された全てのサービスの実行は完了と判断し、実行したサービスに関する課金処理をサービス課金部137に要求する。当該要求には、実行したサービスのサービスIDの一覧が指定される。サービス課金部137は、当該要求に応じ、サービス課金カウンタ140を更新する(S161)。具体的には、各サービスID(scan001、trans003)に対応するそれぞれの課金カウンタがカウントアップされる。第四の実施の形態において翻訳サービスについては、画像形成装置10を設置している店舗又は企業において提供しているサービスである。したがって、翻訳サービスの課金カウンタに基づいて、当該店舗又は企業に分配すべき収益を容易に判断することができる。
課金処理が完了すると、サービス制御部136は、翻訳結果データと最終サービスID(「trans003」)とをウィジェット連携部135に入力する。続いて、ウィジェット連携部135は、当該翻訳結果データと最終サービスIDとをカレントウィジェット情報に含まれているウィジェット中継用URL宛に送信する(S162)。ウィジェット中継用URL宛に送信された翻訳結果データ及び最終サービスIDは、ウィジェットマネージャ22の中継部226によって受信される。中継部226は、当該ウィジェット中継用URLに対応するウィジェット情報をウィジェット情報管理テーブル227より取得し、当該ウィジェット情報に含まれているウィジェットアドレス宛に翻訳結果データ及び最終サービスIDを転送する(S163)。
当該ウィジェットアドレス宛に送信されたテキストデータ及び最終サービスIDは、スキャン翻訳ウィジェット21cの連携部213によって受信される。連携部213は、当該翻訳結果データ及び最終サービスIDをスキャン翻訳ウィジェット21cのロジック部214に入力する。ロジック部214は、最終サービスIDに基づいて、利用情報に含まれる全てのサービスの実行が完了したことを認識し(すなわち、入力されたデータが翻訳結果データであることを認識し)、翻訳結果データを処理対象として所定の処理(ロジック)を実行する(S164)。
なお、上記では、プロバイダアプリ1221に要求されたすべてのサービスの実行が完了した後に課金処理が実行される例を示した。但し、一つのサービスの実行が完了するたびに当該サービスに対するサービス課金カウンタ140を更新してもよい。特に、第四の実施の形態にように、途中までのサービスの実行結果(スキャン画像)が画像形成装置10からユーザ端末20に転送される場合、ユーザは少なくとも途中までのサービスを享受したと考えることもできる。したがって、その後、何らかの異常(通信異常等)が発生し、スキャン翻訳ウィジェット21cによる最終的な成果物(翻訳結果データ)が得られなかった場合であっても、ユーザの手元にスキャン画像が残ることに鑑みれば、当該途中までのサービスに関する課金が行われるのは不当ではないと考えることもできる。
上述したように、第四の実施の形態によれば、企業又は店舗側において提供されているサービス(ここでは翻訳サービス)と画像形成装置10とを連携させることにより、画像形成装置10の利用者に課金された金額を当該企業又は店舗側に分配することができる。このことは、当該企業又は店舗側における新たな収益源が確保されることを意味する。したがって、企業又は店舗側に対して、本実施の形態における画像形成装置10を設置したいというインセンティブを高めることができる。その結果、画像形成装置10の販売者の収益を向上させることもできる。
但し、第四の実施の形態では、ウィジェットマネージャ22のサービス推奨部222によって自動的に最適なサービスが判定又は選択されるため、必ずしも当該企業又は店舗側において提供されているサービスが利用対象として選択されるとは限らない。また、そもそも斯かるサービスが当該企業又は店舗によって提供されていることをユーザが認識しない可能性もある。そこで、当該企業又は店舗において提供されているサービスが利用される機会の増加を期待できる形態として、第五の実施の形態を説明する。
図28は、第五の実施の形態におけるプロバイダアプリの機能構成例を示す図である。図28中、図1と同一部分には同一符号を付し、その説明は省略する。
図28では、サービス宣伝部141及び宣伝属性情報管理部142が更に追加されている。サービス宣伝部141は、ユーザに利用を促したいサービスを宣伝するための処理を制御する。宣伝属性情報管理部142は、HDD114において宣伝属性情報が記録された記憶領域である。宣伝属性情報は、サービスの宣伝に関する情報である。
第五の実施の形態では、サービス推奨部222による判定結果には翻訳アプリ1223による翻訳サービス(実質的には、翻訳サービスアプリ41による翻訳サービス)含まれず、当該判定結果がそのまま採用されたこととする。すなわち、プロバイダアプリ1221のプロファイルデータ管理部139に登録されているスキャン翻訳ウィジェット21cのウィジェット情報のサービス利用情報では、翻訳ソフト24による翻訳サービスが利用対象とされていることとする。斯かる前提において、スキャン翻訳ウィジェット21cの処理手順について説明する。
図29は、第五の実施の形態におけるスキャン翻訳ウィジェット実行時の処理手順を説明するためのシーケンス図である。図29中、図26と同一ステップには同一ステップ番号を付し、その説明は省略する。
同図では、ステップS127−1〜S127−7が追加されている。すなわち、ウィジェット選択画面620において、スキャン翻訳ウィジェット21cに対応するボタン621が選択され、スキャナ12に原稿がセットされた後、操作パネル15のスタートキーが押下されると(S127)、サービス宣伝部141は、宣伝属性情報管理部142に宣伝属性情報が登録されているサービスの宣伝の要否を判定する(S127−1)。
図30は、宣伝属性情報管理部における宣伝属性情報の構成例を示す図である。同図に示されるように、宣伝属性情報は、サービスID、種別識別子及び宣伝情報等を含む。サービスIDは、宣伝対象とされているサービスIDである。種別識別子は、宣伝対象とされているサービスの種別識別子である。本実施の形態では、翻訳アプリ1223による翻訳サービス(翻訳サービスアプリ41による翻訳サービス)が宣伝対象とされている。宣伝情報は、いわゆる宣伝文句の表示用のデータである。例えば、宣伝情報には、翻訳サービスアプリ41によって翻訳サービスが提供されていることや翻訳サービスアプリ41を利用するメリット等を内容とするメッセージが含まれる。なお、宣伝情報のデータ形式は所定のものに限定されない。単なる文字列であってもよいし、画像データ又は文書データ等であってもよい。
サービス宣伝部141は、スキャン翻訳ウィジェット21cのウィジェット情報(カレントウィジェット情報)のサービス利用情報に含まれている各サービス(すなわち、利用対象とされている各サービス)について、サービスIDは異なるが種別識別子が一致するレコード(すなわち、宣伝対象とされているが利用対象とされていないサービスに係るレコード)を宣伝属性情報管理部142より検索する。利用対象とされている各サービスのうち、いずれかのサービスに関して宣伝属性情報が検索された場合、サービス宣伝部141は、検索された宣伝属性情報に係るサービスの宣伝が必要であると判定し、当該宣伝属性情報をカレントウィジェット情報に含まれているウィジェット中継用URL宛に送信する(S127−2)。
ウィジェット中継用URL宛に送信された宣伝属性情報は、ウィジェットマネージャ22の中継部226によって受信される。中継部226は、当該ウィジェット中継用URLに対応するウィジェット情報をウィジェット情報管理テーブル227より取得し、当該ウィジェット情報に含まれているウィジェットアドレス宛に宣伝属性情報を転送する(S127−3)。
当該ウィジェットアドレス宛に送信された宣伝属性情報は、スキャン翻訳ウィジェット21cの連携部213によって受信される。連携部213は、当該宣伝属性情報をウィジェットUI部211に入力する。ウィジェットUI部211は、当該宣伝属性情報に含まれている宣伝情報と、宣伝に係るサービスを利用するか否かを選択させるボタン(例えば、チェックボタン)とを有する宣伝画面を表示装置206に表示させる(S127−4)。第五の実施の形態では、翻訳サービスアプリ41に関する宣伝情報が宣伝画面に表示される。
なお、宣伝対象のサービスが複数存在する場合、サービスごとに宣伝情報及びボタンが表示される。宣伝画面において、少なくとも一つのサービスを利用することがユーザによって選択されると、連携部213は、選択されたサービスのサービスIDの一覧を宣伝属性情報より取得し、取得されたサービスID一覧をウィジェットマネージャ22の中継部226に送信する(S127−5)。なお、連携部213は、スキャン翻訳ウィジェット21c側で保持しているウィジェット情報のサービス利用情報を、当該サービスIDによって更新しておく。
一方、宣伝画面において、宣伝されたサービスを一つも利用しないことがユーザによって選択された場合、連携部213は、空のサービスIDの一覧を中継部226に送信する。
続いて、中継部226は、当該サービスIDの一覧をプロバイダアプリ1221のサービス宣伝部141に送信する(S127−6)。サービス宣伝部141は、受信されたサービスIDの一覧が空でない場合、当該一覧に含まれているサービスIDによってカレントウィジェット情報のサービス利用情報を更新する(S127−7)。これにより、利用対象とするサービスが入れ替えられる。
第五の実施の形態において、翻訳サービスアプリ41に関する宣伝に応じて、翻訳アプリ1223が利用対象として選択された場合、ステップS128以降の処理手順は、図26において説明した通りである。したがって、翻訳サービスに関しては、翻訳アプリ1223を介して翻訳サービスアプリ41が利用される。
なお、宣伝情報は、画像形成装置10側で表示させるようにしてもよい。この場合、ウィジェット21側(スキャン翻訳ウィジェット21c)に宣伝属性情報を転送しなくてもよい。具体的には、サービス宣伝部141は、宣伝属性情報管理部142より検索された宣伝属性情報をUI制御部に入力する。UI制御部は、当該宣伝属性情報に含まれている宣伝情報を表示させる宣伝画面を操作パネル15に表示させる。当該宣伝画面を介して宣伝されたサービスの利用指示がユーザによって入力された場合、ウィジェット連携部135及びウィジェットマネージャ22の中継部226を介して、利用対象とするサービスが入れ替えられることの通知がスキャン翻訳ウィジェット21cに送信される。当該通知には、少なくとも新たに利用対象とされたサービスのサービスID及び種別識別子が含まれていればよい。連携部213は、当該サービスID及び種別識別子に基づいて、スキャン翻訳ウィジェット21c側で保持しているウィジェット情報のサービス利用情報を更新する。
上述したように、第五の実施の形態によれば、企業又は店舗側において提供され、画像形成装置10と連携しているサービス(ここでは翻訳サービス)について、顧客に対して積極的に利用を促すことができる。したがって、企業又は店舗側に対して、本実施の形態における画像形成装置10を設置したいというインセンティブを高めることができる。その結果、画像形成装置10の販売者の収益を向上させることもできる。
ところで、第四及び第五の実施の形態では、スキャン→OCR→翻訳といった一連の処理手順の中で、スキャンと翻訳とが画像形成装置10において実行される。その結果、画像形成装置10とスキャン翻訳ウィジェット21cとの間の通信回数が増加してしまっている。通信回数の増加は、スキャン翻訳ウィジェット21cの処理全体の処理時間に影響を及ぼしうる。そこで、画像形成装置10とウィジェット21との間の通信回数の減少という観点をサービス推奨部222による推奨サービスの判定処理に盛り込んでもよい。例えば、第五の実施の形態であれば、サービス推奨部222には、OCRアプリ1222によるOCRサービスを最適なOCRサービスとして判定してもよい。一般化して説明すると、サービスの実行順において、サービスカテゴリが「MFP」に挟まれているサービスについては、サービスカテゴリが「MFP」であるサービスを優先的に選択するようにしてもよい。又は、サービスカテゴリが「MFP」に挟まれているサービスの前後に実行されるサービスのいずれかを、サービスカテゴリが「MFP」以外のサービスを優先的に選択するようにしてもよい。
次に、第六の実施の形態について説明する。図31は、第六の実施の形態における情報処理システムの構成例を示す図である。図31中、図1と同一部分には同一符号を付し、その説明は省略する。
同図では、無料サービスサーバ50及びダウンロードサーバ60が情報処理装置2の構成要素として含まれている。無料サービスサーバ50及びダウンロードサーバ60は、画像形成装置10の販売者又は製造者によって運営されるコンピュータサーバである。無料サービスサーバ50は、画像形成装置10のSDKアプリ122によって提供されるサービスをネットワークを介して(例えば、Webサービスとして、又はASP(Application Service Provider)として)無料で提供する。本実施の形態では、OCRアプリ1222及び翻訳アプリ1223によるサービスが無料で提供されうる。
ダウンロードサーバ60は、画像形成装置10の販売者又は製造者によって開発された各種のウィジェット21のダウンロードサービスを提供する。同図のユーザ端末20が有するスキャン翻訳ウィジェット21cは、ダウンロードサーバ60よりダウンロードされたものである。
また、画像形成装置10は、画像形成装置10のユーザである企業のオフィス(職場)に設置されていることとする。ユーザ端末20のユーザは、当該企業の従業員である。
ところで、同図において、画像形成装置10には、OCRアプリ1222及び翻訳アプリ1223はインストールされていない。SDKアプリ122は有料であるところ、当該オフィスにおける画像形成装置10の管理者は、OCRアプリ1222及び翻訳アプリ1223の必要性を認識していないからである。
一方、画像形成装置10の販売者は、SDKアプリ122の販売をも行っており、SDKアプリ122の販売によって収益を確保するためのビジネスモデルを展開している。例えば、当該販売者には、SDKアプリ122を画像形成装置10にインストールしたユーザより、毎月SDKアプリ122の使用料金が支払われる。したがって、当該販売者にとって、SDKアプリ122の販売促進は非常に重要な課題である。
そこで、第六の実施の形態では、図31に示されるシステム形態において、SDKアプリ122の販売促進を可能とした例について説明する。
図32は、第六の実施の形態におけるプロバイダアプリの機能構成例を示す図である。図32中、図1と同一部分には同一符号を付し、その説明は省略する。
図32では、SDK利用促進部143及びSDKサービス情報管理部144が更に追加されている。SDK利用促進部143は、SDKアプリ122の利用を促進させるための処理を制御する。SDKサービス情報管理部144は、HDD114においてSDKサービス情報が記録された記憶領域である。SDKサービス情報は、販売されているSDKアプリ122によって提供されるサービスに関する情報である。
第六の実施の形態において、ウィジェットマネージャ22及びウィジェット21の起動時の処理手順は、図5において説明した通りである。
第六の実施の形態では、ステップS103において、図33に示されるようなプロファイルデータがプロファイルデータ管理部228に登録される。
図33は、第六の実施の形態においてウィジェットマネージャのプロファイルデータ管理部に登録されたプロファイルデータの例を示す図である。
同図において、OCRアプリ1222及び翻訳アプリ1223によるサービスのサービスカテゴリは「Webサービス」である。すなわち、当該サービスは、画像形成装置10において提供されているものではない。当該サービスのプロファイルデータは、ステップS101及びS102においてプロバイダアプリ1221より取得されたものではなく、スキャン翻訳ウィジェット21cと共にダウンロードサーバ60よりダウンロードされたものである。同図に示されるプロファイルデータの中で、新たにプロバイダアプリ1221より取得され、登録されるのは、スキャンアプリ1211によって提供されるスキャンサービスに関するプロファイルデータ(サービスIDが「scan001」のプロファイルデータ)のみである。
続いて、ステップS104において、スキャン翻訳ウィジェット21cの連携部213は、図34に示されるようなサービス利用予定情報をウィジェットマネージャ22のサービス推奨部222に送信する。
図34は、第六の実施の形態におけるサービス利用予定情報の構成例を示す図である。同図に示されるように、第六の実施の形態におけるスキャン翻訳ウィジェット21cでは、OCRサービス及び翻訳サービスについては、無料サービスサーバ50におけるOCRアプリ1222又は翻訳アプリ1223によって提供されているサービスがデフォルトの利用対象とされている。すなわち、画像形形成装置10の販売者は、スキャン翻訳ウィジェット21cを介してOCRアプリ1222及び翻訳アプリ1223の利便性等をエンドユーザに認識してもらいたいからである。
続いて、サービス推奨部222によって、最適なサービスが判定されるが(S105)、第六の実施の形態では、当該判定処理は、サービス利用予定情報に含まれているサービスが利用できない場合に、他のサービスの中から最適なものが選択されるようなロジックが好適である。OCRアプリ1222及び翻訳アプリ1223によるサービスが利用される可能性を高めることができるからである。又は、SDKアプリ122の販売者において、OCRアプリ1222及び翻訳アプリ1223のそれぞれのプロファイルデータの品質、コスト、及び納期の評価値を高く設定しておいてもよい。
続いて、サービス利用予定情報に含まれるサービスがそのまま利用対象として採用された場合のスキャン翻訳ウィジェット21cの処理手順について説明する。図35は、第六の実施の形態におけるスキャン翻訳ウィジェット実行時の処理手順を説明するためのシーケンス図である。図35中、図26と同一ステップには同一ステップ番号を付し、その説明は適宜省略する。
ステップS125において、スキャン翻訳ウィジェット21cに関しては図36に示されるようなウィジェット情報がプロバイダアプリ1221のウィジェット情報取得部134に送信され、プロファイルデータ管理部139に登録される。
図36は、第六の実施の形態においてウィジェットマネージャからプロバイダアプリに送信されるスキャン翻訳ウィジェットのウィジェット情報の構成例を示す図である。同図のウィジェット情報のサービス利用情報では、図34に示したサービス利用予定情報がそのまま採用されている。
図36に示されるウィジェット情報(カレントウィジェット情報)によって、ステップS171以降の処理が図26とは異なったものとなる。すなわち、サービス制御部136は、カレントウィジェット情報(図36参照)のサービス利用情報の第二及び第三エントリに含まれている提供者名が画像形成装置10内におけるサービスの提供者名ではないことに基づいて、プロバイダアプリ1221に対して要求された全てのサービスの実行は完了と判断し、実行したサービスに関する課金処理をサービス課金部137に要求する。サービス課金部137は、当該要求に応じ、サービスID「scan001」に対応する課金カウンタを更新する(S171)。
課金処理が完了すると、サービス制御部136は、SDK利用促進部143に処理の実行を要求する。SDK利用促進部143は、カレントウィジェット情報のサービス利用情報とSDKサービス情報管理部144に登録されているSDKサービス情報とに基づいて、必要に応じて外部利用回数をSDKサービス情報管理部144に記録する(S172)。
図37は、SDKサービス情報管理部におけるSDKサービス情報の構成例を示す図である。同図に示されるように、SDKサービス情報は、販売されているSDKアプリ122によって提供可能なサービス(すなわち、SDKアプリ122の販売者が画像形成装置10において利用可能とさせたいSDKアプリ122によって提供されるサービス)ごとに、サービスID、種別識別子、提供者、宣伝情報、及び外部利用回数等を含む。外部利用回数は、当該サービスが画像形成装置10外において利用された回数である。宣伝情報は、当該サービスを画像形成装置10において利用可能とさせるための(SDKアプリ122のインストールを促進するための)宣伝情報(メッセージ等)である。データ形式が問われないのは、第五の実施の形態の宣伝属性情報における宣伝情報と同様である。
SDK利用促進部143は、カレントウィジェット情報のサービス利用情報に含まれるサービスの中で、画像形成装置10内において実行されなかったサービス(本実施の形態では、OCRアプリ1222によるOCRサービス及び翻訳サービスによる翻訳サービス)と、サービスID、種別識別子、及び提供者名が一致するSDKサービス情報をSDKサービス情報管理部144より検索する。但し、種別識別子のみが一致するSDKサービス情報が検索されてもよい。SDK利用促進部143は、検索されたSDKサービス情報の外部利用回数をインクリメント(更新)する。
すなわち、外部利用回数がインクリメントされるのは、画像形成装置10にインストールされていないSDKアプリ122であって、無料サービスサーバにおいてサービスを提供しているSDKアプリ122に関するSDKサービス情報である。
外部利用回数が更新されたSDKサービス情報の中で、外部利用回数が所定の閾値を超えたSDKサービス情報が有る場合、SDK利用促進部143は、処理の終了通知と共に当該サービス情報をサービス制御部136に出力する。外部利用回数が所定の閾値を超えたSDKサービス情報が無い場合、SDK利用促進部143は、処理の終了通知のみをサービス制御部136に出力する。本実施の形態では、図37の2行目のSDKサービス情報(翻訳アプリ1223のSDKサービス情報)が出力されたこととする。
SDK利用促進部143からの処理の終了通知に応じ、サービス制御部136は、スキャン画像及び最終サービスIDここでは、「scan001」)と、SDK利用促進部143から出力されたSDKサービス情報とをウィジェット連携部135に入力する。
続いて、ウィジェット連携部135は、スキャン画像、最終サービスID、及びSDKサービス情報をカレントウィジェット情報に含まれているウィジェット中継用URL宛に送信する(S173)。ウィジェット中継用URL宛に送信されたスキャン画像、最終サービスID、及びSDKサービス情報は、ウィジェットマネージャ22の中継部226によって受信される。中継部226は、当該ウィジェット中継用URLに対応するウィジェット情報をウィジェット情報管理テーブル227より取得し、当該ウィジェット情報に含まれているウィジェットアドレス宛にスキャン画像、最終サービスID、及びSDKサービス情報を転送する(S174)。
当該ウィジェットアドレス宛に送信されたスキャン画像、最終サービスID、及びSDKサービス情報は、スキャン翻訳ウィジェット21cの連携部213によって受信される。連携部213は、SDKサービス情報が受信された場合は、当該SDKサービス情報をウィジェットUI部211に入力する。ウィジェットUI部211は、当該SDKサービス情報に含まれている宣伝情報を表示装置206に表示させる(S175)。ここでは、翻訳アプリ1223に関する宣伝メッセージが表示装置206に表示される。例えば、翻訳アプリ1223を導入することのメリット等を示すメッセージが宣伝情報として表示される。
続いて、連携部213は、受信されたスキャン画像及び最終サービスIDをスキャン翻訳ウィジェット21cのロジック部214に入力する。ロジック部214は、最終サービスIDに基づいて、スキャンサービスの実行までが行われたことを認識し、サービス利用情報(図36参照)に基づいて、OCR処理の実行要求を無料サービスサーバ50のOCRアプリ1222に送信する(S176)。当該OCR処理の実行要求にはスキャン画像が含まれる。なお、当該OCR処理の実行要求は、OCRアプリ1222のプロファイルデータに含まれているインタフェース情報に基づいて行われる。続いて、OCRアプリ1222は、スキャン画像に対するOCR処理を実行し(S177)、OCR処理の結果得られるテキストデータをスキャン翻訳ウィジェット21cのロジック部214に返信する(S178)。
続いて、ロジック部214は、サービス利用情報(図36参照)に基づいて、翻訳処理の実行要求を無料サービスサーバ50の翻訳アプリ1223に送信する(S179)。当該翻訳処理の実行要求にはテキストデータが含まれる。なお、当該翻訳処理の実行要求は、翻訳アプリ1223のプロファイルデータに含まれているインタフェース情報に基づいて行われる。続いて、翻訳アプリ1223は、テキストデータに対する翻訳処理を実行し(S181)、翻訳処理の結果得られる翻訳結果データをスキャン翻訳ウィジェット21cのロジック部214に返信する(S182)。続いて、ロジック部214は、翻訳結果データを処理対象として所定の処理(ロジック)を実行する(S183)。
上述したように、第六の実施の形態によれば、スキャン翻訳ウィジェット21cに対してサービスを提供可能なSDKアプリ122の存在をユーザに認識させることができる。したがって、例えば、スキャン翻訳ウィジェット21cをダウンロードサーバ60等より無料でダウンロード可能とし、多数のエンドユーザにスキャン翻訳ウィジェット21cを利用させることで、多数のエンドユーザにOCRアプリ1222や翻訳アプリ1223の存在を認識させることができる。その結果、OCRアプリ1222や翻訳アプリ1223の利便性を認識したエンドユーザによって、オフィスにおける画像形成装置10の管理者に対してOCRアプリ1222や翻訳アプリ1223の画像形成装置10への導入(購入及びインストール)が要求されることが期待できる。OCRアプリ1222や翻訳アプリ1223の導入の可能性を高めるために、無料サービスサーバ50において提供されるサービスについては、機能(設定可能な設定項目)や有効期限等に制限を設けるようにしてもよい。
OCRアプリ1222や翻訳アプリ1223が画像形成装置10へインストールされた後でもこれらのプロファイルデータの評価値を高く設定されていれば、サービス推奨部222により自動的に選択される。よって、インストール前後でユーザによるスキャン翻訳ウィジェット21cの変更は不要である。
このように、ウィジェット21の配布によって、ウィジェット21が利用するサービスの提供元であるSDKアプリ122の販売促進を効果的に図ることができる。
なお、上記では、外部利用回数が閾値を超えた場合に宣伝情報を表示させる例について説明したが、SDKサービス情報管理部144にSDKサービス情報が登録されているサービスについて、外部での利用が検出されるたびに宣伝情報を表示させるようにしてもよい。但し、宣伝情報の表示を閾値を超えた場合に限定することにより、宣伝対象とするSDKアプリ122を利用回数の多いものに限定することができ、宣伝効果をより高めることができる。また、頻繁な宣伝による不快感をユーザに与えることを回避することができる。
ところで、上記各実施の形態では、画像形成装置10が利用されるシーケンスについて説明した。しかしながら、ウィジェット21の処理シーケンスの自由度は高く、画像形成装置10を利用した処理シーケンスに限定されない。例えば、ユーザ端末20に保存されている画像データに対してOCRを実行するというウィジェット21が実装されてもよい。当該ウィジェット21の処理シーケンスでは、画像形成装置10との連携は行われない。しかし、最適なOCRサービスの選択について、ウィジェットマネージャ22のサービス推奨部222を利用することができる。その結果、ユーザ端末20(ローカル環境)又はネットワーク上において提供されている複数のOCRサービスの中から所定の基準に基づいて最適なOCRサービスを利用して、当該ウィジェット21の機能を実行させることができる。
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。