以下、添付図面を参照しながら、本発明に係る情報処理装置、プログラム、情報処理システムおよび情報処理方法の実施形態を詳細に説明する。以下では、情報処理システムに含まれる機器の一例として、画像形成装置の一態様である複合機(MFP:Multifunction Peripheral)を例に挙げて説明するが、これに限られるものではない。なお、複合機とは、コピー機能、スキャナ機能、プリンタ機能、ファクス機能などの複数の異なる機能を有する装置である。
(第1の実施形態)
図1は、本実施形態のシステム(情報処理システム)1の構成の一例を示す図である。図1に示すように、システム1は、サーバ2と、例えばインターネットなどのネットワーク3を介してサーバ2に接続されるMFP4と、を備える。なお、図1の例では、システム1に含まれる機器として、1台のMFP4のみを例示しているが、これに限られるものではなく、システム1に含まれる機器の台数および種類は任意である。例えば機器として、PC(Personal Computer)がシステム1に含まれる形態であってもよい。
サーバ2は、「情報処理装置」の一例であり、MFP4からの要求に応じて、MFP4に対して利用を推奨する利用推奨アプリケーション(以下の説明では「おすすめアプリ」と称する)を示す画面情報をMFP4へ送信する。以下、サーバ2の具体的な構成を説明する。
図2は、サーバ2のハードウェア構成の一例を示す図である。図2に示すように、サーバ2は、CPU301と、ROM302と、RAM303と、通信I/F304と、入力装置305と、表示装置306とを備える。CPU301は、サーバ2の動作を統括的に制御する。ROM302は、プログラム等の各種のデータを記憶する不揮発性のメモリである。RAM303は、CPU301が実行する各種の処理の作業領域(ワークエリア)として機能する揮発性のメモリである。通信I/F304は、ネットワーク3と接続するためのインタフェースである。入力装置305は、ユーザによる操作の入力に用いられるデバイスであり、例えばマウスやキーボードなどで構成される。表示装置306は各種の情報を表示するデバイスであり、例えば液晶型ディスプレイ装置などで構成される。
図3は、サーバ2が有する機能の一例を示す図である。図3に示すように、サーバ2は、アプリ情報管理モジュール210と、顧客情報管理モジュール220と、おすすめアプリ情報管理モジュール230と、ライセンス管理モジュール240と、アプリダウンロード管理モジュール250とを有する。図3の例では、本実施形態に関するモジュールのみを例示しているが、サーバ2が有するモジュールはこれらに限られるものではない。
図4は、アプリ情報管理モジュール210が有する機能の一例を示す図である。アプリ情報管理モジュール210は、記憶部211と、制御部212と、画面提供部213と、設定部214と、を有している。なお、図4の例では、本実施形態に関する機能を主に例示しているが、アプリ情報管理モジュール210が有する機能はこれらに限られるものではない。
図4に示すように、記憶部211は、アプリ情報データベース(以下、「アプリ情報DB」と称する)307と、ユーザ情報データベース(以下、「ユーザ情報DB」と称する)308と、を有する。
図5は、アプリ情報DB307に記憶された情報の一例を示す図である。アプリ情報DB307は、複数のアプリケーション情報を記憶する。図5に示すように、複数のアプリケーション情報の各々は、該アプリケーションを識別するアプリIDと、該アプリケーションの使用権限(ライセンス)の認証に用いられるライセンスキーと、該アプリケーションの最新のバージョンを示すバージョン情報と、該アプリケーションの表示名称と、該アプリケーションを紹介するメッセージとを対応付けた情報である。以下の説明では、表示名称とメッセージとの組み合わせを、アプリケーションを説明するための「アプリ説明情報」と称する場合がある。
図4に戻って記憶部211の説明を続ける。ユーザ情報DB308は、例えば後述の設定部214による設定のための操作を行う権限を有するユーザの認証に必要な情報を記憶する。
次に、制御部212が有する機能を説明する。制御部212は、MFP4からの要求に応じて、「おすすめアプリ」を示す画面情報をMFP4へ送信する制御を行う。ここでは、制御部212が有する機能は、サーバ2側のアプリケーションインタフェース(API)により提供される。
図6は、制御部212が有する機能の一例を示す図である。図6に示すように、制御部212は、取得部261と、顧客情報要求部262と、おすすめアプリ要求部263と、生成部264と、送信部265と、設定制御部266と、を有している。
取得部261は、MFP4から、該MFP4を識別する機番(機器情報)を含み、かつ「おすすめアプリ」を示す画面情報を要求する画面情報要求を取得する。
顧客情報要求部262は、取得部261により画面情報要求が取得された場合、後述の顧客情報管理モジュール220に対して、その取得された画面情報要求に含まれる機番で識別されるMFP4を利用するユーザ(個人でもよいし、企業等の法人でもよい)の固有の情報を示す1以上の顧客情報を要求する。この例では、顧客情報要求部262は、後述の顧客情報管理モジュール220に対して、取得部261により取得された画面情報要求に含まれる機番を含み、かつ、対応する1以上の顧客情報を要求する顧客情報要求を送信する。そして、顧客情報要求に対する応答として、後述の顧客情報管理モジュール220から1以上の顧客情報を取得する。
ここで、顧客情報管理モジュール220が有する機能を説明する。図7は、顧客情報管理モジュール220が有する機能の一例を示す図である。図7に示すように、顧客情報管理モジュール220は、第1の記憶部221と、特定部222と、を有している。
第1の記憶部221は、1以上の機番ごとに、該機番で識別されるMFP4を利用するユーザの固有の情報を示す1以上の顧客情報を対応付けた対応情報を記憶する。この例では、対応情報は、1以上の機番ごとに複数種類の顧客情報を対応付けた情報であり、図8に示す第1の情報と、図9に示す第2の情報との組み合わせで構成されているが、これに限られるものではない。例えば対応情報は、1以上の機番ごとに1種類の顧客情報を対応付けた構成であっても構わない。
図8に示すように、第1の情報は、テナント(MFP4が利用される環境を表すと考えてもよい)を識別するテナントIDと、MFP4を識別する機番とを対応付けた情報である。図9に示すように、第2の情報は、テナントIDと、お客様名(個人でもよいし、企業等の法人でもよい)と、市場層(市場規模)を表す顧客情報と、業種を表す顧客情報と、拠点数を表す顧客情報とを対応付けた情報である。
図7の説明を続ける。特定部222は、顧客情報要求部262からの顧客情報要求を受信すると、対応情報を参照して、その受信した顧客情報要求に含まれる機番に対応する1以上の顧客情報を特定する。より具体的には、特定部222は、顧客情報要求部262からの顧客情報要求を受信すると、まず、上述の第1の情報を参照して、その受信した顧客情報要求に含まれる機番に対応するテナントIDを特定する。次に、特定部222は、上述の第2の情報を参照して、特定したテナントIDに対応する3種類の顧客情報(この例では、市場層を表す顧客情報、業種を表す顧客情報、拠点数を表す顧客情報)を特定する。そして、特定部222は、顧客情報要求に対する応答として、その特定した3つの顧客情報を顧客情報要求部262へ返信する。この例では、取得部261により取得された画面情報要求に含まれる機番に対応する顧客情報を特定する機能(「特定部」)は、特定部222の機能に対応すると考えてもよいし、顧客情報要求部262の機能と特定部222の機能との組み合わせに対応すると考えてもよい。以上が、顧客情報管理モジュール220が有する機能である。
以上に説明した特定部222の機能は、CPU301がROM302等の記憶装置に格納されたプログラムを実行することにより実現可能である。また、以上に説明した第1の記憶部221は、ROM302またはHDD等の補助記憶装置により実現可能である。
図6に戻り、アプリ情報管理モジュール210の制御部212が有する機能の説明を続ける。おすすめアプリ要求部263は、顧客情報要求部262により1以上の顧客情報が取得された場合、後述のおすすめアプリ情報管理モジュール230に対して、「おすすめアプリ」を要求する。この例では、おすすめアプリ要求部263は、後述のおすすめアプリ情報管理モジュール230に対して、顧客情報要求部262により取得された1以上の顧客情報を含み、かつ、「おすすめアプリ」を要求するおすすめアプリ要求を送信する。そして、おすすめアプリ要求に対する応答として、後述のおすすめアプリ情報管理モジュール230から1以上の「おすすめアプリ」を取得する。
ここで、おすすめアプリ情報管理モジュール230が有する機能を説明する。図10は、おすすめアプリ情報管理モジュール230が有する機能の一例を示す図である。図10に示すように、おすすめアプリ情報管理モジュール230は、第2の記憶部231と、決定部232と、を有している。
第2の記憶部231は、アプリケーションと顧客情報との関係を示し、かつ、「おすすめアプリ」の決定に用いられる関係情報を記憶する。この例では、関係情報は、複数種類の顧客情報と複数種類のアプリケーションとの組み合わせごとに、累積インストール数を対応付けた情報である。本実施形態では、関係情報は、図11に示す第3の情報と、図12に示す第4の情報と、図13に示す第5の情報とから構成されている。
図11に示す第3の情報は、それぞれが市場層を表す複数の顧客情報(「KG」という市場層を表す顧客情報、「MA」という市場層を表す顧客情報、「L」という市場層を表す顧客情報、「M2」という市場層を表す顧客情報等)と、複数種類のアプリケーション(アプリA、アプリB、アプリC、アプリD、アプリE等)との組み合わせごとに、累積インストール数を対応付けた情報である。例えばアプリAと、「MA」という市場層を表す顧客情報との組み合わせに対応付けられた累積インストール数「45」は、これまで、「MA」という市場層に属する顧客(「MA」という市場層を表す顧客情報に対応する顧客)のMFP4で累計45回にわたって「アプリA」がインストールされたということを示している。他も同様にして考えることができる。
また、図12に示す第4の情報は、それぞれが業種を表す複数の顧客情報(「医療」という業種を表す顧客情報、「教育」という業種を表す顧客情報、「建設」という業種を表す顧客情報、「金融」という業種を表す顧客情報など)と、複数種類のアプリケーション(アプリA、アプリB、アプリC、アプリD、アプリE等)との組み合わせごとに、累積インストール数を対応付けた情報である。さらに、図13に示す第5の情報は、それぞれが拠点数を表す複数の顧客情報(「1」という拠点数を表す顧客情報、「2〜10」という拠点数を表す顧客情報、「10以上」という拠点数を表す顧客情報など)と、複数種類のアプリケーション(アプリA、アプリB、アプリC、アプリD、アプリE等)との組み合わせごとに、累積インストール数を対応付けた情報である。
なお、この例では、アプリケーションがインストールされた場合(ライセンスの状態が有効になる場合であると考えてもよい)は、おすすめアプリ情報管理モジュール230に対して、アプリ情報管理モジュール210から後述のカウントアップ更新要求が送られてくるので、おすすめアプリ情報管理モジュール230は、該当するアプリの累積インストール数を1つ増加させる。例えば「MA」という市場層を表す顧客情報と、「教育」という業種を表す顧客情報と、「1」という拠点数を表す顧客情報との組み合わせに対応する顧客のMFP4がアプリAをインストールした場合を想定する。この場合、アプリAと、「MA」という市場層を表す顧客情報との組み合わせに対応付けられた累積インストール数「45」は「46」に増加し、アプリAと、「教育」という業種を表す顧客情報との組み合わせに対応付けられた累積インストール数「170」は「171」に増加し、アプリAと、「1」という拠点数を表す顧客情報との組み合わせに対応付けられた累積インストール数「160」は「161」に増加する。
図10の説明を続ける。決定部232は、おすすめアプリ要求部263からのおすすめアプリ要求を受信すると、その受信したおすすめアプリ要求に含まれる顧客情報(「特定部」により特定された顧客情報であると考えることができる)と、第2の記憶部231に記憶された関係情報とに基づいて、1以上の「おすすめアプリ」を決定する。より具体的には、決定部232は、おすすめアプリ要求部263から受信したおすすめアプリ要求に含まれる顧客情報に対応付けられた複数種類のアプリケーションの中から、累積インストール数が最も多いアプリケーションを、「おすすめアプリ」として決定する。この例では、決定部232は、おすすめアプリ要求部263から受信したおすすめアプリ要求に含まれる複数種類(この例では3種類)の顧客情報ごとに、該顧客情報に対応付けられた複数種類のアプリケーションの中から、対応付けられた累積インストール数が最も多いアプリケーションを、「おすすめアプリ」として決定する。
いま、例えば、おすすめアプリ要求部263から受信したおすすめアプリ要求に含まれる3種類の顧客情報が、「L」という市場層を表す顧客情報、「建設」という業種を表す顧客情報、および、「3」という拠点数を表す顧客情報である場合を想定する。
この場合、決定部232は、上述の第3の情報を参照して、「L」という市場層を表す顧客情報に対応付けられた複数種類のアプリケーションの中から、対応付けられた累積インストール数が最も多い「アプリD」を、「L」という市場層を表す顧客情報に対応する「おすすめアプリ」として決定する。また、決定部232は、上述の第4の情報を参照して、「建設」という業種を表す顧客情報に対応付けられた複数種類のアプリケーションの中から、対応付けられた累積インストール数が最も多い「アプリB」を、「建設」という業種を表す顧客情報に対応する「おすすめアプリ」として決定する。さらに、決定部232は、上述の第5の情報を参照して、「3」という拠点数を表す顧客情報(この例では、「2〜10」という拠点数を表す顧客情報に相当)に対応付けられた複数種類のアプリケーションの中から、対応付けられた累積インストール数が最も多い「アプリD」を、「建設」という業種を表す顧客情報に対応する「おすすめアプリ」として決定する。
また、本実施形態では、決定部232は、おすすめアプリ要求部263から受信したおすすめアプリ要求に含まれる複数種類(この例では3種類)の顧客情報ごとに、該顧客情報に対応付けられた複数種類のアプリケーションの中から、対応付けられた累積インストール数が多い順に所定数のアプリケーションを選択し、その選択した所定数のアプリケーションを「おすすめアプリ」として決定する。上記の場合、決定部232は、上述の第3の情報を参照して、「L」という市場層を表す顧客情報に対応付けられた複数種類のアプリケーションの中から、対応付けられた累積インストール数が多い順に3つのアプリケーション(アプリD、アプリB、アプリE)を選択し、その選択した3つのアプリケーションの各々を「おすすめアプリ」として決定する。この際、併せて順位を決定することもできる。同様に、決定部232は、上述の第4の情報を参照して、「建設」という業種を表す顧客情報に対応付けられた複数種類のアプリケーションの中から、対応付けられた累積インストール数が多い順に3つのアプリケーション(アプリB、アプリE、アプリC)を選択し、その選択した3つのアプリケーションの各々を「おすすめアプリ」として決定する。この際、併せて順位を決定することもできる。同様に、決定部232は、上述の第5の情報を参照して、「3」という拠点数を表す顧客情報(この例では、「2〜10」という拠点数を表す顧客情報に相当)に対応付けられた複数種類のアプリケーションの中から、対応付けられた累積インストール数が多い順に3つのアプリケーション(アプリD、アプリC、アプリE)を選択し、その選択した3つのアプリケーションの各々を「おすすめアプリ」として決定する。この際、併せて順位を決定することもできる。
そして、決定部232は、おすすめアプリ要求に対する応答として、以上のようにして決定した3種類の顧客情報(おすすめアプリ要求に含まれていた3種類の顧客情報)ごとの「おすすめアプリ」(この例では、1つの顧客情報に対して3つの「おすすめアプリ」)を、おすすめアプリ要求部263へ返信する。この例では、「特定部」により特定された顧客情報と、関係情報とに基づいて、1以上の「おすすめアプリ」を決定する機能(「決定部」)は、決定部232の機能に対応すると考えてもよいし、おすすめアプリ要求部263の機能と決定部232の機能との組み合わせに対応すると考えてもよい。以上が、おすすめアプリ情報管理モジュール230が有する機能である。
また、本実施形態では、上述の画面情報要求には、該画面情報要求の要求元のMFP4にインストール済みのアプリケーションを識別するアプリID(「アプリケーション識別情報」の一例)が含まれている。おすすめアプリ要求部263は、1以上の「おすすめアプリ」の中に、画面情報要求に含まれるアプリIDで識別されるアプリケーションと一致するアプリケーションが存在する場合は、該アプリケーションを「おすすめアプリ」から除外する。このおすすめアプリ要求部263の機能は、「除外部」に対応している。
以上に説明した決定部232の機能は、CPU301がROM302等の記憶装置に格納されたプログラムを実行することにより実現可能である。また、以上に説明した第2の記憶部231は、ROM302またはHDD等の補助記憶装置により実現可能である。
図6に戻り、アプリ情報管理モジュール210の制御部212が有する機能の説明を続ける。生成部264は、おすすめアプリ要求部263により取得された「おすすめアプリ」を示す画面情報を生成する。この例では、生成部264は、おすすめアプリ要求部263により取得された、3種類の顧客情報ごとの「おすすめアプリ」(1つの顧客情報に対して3つの「おすすめアプリ」)を示す表示情報と、合計9つの「おすすめアプリ」の各々に対応するコマンドと、を含む画面情報(画面の元となる情報)を生成する。本実施形態では、生成部264は、画面提供部213に対して、後述の設定制御部266で制御された設定を指定するとともに、「おすすめアプリ」に対応するアプリケーション情報(アプリ情報DB307に記憶されたアプリケーション情報)を渡して画面情報の生成を依頼し、この依頼を受けた画面提供部213が画面情報を生成して生成部264へ渡すことになる。
また、本実施形態の画面情報に含まれる表示情報は、「おすすめアプリ」ごとに、該「おすすめアプリ」の詳細を示す詳細情報を対応付けたアプリケーション詳細情報を含んでいる。詳細情報としては、ライセンスキー、バージョン情報、アプリ説明情報などが含まれる。
また、本実施形態の画面情報に含まれるコマンドの種類として、インストール命令などが挙げられる。インストール命令は、アプリケーションをインストールする命令を示す。
図6の説明を続ける。送信部265は、画面情報要求に対する応答として、生成部264により生成された画面情報をMFP4へ送信する。つまり、送信部265は、画面情報要求に対する応答として、「決定部」により決定された1以上の「おすすめアプリ」を示す画面情報をMFP4へ送信する機能を有している。
設定制御部266は、ユーザの操作に応じて、アプリ説明情報や画面上の表示部品の配置などを示すレイアウト情報の設定を設定部214に行わせる。
以上に説明した制御部212、画面提供部213および設定部214の各々の機能は、CPU301がROM302等の記憶装置に格納されたプログラムを実行することにより実現可能である。また、以上に説明した記憶部211は、ROM302またはHDD等の補助記憶装置により実現可能である。
次に、ライセンス管理モジュール240が有する機能を説明する。図14は、ライセンス管理モジュール240が有する機能の一例を示す図である。図14に示すように、ライセンス管理モジュール240は、記憶部241と、制御部242と、ライセンス発行部243とを有している。なお、図14の例では、本実施形態に関する機能を主に例示しているが、ライセンス管理モジュール240が有する機能はこれらに限られるものではない。
図14に示すように、記憶部241は、ライセンス情報データベース(以下、「ライセンス情報DB」と称する)244と、ユーザ情報データベース(以下、「ユーザ情報DB」と称する)245と、を有する。
ライセンス情報DB244は、複数のアプリケーションごとに、該アプリケーションの使用権限(ライセンス)に関する情報を対応付けて記憶する。本実施形態では、ライセンス情報DB244は、図15に示す第6の情報と、図16に示す第7の情報と、図17に示す第8の情報とを記憶している。
図15に示すように、第6の情報は、アプリIDと、ライセンスの種別を示すライセンス種別と、ライセンスの形態(この例では、有償、無償、トライアルのうちの何れか)を示すライセンス形態と、ライセンスが有効な期間を示す有効期限と、ライセンスを付与可能な数を示すボリューム数とを対応付けた情報である。また、図16に示すように、第7の情報は、ライセンス種別と、ライセンスキーと、使用中のライセンスの数を示す使用中ライセンス数と、使用済みのライセンスの数を示す使用済みライセンス数とを対応付けた情報である。さらに、図17に示すように、第8の情報は、ライセンスキーと、機番と、有効期限と、ライセンスが有効であるか無効であるかを示す有効状態情報とを対応付けた情報である。
図14に戻って記憶部241の説明を続ける。ユーザ情報DB245は、例えばライセンスを発行するための操作を行うことができるユーザの認証に必要な情報を記憶する。このユーザ情報DB245は、アプリ情報管理モジュール210のユーザ情報DB308と共通であってもよい。
次に、制御部242が有する機能を説明する。ここでは、制御部242が有する機能は、サーバ2側のアプリケーションインタフェース(API)により提供される。図18は、制御部242が有する機能の一例を示す図である。図18に示すように、制御部242は、登録制御部246と、ライセンス有効化部247と、ライセンス無効化部248とを有する。
登録制御部246は、ライセンス発行部243により発行されたライセンスに関する情報を記憶部241(ライセンス情報DB244)に登録する制御を行う。本実施形態では、ライセンス発行部243は、ライセンスを発行するための操作を行う権限を有するユーザから、ライセンスを発行する対象となるアプリケーションのアプリIDと、ライセンス種別を選択する操作を受け付けた場合、その受け付けた操作により選択されたアプリIDとライセンス種別に対応するライセンスキーを発行する。登録制御部246は、ライセンス発行部243により発行されたライセンスキーと、該ライセンスキーに対応するライセンス種別とを示す情報をライセンス情報DB244に登録する制御を行う。より具体的には、登録制御部246は、ライセンス発行部243から、ライセンスキーと、該ライセンスキーに対応するライセンス種別とを受け取った場合、図16に示す第7の情報の中に、その受け取ったライセンスキーとライセンス種別とを含む新たなレコード(この例では、行ごとの単位情報)を追加する。
ライセンス有効化部247は、MFP4からの要求に応じて、ライセンスを有効化するための制御を行う。この例では、ライセンス有効化部247は、アプリIDとライセンスキーと機番とを少なくとも含み、かつ、ライセンスの有効化を要求する有効化要求をMFP4から受信した場合、ライセンス情報DB244に記憶された第7の情報(図16参照)の中に、その受信した有効化要求に含まれるライセンスキーが存在するか否かを確認する。その確認結果が肯定の場合、ライセンス有効化部247は、ライセンス情報DB244に記憶された第6の情報(図15参照)を参照して、その受信した有効化要求に含まれるアプリIDに対応付けられた有効期限を特定する。そして、図17に示す第8の情報の中に、受信した有効化要求に含まれるライセンスキーおよび機番と、特定した有効期限と、有効を示す有効状態情報とを対応付けた新たなレコード(この例では、行ごとの単位情報)を追加する。また、ライセンス有効化部247は、図16に示す第7の情報を参照して、MFP4から受信した有効化要求に含まれるライセンスキーに対応付けられた使用中ライセンス数を「1」だけインクリメントして更新する。そして、ライセンス有効化部247は、有効化要求に対する応答として、ライセンスの状態が有効である旨をMFP4へ送信する。この通知を受けたMFP4は、有効化要求に含まれるアプリIDで識別されるアプリケーションを利用することができる。
なお、例えばライセンス情報DB244に記憶された情報の中に、MFP4から受信した有効化要求に含まれるライセンスキーが存在しない場合や、MFP4から受信した有効化要求に含まれるライセンスキーに対応するボリューム数が既に上限に到達している場合は、ライセンス有効化部247は、MFP4からの有効化要求に対して、エラーを返すことになる。
また、ライセンス有効化部247は、ライセンスの状態が有効になるアプリIDと、有効化要求に含まれる機番を、アプリ情報管理モジュール210へ通知する。この通知を受けたアプリ情報管理モジュール210は、顧客情報管理モジュール220に対して、通知された機番に対応する3つの顧客情報の特定を要求し、該3つの顧客情報を顧客情報管理モジュール220から取得する。そして、アプリ情報管理モジュール210は、おすすめアプリ情報管理モジュール230に対して、顧客情報管理モジュール220から取得した3つの顧客情報と、ライセンス有効化部247から通知されたアプリIDとを含み、かつ、累積インストール数のカウントアップを要求するカウントアップ更新要求を送信する。カウントアップ更新要求を受信したおすすめアプリ情報管理モジュール230は、その受信したカウントアップ更新要求に含まれる3つの顧客情報とアプリIDとの組み合わせごとに、累積インストール数を「1」だけカウントアップ(インクリメント)する。
ライセンス無効化部248は、MFP4からの要求に応じて、ライセンスを無効化するための制御を行う。この例では、ライセンス無効化部248は、アプリIDとライセンスキーと機番とを少なくとも含み、かつ、ライセンスの無効化を要求する無効化要求をMFP4から受信した場合、ライセンス情報DB244に記憶された第8の情報(図17参照)を参照して、その受信した無効化要求に含まれるライセンスキーと機番との組み合わせに対応付けられた有効状態情報を、無効を示す情報に変更する。また、ライセンス情報DB244に記憶された第7の情報(図16参照)を参照して、MFP4から受信した無効化要求に含まれるライセンスキーに対応付けられた使用中ライセンス数を「1」だけデクリメントし、使用済みライセンス数を「1」だけインクリメントして更新する。そして、ライセンス無効化部248は、無効化要求に対する応答として、ライセンスの状態が無効である旨をMFP4へ送信する。この通知を受けたMFP4は、無効化要求に含まれるアプリIDで識別されるアプリケーションを利用することはできなくなる。
また、ライセンス無効化部248は、ライセンスの状態が無効になるアプリIDと、無効化要求に含まれる機番を、アプリ情報管理モジュール210へ通知する。この通知を受けたアプリ情報管理モジュール210は、顧客情報管理モジュール220に対して、通知された機番に対応する3つの顧客情報の特定を要求し、該3つの顧客情報を顧客情報管理モジュール220から取得する。そして、アプリ情報管理モジュール210は、おすすめアプリ情報管理モジュール230に対して、顧客情報管理モジュール220から取得した3つの顧客情報と、ライセンス無効化部248から通知されたアプリIDとを含み、かつ、累積インストール数のカウントダウンを要求するカウントダウン更新要求を送信する。カウントダウン更新要求を受信したおすすめアプリ情報管理モジュール230は、その受信したカウントダウン更新要求に含まれる3つの顧客情報とアプリIDとの組み合わせごとに、累積インストール数を「1」だけカウントダウン(デクリメント)する。
以上に説明した制御部242およびライセンス発行部243の各々の機能は、CPU301がROM302等の記憶装置に格納されたプログラムを実行することにより実現可能である。また、以上に説明した記憶部241は、ROM302またはHDD等の補助記憶装置により実現可能である。
次に、アプリダウンロード管理モジュール250が有する機能を説明する。図19は、アプリダウンロード管理モジュール250が有する機能の一例を示す図である。図19に示すように、アプリダウンロード管理モジュール250は、アプリストレージ251と、ダウンロード部252とを有している。なお、図19の例では、本実施形態に関する機能を主に例示しているが、アプリダウンロード管理モジュール250が有する機能はこれらに限られるものではない。
アプリストレージ251は、MFP4に提供するための複数のアプリケーションを記憶している。この例では、アプリストレージ251は、複数のアプリIDごとに、アプリケーション本体を含むデータファイルを対応付けて記憶している。ダウンロード部252は、MFP4からの要求に応じて、アプリストレージ251に記憶された何れかのアプリケーションをMFP4へ送信(ダウンロード)する制御を行う。この例では、ダウンロード部252は、アプリIDを少なくとも含み、かつ、アプリケーションのダウンロードを要求するダウンロード要求をMFP4から受信した場合、その受信したダウンロード要求に含まれるアプリIDに対応するアプリケーションをMFP4へ送信する。より具体的には、ダウンロード部252は、アプリストレージ251を参照して、MFP4から受信したダウンロード要求に含まれるアプリIDに対応するデータファイルを特定し、その特定したデータファイルをMFP4へ送信する。
以上に説明したダウンロード部252の機能は、CPU301がROM302等の記憶装置に格納されたプログラムを実行することにより実現可能である。また、以上に説明したアプリストレージ251は、ROM302またはHDD等の補助記憶装置により実現可能である。
以上がサーバ2の構成となる。なお、サーバ2は、複数のサーバから構成される形態であってもよい。例えば図20に示すように、サーバ2は、アプリケーションサーバ270と、データベースサーバ280とから構成される形態であってもよい。例えばアプリケーションサーバ270は、上述の制御部212、画面提供部213、設定部214、特定部222、決定部232、制御部242、ライセンス発行部243、ダウンロード部252を有する形態であってもよい。また、例えばアプリケーションサーバ270は、複数のサーバで構成され、上述の制御部212、画面提供部213、設定部214、特定部222、決定部232、制御部242、ライセンス発行部243、ダウンロード部252の各々は、何れかのサーバに分散して搭載される形態であってもよい。
また、例えばデータベースサーバ280は、上述の記憶部211、第1の記憶部221、第2の記憶部231、記憶部241、アプリストレージ251を有する形態であってもよい。また、例えばデータベースサーバ280は、複数のサーバで構成され、上述の記憶部211、第1の記憶部221、第2の記憶部231、記憶部241、アプリストレージ251の各々は、何れかのサーバに分散して搭載される形態であってもよい。
次に、図21を用いて、MFP4のハードウェア構成について説明する。図21に示すように、MFP4は、コピー機能、スキャナ機能、ファクス機能、プリンタ機能などの各種の機能を実現可能な本体10と、ユーザの操作を受け付ける操作部20とを備える。なお、ユーザの操作を受け付けるとは、ユーザの操作に応じて入力される情報(画面の座標値を示す信号等を含む)を受け付けることを含む概念である。本体10と操作部20は、専用の通信路30を介して相互に通信可能に接続されている。通信路30は、例えばUSB(Universal Serial Bus)規格のものを用いることもできるが、有線か無線かを問わず任意の規格のものであってよい。
なお、本体10は、操作部20で受け付けた操作に応じた動作を行うことができる。また、本体10は、クライアントPC(パーソナルコンピュータ)等の外部装置とも通信可能であり、外部装置から受信した指示に応じた動作を行うこともできる。
まず、本体10のハードウェア構成について説明する。図21に示すように、本体10は、CPU11と、ROM12と、RAM13と、HDD(ハードディスクドライブ)14と、通信I/F(インタフェース)15と、接続I/F16と、エンジン部17とを備え、これらがシステムバス18を介して相互に接続されている。
CPU11は、本体10の動作を統括的に制御する。CPU11は、RAM13をワークエリア(作業領域)としてROM12またはHDD14等に格納されたプログラムを実行することで、本体10全体の動作を制御し、上述したコピー機能、スキャナ機能、ファクス機能、プリンタ機能などの各種機能を実現する。
通信I/F15は、ネットワーク3と接続するためのインタフェースである。接続I/F16は、通信路30を介して操作部20と通信するためのインタフェースである。
エンジン部17は、コピー機能、スキャナ機能、ファクス機能、および、プリンタ機能を実現させるための、汎用的な情報処理及び通信以外の処理を行うハードウェアである。例えば、原稿の画像をスキャンして読み取るスキャナ(画像読取部)、用紙等のシート材への印刷を行うプロッタ(画像形成部)、ファクス通信を行うファクス部などを備えている。更に、印刷済みシート材を仕分けるフィニッシャや、原稿を自動給送するADF(自動原稿給送装置)のような特定のオプションを備えることもできる。
次に、操作部20のハードウェア構成について説明する。図21に示すように、操作部20は、CPU21と、ROM22と、RAM23と、フラッシュメモリ24と、通信I/F25と、接続I/F26と、操作パネル27とを備え、これらがシステムバス28を介して相互に接続されている。
CPU21は、操作部20の動作を統括的に制御する。CPU21は、RAM23をワークエリア(作業領域)としてROM22またはフラッシュメモリ24等に格納されたプログラムを実行することで、操作部20全体の動作を制御し、ユーザから受け付けた入力に応じた情報(画像)の表示などの後述する各種機能を実現する。
通信I/F25は、ネットワーク3と接続するためのインタフェースである。接続I/F26は、通信路30を介して本体10と通信するためのインタフェースである。
操作パネル27は、ユーザの操作に応じた各種の入力を受け付けるとともに、各種の情報(例えば受け付けた操作に応じた情報、MFP4の動作状況を示す情報、設定状態などを示す情報など)を表示する。この例では、操作パネル27は、タッチパネル機能を搭載した液晶表示装置(LCD)で構成されるが、これに限られるものではない。例えばタッチパネル機能が搭載された有機EL表示装置で構成されてもよい。さらに、これに加えて又はこれに代えて、ハードウェアキー等の操作部やランプ等の表示部を設けることもできる。
次に、MFP4のソフトウェア構成について説明する。図22は、MFP4のソフトウェア構成の一例を示す模式図である。図22に示すように、本体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(登録商標)を用いることも可能である。
以上のように、本実施形態のMFP4において、本体10と操作部20は別々のオペレーティングシステムで動作するため、本体10と操作部20との間の通信は、共通の装置内のプロセス間通信ではなく、異なる装置間の通信として行われる。操作部20が受け付けた情報(ユーザからの指示内容)を本体10へ伝達する動作(コマンド通信)や、本体10が操作部20へイベントを通知する動作などがこれに該当する。ここでは、操作部20が本体10へコマンド通信を行うことにより、本体10の機能を使用することができる。また、本体10から操作部20に通知するイベントには、本体10における動作の実行状況、本体10側で設定された内容などが挙げられる。
また、本実施形態では、操作部20に対する電力供給は、本体10から通信路30を経由して行われているので、操作部20の電源制御を、本体10の電源制御とは別に(独立して)行うことができる。
図23は、本実施形態の操作部20が有する機能の一例を示す図である。図23に示すように、操作部20は、起動部411と、表示制御部412と、実行部413と、を有する。なお、図23の例では、本実施形態に関する機能を主に例示しているが、操作部20が有する機能はこれらに限られるものではない。
起動部411は、ユーザの操作に応じて、ブラウザ機能を提供するブラウザアプリを起動する。例えば図24に示す操作画面が操作パネル27に表示された状態で、「アプリマーケット」という名称のアイコン5の押下を受け付けた場合、起動部411は、ネットワーク3上のサーバ2の所在を示すURLを取得するとともにブラウザアプリを起動する制御を行う。
起動したブラウザアプリは、起動部411から受け取ったURLで指定されるサーバ2に対して、MFP4を識別する機番と、MFP4にインストール済みのアプリケーションを識別する1以上のアプリIDとを含み、かつ、画面情報を要求する画面情報要求を送信し、画面情報要求に対する応答としてサーバ2から画面情報を受信する。この例では、MFP4は、MFP4にインストール済みのアプリケーションを示すアプリケーション管理情報を保持している。
そして、ブラウザアプリは、画面情報要求に対する応答として受信した画面情報に対応する画面を操作パネル27(表示部)に表示する制御を行う。ここでは、表示制御部412の機能はブラウザアプリにより提供される。また、前述したように、この例では、表示制御部412は、サーバ2から受信した画面情報に対応する画面を生成し、その生成した画面を操作パネル27に表示する。表示制御部412は、サーバ2から受信した画面情報をフラッシュメモリ24等の記憶装置に保持しておき、必要に応じて画面情報を読み出し、その読み出した画面情報を用いて画面を生成することができる。
この例では、表示制御部412は、操作パネル27に表示された画面(画面情報に対応する画面)に対するユーザの操作に応じて選択されたコマンドを特定し、その特定したコマンドを実行部413へ通知することができる。例えば表示制御部412は、拡張JavaScript(登録商標)、カスタムスキーム経由などで、ユーザによって選択されたコマンドを特定することができる。
実行部413は、画面情報に含まれるコマンドのうち、ユーザの操作に応じて選択されたコマンド(表示制御部412から通知されたコマンド)を実行する。ここでは、実行部413の機能は、MFP4側のアプリケーションインタフェース(API)により提供される。
前述したように、サーバ2から受信した画面情報に含まれるコマンドとしては、例えばインストール命令などが挙げられる。以下では、サーバ2から受信した画面情報に対応する画面に対するユーザの操作に応じてインストール命令が選択される場合を例に挙げて説明する。この場合、表示制御部412は、ユーザの操作に応じて選択されたインストール命令を実行部413へ通知し、実行部413は、表示制御部412から通知されたインストール命令を実行する。より具体的には、以下のとおりである。この例では、表示制御部412は、画面情報要求に対する応答としてサーバ2から画面情報を受信した場合、その受信した画面情報を用いて、まずはMFP4への「おすすめアプリ」の一覧を示すアプリケーション一覧画面を操作パネル27に表示する制御を行う。図25は、アプリケーション一覧画面の一例を示す図である。図25の例では、アプリケーション一覧画面は、3つの顧客情報の種別ごとに、3つのアプリケーション(おすすめアプリ)と1対1に対応する3つの表示部品を表示(合計9つの表示部品を表示)し、各表示部品は、アプリケーションの名称と、該アプリケーションを選択するためのアプリケーション選択ボタン421とを少なくとも含む。なお、顧客情報の種別ごとに表示される3つのアプリケーションは、順位を付された形式(ランキング形式)で表示される形態であってもよい。
表示制御部412は、何れかのアプリケーション選択ボタン421の押下を受け付けた場合、サーバ2から受信した画面情報を用いて、対応するアプリケーションの詳細な内容を示すとともにインストールの実行指示を受け付けるためのインストール指示画面を操作パネル27に表示する制御を行う。図26は、インストール指示画面の一例を示す図である。図26の例では、インストール指示画面は、対応するアプリケーションのアプリ説明情報と、インストールの実行を指示するためのインストールボタン431とを表示する。この例では、インストールボタン431に対して、インストール命令がURIの形式(例えばURLの形式でもよい)で貼り付けられている。この例では、インストールボタン431の押下は、当該インストールボタン431に貼り付けられたインストール命令の選択(インストールしたいアプリケーションの選択であると考えてもよい)を意味する。
この例では、表示制御部412は、インストールボタン431の押下を受け付けた場合、インストールの実行を最終的に確認するためのインストール確認画面を操作パネル27に表示する制御を行う。図27は、インストール確認画面の一例を示す図である。図27の例では、インストール確認画面は、インストールの実行を最終的に承諾したことを指示するための確認ボタン441を表示する。確認ボタン441の押下を受け付けると、表示制御部412は、対応するインストールボタン431に貼り付けられていたインストール命令を実行部413へ通知する。そして、実行部413が、このインストール命令を実行することになる。
また、本実施形態では、表示制御部412は、サーバ2から受信した画面情報に含まれる表示情報内のアプリケーション詳細情報のうち、ユーザの操作に応じて選択されたインストール命令の対象となるアプリケーションに対応する詳細情報の中に、該アプリケーションの使用権限を認証するためのライセンスキーが含まれていない場合は、ライセンスキーの入力を促す入力画面を表示する制御を行い、ライセンスキーが含まれている場合は、該ライセンスキーと、インストール命令とを実行部413へ通知する。より具体的には、表示制御部412は、上述の確認ボタン441の押下を受け付けた場合、サーバ2から受信した画面情報を参照して、該画面情報に含まれる表示情報内のアプリケーション詳細情報のうち、ユーザによって押下されたインストールボタン431に貼り付けられたインストール命令の対象となるアプリケーションに対応する詳細情報の中に、ライセンスキーが含まれているか否かを確認する。ライセンスキーが含まれていない場合は、表示制御部412は、ライセンスキーの入力を促す入力画面を表示する制御を行い、入力されたライセンスキーと、選択されたインストール命令とを実行部413へ通知する。図28は、入力画面の一例を示す図である。図29は、この場合に、表示制御部412から実行部413へ通知される情報の一例を示す図である。
また、本実施形態の表示制御部412は、ユーザの操作に応じて、MFP4にインストール済みのアプリケーションごとに、該アプリケーションの削除指示を受け付けるための削除指示画面を操作パネル27に表示する制御を行うこともできる。図30は、削除指示画面の一例を示す図である。削除指示画面は、MFP4にインストール済みのアプリケーションごとに、該アプリケーションの削除指示を受け付けるための削除指示ボタン451を表示する。この例では、各削除指示ボタン451に対しては、該削除指示ボタン451に対応するアプリケーションを削除する命令を示す削除命令が貼り付けられている。表示制御部412は、削除指示ボタン451の押下を受け付けた場合、アンインストールの実行を最終的に確認するための削除確認画面を操作パネル27に表示する制御を行う。図31は、削除確認画面の一例を示す図である。削除確認画面は、アンインストールの実行を最終的に承諾したことを指示するための確認ボタン461を表示する。確認ボタン461の押下を受け付けると、表示制御部412は、対応する削除指示ボタン451に貼り付けられていたアンインストール命令を実行部413へ通知する。図32は、この場合に、表示制御部412から実行部413へ通知される情報の一例を示す図である。
以上に説明した起動部411、表示制御部412、および、実行部413の各々の機能は、CPU21がROM22やフラッシュメモリ24等の記憶装置に記憶されたプログラムを実行することにより実現可能である。
図33は、本実施形態のシステム1の動作手順の一例を示すシーケンス図である。上述したように、起動部411は、操作画面上の「アプリマーケット」という名称のアイコン5の押下を受け付けた場合(ステップS1)、表示制御部412(ブラウザアプリ)に対して、起動指令とともにサーバ2のURLを送信する(ステップS2)。起動指令を受けた起動した表示制御部412は、サーバ2に対して、上述の画面情報要求を送信する(ステップS3)。上述したように、画面情報要求は、MFP4を識別する機番と、該MFP4にインストール済みのアプリケーションを識別するアプリIDとを含み、かつ、該MFP4への「おすすめアプリ」を示す画面情報を要求する情報である。
サーバ2のアプリ情報管理モジュール210は、MFP4からの画面情報要求を取得すると、顧客情報管理モジュール220に対して、その取得した画面情報要求に含まれる機番を含み、かつ、対応する1以上の顧客情報を要求する上述の顧客情報要求を送信する(ステップS4)。顧客情報管理モジュール220は、アプリ情報管理モジュール210からの顧客情報要求を受信すると、上述の対応情報を参照して、その受信した顧客情報要求に含まれる機番に対応する1以上の顧客情報を特定する(ステップS5)。具体的な内容は上述したとおりである。そして、顧客情報要求に対する応答として、ステップS5で特定した顧客情報を返信する(ステップS6)。
次に、アプリ情報管理モジュール210は、おすすめアプリ情報管理モジュール230に対して、ステップS6で顧客情報管理モジュール220から受信した1以上の顧客情報を含み、かつ、「おすすめアプリ」を要求する上述のおすすめアプリ要求を送信する(ステップS7)。おすすめアプリ情報管理モジュール230は、アプリ情報管理モジュール210からのおすすめアプリ要求を受信すると、その受信したおすすめアプリ要求に含まれる顧客情報と、上述の関係情報とに基づいて、1以上の「おすすめアプリ」を決定する(ステップS8)。具体的な内容は上述したとおりである。そして、おすすめアプリ要求に対する応答として、ステップS8で決定した「おすすめアプリ」を返信する(ステップS9)。
次に、アプリ情報管理モジュール210は、ステップS9で受信した1以上の「おすすめアプリ」の中に、MFP4からの画面情報要求に含まれるアプリIDで識別されるアプリケーションと一致するアプリケーションが存在する場合は、該アプリケーションを「おすすめアプリ」から除外する処理を行う(ステップS11)。次に、アプリ情報管理モジュール210は、「おすすめアプリ」を示す画面情報を生成し(ステップS10)、画面情報要求に対する応答として、ステップS11で生成した画面情報をMFP4へ送信する(ステップS12)。MFP4は、ステップS12で受信した画面情報に対応する画面を生成し、生成した画面を操作パネル27に表示する(ステップS13)。この例では、表示制御部412は、画面情報要求に対する応答として受信した画面情報を、フラッシュメモリ24等の記憶装置に格納するとともに、その受信した画面情報を用いて、図25に示すアプリケーション一覧画面を最初に生成する。そして、その生成したアプリケーション一覧画面を操作パネル27に表示する制御を行う。
図34は、図25に示すアプリケーション一覧画面に表示された何れかのアプリケーション選択ボタン421が押下された場合のシステム1の動作手順の一例を示すシーケンス図である。上述したように、表示制御部412は、何れかのアプリケーション選択ボタン421の押下を受け付けた場合、上述のインストール指示画面(図26参照)を操作パネル27に表示する制御を行う(ステップ21)。次に、表示制御部412は、インストールボタン431の押下を受け付けた場合、上述のインストール確認画面(図27参照)を操作パネル27に表示する制御を行う(ステップS22)。次に、表示制御部412は、インストール確認画面に表示された確認ボタン441の押下を受け付けた場合、サーバ2から受信済みの画面情報を参照して、該画面情報に含まれる表示情報内のアプリケーション詳細情報のうち、ユーザの操作に応じて選択されたインストール命令(押下されたインストールボタン431に貼り付けられたインストール命令)の対象となるアプリケーションに対応する詳細情報の中に、ライセンスキーが含まれているか否かを確認する(ステップS23)。
上述のステップS23の確認の結果、ライセンスキーが含まれていない場合(つまり、インストール命令の対象となるアプリケーションが有償のアプリケーションの場合)、表示制御部412は、上述の入力画面を操作パネル27に表示する制御を行い(ステップS24)、ユーザからのライセンスキーの入力を受け付ける。ここでは、ユーザは、購入済みのアプリケーションに対応するライセンスキーを事前に把握していることを前提とする。例えばアプリケーションの管理者から、該アプリケーションを購入したユーザに対して、郵送やメール等でライセンスキーを通知する形態であってもよい。
次に、表示制御部412は、ユーザの操作に応じて選択されたインストール命令と、ライセンスキー(選択されたアプリケーション命令の対象となるアプリケーションのライセンスキー)とを実行部413へ通知する(ステップS25)。実行部413は、表示制御部412から通知されたライセンスキーを用いて、表示制御部412から通知されたインストール命令を実行する。より具体的には以下のとおりである。まず、実行部413は、サーバ2に対して、インストール命令の対象となるアプリケーションのアプリIDを少なくとも含み、かつ、該アプリケーションのダウンロードを要求する上述のダウンロード要求を送信する(ステップS26)。ダウンロード要求を受信したサーバ2(ダウンロード部252)は、その受信したダウンロード要求に含まれるアプリIDに対応するアプリケーションを選択し(ステップS27)、その選択したアプリケーションをMFP4へ送信する(ステップS28)。
次に、実行部413は、サーバ2に対して、アプリIDとライセンスキーと機番とを少なくとも含み、かつ、ライセンスの有効化を要求する上述の有効化要求を送信する(ステップS29)。有効化要求を受信したサーバ2(ライセンス有効化部247)は、ライセンスを有効化するための制御を行った後(ステップS30)、有効化要求に対する応答をMFP4へ返す(ステップS31)。ステップS30の具体的な内容は上述したとおりであり、ライセンス有効化部247は、MFP4から上述の有効化要求を受信した場合、ライセンス情報DB244の中に、その受信した有効化要求に含まれるライセンスキーが存在するか否かを確認する。ライセンスキーが存在する場合は、ライセンス有効化部247は、上述したようにライセンス情報DB244に記憶された情報を更新する。また、ライセンス有効化部247は、MFP4から受信した有効化要求に含まれるアプリIDで識別されるアプリケーションの有効期限などのライセンス(使用権限)を定めたライセンスファイルを発行し、有効化要求に対する応答として、ライセンスの状態が有効である旨に加えて該ライセンスファイルを送信することもできる。一方、ライセンス情報DB244の中に、その受信した有効化要求に含まれるライセンスキーが存在しない場合は、有効化要求に対する応答としてエラーを送信する。
また、上述したように、ライセンス有効化部247は、ライセンスの状態が有効になるアプリIDと、有効化要求に含まれる機番を、アプリ情報管理モジュール210へ通知する。この通知を受けたアプリ情報管理モジュール210は、顧客情報管理モジュール220に対して、通知された機番に対応する3つの顧客情報の特定を要求し、該3つの顧客情報を顧客情報管理モジュール220から取得する。そして、アプリ情報管理モジュール210は、おすすめアプリ情報管理モジュール230に対して、顧客情報管理モジュール220から取得した3つの顧客情報と、ライセンス有効化部247から通知されたアプリIDとを含み、かつ、累積インストール数のカウントアップを要求するカウントアップ更新要求を送信する。カウントアップ更新要求を受信したおすすめアプリ情報管理モジュール230は、その受信したカウントアップ更新要求に含まれる3つの顧客情報とアプリIDとの組み合わせごとに、累積インストール数を「1」だけカウントアップ(インクリメント)する。
MFP4(実行部413)は、有効化要求に対する応答として、ライセンスの状態が有効である旨を受信した場合、ステップS28でサーバ2からダウンロードしたアプリケーションをインストールする制御を行う(ステップS32)。インストールが完了した後、実行部413は、そのインストールが完了したアプリケーションを追加することで、上述のアプリケーション管理情報を更新する(ステップS33)。
図35は、MFP4にインストール済みのアプリケーションをアンインストールする場合のシステム1の動作手順の一例を示すシーケンス図である。まず、表示制御部412は、ユーザの操作に応じて、上述の削除指示画面を操作パネル27に表示する制御を行う(ステップS41)。次に、表示制御部412は、何れかの削除指示ボタン451の押下を受け付けた場合、上述の削除確認画面(図31参照)を操作パネル27に表示する制御を行う(ステップS42)。次に、表示制御部412は、削除確認画面に表示された確認ボタン461の押下を受け付けた場合、ユーザの操作に応じて選択されたアンインストール命令(押下された削除指示ボタン451に貼り付けられたアンインストール命令)を実行部413へ通知する(ステップS43)。
実行部413は、表示制御部412から通知されたアンインストール命令を実行する。より具体的には以下のとおりである。まず、実行部413は、サーバ2に対して、アンインストール命令の対象となるアプリケーションに対応するライセンスキーと、機番とを少なくとも含み、かつ、ライセンスの無効化を要求する上述の無効化要求を送信する(ステップS44)。無効化要求を受信したサーバ2(ライセンス無効化部248)は、ライセンスを無効化するための制御を行った後(ステップS45)、無効化要求に対する応答(ここではライセンスの状態が無効である旨を示す応答)をMFP4へ返す(ステップS46)。ステップS45の具体的な内容は上述したとおりであり、ライセンス無効化部248は、MFP4から上述の無効化要求を受信した場合、ライセンス情報DB244に記憶された情報のうち、その受信した無効化要求に含まれるライセンスキーと機番との組み合わせに対応付けられた有効状態情報を「無効」を示す情報に変更し、その受信した無効化要求に含まれるライセンスキーに対応付けられた使用中ライセンス数を「1」だけデクリメントし、使用済みライセンス数を「1」だけインクリメントする。
また、上述したように、ライセンス無効化248は、ライセンスの状態が無効になるアプリIDと、無効化要求に含まれる機番を、アプリ情報管理モジュール210へ通知する。この通知を受けたアプリ情報管理モジュール210は、顧客情報管理モジュール220に対して、通知された機番に対応する3つの顧客情報の特定を要求し、該3つの顧客情報を顧客情報管理モジュール220から取得する。そして、アプリ情報管理モジュール210は、おすすめアプリ情報管理モジュール230に対して、顧客情報管理モジュール220から取得した3つの顧客情報と、ライセンス無効化部248から通知されたアプリIDとを含み、かつ、累積インストール数のカウントダウンを要求するカウントダウン更新要求を送信する。カウントダウン更新要求を受信したおすすめアプリ情報管理モジュール230は、その受信したカウントダウン更新要求に含まれる3つの顧客情報とアプリIDとの組み合わせごとに、累積インストール数を「1」だけカウントダウン(デクリメント)する。
MFP4(実行部413)は、無効化要求に対する応答として、ライセンスの状態が無効である旨を受信した場合、無効化要求に含まれるライセンスキーに対応するアプリケーションをアンインストールする制御を行う(ステップS47)。アンインストールが完了した後、実行部413は、上述のアプリケーション管理情報のうち、該アンインストールが完了したアプリケーションに対応する情報を削除することで、アプリケーション管理情報を更新する(ステップS48)。
以上に説明したように、本実施形態のサーバ2は、1以上の機番ごとに、該機番で識別される機器(この例ではMFP4)を利用するユーザの固有の情報を示す1以上の顧客情報を対応付けた対応情報を記憶する第1の記憶部221と、アプリケーションと顧客情報との関係を示す関係情報を記憶する第2の記憶部231と、を備える。そして、サーバ2は、MFP4から上述の画面情報要求を取得した場合、その取得した画面情報要求に含まれる機番に対応する顧客情報を特定し、その特定した顧客情報と、上述の関係情報とに基づいて、1以上の「おすすめアプリ」を決定し、MFP4からの画面情報要求に対する応答として、その決定した1以上の「おすすめアプリ」を示す画面情報を機器(MFP4)へ送信する。すなわち、本実施形態によれば、機器を利用するユーザの固有の情報を反映させて、該機器に対して利用を推奨するアプリケーションを決定することができる。
(第2の実施形態)
次に、第2の実施形態を説明する。上述の第1の実施形態と共通する部分については適宜に説明を省略する。本実施形態では、上述の対応情報は、機番ごとに複数種類の顧客情報を対応付けた情報であることを前提とし、「決定部」は、「特定部」により特定された複数種類の顧客情報ごとに、該顧客情報に対応付けられた複数種類のアプリケーションの各々に対応付けられた累積インストール数を特定した後、複数種類のアプリケーション(関係情報に含まれる複数種類のアプリケーション)ごとに、「特定部」により特定された複数種類の顧客情報と1対1に対応する複数の累積インストール数の和を示す累積和を求め、累積和の値が最も大きいアプリケーションを、「おすすめアプリ」として決定する。より具体的には、「決定部」は、複数種類のアプリケーションの中から、累積和の値が大きい順に所定数のアプリケーションを選択し、その選択した所定数のアプリケーションを「おすすめアプリ」として決定する。
いま、例えば、上述のアプリ要求に含まれる3種類の顧客情報が、「L」という市場層を表す顧客情報、「建設」という業種を表す顧客情報、および、「3」という拠点数を表す顧客情報である場合を想定する。
この場合、おすすめアプリ要求部263から上述のおすすめアプリ要求を受信した決定部232は、上述の第3の情報を参照して、「L」という市場層を表す顧客情報と複数種類のアプリケーションとの組み合わせごとに、対応付けられた累積インストール数を特定する。また、決定部232は、上述の第4の情報を参照して、「建設」という業種を表す顧客情報と複数種類のアプリケーションとの組み合わせごとに、対応付けられた累積インストール数を特定する。また、決定部232は、上述の第5の情報を参照して、「3」という拠点数を表す顧客情報と複数種類のアプリケーションとの組み合わせごとに、対応付けられた累積インストール数を特定する。
そして、決定部232は、複数種類のアプリケーションごとに、3種類の顧客情報(この例では、「L」という市場層を表す顧客情報、「建設」という業種を表す顧客情報、および、「3」という拠点数を表す顧客情報)と1対1に対応する3つの累積インストール数を求める。以下、図11〜図13を用いて、「アプリA」を例に挙げて説明する。この例においては、「L」という市場層を表す顧客情報に対応する累積インストール数(「アプリA」と「L」という市場層を表す顧客情報との組み合わせに対応する累積インストール数)は「10」であり(図11参照)、「建設」という業種を表す顧客情報に対応する累積インストール数(「アプリA」と「建設」という業種を表す顧客情報との組み合わせに対応する累積インストール数)は「10」であり(図12参照)、「3」という拠点数を表す顧客情報に対応する累積インストール数(「アプリA」と「3」という拠点数を表す顧客情報との組み合わせに対応する累積インストール数)は「10」である(図13参照)。したがって、これらの3つの累積インストール数の和を示す累積和は「30」となる。
以上のようにして、決定部232は、複数種類のアプリケーション(上述の関係情報に含まれる複数種類のアプリケーション)ごとに、上記累積和の値を求め、上記累積和の値が最も大きいアプリケーションを、「おすすめアプリ」として決定する。この例では、アプリDが「おすすめアプリ」として決定されることになる。
また、本実施形態では、決定部232は、複数種類のアプリケーションの中から、上記累積和の値が大きい順に3つのアプリケーション(アプリD、アプリB、アプリE)を選択し、その選択した3つのアプリケーションを「おすすめアプリ」として決定する。この際、併せて順位を決定することもできる。以降の動作は上述の第1の実施形態と同様である。本実施形態の生成部264は、例えば図36に示すようなアプリケーション一覧画面に対応する画面情報を作成することができる。
(第2の実施形態の変形例)
例えば顧客情報の種類ごとに予め定められた重みが設定され、決定部232は、複数種類のアプリケーションごとに、おすすめアプリ要求部263から受信したアプリ要求に含まれる複数種類の顧客情報(「特定部」により特定された複数種類の顧客情報)と1対1に対応する複数の累積インストール数の重み付き加算を行い、重み付き加算により得られた累積和が最も大きいアプリケーションを、「おすすめアプリ」として決定することもできる。また、例えば決定部232は、複数種類のアプリケーションの中から、重み付き加算により得られた累積和が大きい順に所定数のアプリケーションを選択し、その選択した所定数のアプリケーションを「おすすめアプリ」として決定することもできる。この際、併せて順位を決定することもできる。
例えば拠点数を表す顧客情報を最も重要視し、重要度が高い順に、拠点数→市場層→業種とする形態であってもよい。この場合、例えば市場層を表す顧客情報に対しては「2」という重み係数が設定され、業種を表す顧客情報に対しては「1」という重み係数が設定され、拠点数を表す顧客情報に対しては「3」という重み係数が設定される形態であってもよい。
いま、例えば、上述のアプリ要求に含まれる3種類の顧客情報が、「L」という市場層を表す顧客情報、「建設」という業種を表す顧客情報、および、「3」という拠点数を表す顧客情報である場合を想定する。上記と同様に、おすすめアプリ要求部263から上述のおすすめアプリ要求を受信した決定部232は、複数種類のアプリケーションごとに、3種類の顧客情報(この例では、「L」という市場層を表す顧客情報、「建設」という業種を表す顧客情報、および、「3」という拠点数を表す顧客情報)と1対1に対応する3つの累積インストール数を求める。以下、図11〜図13を用いて、「アプリA」を例に挙げて説明する。この例においては、「L」という市場層を表す顧客情報に対応する累積インストール数は「10」であり(図11参照)、「建設」という業種を表す顧客情報に対応する累積インストール数は「10」であり(図12参照)、「3」という拠点数を表す顧客情報に対応する累積インストール数は「10」である(図13参照)。この例では、市場層を表す顧客情報に対しては「2」という重み係数が設定され、業種を表す顧客情報に対しては「1」という重み係数が設定され、拠点数を表す顧客情報に対しては「3」という重み係数が設定されるので、上記3つの累積インストール数の重み付き加算により得られる累積和は、10×2+10×1+10×3=60となる。以上のようにして、決定部232は、複数種類のアプリケーションごとに、上記累積和の値を求めることができる。
(第3の実施形態)
次に、第3の実施形態を説明する。上述の第1の実施形態と共通する部分については適宜に説明を省略する。本実施形態では、上述の対応情報は、機番ごとに複数種類の顧客情報を対応付けた情報であり、上述の関係情報は、複数種類の顧客情報と複数種類のアプリケーションとの組み合わせごとに、累積インストール数を対応付けた情報であることを前提とし、「決定部」は、「特定部」により特定された複数種類の顧客情報ごとに、該顧客情報に対応付けられた複数種類のアプリケーションの各々に対して、累積インストール数が多い順で順位を表す順位値を割り当てた後、複数種類のアプリケーション(関係情報に含まれる複数種類のアプリケーション)ごとに、複数種類の顧客情報と1対1に対応する複数の順位値の和を示す順位和を求め、順位和の値が最も小さいアプリケーションを「おすすめアプリ」として決定する。より具体的には、「決定部」は、複数種類のアプリケーションの中から、順位和の値が小さい順に所定数のアプリケーションを選択し、その選択したアプリケーションを「おすすめアプリ」として決定する。
いま、例えば、上述のアプリ要求に含まれる3種類の顧客情報が、「L」という市場層を表す顧客情報、「建設」という業種を表す顧客情報、および、「3」という拠点数を表す顧客情報である場合を想定する。
この場合、おすすめアプリ要求部263から上述のおすすめアプリ要求を受信した決定部232は、上述の第3の情報を参照して、「L」という市場層を表す顧客情報と複数種類のアプリケーションとの組み合わせごとに、対応付けられた累積インストール数を特定し、累積インストール数が多い順で順位を表す順位値を割り当てる。この例では、図37に示すように、アプリAと、「L」という市場層を表す顧客情報との組み合わせに対しては「5」を示す順位値が割り当てられる。同様に、アプリBと、「L」という市場層を表す顧客情報との組み合わせに対しては「2」を示す順位値が割り当てられる。同様に、アプリCと、「L」という市場層を表す顧客情報との組み合わせに対しては「4」を示す順位値が割り当てられる。同様に、アプリDと、「L」という市場層を表す顧客情報との組み合わせに対しては「1」を示す順位値が割り当てられる。同様に、アプリEと、「L」という市場層を表す顧客情報との組み合わせに対しては「3」を示す順位値が割り当てられる。
また、この例では、図37に示すように、アプリAと、「建築」という業種を表す顧客情報との組み合わせに対しては「5」を示す順位値が割り当てられる。同様に、アプリBと、「建築」という業種を表す顧客情報との組み合わせに対しては「1」を示す順位値が割り当てられる。同様に、アプリCと、「建築」という業種を表す顧客情報との組み合わせに対しては「3」を示す順位値が割り当てられる。同様に、アプリDと、「建築」という業種を表す顧客情報との組み合わせに対しては「4」を示す順位値が割り当てられる。同様に、アプリEと、「建築」という業種を表す顧客情報との組み合わせに対しては「2」を示す順位値が割り当てられる。
さらに、この例では、図37に示すように、アプリAと、「2〜10」という拠点数(「3」という拠点数に対応)を表す顧客情報との組み合わせに対しては「5」を示す順位値が割り当てられる。同様に、アプリBと、「2〜10」という拠点数を表す顧客情報との組み合わせに対しては「4」を示す順位値が割り当てられる。同様に、アプリCと、「2〜10」という拠点数を表す顧客情報との組み合わせに対しては「2」を示す順位値が割り当てられる。同様に、アプリDと、「2〜10」という拠点数を表す顧客情報との組み合わせに対しては「1」を示す順位値が割り当てられる。同様に、アプリEと、「2〜10」という拠点数を表す顧客情報との組み合わせに対しては「3」を示す順位値が割り当てられる。
そして、決定部232は、複数種類のアプリケーションごとに、3つの顧客情報(この例では、「L」という市場層を表す顧客情報、「建設」という業種を表す顧客情報、および、「3」という拠点数を表す顧客情報)と1対1に対応する3つの順位値の和を示す順位和を求める。図37の例では、アプリAの順位和は「15」となり、アプリBの順位和は「7」となり、アプリCの順位和は「9」となり、アプリDの順位和は「6」となり、アプリEの順位和は「8」となる。この例では、決定部232は、順位和が最も小さいアプリDを「おすすめアプリ」として決定する。また、決定部232は、複数種類のアプリケーションの中から、上記順位和の値が小さい順に3つのアプリケーション(アプリD、アプリB、アプリE)を選択し、その選択した3つのアプリケーションを「おすすめアプリ」として決定する。この際、併せて順位を決定することもできる。以降の動作は上述の第1の実施形態と同様である。
(第3の実施形態の変形例)
例えば顧客情報の種類ごとに予め定められた重みが設定され、決定部232は、複数種類のアプリケーションごとに、おすすめアプリ要求部263から受信したアプリ要求に含まれる複数種類の顧客情報(「特定部」により特定された複数種類の顧客情報)と1対1に対応する複数の順位値の重み付き加算を行い、重み付き加算により得られた順位和が最も小さいアプリケーションを、「おすすめアプリ」として決定することもできる。また、例えば決定部232は、複数種類のアプリケーションの中から、重み付き加算により得られた順位和が小さい順に所定数のアプリケーションを選択し、その選択した所定数のアプリケーションを「おすすめアプリ」として決定することもできる。この際、併せて順位を決定することもできる。
例えば拠点数を表す顧客情報を最も重要視し、重要度が高い順に、拠点数→市場層→業種とする形態であってもよい。この場合、例えば市場層を表す顧客情報に対しては「2」という重み係数が設定され、業種を表す顧客情報に対しては「1」という重み係数が設定され、拠点数を表す顧客情報に対しては「3」という重み係数が設定される形態であってもよい。
いま、例えば、上述のおすすめアプリ要求に含まれる3種類の顧客情報が、「L」という市場層を表す顧客情報、「建設」という業種を表す顧客情報、および、「3」という拠点数を表す顧客情報である場合を想定する。以下、一例として、アプリAに対応する順位和の算出方法を例に挙げて説明する。この場合、図37に示すように、アプリAと、「L」という市場層を表す顧客情報との組み合わせに対しては「5」を示す順位値が割り当てられ、アプリAと、「建築」という業種を表す顧客情報との組み合わせに対しては「5」を示す順位値が割り当てられ、アプリAと、「2〜10」という拠点数を表す顧客情報との組み合わせに対しては「5」を示す順位値が割り当てられる。この例では、市場層を表す顧客情報に対しては「2」という重み係数が設定され、業種を表す顧客情報に対しては「1」という重み係数が設定され、拠点数を表す顧客情報に対しては「3」という重み係数が設定されるので、上記3つの順位値の重み付き加算により得られる順位和は、5×2+5×1+5×3=30となる。以上のようにして、決定部232は、複数種類のアプリケーションごとに、上記順位和の値を求めることができる。
(第4の実施形態)
次に、第4の実施形態を説明する。上述の第1の実施形態と共通する部分については適宜に説明を省略する。本実施形態では、上述の対応情報は、機番ごとに複数種類の顧客情報を対応付けた情報であることを前提とし、上述の関係情報は、複数種類の顧客情報と複数種類のアプリケーションとの組み合わせごとに、利用の可否を示す属性情報を対応付けた情報である。
本実施形態では、関係情報は、図38に示す第9の情報と、図39に示す第10の情報と、図40に示す第11の情報とから構成されている。
図38に示す第9の情報は、それぞれが市場層を表す複数の顧客情報(「KG」という市場層を表す顧客情報、「MA」という市場層を表す顧客情報、「L」という市場層を表す顧客情報、「M2」という市場層を表す顧客情報等)と、複数種類のアプリケーション(アプリA、アプリB、アプリC、アプリD、アプリE等)との組み合わせごとに、属性情報を対応付けた情報である。この例では、「TRUE」を示す属性情報は、対応するアプリケーションの利用が可能であることを示し、「FALSE」を示す属性情報は、対応するアプリケーションの利用が不可能であることを示す。
また、図39に示す第10の情報は、それぞれが業種を表す複数の顧客情報(「医療」という業種を表す顧客情報、「教育」という業種を表す顧客情報、「建設」という業種を表す顧客情報、「金融」という業種を表す顧客情報など)と、複数種類のアプリケーション(アプリA、アプリB、アプリC、アプリD、アプリE等)との組み合わせごとに、属性情報を対応付けた情報である。さらに、図40に示す第11の情報は、それぞれが拠点数を表す複数の顧客情報(「1」という拠点数を表す顧客情報、「2〜10」という拠点数を表す顧客情報、「10以上」という拠点数を表す顧客情報など)と、複数種類のアプリケーション(アプリA、アプリB、アプリC、アプリD、アプリE等)との組み合わせごとに、属性情報を対応付けた情報である。
本実施形態の決定部232は、おすすめアプリ要求部263からのおすすめアプリ要求を受信すると、該おすすめアプリ要求に含まれる顧客情報ごとに、該顧客情報に対応付けられた複数種類のアプリケーションの中から、利用可能を示す属性情報(この例では「TRUE」を示す属性情報)が対応付けられた1以上のアプリケーションを選択し、選択された数が最も多いアプリケーションを「おすすめアプリ」として決定する。この例では、決定部232は、複数種類のアプリケーション(関係情報に含まれる複数種類のアプリケーション)の中から、選択された数が多い順に所定数のアプリケーションを選択し、その選択した所定数のアプリケーションを「おすすめアプリ」として決定する。
いま、例えば、上述のおすすめアプリ要求に含まれる3種類の顧客情報が、「M2」という市場層を表す顧客情報、「金融」という業種を表す顧客情報、および、「3」という拠点数を表す顧客情報である場合を想定する。
この場合、おすすめアプリ要求部263から上述のアプリ要求を受信した決定部232は、上述の第9の情報を参照して、「M2」という市場層を表す顧客情報に対応付けられた複数種類のアプリケーションの中から、「TRUE」を示す属性情報が対応付けられたアプリケーションを選択する。また、決定部232は、上述の第10の情報を参照して、「金融」という業種を表す顧客情報に対応付けられた複数種類のアプリケーションの中から、「TRUE」を示す属性情報が対応付けられたアプリケーションを選択する。また、決定部232は、上述の第11の情報を参照して、「3」という拠点数を表す顧客情報に対応付けられた複数種類のアプリケーションの中から、「TRUE」を示す属性情報が対応付けられたアプリケーションを選択する。そして、複数種類のアプリケーションごとに、3種類の顧客情報(この例では、「M2」という市場層を表す顧客情報、「金融」という業種を表す顧客情報、および、「3」という拠点数を表す顧客情報)にわたって選択された数を特定し、選択された数が最も多いアプリケーションを「おすすめアプリ」として決定する。
この例では、選択された数が「3」であるアプリBを「おすすめアプリ」として決定する。また、本実施形態では、決定部232は、複数種類のアプリケーションの中から、選択された数が多い順に所定数(この例では3位までの数)のアプリケーションを選択(この例では、アプリB、アプリA、アプリD、アプリEを選択)し、その選択した所定数のアプリケーションを「おすすめアプリ」として決定する。この際、併せて順位を決定することもできる(1位:アプリB、2位:アプリA,アプリD、3位:アプリE)。以降の動作は上述の第1の実施形態と同様である。
以上、本発明に係る実施形態について説明したが、本発明は、上述の実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上述の実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
また、上述の実施形態では、本体10と操作部20は、別々のオペレーションシステムで互いに独立して動作しているが、これに限らず、例えば本体10と操作部20が同じオペレーションシステムで動作する形態であってもよい。つまり、本体10と操作部20とを一体とした構成であってもよい。
また、上述した実施形態のシステム1(サーバ2、MFP4等)で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよいし、インターネット等のネットワーク経由で提供または配布するように構成してもよい。また、各種プログラムを、ROM等に予め組み込んで提供するように構成してもよい。