以下、添付図面を参照しながら、本発明に係る情報処理システム、情報処理装置、情報処理方法およびプログラムの実施形態を詳細に説明する。以下では、本発明に係る機器の一例として、画像形成装置の一態様である複合機(MFP:Multifunction Peripheral)を例に挙げて説明するが、これに限られるものではなく、例えばプロジェクタなどであってもよい。なお、複合機とは、コピー機能、スキャナ機能、プリント機能、FAX機能などの複数の異なる機能を有する装置である。
図1は、本実施形態の情報処理システム100の概略構成の一例を示す図である。図1に示すように、情報処理システム100は、MFP1と、アプリストアサーバ2と、翻訳サーバ4と、機器管理サーバ5を備え、これらはネットワーク8を介して相互に接続される。説明の便宜上、図1の例では、情報処理システム100に含まれる機器として、1台のMFP1のみを例示しているが、これに限られるものではなく、情報処理システム100に含まれる機器の台数および種類は任意である。
アプリストアサーバ2は、MFP1が利用可能なアプリケーションの一覧を表示し、各アプリケーションの利用契約やダウンロードをするためのWebページ、言い換えれば、MFP1が利用可能なアプリケーションを提供するためのWebページ(以下の説明では、「アプリストア6」と称する)を、MFP1に対して提供する。より具体的な内容については後述する。この例では、アプリストア6は請求項の「アプリケーション一覧画面」に対応している。また、この例では、アプリストアサーバ2からアプリストア6を取得してMFP1に表示するためのアプリケーション(以下の説明では、「AppStoreアプリ3」と称する)、および、Webブラウザの機能を提供するためのアプリケーション(以下の説明では、「ブラウザアプリ2b」と称する)の各々が、MFP1にインストールされている。MFP1の具体的な内容については後述する。
また、アプリストアサーバ2は、MFP1等の機器を販売する販売店を識別する販売店識別情報ごとに、アプリケーションを識別するアプリケーション識別情報を対応付けて管理する。より具体的な内容については後述する。
翻訳サーバ4は、アプリストア6で提供されているアプリケーションの一つである翻訳アプリを提供する。より具体的な内容については後述する。
機器管理サ−バ5は、販売店識別情報ごとに、MFP1等の機器を一意に特定する機器特定情報を対応付けて管理する。より具体的な内容については後述する。
次に、図2を用いて、MFP1のハードウェア構成について説明する。図2に示すように、MFP1は、コピー機能、スキャナ機能、ファクス機能、プリンタ機能などの各種の機能を実現可能な本体10と、ユーザの操作を受け付ける操作部20とを備える。なお、ユーザの操作を受け付けるとは、ユーザの操作に応じて入力される情報(画面の座標値を示す信号等を含む)を受け付けることを含む概念である。本体10と操作部20は、専用の通信路30を介して相互に通信可能に接続されている。通信路30は、例えばUSB(Universal Serial Bus)規格のものを用いることもできるが、有線か無線かを問わず任意の規格のものであってよい。
なお、本体10は、操作部20で受け付けた操作に応じた動作を行うことができる。また、本体10は、クライアントPC(パーソナルコンピュータ)等の外部装置とも通信可能であり、外部装置から受信した指示に応じた動作を行うこともできる。
まず、本体10のハードウェア構成について説明する。図2に示すように、本体10は、CPU11と、ROM12と、RAM13と、HDD(ハードディスクドライブ)14と、通信I/F(インタフェース)15と、接続I/F16と、エンジン部17とを備え、これらがシステムバス18を介して相互に接続されている。
CPU11は、本体10の動作を統括的に制御する。CPU11は、RAM13をワークエリア(作業領域)としてROM12またはHDD14等に格納されたプログラムを実行することで、本体10全体の動作を制御し、上述したコピー機能、スキャナ機能、ファクス機能、プリンタ機能などの各種機能を実現する。
通信I/F15は、ネットワーク8と接続するためのインタフェースである。接続I/F16は、通信路30を介して操作部20と通信するためのインタフェースである。
エンジン部17は、コピー機能、スキャナ機能、ファクス機能、および、プリンタ機能を実現させるための、汎用的な情報処理及び通信以外の処理を行うハードウェアである。例えば、原稿の画像をスキャンして読み取るスキャナ(画像読取部)、用紙等のシート材への印刷を行うプロッタ(画像形成部)、ファクス通信を行うファクス部などを備えている。更に、印刷済みシート材を仕分けるフィニッシャや、原稿を自動給送するADF(自動原稿給送装置)のような特定のオプションを備えることもできる。
次に、操作部20のハードウェア構成について説明する。図2に示すように、操作部20は、CPU21と、ROM22と、RAM23と、フラッシュメモリ24と、通信I/F25と、接続I/F26と、操作パネル27とを備え、これらがシステムバス28を介して相互に接続されている。
CPU21は、操作部20の動作を統括的に制御する。CPU21は、RAM23をワークエリア(作業領域)としてROM22またはフラッシュメモリ24等に格納されたプログラムを実行することで、操作部20全体の動作を制御し、ユーザから受け付けた入力に応じた情報(画像)の表示などの後述する各種機能を実現する。
通信I/F25は、ネットワーク8と接続するためのインタフェースである。接続I/F26は、通信路30を介して本体10と通信するためのインタフェースである。
操作パネル27は、ユーザの操作に応じた各種の入力を受け付けるとともに、各種の情報(例えば受け付けた操作に応じた情報、MFP1の動作状況を示す情報、設定状態などを示す情報など)を表示する。この例では、操作パネル27は、タッチパネル機能を搭載した液晶表示装置(LCD)で構成されるが、これに限られるものではない。例えばタッチパネル機能が搭載された有機EL表示装置で構成されてもよい。さらに、これに加えて又はこれに代えて、ハードウェアキー等の操作部やランプ等の表示部を設けることもできる。
次に、MFP1のソフトウェア構成について説明する。図3は、MFP1のソフトウェア構成の一例を示す模式図である。図3に示すように、本体10は、アプリ層101と、サービス層102と、OS層103とを有する。アプリ層101、サービス層102、および、OS層103の実体は、ROM12やHDD14等に格納されている各種ソフトウェアである。CPU11が、これらのソフトウェアを実行することにより、各種の機能が提供される。
アプリ層101のソフトウェアは、ハードウェア資源を動作させて所定の機能を提供するためのアプリケーションソフトウェア(以下の説明では、単に「アプリ」と称する場合がある)である。例えばアプリとしては、コピー機能を提供するためのコピーアプリ、スキャナ機能を提供するためのスキャナアプリ、ファクス機能を提供するためのファクスアプリ、プリンタ機能を提供するためのプリンタアプリなどが挙げられる。
サービス層102のソフトウェアは、アプリ層101とOS層103との間に介在し、アプリに対し、本体10が備えるハードウェア資源を利用するためのインタフェースを提供するためのソフトウェアである。より具体的には、ハードウェア資源に対する動作要求の受付、動作要求の調停を行う機能を提供するためのソフトウェアである。サービス層102が受け付ける動作要求としては、スキャナによる読み取りやプロッタによる印刷等の要求が考えられる。
なお、サービス層102によるインタフェースの機能は、本体10のアプリ層101だけではなく、操作部20のアプリ層201に対しても提供される。すなわち、操作部20のアプリ層201(アプリ)も、サービス層102のインタフェース機能を介して、本体10のハードウェア資源(例えばエンジン部17)を利用した機能を実現することができる。
OS層103のソフトウェアは、本体10が備えるハードウェアを制御する基本機能を提供するための基本ソフトウェア(オペレーティングシステム(OS))である。サービス層102のソフトウェアは、各種アプリからのハードウェア資源の利用要求を、OS層103が解釈可能なコマンドに変換してOS層103に渡す。そして、OS層103のソフトウェアによりコマンドが実行されることで、ハードウェア資源は、アプリの要求に従った動作を行う。
同様に、操作部20は、アプリ層201と、サービス層202と、OS層203とを有する。操作部20が備えるアプリ層201、サービス層202及びOS層203も、階層構造については本体10側と同様である。ただし、アプリ層201のアプリにより提供される機能や、サービス層202が受け付け可能な動作要求の種類は、本体10側とは異なる。アプリ層201のアプリは、操作部20が備えるハードウェア資源を動作させて所定の機能を提供するためのソフトウェアであってもよいが、主として本体10が備える機能(コピー機能、スキャナ機能、ファクス機能、プリンタ機能)に関する操作や表示を行うためのUI(ユーザインタフェース)の機能を提供するためのソフトウェアである。アプリ層201のアプリには、ブラウザアプリ2bやAppStoreアプリ3なども含まれる。
なお、本実施形態では、機能の独立性を保つために、本体10側のOS層103のソフトウェアと操作部20側のOS層203のソフトウェアが互いに異なる。つまり、本体10と操作部20は、別々のオペレーティングシステムで互いに独立して動作する。例えば、本体10側のOS層103のソフトウェアとしてLinux(登録商標)を用い、操作部20側のOS層203のソフトウェアとしてAndroid(登録商標)を用いることも可能である。
以上のように、本実施形態のMFP1において、本体10と操作部20は別々のオペレーティングシステムで動作するため、本体10と操作部20との間の通信は、共通の装置内のプロセス間通信ではなく、異なる装置間の通信として行われる。操作部20が受け付けた情報(ユーザからの指示内容)を本体10へ伝達する動作(コマンド通信)や、本体10が操作部20へイベントを通知する動作などがこれに該当する。ここでは、操作部20が本体10へコマンド通信を行うことにより、本体10の機能を使用することができる。また、本体10から操作部20に通知するイベントには、本体10における動作の実行状況、本体10側で設定された内容などが挙げられる。
また、本実施形態では、操作部20に対する電力供給は、本体10から通信路30を経由して行われているので、操作部20の電源制御を、本体10の電源制御とは別に(独立して)行うことができる。
次に、MFP1の機能構成について説明する。図4は、MFP1の機能構成の一例を示すブロック図である。図4に示すように、MFP1は、操作画面表示部111と、アプリストア要求部112と、アプリストア表示部113と、アプリケーション利用制御部114とを有する。説明の便宜上、図4では、本発明に係る機能を主に例示しているが、MFP1が有する機能は、これらに限られるものではない。
操作画面表示部111は、各種の操作を行うための操作画面を操作パネル27に表示する制御を行う。図5は、操作画面の一例を示す図であり、操作画面には、AppStoreアプリ3を起動するためのアイコン2aが表示されている。
ユーザがアイコン2aをタッチすると、AppStoreアプリ3が起動し、AppStoreアプリ3(アプリストア要求部112)は、アプリストアサーバ2に対して、アプリストア6の表示を要求する制御を行う。より具体的な内容については後述するが、アプリストア6の表示を要求する信号(以下の説明では、「表示リクエスト」と称する場合がある)のヘッダーには、MFP1を一意に特定可能な機器特定情報が付加される。
アプリストア表示部113(ブラウザアプリ2b)は、表示リクエストに対する応答としてアプリストアサーバ2から受信したアプリストア6を操作パネル27に表示する制御を行う。アプリケーション利用制御部114は、アプリストア6に表示されたアプリケーションのうち、ユーザによって選択されたアプリケーションをMFP1で利用するための制御(アプリケーションをインストールする制御を含む)を行う。MFP1の具体的な動作例については後述する。
次に、図6を用いて、アプリストアサーバ2の機能構成について説明する。図6に示すように、アプリストアサーバ2は、取得部211と、販売店識別情報要求部212と、第3の特定部213と、第3の対応情報記憶部214と、表示制御部215とを有する。説明の便宜上、図6では、本発明に係る機能を主に例示しているが、アプリストアサーバ2が有する機能は、これらに限られるものではない。
取得部211は、MFP1からの表示リクエストを取得する。この例では、表示リクエストのヘッダーには機器特定情報が付加されているので、取得部211は、表示リクエストを取得することにより、当該表示リクエストの要求元のMFP1を一意に特定可能な機器特定情報を取得することができる。この例では、取得部211は請求項の「取得部」に対応している。
販売店識別情報要求部212は、機器管理サーバ5に対して、取得部211により取得された機器特定情報に対応付けられた販売店識別情報を要求する。本実施形態では、販売店識別情報要求部212は、機器管理サーバ5に対して、販売店識別情報を要求する信号(以下の説明では、「販売店識別情報リクエスト」と称する場合がある)を送信し、その応答として、機器管理サーバ5から販売店識別情報を受信する。この例では、販売店識別情報リクエストのヘッダーには、取得部211により取得された機器特定情報が付加されている。
ここで、図7を用いて、機器管理サーバ5の機能構成について説明する。図7に示すように、機器管理サーバ5は、第2の特定部501と、第2の対応情報記憶部502とを有する。説明の便宜上、図7では、本発明に係る機能を主に例示しているが、機器管理サーバ5が有する機能は、これらに限られるものではない。
第2の特定部501は、販売店識別情報ごとに、機器特定情報を対応付けた第2の対応情報に基づいて、取得部211により取得された機器特定情報に対応付けられた販売店識別情報を特定する。図8は、本実施形態における第2の対応情報の一例を示す図である。図8の例では、「販売店A」を識別する販売店識別情報に対して、「機器1」を一意に特定する機器特定情報と、「機器2」を一意に特定する機器特定情報と、「機器3」を一意に特定する機器特定情報と、「機器4」を一意に特定する機器特定情報とが対応付けられている。
なお、図8の例では、第2の対応情報は、1つの販売店識別情報に対して、当該販売店識別情報で識別される販売店で販売される4つの機器と1対1に対応する4つの機器特定情報を対応付けた情報であるが、これに限らず、例えば第2の対応情報は、複数の販売店識別情報ごとに、当該販売店識別情報で識別される販売店で販売される機器を識別する機器特定情報を対応付けた形態とすることもできる。第2の対応情報は、第2の対応情報記憶部502に予め記憶されている。
本実施形態では、第2の特定部501は、アプリストアサーバ2(販売店識別情報要求部212)から販売店識別情報リクエストを受信すると、その受信した販売店識別情報リクエストのヘッダーに付加された機器特定情報を判断する。そして、第2の対応情報記憶部502に記憶された第2の対応情報を参照して、販売店識別情報リクエストのヘッダーに付加された機器特定情報(取得部211により取得された機器特定情報であると考えることができる)に対応付けられた販売店識別情報を特定する。そして、販売店識別情報リクエストに対する応答として、特定した販売店識別情報を返信する。
例えば図8に示す第2の対応情報が第2の対応情報記憶部502に予め記憶されていて、「機器1」を一意に特定する機器特定情報は、MFP1を一意に特定する機器特定情報であり、かつ、アプリストアサーバ2から受信した販売店識別情報リクエストのヘッダーに、「機器1(MFP1)」を一意に特定する機器特定情報が付加されていた場合を想定する。この場合、第2の特定部501は、図8に示す第2の対応情報を参照して、「機器1(MFP1)」を一意に特定する機器特定情報に対応付けられた「販売店A」を識別する販売店識別情報を特定し、販売店識別情報リクエストに対する応答として、「販売店A」を識別する販売店識別情報を返信するといった具合である。
図9は、機器特定情報の一例を示す図である。図9の例では、機器特定情報は、11桁の文字列で構成され、上位3桁の文字列(図9の例では「ABC」)は、機器の種類を識別する情報(MFP、プロジェクタなどのデバイスタイプを示す情報)を表し、下位8桁の文字列(図9の例では「12345678」)は、個別に割り当てられる識別番号を表している。なお、機器特定情報の態様は任意であり、これに限られるものではない。
以上に説明した機器管理サーバ5は、CPU、ROM、RAM等を備えた通常のコンピュータのハードウェア構成を有している。上述の第2の特定部501の機能は、CPUがROM等に格納されたプログラムを実行することにより実現されるが、これに限らず、例えば専用のハードウェア回路(半導体集積回路等)により実現されてもよい。また、上述の第2の対応情報記憶部502は、例えばROMやRAM等により実現される。
図6に戻り、アプリストアサーバ2の説明を続ける。第3の特定部213は、販売店識別情報ごとに、アプリケーションを識別するアプリケーション識別情報を対応付けた第3の対応情報に基づいて、第2の特定部501により特定された販売店識別情報に対応付けられたアプリケーション識別情報を特定する。図10は、本実施形態における第3の対応情報の一例を示す図である。図10の例では、「販売店A」を識別する販売店識別情報に対して、「アプリ1」を識別するアプリケーション識別情報、「アプリ1」の内容説明情報および「アプリ1」の利用契約情報の組み合わせと、「アプリ2」を識別するアプリケーション識別情報、「アプリ2」の内容説明情報および「アプリ2」の利用契約情報の組み合わせと、「アプリ3」を識別するアプリケーション識別情報、「アプリ3」の内容説明情報および「アプリ3」の利用契約情報の組み合わせと、「アプリ4」を識別するアプリケーション識別情報、「アプリ4」の内容説明情報および「アプリ4」の利用契約情報の組み合わせと、が対応付けられている。なお、内容説明情報や利用契約情報はテキストコンテンツではなく、HTMLなどのリンク形式にすることも可能である。
また、図10の例では、第3の対応情報は、1つの販売店識別情報に対して、当該販売店識別情報で識別される販売店で販売される機器で利用可能な4つのアプリケーション(アプリケーションの数は任意に変更可能)と1対1に対応する4つのアプリケーション識別情報を対応付けた情報であるが、これに限らず、例えば第3の対応情報は、複数の販売店識別情報ごとに、当該販売店識別情報で識別される販売店で販売される機器で利用可能なアプリケーションを識別するアプリケーション識別情報を対応付けた形態とすることもできる。第3の対応情報は、第3の対応情報記憶部214に予め記憶されている。
本実施形態では、販売店識別情報要求部212は、上述の販売店識別情報リクエストに対する応答として、機器管理サーバ5から販売店識別情報を受信すると、第3の特定部213に対して、機器管理サーバ5から受信した販売店識別情報(第2の特定部501により特定された販売店識別情報であると考えることができる)に対応付けられたアプリケーション識別情報の特定を依頼する。この依頼を受けた第3の特定部213は、第3の対応情報記憶部214に記憶された第3の対応情報を参照して、機器管理サーバ5から受信した販売店識別情報に対応付けられたアプリケーション識別情報を特定する。
例えば、図10に示す第3の対応情報が第3の対応情報記憶部214に予め記憶されていて、「販売店A」を識別する販売店識別情報を機器管理サーバ5から受信した場合(第2の特定部501によって「販売店A」を識別する販売店識別情報が特定された場合)を想定する。この場合、第3の特定部213は、図10に示す第3の対応情報を参照して、「販売店A」を識別する販売店識別情報に対応付けられたアプリケーション識別情報として、「アプリ1」を識別するアプリケーション識別情報、「アプリ2」を識別するアプリケーション識別情報、「アプリ3」を識別するアプリケーション識別情報、および、「アプリ4」を識別するアプリケーション識別情報を特定する。
ここでは、機器管理サーバ5が管理している第2の対応情報と、アプリストアサーバ2が管理している第3の対応情報とを組み合わせることにより、機器特定情報ごとに、当該機器特定情報により特定される機器で利用可能なアプリケーションを識別するアプリケーション識別情報を対応付けた情報(請求項の「第1の対応情報」に対応)が構成されると考えることもできる。見方を変えれば、この例では、機器特定情報ごとに、当該機器特定情報により特定される機器で利用可能なアプリケーションを識別するアプリケーション識別情報を対応付けた情報(請求項の「第1の対応情報」に対応)は、上述の第2の対応情報と、上述の第3の対応情報とを含んで構成されると考えることもできる。
また、機器管理サーバ5が有する第2の特定部501と、アプリストアサーバ2が有する第3の特定部213とを組み合わることにより、機器特定情報ごとに、当該機器特定情報により特定される機器で利用可能なアプリケーションを識別するアプリケーション識別情報を対応付けた第1の対応情報に基づいて、取得部211により取得された機器特定情報に対応付けられたアプリケーション識別情報を特定する機能(請求項の「第1の特定部」に対応)を実現できると考えることができる。見方を変えれば、この例では、機器特定情報ごとに、当該機器特定情報により特定される機器で利用可能なアプリケーションを識別するアプリケーション識別情報を対応付けた第1の対応情報に基づいて、取得部211により取得された機器特定情報に対応付けられたアプリケーション識別情報を特定する機能(請求項の「第1の特定部」に対応)は、上述の第2の特定部501と、第3の特定部213とを含んで構成されると考えることもできる。
図6の説明を続ける。表示制御部215は、第3の特定部213により特定されたアプリケーション識別情報により識別されるアプリケーションを提供するためのアプリストア6(この例では請求項の「アプリケーション一覧画面」に対応)をMFP1(取得部211により取得された機器特定情報により特定される機器)に表示する制御を行う。本実施形態では、表示制御部215は、第3の特定部213により特定されたアプリケーションとは異なるアプリケーションは非表示となるよう、アプリストア6を生成する。つまり、表示制御部215は、提供するアプリケーションとして、第3の特定部213により特定されたアプリケーションのみを表示するよう、アプリストア6を生成する。
図11は、第3の特定部213により翻訳アプリが特定されなかった場合のアプリストア6の一例を示す図である。ここでは、翻訳アプリとは、原稿から読み取った画像データに対してOCR処理を施すことで生成した透明テキスト付きPDFのテキスト情報を翻訳し、その翻訳結果をユーザへ通知する翻訳サービスを提供するためのアプリケーションであり、機器がOCR機能を有していることを前提としたアプリケーションである。例えばMFP1がOCR機能を有していない場合、上述の第3の対応情報において、当該MFP1を販売する「販売店A」を識別する販売店識別情報に対しては、「翻訳アプリ」を識別するアプリケーション識別情報は対応付けられない。そのため、取得部211によりMFP1を一意に特定する機器特定情報が取得され、第2の特定部501により当該機器特定情報に対応付けられた販売店識別情報(この例では、「販売店A」を識別する販売店識別情報)が特定された場合、第3の特定部213は、第2の特定部501により特定された販売店識別情報(「販売店A」を識別する販売店識別情報)に対応付けられたアプリケーション識別情報として、「翻訳アプリ」を識別するアプリケーション識別情報を特定することはない。
アプリストア6は、第3の特定部213により特定されたアプリケーションごとに、当該アプリケーションの利用契約やダウンロードを申し込むためのボタン(図11の例では「申込む」というボタン)を表示するWebページである。図11の例では、第3の特定部213によって、かんたんFAXアプリ、素材プリントアプリ、写真管理アプリ、写真簡単加工アプリ、ドキュメント管理アプリ、かんたんスキャンアプリを識別するアプリケーション識別情報が特定された場合を想定している。
また、図12は、第3の特定部213により翻訳アプリが特定された場合のアプリストア6の一例を示す図である。例えばMFP1がOCR機能を有している場合、上述の第3の対応情報において、当該MFP1を販売する「販売店A」を識別する販売店識別情報に対しては、「翻訳アプリ」を識別するアプリケーション識別情報が対応付けられる。そのため、取得部211によりMFP1を一意に特定する機器特定情報が取得され、第2の特定部501により当該機器特定情報に対応付けられた販売店識別情報(この例では、「販売店A」を識別する販売店識別情報)が特定された場合、第3の特定部213は、第2の特定部501により特定された販売店識別情報(「販売店A」を識別する販売店識別情報)に対応付けられたアプリケーション識別情報として、「翻訳アプリ」を識別するアプリケーション識別情報を特定することになる。図12の例では、第3の特定部213によって、翻訳アプリ、かんたんFAXアプリ、素材プリントアプリ、写真管理アプリ、写真簡単加工アプリ、ドキュメント管理アプリ、かんたんスキャンアプリを識別するアプリケーション識別情報が特定された場合を想定している。
本実施形態では、表示制御部215は、第3の特定部213により特定されたアプリケーション識別情報で識別されるアプリケーション(つまり、表示リクエストの要求元のMFP1で利用可能なアプリケーションであると考えることができる)を提供するためのアプリストア6を生成し、MFP1から受信した表示リクエストに対する応答として、生成したアプリストア6を返信する。そして、表示リクエストの要求元のMFP1(アプリストア表示部113)は、表示リクエストに対する応答としてアプリストアサーバ2から受信したアプリストア6を、操作パネル27に表示する制御を行う。本実施形態では、このアプリストア6に表示されるアプリケーションは、表示リクエストの要求元のMFP1で利用可能なアプリケーションのみとなるので、ユーザが、アプリストア6に表示される何れのアプリケーションの利用契約やダウンロードを申し込むためのボタン(この例では「申込む」というボタン)を押下しても、その要求が却下されることはない。したがって、従来に比べて、ユーザの利便性を向上させることができる。
表示リクエストの要求元のMFP1(アプリケーション利用制御部114)は、アプリストア6に表示されたアプリケーションのうち、ユーザによって選択されたアプリケーションを、MFP1で利用するための制御を行う。一例として、図12に示すアプリストア6が、MFP1の操作パネル27に表示されており、ユーザが、翻訳アプリを選択(この例では、図12に示す「申込む」というボタンを押下)した場合を想定する。ここでは、翻訳アプリは、翻訳サーバ4に配置したアプリケーションを、操作部20のブラウザアプリ2bを用いて利用することができるソフトウェア(つまり、Webアプリ)であるとする。この場合、アプリケーション利用制御部114は、翻訳アプリの「申込む」というボタンの押下を検出すると、翻訳サーバ4から翻訳アプリをダウンロードすることはせずに、翻訳サーバ4にアクセスして翻訳アプリを利用するために必要な手続きに関する処理を実行する。
なお、本実施形態では、翻訳サービスの提供に用いられる翻訳アプリは、Webアプリであるが、これに限らず、例えば翻訳アプリが、操作部20にインストールされる通常のアプリケーションであってもよい。この場合、アプリケーション利用制御部114は、翻訳アプリの「申込む」というボタンの押下を検出すると、翻訳サーバ4から翻訳アプリをダウンロードして、MFP1にインストールする制御を行う。ただし、翻訳アプリをWebアプリとする形態によれば、翻訳アプリをMFP1(操作部20)にインストールしなくても済むという利点がある。アプリストア6に表示される他のアプリケーションについても同様である。さらに、AppStoreアプリ3についても、機器特定情報を取得する機能を有していれば、MFP1にインストールするタイプのアプリケーションである必要は無く、Webアプリや他の形態のアプリケーションであっても構わない。
以上に説明したアプリストアサーバ2は、CPU、ROM、RAM等を備えた通常のコンピュータのハードウェア構成を有している。上述の取得部211、販売店識別情報要求部212、第3の特定部213および表示制御部215の各々の機能は、CPUがROM等に格納されたプログラムを実行することにより実現されるが、これに限らず、例えば上述の取得部211、販売店識別情報要求部212、第3の特定部213および表示制御部215の各々の機能のうちの少なくとも一部が専用のハードウェア回路(半導体集積回路等)により実現されてもよい。また、上述の第3の対応情報記憶部214は、例えばROMやRAM等により実現される。
図13は、本実施形態の情報処理システム100の動作手順の一例を示すシーケンス図である。まずユーザが、操作画面上のアイコン2a(図5参照)をタッチすると(ステップS1)、操作部20のOSは、AppStoreアプリ3を起動する(ステップS2)。次に、起動したAppStoreアプリ3は、操作部20のOSに対して、MFP1を一意に特定可能な機器特定情報を要求し(ステップS3)、その応答として、操作部20のOSから機器特定情報を受け取る(ステップS4)。次に、AppStoreアプリ3は、操作部20のOSに対して、MFP1に予めインストールされているブラウザアプリ2bの起動を依頼する(ステップS5)。この依頼には、機器特定情報と、アプリストアサーバ2のURLとが付加されており、この依頼を受けた操作部20のOSは、ブラウザアプリ2bを起動する。そして、ブラウザアプリ2bに対して、機器特定情報とアプリストアサーバ2のURLを渡し、アプリストアサーバ2に対して上述の表示リクエストを送信することを指示する(ステップS6)。
起動したブラウザアプリ2bは、アプリストアサーバ2のURLにアクセスし、ヘッダーに機器特定情報を付加した表示リクエストを送信する(ステップS7)。MFP1からの表示リクエストを受信したアプリストアサーバ2は、機器管理サーバ5に対して、表示リクエストのヘッダーに付加された機器特定情報に対応付けられた販売店識別情報を要求する販売店識別情報リクエストを送信する(ステップS8)。上述したように、この販売店識別情報リクエストのヘッダーには、表示リクエストのヘッダーに付加されていた機器特定情報が付加されている。機器管理サーバ5は、アプリストアサーバ2からの販売店識別情報リクエストを受信すると、ヘッダーに付加された機器特定情報を判断する。そして、第2の対応情報記憶部502に記憶された第2の対応情報を参照して、当該機器特定情報に対応付けられた販売店識別情報を特定する。そして、販売店識別情報リクエストに対する応答として、特定した販売店識別情報を返信する(ステップS9)。
販売店識別情報リクエストに対する応答として、機器管理サーバ5から販売店識別情報を受信したアプリストアサーバ2は、第3の対応情報記憶部214に記憶された第3の対応情報を参照して、機器管理サーバ5から受信した販売店識別情報に対応付けられたアプリケーション識別情報を特定する。そして、特定したアプリケーション識別情報により識別されるアプリケーションを提供するためのアプリストア6を生成する(ステップS10)。次に、アプリストアサーバ2は、上述のステップS7の表示リクエストに対する応答として、生成したアプリストア6を返信する(ステップS11)。表示リクエストの要求元のMFP1のブラウザアプリ2bは、表示リクエストに対する応答としてアプリストアサーバ2から受信したアプリストア6を、操作パネル27に表示する制御を行う(ステップS12)。
以上に説明したように、本実施形態によれば、アプリストアサーバ2からMFP1に提供される上述のアプリストア6に表示されるアプリケーションは、当該MFP1で利用可能なアプリケーションのみとなるので、ユーザが、アプリストア6に表示される何れのアプリケーションの利用契約やダウンロードを申し込むためのボタン(この例では「申込む」というボタン)を押下しても、その要求が却下されることはない。これにより、ユーザの利便性を向上させることができる。
以上、本発明に係る実施形態について説明したが、本発明は、上述の実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上述の実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
例えば図14に示すように、上述のアプリストアサーバ2および上述の機器管理サーバ5の代わりに、1つのサーバ(統合サーバ7)が設けられる形態であってもよい。
図15は、統合サーバ7の機能構成の一例を示すブロック図である。図15に示すように、統合サーバ7は、取得部211と、第1の特定部701と、第1の対応情報記憶部702と、表示制御部215とを有する。説明の便宜上、図15では、本発明に係る機能を主に例示しているが、統合サーバ7が有する機能は、これらに限られるものではない。
第1の特定部701は、機器特定情報ごとに、機器特定情報により特定される機器で利用可能なアプリケーションを識別するアプリケーション識別情報を対応付けた第1の対応情報に基づいて、取得部211により取得された機器特定情報に対応付けられたアプリケーション識別情報を特定する。
図16は、第1の対応情報の一例を示す図である。図16の例では、「機器1」を一意に特定する機器特定情報に対して、「アプリ1」を識別するアプリケーション識別情報、「アプリ1」の内容説明情報および「アプリ1」の利用契約情報の組み合わせと、「アプリ2」を識別するアプリケーション識別情報、「アプリ2」の内容説明情報および「アプリ2」の利用契約情報の組み合わせと、「アプリ3」を識別するアプリケーション識別情報、「アプリ3」の内容説明情報および「アプリ3」の利用契約情報の組み合わせと、「アプリ4」を識別するアプリケーション識別情報、「アプリ4」の内容説明情報および「アプリ4」の利用契約情報の組み合わせと、が対応付けられている。
なお、図16の例では、第1の対応情報は、1つの機器特定情報に対して、当該機器特定情報により一意に特定される機器で利用可能な4つのアプリケーション(アプリケーションの数は任意に変更可能)と1対1に対応する4つのアプリケーション識別情報を対応付けた情報であるが、これに限らず、例えば第1の対応情報は、複数の機器特定情報ごとに、当該機器特定情報により一意に特定される機器で利用可能なアプリケーションを識別するアプリケーション識別情報を対応付けた形態とすることもできる。第1の対応情報は、第1の対応情報記憶部702に予め記憶されている。
この例では、取得部211は、MFP1からの表示リクエストを取得すると、第1の特定部701に対して、表示リクエストのヘッダーに付加された機器特定情報(MFP1を一意に特定する機器特定情報)に対応付けられたアプリケーション識別情報の特定を依頼する。この依頼を受けた第1の特定部701は、第1の対応情報記憶部702に記憶された第1の対応情報を参照して、取得部211により取得された機器特定情報(表示リクエストのヘッダーに付加された機器特定情報)に対応付けられたアプリケーション識別情報を特定する。そして、表示制御部215は、第1の特定部701により特定されたアプリケーション識別情報により識別されるアプリケーションを提供するためのアプリストア6を、取得部211により取得された機器特定情報により特定される機器(この例では、表示リクエストの要求元のMFP1)に表示する制御を行う。
要するに、本発明が適用される情報処理システム100は、上述の取得部211の機能と、上述の第1の特定部701の機能(上述の実施形態では、第2の特定部501と第3の特定部213とを含む機能)と、上述の表示制御部215の機能とを少なくとも備える形態であればよい。また、上述の統合サーバ7は、請求項の「情報処理装置」に対応していると考えることができる。要するに、本発明が適用される情報処理装置は、上述の取得部211の機能と、上述の第1の特定部701の機能と、上述の表示制御部215の機能とを少なくとも備える形態であればよい。
なお、以上に説明したMFP1の各部の機能(操作画面表示部111、アプリストア要求部112、アプリストア表示部113、アプリケーション利用制御部114)は、CPU(11または21)が、記憶装置(例えばROM12、HDD14、ROM22、フラッシュメモリ24等)に格納されたプログラムを実行することにより実現されるが、これに限らず、例えば上記MFP1の各部の機能のうちの少なくとも一部が専用のハードウェア回路(例えば半導体集積回路等)で実現されてもよい。
また、上述の実施形態では、本体10と操作部20は、別々のオペレーションシステムで互いに独立して動作しているが、これに限らず、例えば本体10と操作部20が同じオペレーションシステムで動作する形態であってもよい。
また、上述した実施形態の情報処理システム100(MFP1、アプリストアサーバ2、機器管理サーバ5等)で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよいし、インターネット等のネットワーク経由で提供または配布するように構成してもよい。また、各種プログラムを、ROM等に予め組み込んで提供するように構成してもよい。