以下に添付図面を参照して、情報処理システム、情報処理装置および情報処理方法の実施の形態を詳細に説明する。以下では、本発明に係る情報処理装置の一例として、画像形成装置の一態様である複合機(MFP:Multifunction Peripheral)を例に挙げて説明するが、これに限られるものではない。なお、複合機とは、コピー機能、スキャナ機能、プリント機能、ファクス機能などの複数の異なる機能を有する装置である。
図1は、実施の形態の情報処理システム100の概略構成の一例を示す図である。図1に示すように、情報処理システム100は、MFP1と、サーバシステム2とを備え、これらはインターネットなどのネットワーク8を介して相互に接続される。情報処理システム100は、クラウドコンピューティング型のサービスを実現する。
なお、説明の便宜上、図1の例では、情報処理システム100に含まれる情報処理装置として、1台のMFP1を例示しているが、これに限られるものではなく、情報処理システム100に含まれる情報処理装置の台数および種類は任意である。要するに、情報処理システム100は、1以上の情報処理装置を含む形態であればよい。
図1の例では、MFP1とネットワーク8との間にはファイアウォール6が設けられている。また、MFP1には、オプション機器31−1〜31−nが接続可能である。オプション機器31−1〜31−nとしては、プリンタやカメラなどの画像処理装置、マイクやスピーカなどの音声入出力装置、ICカードリーダ/ライタなどが想定される。また、MFP1とオプション機器31−1〜31−nとの間の接続7は、物理的に有線で接続される形態であってもよいし、近距離無線通信(NFC)などの無線で接続される形態であってもよい。以下の説明では、オプション機器31−1〜31−nを互いに区別しない場合は、単に「オプション機器31」と称する場合がある。MFP1の具体的な構成については後述する。
サーバシステム2は、1以上のアプリケーションソフトウェア(以下の説明では、「アプリケーション」と称する)の一覧を表示し、各アプリケーションの利用契約やダウンロードをするためのWebページ、言い換えれば、アプリケーションを提供するためのWebページ(以下の説明では、「アプリケーション一覧画面50」と称する場合がある)を、MFP1に対して提供する機能や、アプリケーション一覧画面50から選択されたアプリケーションのダウンロードの可否を判定する機能や、ダウンロードを許可したアプリケーションをMFP1へ送信する機能などを有している。
詳しくは後述するが、図1の例では、サーバシステム2は、Webサーバ5と、アプリ情報提供サーバ3と、ダウンロードサーバ4と、を含むサーバ群であるクラウドである。なお、サーバシステム2は、後述するWebサーバ5、アプリ情報提供サーバ3、および、ダウンロードサーバ4の各々の機能を有する1つのサーバで構成されてもよいし、Webサーバ5、アプリ情報提供サーバ3、および、ダウンロードサーバ4の各々の機能が分散された2以上のサーバで構成されてもよい。要するに、サーバシステム2は、1以上のサーバを含む形態であればよい。
Webサーバ5は、WebUIを提供するものであって、例えばアプリケーション一覧画面50をMFP1に対して提供する。より具体的な内容については後述する。
アプリ情報提供サーバ3は、アプリケーション一覧画面50の作成に必要な各種情報を提供する。より具体的な内容については後述する。
ダウンロードサーバ4は、MFP1からの要求に応じて、MFP1にアプリケーションを送信(ダウンロード)する。より具体的な内容については後述する。
また、この例では、サーバシステム2からアプリケーション一覧画面50を取得してMFP1に表示するためのアプリケーション(以下の説明では、「アプリマーケットアプリ」と称する場合がある)や、アプリケーション一覧画面50に表示されたアプリケーションのうちユーザによって選択されたアプリケーションを利用するための制御(アプリケーションをMFP1にダウンロードし、インストールするための制御)を行う機能を提供するアプリケーション(以下、「インストーラ」と称する場合がある)が予めMFP1にインストールされている。この例では、アプリマーケットアプリの機能は、Webブラウザの機能を提供するためのアプリケーション(以下、「ブラウザアプリ」と称する場合がある)を利用して実現される。この例では、ブラウザアプリも予めMFP1にインストールされている。
次に、MFP1のハードウェア構成について説明する。
ここで、図2はMFP1のハードウェア構成の一例を示す図である。図2に示すように、MFP1は、コピー機能、スキャナ機能、ファクス機能、プリンタ機能などの各種の機能を実現可能な本体10と、ユーザの操作を受け付ける操作部20とを備える。なお、ユーザの操作を受け付けるとは、ユーザの操作に応じて入力される情報(画面の座標値を示す信号等を含む)を受け付けることを含む概念である。本体10と操作部20は、専用の通信路30を介して相互に通信可能に接続されている。通信路30は、例えばUSB(Universal Serial Bus)規格のものを用いることもできるが、有線か無線かを問わず任意の規格のものであってよい。
なお、本体10は、操作部20で受け付けた操作に応じた動作を行うことができる。また、本体10は、クライアントPC(パーソナルコンピュータ)等の外部装置とも通信可能であり、外部装置から受信した指示に応じた動作を行うこともできる。
まず、本体10のハードウェア構成について説明する。図2に示すように、本体10は、CPU(Central Processing Unit)11と、ROM(Read Only Memory)12と、RAM(Random Access Memory)13と、HDD(Hard Disk Drive)14と、通信I/F(Interface)15と、接続I/F16と、エンジン部17とを備え、これらがシステムバス18を介して相互に接続されている。
CPU11は、本体10の動作を統括的に制御する。CPU11は、RAM13をワークエリア(作業領域)としてROM12またはHDD14等に格納されたプログラムを実行することで、本体10全体の動作を制御し、上述したコピー機能、スキャナ機能、ファクス機能、プリンタ機能などの各種機能を実現する。
通信I/F15は、ネットワーク8と接続するためのインタフェースである。接続I/F16は、通信路30を介して操作部20と通信するためのインタフェースである。
エンジン部17は、コピー機能、スキャナ機能、ファクス機能、および、プリンタ機能を実現させるための、汎用的な情報処理及び通信以外の処理を行うハードウェアである。例えば、原稿の画像をスキャンして読み取るスキャナ(画像読取部)、用紙等のシート材への印刷を行うプロッタ(画像形成部)、ファクス通信を行うファクス部などを備えている。更に、エンジン部17は、印刷済みシート材を仕分けるフィニッシャや、原稿を自動給送するADF(自動原稿給送装置)のような特定のオプション機器31を備えることもできる。
次に、操作部20のハードウェア構成について説明する。図2に示すように、操作部20は、CPU21と、ROM22と、RAM23と、フラッシュメモリ24と、通信I/F25と、接続I/F26と、操作パネル27と、外部接続I/F28を備え、これらがシステムバス29を介して相互に接続されている。
CPU21は、操作部20の動作を統括的に制御する。CPU21は、RAM23をワークエリア(作業領域)としてROM22またはフラッシュメモリ24等に格納されたプログラムを実行することで、操作部20全体の動作を制御し、ユーザから受け付けた入力に応じた情報(画像)の表示などの後述する各種機能を実現する。
通信I/F25は、ネットワーク8と接続するためのインタフェースである。接続I/F26は、通信路30を介して本体10と通信するためのインタフェースである。
操作パネル27は、ユーザの操作に応じた各種の入力を受け付けるとともに、各種の情報(例えば受け付けた操作に応じた情報、MFP1の動作状況を示す情報、設定状態などを示す情報など)を表示する。この例では、操作パネル27は、タッチパネル機能を搭載した液晶表示装置(LCD)で構成されるが、これに限られるものではない。例えばタッチパネル機能が搭載された有機EL表示装置で構成されてもよい。さらに、これに加えて又はこれに代えて、ハードウェアキー等の操作部やランプ等の表示部を設けることもできる。
外部接続I/F28は、オプション機器31と接続するためのインタフェースであり、例えばカメラなどの画像処理装置、マイクやスピーカなどの音声入出力装置、ICカードリーダ/ライタなどのハードウェアと接続するためのインタフェースである。
次に、MFP1のソフトウェア構成について説明する。
図3は、MFP1のソフトウェア構成の一例を示す模式図である。図3に示すように、本体10は、アプリ層101と、サービス層102と、OS層103とを有する。アプリ層101、サービス層102、および、OS層103の実体は、ROM12やHDD14等に格納されている各種ソフトウェアである。CPU11が、これらのソフトウェアを実行することにより、各種の機能が提供される。
アプリ層101のソフトウェアは、ハードウェア資源を動作させて所定の機能を提供するためのアプリケーションである。例えばアプリケーションとしては、コピー機能を提供するためのコピーアプリケーション、スキャナ機能を提供するためのスキャナアプリケーション、ファクス機能を提供するためのファクスアプリケーション、プリンタ機能を提供するためのプリンタアプリケーションなどが挙げられる。
加えて、アプリ層101のアプリケーションとしては、ソフトウェアを開発するために必要なツールを一纏めにしたSDK(Software Development Kit)、ブラウザ、アプリケーションを利用するのに必要な依存ソフトウェアなども挙げられる。
サービス層102のソフトウェアは、アプリ層101とOS層103との間に介在し、アプリケーションに対し、本体10が備えるハードウェア資源を利用するためのインタフェースを提供するためのソフトウェアである。より具体的には、ハードウェア資源に対する動作要求の受付、動作要求の調停を行う機能を提供するためのソフトウェアである。サービス層102が受け付ける動作要求としては、スキャナによる読み取りやプロッタによる印刷等の要求が考えられる。
なお、サービス層102によるインタフェースの機能は、本体10のアプリ層101だけではなく、操作部20のアプリ層201に対しても提供される。すなわち、操作部20のアプリ層201(アプリケーション)も、サービス層102のインタフェース機能を介して、本体10のハードウェア資源(例えばエンジン部17)を利用した機能を実現することができる。例えばサービス層102のインタフェース機能は、WebAPIで提供される。
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には、アプリマーケットアプリケーション(ネイティブアプリケーション)、ブラウザアプリケーションなどが存在する。また、サービス層202には、インストーラなどが存在する。
なお、本実施の形態では、機能の独立性を保つために、本体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と、アプリケーション要求送信部115と、アプリケーション情報受信部116と、接続判定部117と、インストール制御部118とを有する。説明の便宜上、図4では、本実施の形態に関する機能を主に例示しているが、MFP1が有する機能は、これらに限られるものではない。
表示制御部111は、画面を操作パネル27に表示する制御を行う。例えば表示制御部111は、各種の操作を行うための操作画面を操作パネル27に表示する制御を行う。図5は、操作画面の一例を示す正面図であり、操作画面には、アプリマーケットアプリを起動するためのアイコン60が表示されている。また、表示制御部111は、後述のアプリケーション一覧画面取得部112により取得されたアプリケーション一覧画面50を表示する制御を行う機能(報知手段)を有している。アプリケーション一覧画面50については後述する。
図4の説明を続ける。アプリケーション一覧画面取得部112は、取得手段として機能するものであって、Webサーバ5から、アプリケーション一覧画面50を取得する。本実施の形態では、ユーザが操作画面上のアイコン60をタッチすると、ブラウザアプリ(アプリケーション一覧画面取得部112)は、Webサーバ5に対して、アプリケーション一覧画面50を要求する信号(以下、「アプリケーション一覧画面リクエスト」と称する場合がある)を送信する。そして、その応答として、Webサーバ5からアプリケーション一覧画面50を取得する。
図6は、アプリケーション一覧画面50の一例を示す正面図である。図6の例では、アプリケーション一覧画面50は、複数のアプリケーションごとに、当該アプリケーションの内容を説明する説明情報41と、当該アプリケーションのインストールを指示するためのボタン40(以下、「インストールボタン40」と称する)とが表示されるボタンBを有している。この例では、インストール命令の実行手順を記述したURLスキームが、当該アプリケーションに対応するインストールボタン40に貼り付けられている。
図7は、「49354」というID(アプリID)で識別されるアプリケーションに対応するインストールボタン40に貼り付けられたURLスキームの一例を示す図である。図7における「installer」の部分は、URLスキームのヘッダ部分であり、以下では、URLスキームのヘッダ部分を「スキーム部分」と称する場合がある。「installer」というスキーム部分は、インストール命令を実行するアプリケーションを識別するための情報を表し、この例では、MFP1に搭載されたインストーラを表している。また、図7における「installApp?id=49354」のうち「installApp」の部分はインストール命令であり、そのインストール命令の引数が「id=49354」である。これは、「49354」というidで識別されるアプリケーションのインストール命令を表している。図7に示すURLスキームが貼り付けられたインストールボタン40が押下されると、図7に示すURLスキームがMFP1の各アプリケーションにブロードキャストされ、このブロードキャストされたURLスキームにインストーラが反応する。この例では、後述するアプリケーション要求送信部115、アプリケーション情報受信部116、接続判定部117、および、インストール制御部118の各々の機能はインストーラにより提供される。
アプリケーション要求送信部115は、アプリケーションを識別するアプリIDを含み、かつ、該アプリケーションを要求するアプリケーション要求をサーバシステム2へ送信する。この例では、アプリケーションの取得を許可することを示す取得可否情報には、ダウンロードサーバ4のURLが含まれており、アプリケーション要求送信部115は、該URLで指定されたダウンロードサーバ4に対して、上述のアプリケーション要求を送信する。より具体的な処理手順については後述する。
アプリケーション情報受信部116は、上述のアプリケーション要求に対する応答として、アプリケーションと、該アプリケーションを利用するのに必要なオプション機器を少なくとも示し、かつ、該アプリケーションを利用するために必要な前提条件を示す条件情報と、を含むアプリケーション情報をサーバシステム2から受信する。この例では、アプリケーション情報受信部116は、上述のアプリケーション要求に対する応答として、ダウンロードサーバ4からアプリケーション情報を受信する。
図4の説明を続ける。接続判定部117は、アプリケーション情報受信部116により受信されたアプリケーション情報に含まれる情報ファイル(条件情報)が示すオプション機器31(情報ファイル内のオプション機器識別情報で識別されるオプション機器31)がMFP1に接続されているか否かを判定する。例えば接続判定部117は、MFP1に接続されているオプション機器31の一覧を示すオプション機器一覧情報と、アプリケーション情報受信部116により受信されたアプリケーション情報に含まれる情報ファイル内のオプション機器識別情報とを比較して、オプション機器識別情報で識別されるオプション機器31がMFP1に接続されているか否かを判定することもできる。例えばオプション機器一覧情報は、MFP1に接続されている1以上のオプション機器ごとのオプション機器識別情報を示す情報であり、接続判定部117は、MFP1に接続されるオプション機器31を管理するプログラム(例えば本体10側のプログラム)から上述のオプション機器一覧情報を取得する形態であってもよいし、自身がオプション機器一覧情報を管理(保持)する形態であってもよい。
インストール制御部118は、接続判定部117により、アプリケーション情報受信部116により受信されたアプリケーション情報に含まれる情報ファイル(条件情報)が示すオプション機器31がMFP1に接続されていると判定された場合、アプリケーション情報受信部116により受信されたアプリケーション情報に含まれるアプリケーションをMFP1にインストールする制御を行う。また、インストール制御部118は、接続判定部117により、アプリケーション情報受信部116により受信されたアプリケーション情報に含まれる情報ファイル(条件情報)が示すオプション機器がMFP1に接続されていないと判定された場合、アプリケーション情報受信部116により受信されたアプリケーション情報に含まれるアプリケーションをMFP1にインストールする制御を中止する。この場合、例えばインストール制御部118は、エラー画面を操作パネル27に表示する制御を行うこともできる。この場合、例えばインストール制御部118は、表示制御部111に対してエラー画面の表示を依頼し、この依頼を受けた表示制御部111が、エラー画面を操作パネル27に表示する制御を行ってもよい。
この例では、以上に説明した表示制御部111、アプリケーション一覧画面取得部112、アプリケーション要求送信部115、アプリケーション情報受信部116、接続判定部117、および、インストール制御部118の各々の機能は、操作部20により提供される。以上の各機能は、CPU21がROM22等に格納されたプログラムを実行することにより実現されるが、これに限らず、例えば以上の各機能のうちの少なくとも一部が専用のハードウェア回路で実現されてもよい。また、上述のアプリケーション一覧画面取得部112が有する機能のうち、アプリケーション一覧画面リクエストをWebサーバ5へ送信する機能やアプリケーション一覧画面50をWebサーバ5から受信する機能は、プログラムを実行するCPU21と通信I/F25との組み合わせにより実現されると考えてよい。例えばアプリケーション一覧画面リクエストをWebサーバ5へ送信する場合は、CPU21は、アプリケーション一覧画面リクエストをWebサーバ5へ送信するよう、通信I/F25を制御する。また、例えばアプリケーション一覧画面50をWebサーバ5から受信する場合は、通信I/F25がWebサーバ5からアプリケーション一覧画面50を受信する。そして、通信I/F25は、Webサーバ5から受信したアプリケーション一覧画面50をCPU21へ通知する。これにより、CPU21は、アプリケーション一覧画面50の受信を検知することができる。同様に、アプリケーション要求送信部115、および、アプリケーション情報受信部116の各々の機能は、プログラムを実行するCPU21と通信I/F25との組み合わせにより実現されると考えてよい。
次に、Webサーバ5が有する機能について説明する。
図8は、Webサーバ5のハードウェア構成の一例を示す図である。図8に示すように、Webサーバ5は、CPU521と、ROM522と、RAM523と、入力部524と、表示部525と、通信I/F526とを有する。なお、アプリ情報提供サーバ3およびダウンロードサーバ4のハードウェア構成も、図8のWebサーバ5のハードウェア構成と同様である。
CPU521は、Webサーバ5の動作を統括的に制御する。ROM522は、プログラム等の各種のデータを記憶する不揮発性のメモリである。RAM523は、CPU521が実行する各種の処理の作業領域(ワークエリア)として機能する揮発性のメモリである。入力部524は、ユーザによる操作の入力に用いられるデバイスであり、例えばマウスやキーボードなどで構成される。表示部525は各種の情報を表示するデバイスであり、例えば液晶型ディスプレイ装置などで構成される。通信I/F526は、ネットワーク8と接続するためのインタフェースである。
図9は、Webサーバ5が有する機能の一例を示す図である。図9に示すように、Webサーバ5は、報知情報生成手段であるアプリケーション一覧画面生成部511と、アプリケーション一覧画面送信部512と、を有する。説明の便宜上、図9では、本実施の形態に関する機能を主に例示しているが、Webサーバ5が有する機能は、これらに限られるものではない。
アプリケーション一覧画面生成部511は、上述のアプリケーション一覧画面50を生成する。アプリケーション一覧画面送信部512は、MFP1から上述のアプリケーション一覧画面リクエストを受信すると、その応答として、アプリケーション一覧画面生成部511が生成したアプリケーション一覧画面50をMFP1に送信する。
本実施の形態では、上述のアプリケーション一覧画面送信部512の機能は、CPU521がROM522等に格納されたプログラムを実行することにより実現されるが、これに限らず、例えば専用のハードウェア回路(半導体集積回路等)により実現されてもよい。なお、ここでは、アプリケーション一覧画面送信部512の機能は、プログラムを実行するCPU521と通信I/F526との組み合わせにより実現されると考えてもよい。
次に、ダウンロードサーバ4が有する機能について説明する。なお、上述したように、ダウンロードサーバ4のハードウェア構成は、図8のWebサーバ5のハードウェア構成と同様であるため、説明は省略する。
図10は、ダウンロードサーバ4が有する機能の一例を示す図である。図10に示すように、ダウンロードサーバ4は、アプリケーション要求受信部411と、アプリケーション情報送信部412とを有する。説明の便宜上、図10では、本実施の形態に関する機能を主に例示しているが、ダウンロードサーバ4が有する機能は、これらに限られるものではない。
アプリケーション要求受信部411は、MFP1から上述のアプリケーション要求を受信する。アプリケーション情報送信部412は、アプリケーション要求に対する応答として、該アプリケーション要求に含まれるアプリID(アプリケーション識別情報)に対応するアプリケーション情報をMFP1へ送信する。より具体的には、アプリケーション情報送信部412は、予めサーバシステム2(ダウンロードサーバ4でもよいし、他のサーバでもよい)が保持している複数のアプリケーション情報の中から、アプリケーション要求受信部411により受信されたアプリケーション要求に含まれるアプリID(アプリケーション識別情報)を含むファイル情報を有するアプリケーション情報を選択し、その選択したアプリケーション情報をMFP1へ送信する。
本実施の形態では、以上に説明したダウンロードサーバ4が有する機能(アプリケーション要求受信部411、アプリケーション情報送信部412)は、CPU521がROM522等に格納されたプログラムを実行することにより実現されるが、これに限らず、例えば専用のハードウェア回路(半導体集積回路等)により実現されてもよい。なお、ここでは、アプリケーション要求受信部411、アプリケーション情報送信部412の各々の機能は、プログラムを実行するCPU521と通信I/F526との組み合わせにより実現されると考えてもよい。
次に、アプリ情報提供サーバ3が有する機能について説明する。なお、上述したように、アプリ情報提供サーバ3のハードウェア構成は、図8のWebサーバ5のハードウェア構成と同様であるため、説明は省略する。
図11は、アプリ情報提供サーバ3が有する機能の一例を示す図である。図11に示すように、アプリ情報提供サーバ3は、前提条件保持手段であるアプリケーション情報記憶部301を有する。説明の便宜上、図11では、本実施の形態に関する機能を主に例示しているが、アプリ情報提供サーバ3が有する機能は、これらに限られるものではない。
アプリケーション情報記憶部301は、MFP1が設置されている地理的位置を示す地域情報、またはMFP1の販売店を示す販社情報に対応するアプリケーションを提供する組織を識別する組織IDに紐付いている複数のアプリケーションごとに、該アプリケーションを利用可能な情報処理装置の機種を識別する機種IDと、該アプリケーションを利用するのに必要な各種の前提条件情報と、を対応付けて記憶する。本実施の形態では、アプリケーション情報記憶部301は、図12に示す第1の対応情報と、図13に示す第2の対応情報と、図14に示す第3の対応情報とを記憶している。
図12に示すように、第1の対応情報は、MFP1の機種ごとに割り当てられた機種IDと、アプリケーションを識別するアプリIDと、MFP1の販売店を示す販社IDと、該販社が存在する国を示す国IDと、アプリケーションが公開された日を示す公開日情報と、当該アプリケーションのバージョン情報と、当該アプリケーションの内容を説明する説明情報とを対応付けた情報である。
図13に示すように、第2の対応情報は、アプリIDと、該アプリIDに対応するアプリケーションを利用するのに必要な外部ストレージサービスなどの外部サービスと、該アプリIDに対応するアプリケーションを利用するのに必要な依存ソフトウェアおよび当該依存ソフトウェアのバージョンと、該アプリIDに対応するアプリケーションと併用ができないソフトウェアと、該アプリIDに対応するアプリケーションを利用するのに必要なオプション機器の情報とを対応付けた情報である。
図14に示すように、第3の対応情報は、機種IDと、MFP1が設置されるテナントを示すテナントIDと、該テナントにおいて外部ストレージサービスなどの外部サービスの利用可否を示す外部サービス利用可否情報とを対応付けた情報である。
次に、本実施の形態の情報処理システム100の動作手順を説明する。
図15は、情報処理システム100の動作手順の一例を示すシーケンス図である。図15に示すように、まずユーザが、操作画面上のアイコン60(図5参照)をタッチすると(ステップS1)、上述のアプリマーケットアプリが起動し、アプリマーケットアプリは、ブラウザアプリを利用して、上述のアプリケーション一覧画面リクエストをWebサーバ5へ送信する(ステップS2)。そして、その応答として、Webサーバ5からアプリケーション一覧画面50を受信し(ステップS3)、受信したアプリケーション一覧画面50を操作パネル27に表示する(ステップS4)。
ここで、上述したステップS2〜S4におけるアプリケーション一覧画面の表示について詳述する。
図16は、アプリケーション一覧画面の表示動作手順の一例を示すシーケンス図である。図16に示すように、ユーザが、操作画面上のアイコン60(図5参照)をタッチしてアプリケーション一覧画面の表示要求を行うと(ステップS101)、MFP1の操作部20は、オプション機器31の接続状態等の機器状態取得要求をMFP1の本体10に送信する(ステップS102)。機器状態取得要求を受信したMFP1の本体10は、機器状態を取得して(ステップS103)、MFP1の操作部20に送信する(ステップS104)。
機器状態を受信したMFP1の操作部20は、アプリケーション一覧画面の取得要求を、Webサーバ5に対して送信する(ステップS105)。アプリケーション一覧画面の取得要求には、MFP1の機種ID等を含む。
アプリケーション一覧画面の取得要求を受信したWebサーバ5は、アプリ情報提供サーバ3に対してMFP1が利用可能なアプリケーションにかかる各種情報を要求する(ステップS106)。
そして、アプリ情報提供サーバ3は、その応答として、アプリ情報提供サーバ3からMFP1が利用可能なアプリケーションにかかる各種情報を送信する(ステップS107)。
ここで、アプリ情報提供サーバ3がアプリ情報提供サーバ3から受信する各種情報は、以下の通りである。
・MFP1の機種ID
・併用可能アプリケーション
・必要なオプション機器
・国ID
・販社ID
・公開日
・アプリID
・アプリケーションの内容を説明する説明情報
・必要な依存ソフトウェア
・必要な外部サービス
・外部サービス利用可否
その後、Webサーバ5は、アプリケーション一覧画面を生成し(ステップS108)、MFP1の操作部20の操作パネル27に表示させる。ユーザは、MFP1の操作部20の操作パネル27に表示されたアプリケーション一覧画面を確認する(ステップS109)。
図6に示すように、本実施の形態のアプリケーション一覧画面50は、複数のアプリケーションごとに、当該アプリケーションの内容を説明する説明情報41に加え、Install/Updateに必要な前提条件42が表示される。Install/Updateに必要な前提条件42とは、例えば、下記に示すような情報である。
(例1)XXXのアンインストールが必要
(例2)ICカードリーダの設置が必要
(例3)外部サービスの利用が必要
(例1)に示す情報は、図13に示す第2の対応情報におけるアプリIDに対応するアプリケーションと併用ができないソフトウェアに基づく。(例2)に示す情報は、図13に示す第2の対応情報におけるアプリIDに対応するアプリケーションを利用するのに必要なオプション機器に基づく。(例3)に示す情報は、図13に示す第2の対応情報におけるアプリIDに対応するアプリケーションを利用するのに必要な外部サービスに基づく。
すなわち、アプリケーション一覧画面50は、MFP1からの要求に応じ、当該MFP1が利用可能な前記アプリケーションおよび当該アプリケーションにかかる前提条件を当該MFP1に報知する報知情報である。
このように本実施の形態のアプリケーション一覧画面50は、インストールやアップデート時に、Install/Updateに必要な前提条件42をユーザへ通知することにより、アプリケーション利用に必要な前提条件をユーザが確認でき、アプリケーション導入時のコストを低減することができる。
なお、本実施の形態においては、アプリケーション一覧画面50に一覧表示される複数のアプリケーションごとのボタンBにInstall/Updateに必要な前提条件42を表示するようにしたが、これに限るものではない。例えば、アプリケーション一覧画面50に一覧表示される複数のアプリケーションごとのボタンBをダブルクリックすることにより表示されるアプリ詳細画面にInstall/Updateに必要な前提条件42を表示するようにしてもよい。ここで、図17はアプリ詳細画面51の一例を示す正面図である。図17の例では、アプリ詳細画面51は、アプリケーションの内容を説明する説明情報54やアプリケーションに対応するインストールボタン53の他、アプリケーションのInstall/Updateに必要な前提条件52を有している。
図15に戻り、次に、ユーザがアプリケーション一覧画面50上の何れかのアプリケーションのインストールボタン40を押下すると(ステップS5)、MFP1(アプリケーション要求送信部115)は、取得が許可されたアプリケーションを識別するアプリID(ステップS5で押下されたインストールボタン40に貼り付けられたアプリID)を含み、かつ、該アプリケーションを要求する上述のアプリケーション要求をサーバシステム2へ送信し(ステップS6)、その応答として、ダウンロードサーバ4からアプリケーション情報を受信する(ステップS7)。
次に、MFP1(接続判定部117)は、ダウンロードサーバ4から受信したアプリケーション情報に含まれる情報ファイル(条件情報)が示すオプション機器31がMFP1に接続されているか否かを判定する(ステップS8)。上述したように、例えばMFP1は、MFP1に接続されているオプション機器の一覧を示すオプション機器一覧情報と、ダウンロードサーバ4から受信したアプリケーション情報の情報ファイルに含まれるオプション機器識別情報とを比較して、該オプション機器識別情報で識別されるオプション機器31がMFP1に接続されているか否かを判定することもできる。ステップS12の判定結果が肯定の場合(「接続OK」の場合)、MFP1(インストール制御部118)は、ダウンロードサーバ4から受信したアプリケーション情報に含まれるアプリケーションをMFP1にインストールする制御を行う(ステップS9)。インストールが成功すると、MFP1(インストール制御部118)は、図18のような、アプリケーションのインストールが成功したことを報知するための画面(インストール成功画面)を操作パネル27に表示する制御を行ってもよい。一方、ステップS12の判定の判定結果が否定の場合(「接続NG」の場合)、MFP1(インストール制御部118)は、ダウンロードサーバ4から受信したアプリケーション情報に含まれるアプリケーションをMFP1にインストールする制御を中止し、例えばエラー画面を操作パネル27に表示する(ステップS10)。
図19は、上述のステップS108において、Webサーバ5がアプリケーション一覧画面50を生成する処理の一例を示すフローチャートである。
図19に示すように、Webサーバ5のアプリケーション一覧画面生成部511は、まず、機種ID等に基づいて利用可能なアプリケーションを絞り込んだリストを作成する(ステップS201)。
その後、アプリケーション一覧画面生成部511は、一のアプリケーションについて、最新バージョンがインストール済みかを判定する(ステップS202)。最新バージョンがインストール済みである場合には(ステップS202のYes)、アプリケーション一覧画面生成部511は、インストール済みであることを示す表示項目を当該アプリケーションのボタンBのインストールボタン40に代えて(図6参照)(ステップS203)、当該アプリケーションについての処理を終了する。
一方、最新バージョンがインストール済みでない場合には(ステップS202のNo)、アプリケーション一覧画面生成部511は、当該アプリケーションを利用するのに必要な最新バージョンの依存ソフトウェアがインストール済みかを判定する(ステップS204)。最新バージョンの依存ソフトウェアがインストール済みである場合には(ステップS204のYes)、アプリケーション一覧画面生成部511は、そのままステップS206に進む。一方、依存ソフトウェアがインストール済みでない場合には(ステップS204のNo)、アプリケーション一覧画面生成部511は、Install/Updateに必要な前提条件42に、依存ソフトウェアのインストールが必要である旨の通知を追加して(ステップS205)、ステップS206に進む。
次に、プリケーション一覧画面生成部511は、当該アプリケーションと併用ができないソフトウェアがインストール済みかを判定する(ステップS206)。併用ができないソフトウェアがインストール済みでない場合には(ステップS206のNo)、アプリケーション一覧画面生成部511は、そのままステップS208に進む。一方、併用ができないソフトウェアがインストール済みである場合には(ステップS206のYes)、アプリケーション一覧画面生成部511は、Install/Updateに必要な前提条件42に、併用ができないソフトウェアのアンインストールが必要である旨の通知を追加して(ステップS207)、ステップS208に進む。
次に、プリケーション一覧画面生成部511は、アプリケーションを利用するのに必要なオプション機器、設定値、外部サービス等が設定されているかを判定する(ステップS208)。オプション機器、設定値、外部サービス等が設定済みである場合には(ステップS208のYes)、アプリケーション一覧画面生成部511は、そのままステップS210に進む。一方、オプション機器、設定値、外部サービス等が設定済みでない場合には(ステップS208のNo)、アプリケーション一覧画面生成部511は、Install/Updateに必要な前提条件42に、オプション機器、設定値、外部サービス等の設定が必要である旨の通知を追加して(ステップS209)、ステップS210に進む。
次に、プリケーション一覧画面生成部511は、旧バージョンがインストール済みかを判定する(ステップS210)。旧バージョンがインストール済みである場合には(ステップS210のYes)、アプリケーション一覧画面生成部511は、アップデート可能であることを示す表示項目を当該アプリケーションのボタンBのインストールボタン40に表示して(図6参照)(ステップS211)、当該アプリケーションについての処理を終了する。
一方、旧バージョンがインストール済みでない場合には(ステップS210のNo)、アプリケーション一覧画面生成部511は、インストール可能であることを示す表示項目を当該アプリケーションのボタンBのインストールボタン40に表示して(図6参照)(ステップS212)、当該アプリケーションについての処理を終了する。
アプリケーション一覧画面生成部511は、ステップS201で作成したリストの全てのアプリケーションに対するステップS202〜S212の処理が終了するまで(ステップS213のYes)、繰り返す。
以上に説明したように、本実施の形態では、ユーザは、アプリケーションのインストールやアップデートに際して、アプリケーションの利用に必要な前提条件を確認することができるので、アプリケーション導入時のコストを低減することができる。
なお、本実施の形態においては、アプリ情報提供サーバ3にアプリケーション情報記憶部301を備えるようにしたが、これに限るものではなく、Webサーバ5がアプリケーション情報記憶部301を備えていてもよい。
以上、本発明に係る実施の形態について説明したが、本発明は、上述の実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上述の実施の形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施の形態に示される全構成要素から幾つかの構成要素を削除してもよい。
また、上述の実施の形態では、本体10と操作部20は、別々のオペレーションシステムで互いに独立して動作しているが、これに限らず、例えば本体10と操作部20が同じオペレーションシステムで動作する形態であってもよい。
また、上述した実施の形態の情報処理システム100(MFP1、アプリ情報提供サーバ3、ダウンロードサーバ4、Webサーバ5等)で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよいし、インターネット等のネットワーク経由で提供または配布するように構成してもよい。また、各種プログラムを、ROM等に予め組み込んで提供するように構成してもよい。