以下、添付図面を参照しながら、本発明に係る情報処理装置、情報処理方法およびプログラムの実施形態を詳細に説明する。以下では、本発明に係る情報処理装置の一例として、画像形成装置の一態様である複合機(MFP:Multifunction Peripheral)を例に挙げて説明するが、これに限られるものではない。なお、複合機とは、コピー機能、スキャナ機能、プリンタ機能、ファクス機能などの複数の異なる機能を有する装置である。
(第1の実施形態)
図1は、本実施形態の情報処理システム100の概略構成の一例を示す図である。図1に示すように、情報処理システム100は、MFP1と、アプリストアサーバ2と、アプリケーションサーバ3とを備え、これらはネットワーク8を介して相互に接続される。
アプリストアサーバ2は、アプリケーションごとに、当該アプリケーションを導入(インストール)することを指示する表示情報(この例ではボタン)が対応付けられたアプリケーション一覧画面(以下の説明では「アプリストア」と称する場合がある)を、MFP1に対して提供する。より具体的な内容については後述する。この例では、アプリストアサーバ2からアプリストアを取得してMFP1に表示する機能を提供するアプリケーション(以下、「ストアアプリ」と称する場合がある)や、アプリストアに表示されたアプリケーションのうちユーザによって選択されたアプリケーションをMFP1に導入する制御を行う機能を提供するアプリケーション(以下、「インストールアプリケーション」と称する場合がある)が、予めMFP1にインストールされている。なお、ストアアプリの機能は、Webブラウザの機能を提供するためのアプリケーションを利用して実現されるため、「ブラウザアプリ」と総称する場合がある。MFP1の具体的な内容については後述する。
アプリケーションサーバ3は、アプリケーション一覧画面で表示されているアプリケーションを保持し、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のアプリには、ブラウザアプリ(ストアアプリ)やインストールアプリケーションなども含まれる。
なお、本実施形態では、機能の独立性を保つために、本体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と、第1の特定部115と、第1の表示部116と、導入制御部117と、登録部118を有する。説明の便宜上、図4では、本発明に係る機能を主に例示しているが、MFP1が有する機能は、これらに限られるものではない。
ログイン画面表示部111は、ユーザがMFP1を使用する権限を有するか否かを判断する認証処理に用いられる第1のユーザ情報の入力を促すログイン画面を操作パネル27に表示し、第1のユーザ情報の入力を受け付ける。この例では、第1のユーザ情報は、ユーザIDとパスワードの組み合わせで構成され得るが、これに限られるものではない。
認証部112は、上述の第1のユーザ情報を受け付けた場合(この例では、ログイン画面表示部111が第1のユーザ情報の入力を受け付けた場合)、該第1のユーザ情報と、MFP1を使用する権限を有するユーザを識別する第2のユーザ情報とを比較して認証処理を実行する。ここでは、認証処理は、第1のユーザ情報と、第2のユーザ情報とが一致する場合は、第1のユーザ情報を入力したユーザは、MFP1を使用する権限を有すると判断し、第1のユーザ情報と第2のユーザ情報とが一致しない場合は、第1のユーザ情報を入力したユーザは、MFP1を使用する権限を有していないと判断する処理である。
本実施形態では、認証部112は、MFP1を使用する権限を有するユーザごとに、図5に示すエントリ情報を保持している。エントリ情報の項目としては、該エントリ情報を識別するエントリID、ユーザID、パスワード、所属グループなどが挙げられる。この例では、エントリ情報のユーザIDとパスワードの組み合わせ(ユーザIDに対応する値とパスワードに対応する値との組み合わせ)は、MFP1を使用する権限を有するユーザを識別する第2のユーザ情報に対応している。また、エントリ情報の所属グループは、ユーザが所属する管理者グループを示す項目であり、例えば所属グループに対応する値が「機器管理者グループ」を示す場合、ユーザが利用する権限を有している機能として、機器管理者機能が設定されていることを意味する。また、例えば所属グループに対応する値が「ユーザ管理者グループ」を示す場合、ユーザが利用する権限を有している機能として、ユーザ管理者機能が設定されていることを意味する。すなわち、所属グループ(所属グループに対応する値)は、ユーザが利用可能な機能を示す機能情報に対応していると考えることができる。
つまり、エントリ情報は、MFP1を使用する権限を有するユーザを識別する第2のユーザ情報に対して、該第2のユーザ情報で識別されるユーザが利用する権限を有している機能を示す機能情報を予め対応付けた情報であると考えることもできる。また、複数のユーザごとに設定されたエントリ情報の集合は、複数の第2のユーザ情報ごとに、該第2のユーザ情報で識別されるユーザが利用可能な機能を示す機能情報を予め対応付けた情報であると考えることができる。ここでは、1つのエントリ情報が請求項の「第2の情報」に対応していると考えることもできるし、複数のユーザごとに設定されたエントリ情報の集合が請求項の「第2の情報」に対応していると考えることもできる。
本実施形態では、認証部112は、上述の第1のユーザ情報として、ユーザIDとパスワードの入力を受け付けた場合、その受け付けたユーザIDとパスワードの組み合わせと一致するユーザIDとパスワードの組み合わせを含むエントリ情報が存在する場合(つまり、第1のユーザ情報と第2のユーザ情報とが一致する場合)、第1のユーザ情報を入力したユーザは、MFP1を使用する権限を有すると判断する。つまり、該ユーザを認証する。
また、本実施形態では、認証部112は、複数の機能ごとに、該機能を利用する権限を有することを、該機能に予め対応付けられた権限を認めるための条件とするか否かを示す条件情報を予め対応付けた第3の情報を保持している。図6は、第3の情報の一例を示す図である。図6に示す第3の情報は、複数の機能と1対1に対応する複数の項目ごとに、条件情報を示す値を対応付けた情報である。図6の例では、機器管理者機能設定は機器管理者機能に対応し、ユーザ管理者機能設定はユーザ管理者機能に対応し、文書管理者機能設定は文書管理者機能に対応し、ネットワーク管理者機能設定はネットワーク管理者機能に対応し、サービス機能設定はサービス設定に対応している。図6に示すように、機器管理者機能設定に対応する値が「有効」を示すということは、機器管理者機能を利用する権限を有することを、該機器管理者機能に予め対応付けられた権限を認めるための条件とすることを示す。すなわち、機器管理者機能を利用する権限を有していない限り、機器管理者機能に予め対応付けられた権限は認められないことになる。ユーザ管理者機能設定、文書管理者機能設定、サービス機能設定についても同様である。
また、図6に示すように、ネットワーク管理者機能設定に対応する値が「無効」を示すということは、ネットワーク管理者機能を利用する権限を有することを、該ネットワーク管理者機能に予め対応付けられた権限を認めるための条件としないことを示す。すなわち、ネットワーク管理者機能を利用する権限を有していなくても、ネットワーク管理者機能に対応する権限が認められることになる。
さらに、本実施形態では、認証部112は、複数の機能ごとに、1以上の権限を予め対応付けた第4の情報を保持している。図7は、第4の情報の一例を示す図である。図7の例では、機器管理者機能に対して、アプリケーションをMFP1にインストール(導入)する権限を表すインストール権限などの権限が対応付けられ、ユーザ管理者機能に対して、アドレス帳(ユーザエントリ)を編集する権限を表すアドレス帳編集権限、ユーザ毎にカラー印刷などの機能を制限するか否かの設定を行う権限を表す機能制限設定権限、認証方式を設定する権限(認証の有効/無効を設定する権限、ベーシック認証にするかケルベロス(Kerberos)認証にするかなどを設定する権限)を表す認証設定権限などの権限が対応付けられている。以上の情報(エントリ情報(第2の情報)、第3の情報、第4の情報)の具体的な利用方法については後述する。なお、この例では、エントリ情報、第3の情報、第4の情報は認証部112が保持しているが、これに限らず、例えばエントリ情報、第3の情報、第4の情報を記憶する記憶装置がそれぞれ別々に設けられる形態であっても構わない。
図4の説明を続ける。操作画面表示部113は、各種の操作を行うための操作画面を操作パネル27に表示する制御を行う。より具体的には、操作画面表示部113は、認証部112からユーザを認証した旨の通知を受けた場合、図8に示すような操作画面を操作パネル27に表示する制御を行い、ユーザを認証しない旨の通知を受けた場合は操作画面を操作パネル27に表示する制御は行わず、例えば認証に失敗した旨の画面を操作パネル27に表示する制御を行う。図8は、操作画面の一例を示す図であり、操作画面には、ストアアプリを起動するためのアイコン4が表示されている。
図4の説明を続ける。取得部114は、認証部112により認証されたユーザ(ログイン中のユーザ)の操作に応じて、アプリケーションごとに、当該アプリケーションをMFP1に導入することを指示するための表示情報(この例では後述のインストールボタン5)が対応付けられたアプリケーション一覧画面(この例ではアプリストア)を取得する。本実施形態では、ユーザがアイコン4をタッチすると、ストアアプリが起動し、ストアアプリ(取得部114)は、アプリストアサーバ2に対して、アプリストアを要求する信号(以下、「アプリストアリクエスト」と称する場合がある)を送信する。そして、その応答として、アプリストアサーバ2からアプリストアを取得する。
図9は、アプリストアサーバ2から取得したアプリストア(MFP1に表示する前の状態のアプリストア)の一例を示す図である。図9の例では、アプリストアは、複数のアプリケーションごとに、当該アプリケーションの内容を説明する説明情報と、当該アプリケーションをMFP1にインストールすることを指示するためのボタン5(以下、「インストールボタン5」と称する)とを表示している。この例では、インストールアプリケーションに対してアプリケーションをインストールする命令(以下、「インストール命令」と称する)が、URIの形式(例えばURLの形式でもよい)で、当該アプリケーションに対応するインストールボタン5に貼り付けられている。図10は、「49354」というIDで識別されるアプリケーションに対応するインストールボタン5に貼り付けられるインストール命令の一例を示す図であり、「49354」というIDで識別されるアプリケーションをインストールする命令を表している。
また、この例では、上述のアプリストアリクエストに対するページレスポンスの中に、ログイン中のユーザがインストール権限を有している場合はインストールボタン5を表示し、インストール権限を有していない場合はインストールボタン5を非表示にするというスクリプトが埋め込まれている。
図4の説明を続ける。第1の特定部115は、取得部114によりアプリケーション一覧画面(この例ではアプリストア)が取得された場合、第2のユーザ情報と、該第2のユーザ情報で識別されるユーザが有する権限を示す権限情報との対応関係を示す第1の情報に基づいて、認証部112により認証されたユーザを識別する第2のユーザ情報に対応する権限情報を特定する。
本実施形態では、上述の第1の情報は、上述のエントリ情報と、上述の第3の情報と、上述の第4の情報とを含むと考えることができる。そして、第1の特定部115は、上述の第4の情報に含まれる権限のうち、上述のエントリ情報において認証部112により認証されたユーザを識別する第2のユーザ情報に対応付けられた機能情報が示す機能と一致する機能に対応付けられた権限を示す情報を、認証部112により認証されたユーザを識別する第2のユーザ情報に対応する権限情報(ログイン中のユーザの権限情報)として特定する。また、第1の特定部115は、上述の第4の情報に含まれる権限のうち、上述の第3の情報において条件としないことを示す条件情報が対応付けられた機能と一致する機能に対応付けられた権限を示す情報を、認証部112により認証されたユーザを識別する第2のユーザ情報に対応する権限情報として特定する。
さらに詳述すれば以下のとおりである。本実施形態では、取得部114によりアプリストアが取得された場合、第1の特定部115は、認証部112に対して、複数の機能ごとに、ログイン中のユーザの利用が制限されているか否か(ログイン中のユーザが当該機能を利用する権限を有しているか否か)を示す制限可否情報を対応付けた機能制限情報と、上述の第3の情報と、上述の第4の情報とを要求する。この要求を受けた認証部112は、ログイン中のユーザを識別する第2のユーザ情報(この例ではユーザIDとパスワードの組み合わせ)を含むエントリ情報を特定し、その特定したエントリ情報の所属グループに対応する値を参照して、機能制限情報を生成する。例えば特定したエントリ情報が図11の態様である場合を想定する。図11の例では、所属グループに対応する値は「機器管理者グループ」を示すので、特定したエントリ情報のユーザIDとパスワードの組み合わせで識別されるユーザが利用する権限を有している機能として、機器管理者機能が設定されていることになる。したがって、認証部112は、図12に示すような機能制限情報を作成することができる。図12の例では、機器管理者機能は制限されていないことを示す。つまり、ログイン中のユーザは、機器管理者機能を利用する権限を有していることを意味する。また、図12の例では、ユーザ管理者機能などの他の機能は制限されていることを示す。つまり、ログイン中のユーザは、他の機能を利用する権限を有していないことを意味する。
そして、認証部112は、以上のようにして生成した機能制限情報と、上述の第の3情報と、上述の第4の情報とを第1の特定部115へ送信する。
なお、これに限らず、例えば第1の特定部115は、機能制限情報の代わりに、ログイン中のユーザを識別する第2のユーザ情報を含むエントリ情報を認証部112から取得する形態であってもよいし、全てのエントリ情報(複数のユーザと1対1に対応する複数のエントリ情報)を認証部112から取得する形態であってもよい。エントリ情報を取得できれば、複数の機能の各々について、ログイン中のユーザの利用が制限されているか否かを判定することは可能であるためである。
ここでは、一例として、第1の特定部115が、図12に示す機能制限情報と、図6に示す第3の情報と、図7に示す第4の情報とを取得した場合を想定する。図12の例では、機器管理者機能は制限されていないことを示すので、第1の特定部115は、ログイン中のユーザを識別する第2のユーザ情報に対応付けられた機能情報が示す機能として、機器管理者機能を特定する。また、図11の例では他の機能は制限されているものの、図6に示す第3の情報において、ネットワーク管理者機能設定に対応する値は「無効」を示すので、ログイン中のユーザが、ネットワーク管理者機能を利用する権限を有していなくても、ネットワーク管理者機能に予め対応付けられた権限が認められることになる。そのため、第1の特定部115は、上述の第3の情報において条件としないことを示す条件情報が対応付けられた機能として、ネットワーク管理者機能を特定する。
次に、第1の特定部115は、図7に示す第4の情報に含まれる権限のうち、以上のようにして特定した機器管理者機能に対応付けられた権限を示す情報、および、ネットワーク管理者機能に対応付けられた権限を示す情報を、ログイン中のユーザの権限情報として特定する。図7からも理解されるように、この例では、アプリケーションをMFP1にインストールする権限を表すインストール権限が、機器管理者機能に対応付けられているので、ログイン中のユーザの権限情報が示す権限には、インストール権限が含まれることになる。
図4に戻って説明を続ける。第1の表示部116は、第1の特定部115により特定された権限情報に応じて、アプリケーション一覧画面(この例ではアプリストア)の表示内容を変更して表示する制御を行う。より具体的には、第1の表示部116は、第1の特定部115により特定された権限情報が示す権限に、アプリケーションをMFP1に導入する権限が含まれない場合、表示情報を非表示にした状態のアプリケーション一覧画面を表示する制御を行う。例えば第1の表示部116は、第1の特定部115により特定された権限情報が示す権限が、インストール権限を含まない場合、図13に示すような、インストールボタン5を非表示にした状態のアプリストアを操作パネル27に表示する制御を行う。
一方、第1の表示部116は、第1の特定部115により特定された権限情報が示す権限に、アプリケーションをMFP1に導入する権限が含まれている場合、インストールボタン5が表示された状態のアプリストアを表示する制御を行う。
図14は、アプリストアの取得から表示までのMFP1の動作例を示すフローチャートである。まず、ログイン中のユーザの操作に応じて、取得部114はアプリストアサーバ2からアプリストアを取得する(ステップS1)。次に、第1の特定部115は、上述の第1の情報に基づいて、ログイン中のユーザの権限情報を特定する(ステップS2)。具体的な内容は上述したとおりである。次に、第1の表示部116は、ログイン中のユーザの権限情報(ステップS2で特定した権限情報)が示す権限に、インストール権限が含まれるか否かを確認する(ステップS3)。
ログイン中のユーザの権限情報が示す権限に、インストール権限が含まれていない場合(ステップS3:No)、第1の表示部116は、インストールボタン5を非表示にした状態のアプリストアを操作パネル27に表示する制御を行う(ステップS4)。一方、ログイン中のユーザの権限情報が示す権限に、インストール権限が含まれている場合(ステップS3:Yes)、第1の表示部116は、ステップS1で取得したアプリストアをそのまま操作パネル27に表示する制御を行う(ステップS5)。
図4に戻って説明を続ける。導入制御部117は、認証部112により認証され、かつ、アプリケーションをMFP1に導入する権限を有するユーザの指示に応じて、アプリケーションをMFP1に導入する制御を行う。この例では、認証部112により認証され、かつ、アプリケーションをMFP1に導入する権限を有するユーザが、アプリストア上の何れかのアプリケーションのインストールボタン5を押下(該アプリケーションをMFP1にインストールする指示であると考えることもできる)すると、ブラウザアプリは、インストールボタン5に貼り付けられたインストール命令を、操作部20のOSに通知する。操作部20のOSは、通知されたインストール命令を確認し、操作部20の各アプリケーションに対して、当該インストール命令をブロードキャストする。そして、インストールアプリケーション(導入制御部117)が、このブロードキャストされたインストール命令に反応し、アプリケーションサーバ3に対して、インストール命令に含まれるIDで識別されるアプリケーションのダウンロードを要求し、アプリケーションサーバ3から該アプリケーションをダウンロードする。そして、ダウンロードしたアプリケーションをMFP1にインストールする。
例えばアプリケーションサーバ3からダウンロードされるアプリケーションは、図15のようなアーカイブファイルで提供され、アプリケーションの本体と、それに紐付く情報ファイルとから構成される。情報ファイルには、アプリケーションを識別するためのプロダクトIDやバージョン、アプリケーションが動作するために必要なMFP1の条件に関する情報などが含まれている。この例では、情報ファイルに含まれる情報のうち、アプリケーションの管理に必要な情報が抽出されて後述の第5の情報に記録される。
図4に戻って説明を続ける。登録部118は、導入制御部117がアプリケーションをMFP1に導入するたびに、その導入したアプリケーションと、該アプリケーションの導入を指示したユーザの権限情報とを対応付けて、MFP1に導入済みのアプリケーションごとに、該アプリケーションの導入を指示したユーザの権限情報を対応付けた第5の情報に登録する。例えば、導入制御部117は、インストール実行時に、上述の機能制限情報と、上述の第3の情報と、上述の第4の情報とを認証部112から取得し、上述の第1の特定部115と同じ方法で、ログイン中のユーザ権限情報を特定することもできるし、上述の第1の特定部115に対して、ログイン中のユーザの権限情報を要求し、その応答として、ログイン中のユーザの権限情報を取得することもできる。
図16は、第5の情報の一例を示す図である。図16の例では、第5の情報は、MFP1にインストール済みの複数のアプリケーションと1対1に対応する複数のアプリ情報を有する。各アプリ情報は、対応するアプリケーションを識別するための情報(プロダクトID、アプリ名、バージョン、種別、ライセンスを識別するライセンスユニークID、利用開始設定が有効であるか否かを示すアクティベーション状態)や、対応するアプリケーションのインストールを指示したユーザの権限情報を含む。
次に、アプリストアサーバ2およびアプリケーションサーバ3の構成を説明する。図17は、アプリストアサーバ2のハードウェア構成の一例を示す図である。なお、アプリケーションサーバ3のハードウェア構成も図17の構成と同様である。
図17に示すように、アプリストアサーバ2は、CPU301と、ROM302と、RAM303と、通信I/F304と、入力装置305と、表示装置306とを備える。CPU301は、アプリストアサーバ2の動作を統括的に制御する。ROM302は、プログラム等の各種のデータを記憶する不揮発性のメモリである。RAM303は、CPU301が実行する各種の処理の作業領域(ワークエリア)として機能する揮発性のメモリである。通信I/F304は、ネットワーク8と接続するためのインタフェースである。入力装置305は、ユーザによる操作の入力に用いられるデバイスであり、例えばマウスやキーボードなどで構成される。表示装置306は各種の情報を表示するデバイスであり、例えば液晶表示型ディスプレイ装置などで構成される。
図18は、アプリストアサーバ2が有する機能の一例を示す図である。図18に示すように、アプリストアサーバ2は、アプリストア保持部211と、アプリストア送信部212とを有する。説明の便宜上、図18では、本発明に係る機能を主に例示しているが、アプリストアサーバ2が有する機能は、これらに限られるものではない。
アプリストア保持部211は、上述のアプリストアを保持する。アプリストア送信部212は、MFP1から上述のアプリストアリクエストを受信すると、その応答として、アプリストア保持部211に保持されているアプリストアをMFP1に送信する。
図19は、アプリケーションサーバ3が有する機能の一例を示す図である。図19に示すように、アプリケーションサーバ3は、アプリケーション保持部311と、アプリケーション送信部312とを有する。説明の便宜上、図19では、本発明に係る機能を主に例示しているが、アプリケーションサーバ3が有する機能は、これらに限られるものではない。
アプリケーション保持部311は、複数のアプリケーションを保持する。アプリケーション送信部312は、MFP1からの要求(ダウンロード要求)に応じて、アプリケーション保持部311に保持されているアプリケーションをMFP1に送信する。
図20は、本実施形態の情報処理システム100の動作手順の一例を示すシーケンス図である。まず操作パネル27上には上述のログイン画面が表示され、ユーザが、ログイン画面に対して、第1のユーザ情報(例えばユーザIDとパスワード)を入力すると(ステップS11)、認証部112は上述の認証処理を実行する(ステップS12)。認証処理の結果が肯定の場合は、図8に示す操作画面を操作パネル27に表示し、認証処理の結果が否定の場合は、認証されなかった旨(MFP1の使用を許可しない旨)を示すエラー画面を操作パネル27に表示する。以下では、認証処理の結果が肯定であったことを前提として説明する。
次に、ログイン中のユーザが、操作画面上のアイコン4(図8参照)をタッチすると(ステップS13)、ブラウザアプリは、アプリストアサーバ2に対して、上述のアプリストアリクエストを送信する(ステップS14)。
そして、ブラウザアプリは、その応答として、アプリストアサーバ2からアプリストアを受信し(ステップS15)、レスポンスに埋め込まれたスクリプトに従った処理を実行する。より具体的には、以下のとおりである。まず、ブラウザアプリ(第1の特定部115)は、認証部112に対して、上述の機能制限情報と、上述の第3の情報と、上述の第4の情報とを要求し(ステップS16)、その応答として、上述の機能制限情報と、上述の第3の情報と、上述の第4の情報とを取得する(ステップS17)。そして、ブラウザアプリ(第1の特定部115)は、上述の機能制限情報と、上述の第3の情報と、上述の第4の情報とから、ログイン中のユーザの権限情報を特定する(ステップS18)。この具体的な内容は上述したとおりである。次に、ブラウザアプリ(第1の表示部116)は、ステップS18で特定した権限情報に応じて、ステップS15で受信したアプリストアの表示内容を変更して表示する制御を行う(ステップS19)。
ここでは、上述のステップS18で特定した権限情報が示す権限にインストール権限が含まれていた場合、つまり、上述のステップS19において、インストールボタン5が表示された状態のアプリストアを操作パネル27に表示する場合を例に挙げて説明する。ユーザが、アプリストア上の何れかのアプリケーションのインストールボタン5を押下すると(ステップS20)、ブラウザアプリは、インストールボタン5に貼り付けられたインストール命令を、操作部20のOSに通知する(ステップS21)。操作部20のOSは、通知されたインストール命令を確認し(ステップS22)、操作部20の各アプリケーションに対して、当該インストール命令をブロードキャストする(ステップS23)。
そして、インストールアプリケーション(導入制御部117)が、このブロードキャストされたインストール命令に反応し、アプリケーションサーバ3に対して、インストール命令に含まれるIDで識別されるアプリケーションのダウンロードを要求し(ステップS24)、アプリケーションサーバ3から該アプリケーションをダウンロードする(ステップS25)。そして、ダウンロードしたアプリケーションをMFP1にインストールする(ステップS26)。
また、インストールアプリケーション(導入制御部117)は、認証部112に対して、上述の機能制限情報と、上述の第3の情報と、上述の第4の情報とを要求し(ステップS27)、その応答として、上述の機能制限情報と、上述の第3の情報と、上述の第4の情報とを取得する(ステップS28)。そして、インストールアプリケーションは、上述の機能制限情報と、上述の第3の情報と、上述の第4の情報とから、ログイン中のユーザの権限情報を特定し(ステップS29)、特定した権限情報と、ステップS26でインストールしたアプリケーションとを対応付けた上述のアプリ情報を、上述の第5の情報に記録する(ステップS30)。
以上に説明したように、本実施形態では、ログイン中のユーザの権限情報に応じて、アプリストアの表示内容を変更して表示する制御を行う。例えばログイン中のユーザの権限情報が示す権限に、インストール権限が含まれない場合は、インストールボタン5を非表示にした状態のアプリストアを表示する制御を行い、ログイン中のユーザの権限情報が示す権限に、インストール権限が含まれない場合は、インストールボタン5を非表示にした状態のアプリストアを表示する制御を行う。すなわち、ログイン中のユーザが有する権限に合わせた形態のアプリストアを提示することができるので、ユーザの利便性を向上させることができる。
また、上述したように、本実施形態のMFP1は、該MFP1を使用する権限を有するユーザを識別する第2のユーザ情報と、該第2のユーザ情報で識別されるユーザが有する権限を示す権限情報との対応関係を示す第1の情報を有しており、この第1の情報に基づいて、ログイン中のユーザの権限情報を特定することができる。したがって、例えばユーザが、アプリケーションのインストールを行うためには、該ユーザがMFP1を使用する権限を有しているか否かを判断する認証処理は必要になるものの、該ユーザがインストール権限を有しているか否かを判断する認証処理は不要になるので、該ユーザに対して、インストール権限の認証に必要な情報の入力を求めることはない。すなわち、本実施形態によれば、認証回数を減らすことができるので、この点でもユーザの利便性を向上させることができる。
(第2の実施形態)
次に、第2の実施形態について説明する。上述の第1の実施形態と共通する部分については適宜に説明を省略する。図21は、本実施形態のMFP1が有する機能の一例を示す図である。図21に示すように、MFP1は、第2の特定部121と、第3の特定部122と、第2の表示部123とをさらに備える点で上述の第1の実施形態と相違する。
第2の特定部121は、認証部112により認証されたユーザ(ログイン中のユーザ)から、アプリケーションの更新(アップデート)を指示するための更新画面を要求する操作を受け付けた場合、該ユーザを識別する第2のユーザ情報に対応する権限情報を特定する。この特定方法は、上述の第1の特定部115による特定方法と同様である。なお、第1の特定部115が、第2の特定部121の機能を兼ねる形態であってもよい。
第3の特定部122は、上述の第5の情報において、第2の特定部121により特定された権限情報と一致する権限情報に対応付けられたアプリケーションを特定する。より具体的には、上述の第5の情報に含まれる複数のアプリ情報のうち、第2の特定部121により特定された権限情報と一致する権限情報を含む1以上のアプリ情報を特定し、特定した1以上のアプリ情報と1対1に対応する1以上のアプリケーションを特定するという具合である。
第2の表示部123は、第3の特定部122により特定されたアプリケーションの更新を指示するための更新画面を表示する制御を行う。図22は、操作パネル27に表示された更新画面の一例を示す図である。更新画面には、ログイン中のユーザがインストールしたアプリケーションのみが表示され、該ユーザは何れかのアプリケーションを選択する操作を行って、「更新」のソフトキーを押下することで、選択したアプリケーションの更新を指示することができる。
本実施形態では、上述の更新画面に表示されるアプリケーションは、ログイン中のユーザが更新できるアプリケーションに絞られるため、誤って他の管理者がインストールしたアプリケーションを更新してしまうといった事態を防ぐことができる。
図23は、本実施形態のMFP1の動作例を示すフローチャートである。図23に示すように、ログイン中のユーザから、更新画面を要求する操作を受け付けた場合(ステップS41:Yes)、第2の特定部121は、ログイン中のユーザの権限情報を特定する(ステップS42)。次に、第3の特定部122は、上述の第5の情報において、上述のステップS42で特定した権限情報と一致する権限情報に対応付けられたアプリケーションを特定する(ステップS43)。次に、第2の表示部123は、上述のステップS43で特定したアプリケーションの更新を指示するための更新画面を表示する制御を行う(ステップS44)。
(第3の実施形態)
次に、第3の実施形態について説明する。上述の各実施形態と共通する部分については適宜に説明を省略する。図24は、本実施形態のMFP1が有する機能の一例を示す図である。図24に示すように、MFP1は、第4の特定部124と、第5の特定部125と、第3の表示部126とをさらに備える点で上述の第1の実施形態と相違する。
第4の特定部124は、認証部112により認証されたユーザ(ログイン中のユーザ)から、アプリケーションの削除(アンインストール)を指示するための削除画面を要求する操作を受け付けた場合、該ユーザを識別する第2のユーザ情報に対応する権限情報を特定する。この特定方法は、上述の第1の特定部115による特定方法と同様である。なお、第1の特定部115が、第4の特定部124の機能を兼ねる形態であってもよい。
第5の特定部125は、上述の第5の情報において、第4の特定部124により特定された権限情報と一致する権限情報に対応付けられたアプリケーションを特定する。より具体的には、上述の第5の情報に含まれる複数のアプリ情報のうち、第4の特定部124により特定された権限情報と一致する権限情報を含む1以上のアプリ情報を特定し、特定した1以上のアプリ情報と1対1に対応する1以上のアプリケーションを特定するという具合である。
第3の表示部126は、第5の特定部125により特定されたアプリケーションの削除を指示するための削除画面を表示する制御を行う。図25は、操作パネル27に表示された削除画面の一例を示す図である。削除画面には、ログイン中のユーザがインストールしたアプリケーションのみが表示され、該ユーザは何れかのアプリケーションを選択する操作を行って、「アンインストール」のソフトキーを押下することで、選択したアプリケーションの削除を指示することができる。
本実施形態では、上述の削除画面に表示されるアプリケーションは、ログイン中のユーザが削除できるアプリケーションに絞られるため、誤って他の管理者がインストールしたアプリケーションを削除してしまうといった事態を防ぐことができる。
図26は、本実施形態のMFP1の動作例を示すフローチャートである。図26に示すように、ログイン中のユーザから、削除画面を要求する操作を受け付けた場合(ステップS51:Yes)、第4の特定部124は、ログイン中のユーザの権限情報を特定する(ステップS52)。次に、第5の特定部125は、上述の第5の情報において、上述のステップS52で特定した権限情報と一致する権限情報に対応付けられたアプリケーションを特定する(ステップS53)。次に、第3の表示部126は、上述のステップS53で特定したアプリケーションの削除を指示するための削除画面を表示する制御を行う(ステップS54)。
以上、本発明に係る実施形態について説明したが、本発明は、上述の各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上述の各実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、各実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
なお、以上に説明したMFP1の各部の機能(ログイン画面表示部111、認証部112、操作画面表示部113、取得部114、第1の特定部115、第1の表示部116、導入制御部117、登録部118、第2の特定部121、第3の特定部122、第2の表示部123、第4の特定部124、第5の特定部125、第3の表示部126)は、CPU(11または21)が、記憶装置(例えばROM12、HDD14、ROM22、フラッシュメモリ24等)に格納されたプログラムを実行することにより実現されるが、これに限らず、例えば上記MFP1の各部の機能のうちの少なくとも一部が専用のハードウェア回路(例えば半導体集積回路等)で実現されてもよい。
また、上述の実施形態では、本体10と操作部20は、別々のオペレーティングシステムで互いに独立して動作しているが、これに限らず、例えば本体10と操作部20が同じオペレーティングシステムで動作する形態であってもよい。
また、上述の実施形態では、上述の第1の情報は、上述のエントリ情報(第2の情報)と、上述の第3の情報と、上述の第4の情報との組み合わせで構成されているが、これに限らず、例えば上述の第1の情報は、1以上の第2のユーザ情報ごとに、該第2のユーザ情報で識別されるユーザが有する権限を示す権限情報を対応付けた情報で構成されてもよい。要するに、上述の第1の情報は、第2のユーザ情報と、該第2のユーザ情報で識別されるユーザが有する権限を示す権限情報との対応関係を示す(特定可能な)情報であればよい。
また、上述した実施形態の情報処理システム100(MFP1、アプリストアサーバ2、アプリケーションサーバ3等)で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよいし、インターネット等のネットワーク経由で提供または配布するように構成してもよい。また、各種プログラムを、ROM等に予め組み込んで提供するように構成してもよい。