(57)【要約】 【課題】画像形成装置にインストール済みのアプリケーションの更新を、自動で効率良く実施することが可能な画像形成装置、システムおよび制御方法を提供する。【解決手段】本発明の画像形成装置は、サーバと通信可能な画像形成装置であって、更新アプリケーション情報取得部と更新制御部とを備える。更新アプリケーション情報取得部は、インストール済みの１以上のアプリケーションのうち、更新が必要なアプリケーションを示す更新アプリケーション情報をサーバから取得する。更新制御部は、更新アプリケーション情報取得部により取得された更新アプリケーション情報が示すアプリケーションを更新する制御を行う。【選択図】図７
2018198013.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介してサーバと通信可能な画像形成装置であって、
インストール済みの１以上のアプリケーションのうち、更新が必要なアプリケーションを示す更新アプリケーション情報を前記サーバから取得する更新アプリケーション情報取得部と、
前記更新アプリケーション情報取得部により取得された前記更新アプリケーション情報が示すアプリケーションを更新する制御を行う更新制御部と、を備える、
画像形成装置。
【請求項２】
前記更新アプリケーション情報取得部は、更新を実施するタイミングを示す更新タイミングに到達した場合に、前記更新アプリケーション情報を要求する取得要求を前記サーバへ送信し、その応答として、前記更新アプリケーション情報を前記サーバから取得する、
請求項１に記載の画像形成装置。
【請求項３】
予め設定された更新時間帯に基づいて、前記更新タイミングを設定する設定部と、
前記設定部により設定された前記更新タイミングに到達したか否かを監視する監視部と、をさらに備え、
前記監視部は、前記更新タイミングに到達した場合に、その旨を前記更新アプリケーション情報取得部へ通知し、該通知を受けた前記更新アプリケーション情報取得部は、前記取得要求を前記サーバへ送信する、
請求項２に記載の画像形成装置。
【請求項４】
前記設定部は、前記更新時間帯の範囲でランダムに時刻を選択し、その選択した時刻を前記更新タイミングとして設定する、
請求項３に記載の画像形成装置。
【請求項５】
更新が必要なアプリケーションが存在する場合、その旨を報知する報知メッセージを表示部に表示する制御を行う報知メッセージ表示制御部をさらに備える、
請求項１乃至４のうちの何れか１項に記載の画像形成装置。
【請求項６】
前記画像形成装置は、
ユーザの操作を受け付ける操作部と、本体と、を備え、
前記操作部は、
前記更新アプリケーション情報取得部と、前記更新制御部と、を少なくとも備え、
前記本体は、
記録媒体上に画像を形成する画像形成部を少なくとも備える、
請求項１乃至５のうちの何れか１項に記載の画像形成装置。
【請求項７】
前記操作部は、前記操作部が前記ユーザの操作を受け付けていない状態が所定期間継続した場合、前記操作部の状態を、前記操作部が通常動作可能な操作部通常状態よりも消費電力が小さい操作部省エネ状態に遷移させる制御を行う第１の省エネ制御部を備え、
前記本体は、前記本体が画像処理を実行しないアイドル状態が所定期間継続した場合、前記本体の状態を、前記本体が通常動作可能な本体通常状態よりも消費電力が小さい本体省エネ状態に遷移させる制御を行う第２の省エネ制御部を備え、
前記操作部が前記操作部省エネ状態であり、かつ、前記本体が前記本体省エネ状態のときに前記更新タイミングに到達した場合、前記第１の省エネ制御部は、前記操作部を前記操作部通常状態に復帰させる一方、前記第２の省エネ制御部は、前記本体を前記本体省エネ状態に維持する、
請求項６に記載の画像形成装置。
【請求項８】
前記更新アプリケーション情報が示すアプリケーションを利用するためにファームウェアの更新が必要な場合、前記ファームウェアを更新する制御を行うファームウェア更新制御部をさらに備える、
請求項１乃至７のうちの何れか１項に記載の画像形成装置。
【請求項９】
プリンタまたはスキャナを備える本体と、前記本体に操作指示する操作部と、を備え、
前記操作部は、
更新アプリケーション情報取得部と、前記更新制御部とを少なくとも含み、かつ、前記操作部にインストール済みの１以上のアプリケーションを更新するための更新実行部を備え、
前記更新実行部は、
更新対象のアプリケーションの自動更新を行う時刻である更新時刻を前記本体に送信し、前記更新時刻に到達した場合は、前記本体から、前記更新時刻に到達した旨の通知を受信し、更新対象のアプリケーションのダウンロードを、前記本体を介して外部サーバへ要求して取得し、該取得したアプリケーションをインストールする、
請求項１に記載の画像形成装置。
【請求項１０】
前記本体は、第１のオペレーティングシステム及び、第１のプロセッサを備え、
前記操作部は、第２のオペレーティングシステム及び、第２のプロセッサを備え、
前記更新実行部は、
更新アプリケーション情報取得部と、前記更新制御部とを少なくとも含む更新アプリケーションと、インストーラと、を含み、
前記操作部は、前記更新アプリケーションと前記インストーラを有する、
請求項９に記載の画像形成装置。
【請求項１１】
前記操作部と前記本体は互いに異なるＩＰアドレスを有し、
前記本体は、前記操作部のＩＰアドレスを前記本体のＩＰアドレスに変換する変換部を有し、
前記更新実行部は、前記本体の前記変換部を介して、前記外部サーバから更新対象のアプリケーションをダウンロードする、
請求項９または１０に記載の画像形成装置。
【請求項１２】
サーバと、前記サーバと通信可能な画像形成装置と、を含むシステムであって、
前記画像形成装置は、
インストール済みの１以上のアプリケーションのうち、更新が必要なアプリケーションを示す更新アプリケーション情報を要求する取得要求を前記サーバへ送信し、その応答として、前記更新アプリケーション情報を前記サーバから取得する更新アプリケーション情報取得部と、
前記更新アプリケーション情報取得部により取得された前記更新アプリケーション情報が示すアプリケーションを更新する制御を行う更新制御部と、を備え、
前記サーバは、
前記画像形成装置から前記取得要求を受信した場合に、更新が必要なアプリケーションの有無を判断する判断部と、
前記判断部により、更新が必要なアプリケーションが存在すると判断された場合、前記取得要求への応答として、前記更新アプリケーション情報を前記画像形成装置へ送信する更新アプリケーション情報送信部と、を備える、
システム。
【請求項１３】
サーバと通信可能な画像形成装置による制御方法であって、
インストール済みの１以上のアプリケーションのうち、更新が必要なアプリケーションを示す更新アプリケーション情報を前記サーバから取得する更新アプリケーション情報取得ステップと、
前記更新アプリケーション情報取得ステップにより取得された前記更新アプリケーション情報が示すアプリケーションを更新する制御を行う更新制御ステップと、を含む、
制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、システムおよび制御方法に関する。
【背景技術】
【０００２】
従来、画像形成装置の一例である複合機（ＭＦＰ：Multifunction  Peripheral）において、アプリケーションをｗｅｂページからダウンロードしてインストールする仕組みが知られている（例えば特許文献１等）。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかしながら、従来の技術では、画像形成装置にインストール済みのアプリケーションの更新を、自動で効率良く実施することができないという問題があった。
【０００４】
本発明は、上記に鑑みてなされたものであり、画像形成装置にインストール済みのアプリケーションの更新を、自動で効率良く実施することが可能な画像形成装置、システムおよび制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上述した課題を解決し、目的を達成するために、本発明は、ネットワークを介してサーバと通信可能な画像形成装置であって、インストール済みの１以上のアプリケーションのうち、更新が必要なアプリケーションを示す更新アプリケーション情報を前記サーバから取得する更新アプリケーション情報取得部と、前記更新アプリケーション情報取得部により取得された前記更新アプリケーション情報が示すアプリケーションを更新する制御を行う更新制御部と、を備える。
【発明の効果】
【０００６】
本発明によれば、画像形成装置にインストール済みのアプリケーションの更新を、自動で効率良く実施することができる。
【図面の簡単な説明】
【０００７】
【図１】図１は、システムの構成の一例を示す図である。
【図２】図２は、アプリケーション一覧画面（Ｗｅｂページ）の一例を示す図である。
【図３】図３は、ＭＦＰのハードウェア構成の一例を示す図である。
【図４】図４は、ＭＦＰのソフトウェア構成の一例を示す図である。
【図５】図５は、本体および操作部のソフトウェア構成を説明するための図である。
【図６】図６は、操作部の通信方法を説明するための図である。
【図７】図７は、第１の実施形態の操作部が有する機能の一例を示す図である。
【図８】図８は、操作画面の一例を示す図である。
【図９】図９は、ＵＲＬスキームの一例を示す図である。
【図１０】図１０は、管理メニュー画面の一例を示す図である。
【図１１】図１１は、自動更新設定画面の一例を示す図である。
【図１２】図１２は、更新時刻設定画面の一例を示す図である。
【図１３】図１３は、更新禁止設定画面の一例を示す図である。
【図１４】図１４は、インストーラが有する機能の一例を示す図である。
【図１５】図１５は、ファームウェア更新画面の一例を示す図である。
【図１６】図１６は、第１の制御部が有する機能の一例を示す図である。
【図１７】図１７は、第３の制御部が有する機能の一例を示す図である。
【図１８】図１８は、第２の制御部が有する機能の一例を示す図である。
【図１９】図１９は、ファームウェアの更新手順を説明するための図である。
【図２０】図２０は、ファームウェアの更新手順を説明するための図である。
【図２１】図２１は、ファームウェアの更新手順を説明するための図である。
【図２２】図２２は、ファームウェアの更新手順を説明するための図である。
【図２３】図２３は、ファームウェアの更新手順を説明するための図である。
【図２４】図２４は、報知メッセージの一例を示す図である。
【図２５】図２５は、アプリマーケットサーバのハードウェア構成の一例を示す図である。
【図２６】図２６は、アプリマーケットサーバが有する機能の一例を示す図である。
【図２７】図２７は、アプリケーションサーバが有する機能の一例を示す図である。
【図２８】図２８は、対応情報の一例を示す図である。
【図２９】図２９は、ファームウェア配信サーバが有する機能の一例を示す図である。
【図３０】図３０は、ユーザから更新時刻の設定入力を受け付けた場合のＭＦＰの動作手順の一例を示すシーケンス図である。
【図３１】図３１は、ＭＦＰの起動時の動作手順の一例を示すシーケンス図である。
【図３２】図３２は、システムの動作手順の一例を示す図である。
【図３３】図３３は、システムの動作手順の一例を示す図である。
【図３４】図３４は、システムの動作手順の一例を示す図である。
【図３５】図３５は、報知メッセージの一例を示す図である。
【発明を実施するための形態】
【０００８】
以下、添付図面を参照しながら、本発明に係る画像形成装置、システムおよび制御方法の実施形態を詳細に説明する。以下では、本発明に係る画像形成装置の一例として、複合機（ＭＦＰ：Multifunction  Peripheral）を例に挙げて説明するが、これに限られるものではない。なお、複合機とは、コピー機能、スキャナ機能、プリンタ機能、ファクス機能などの複数の異なる機能を有する装置である。
【０００９】
（第１の実施形態）
図１は、本実施形態のシステム１００の構成の一例を示す図である。図１に示すように、システム１００は、ＭＦＰ１と、アプリマーケットサーバ２と、アプリケーションサーバ３と、ファームウェア配信サーバ４とを備え、これらはネットワーク８を介して相互に接続される。
【００１０】
アプリマーケットサーバ２は、複数のアプリケーションごとに、当該アプリケーションをＭＦＰ１に導入する命令の一例であるインストール命令が対応付けられたアプリケーション一覧画面を、ＭＦＰ１へ提供する。図２は、アプリケーション一覧画面（Ｗｅｂページ）の一例を示す図である。図２の例では、アプリケーション一覧画面は、複数のアプリケーションごとに、当該アプリケーションの内容を説明する説明情報と、当該アプリケーションのインストールを指示するためのボタン６（以下、「インストールボタン６」と称する）とが表示される。ユーザが、ＭＦＰ１に表示されたアプリケーション一覧画面の中から、所望のアプリケーションのインストールボタン６を押下することで、該アプリケーションがダウンロードされ、ＭＦＰ１にインストールされる。ＭＦＰ１の具体的な内容については後述する。
【００１１】
アプリケーションサーバ３は、アプリケーション一覧画面で表示されているアプリケーションを保持し、ＭＦＰ１からの要求に応じて、アプリケーションを配信する。また、アプリケーションサーバ３は、ＭＦＰ１から提示されたアプリケーションを該ＭＦＰ１で利用できるか否かを判定する妥当性判定（詳しくは後述する）を行う。ファームウェア配信サーバ４は、ＭＦＰ１からの要求に応じて、ＭＦＰ１の動作を制御するファームウェアを配信する。より具体的な内容については後述する。
【００１２】
次に、図３を用いて、ＭＦＰ１のハードウェア構成について説明する。図３に示すように、ＭＦＰ１は、コピー機能、スキャナ機能、ファクス機能、プリンタ機能などの各種の機能を実現可能な本体１０と、ユーザの操作を受け付ける操作部２０とを備える。なお、ユーザの操作を受け付けるとは、ユーザの操作に応じて入力される情報（画面の座標値を示す信号等を含む）を受け付けることを含む概念である。ここでは、操作部２０は、本体１０に操作指示するためのデバイスでもある。本体１０と操作部２０は、専用の通信路３０を介して相互に通信可能に接続されている。通信路３０は、例えばＵＳＢ（Universal  Serial  Bus）規格のものを用いることもできるが、有線か無線かを問わず任意の規格のものであってよい。
【００１３】
なお、本体１０は、操作部２０で受け付けた操作に応じた動作を行うことができる。また、本体１０は、クライアントＰＣ（パーソナルコンピュータ）等の外部装置とも通信可能であり、外部装置から受信した指示に応じた動作を行うこともできる。本体１０は、記録媒体（例えば用紙）上に画像を形成する画像形成部を少なくとも備える。本体１０の詳細な構成は後述する。
【００１４】
まず、本体１０のハードウェア構成について説明する。図３に示すように、本体１０は、ＣＰＵ１１と、ＲＯＭ１２と、ＲＡＭ１３と、ＨＤＤ（ハードディスクドライブ）１４と、通信Ｉ／Ｆ１５と、接続Ｉ／Ｆ１６と、エンジン部１７と、を備え、これらがシステムバス１８を介して相互に接続されている。
【００１５】
ＣＰＵ１１は、「第１のプロセッサ」に相当し、本体１０の動作を統括的に制御する。ＣＰＵ１１は、ＲＡＭ１３をワークエリア（作業領域）としてＲＯＭ１２またはＨＤＤ１４等に格納されたプログラムを実行することで、本体１０全体の動作を制御し、上述したコピー機能、スキャナ機能、ファクス機能、プリンタ機能などの各種機能を実現する。
【００１６】
通信Ｉ／Ｆ１５は、ネットワーク８と接続するためのインタフェースである。接続Ｉ／Ｆ１６は、通信路３０を介して操作部２０と通信するためのインタフェースである。
【００１７】
エンジン部１７は、コピー機能、スキャナ機能、ファクス機能、および、プリンタ機能を実現させるための、汎用的な情報処理及び通信以外の処理を行うハードウェアである。例えば、原稿の画像をスキャンして読み取るスキャナ（画像読取部）、用紙等のシート材への印刷を行うプロッタ（画像形成部）、ファクス通信を行うファクス部などを備えている。更に、印刷済みシート材を仕分けるフィニッシャや、原稿を自動給送するＡＤＦ（自動原稿給送装置）のような特定のオプションを備えることもできる。ここでは、本体１０は、プリンタまたはスキャナを備える形態であればよい。
【００１８】
次に、操作部２０のハードウェア構成について説明する。図３に示すように、操作部２０は、ＣＰＵ２１と、ＲＯＭ２２と、ＲＡＭ２３と、フラッシュメモリ２４と、通信Ｉ／Ｆ２５と、接続Ｉ／Ｆ２６と、操作パネル２７とを備え、これらがシステムバス２８を介して相互に接続されている。
【００１９】
ＣＰＵ２１は、「第２のプロセッサ」に相当し、操作部２０の動作を統括的に制御する。ＣＰＵ２１は、ＲＡＭ２３をワークエリア（作業領域）としてＲＯＭ２２またはフラッシュメモリ２４等に格納されたプログラムを実行することで、操作部２０全体の動作を制御し、ユーザから受け付けた入力に応じた情報（画像）の表示などの後述する各種機能を実現する。
【００２０】
通信Ｉ／Ｆ２５はネットワーク８に接続するためのインタフェースである。接続Ｉ／Ｆ２６は、通信路３０を介して本体１０と通信するためのインタフェースである。操作パネル２７は、ユーザの操作に応じた各種の入力を受け付けるとともに、各種の情報（例えば受け付けた操作に応じた情報、ＭＦＰ１の動作状況を示す情報、設定状態などを示す情報など）を表示する。この例では、操作パネル２７は、タッチパネル機能を搭載した液晶表示装置（ＬＣＤ）で構成されるが、これに限られるものではない。例えばタッチパネル機能が搭載された有機ＥＬ表示装置で構成されてもよい。さらに、これに加えて又はこれに代えて、ハードウェアキー等の操作部やランプ等の表示部を設けることもできる。
【００２１】
次に、ＭＦＰ１のソフトウェア構成について説明する。図４は、ＭＦＰ１のソフトウェア構成の一例を示す模式図である。図４に示すように、本体１０は、アプリ層１０１と、サービス層１０２と、ＯＳ層１０３とを有する。アプリ層１０１、サービス層１０２、および、ＯＳ層１０３の実体は、ＲＯＭ１２やＨＤＤ１４等に格納されている各種ソフトウェアである。ＣＰＵ１１が、これらのソフトウェアを実行することにより、各種の機能が提供される。
【００２２】
アプリ層１０１のソフトウェアは、ハードウェア資源を動作させて所定の機能を提供するためのアプリケーションソフトウェア（以下の説明では、単に「アプリ」と称する場合がある）である。例えばアプリとしては、コピー機能を提供するためのコピーアプリ、スキャナ機能を提供するためのスキャナアプリ、ファクス機能を提供するためのファクスアプリ、プリンタ機能を提供するためのプリンタアプリなどが挙げられる。
【００２３】
サービス層１０２のソフトウェアは、アプリ層１０１とＯＳ層１０３との間に介在し、アプリに対し、本体１０が備えるハードウェア資源を利用するためのインタフェースを提供するためのソフトウェアである。より具体的には、ハードウェア資源に対する動作要求の受付、動作要求の調停を行う機能を提供するためのソフトウェアである。サービス層１０２が受け付ける動作要求としては、スキャナによる読み取りやプロッタによる印刷等の要求が考えられる。
【００２４】
なお、サービス層１０２によるインタフェースの機能は、本体１０のアプリ層１０１だけではなく、操作部２０のアプリ層２０１にも提供される。すなわち、操作部２０のアプリ層２０１（アプリ）も、サービス層１０２のインタフェース機能を介して、本体１０のハードウェア資源（例えばエンジン部１７）を利用した機能を実現することができる。例えばサービス層１０２のインタフェース機能は、ＷｅｂＡＰＩで提供される。
【００２５】
ＯＳ層１０３のソフトウェアは、本体１０が備えるハードウェアを制御する基本機能を提供するための基本ソフトウェア（オペレーティングシステム（ＯＳ））である。サービス層１０２のソフトウェアは、各種アプリからのハードウェア資源の利用要求を、ＯＳ層１０３が解釈可能なコマンドに変換してＯＳ層１０３に渡す。そして、ＯＳ層１０３のソフトウェアによりコマンドが実行されることで、ハードウェア資源は、アプリの要求に従った動作を行う。
【００２６】
同様に、操作部２０は、アプリ層２０１と、サービス層２０２と、ＯＳ層２０３とを有する。操作部２０が備えるアプリ層２０１、サービス層２０２及びＯＳ層２０３も、階層構造については本体１０側と同様である。ただし、アプリ層２０１のアプリにより提供される機能や、サービス層２０２が受け付け可能な動作要求の種類は、本体１０側とは異なる。アプリ層２０１のアプリは、操作部２０が備えるハードウェア資源を動作させて所定の機能を提供するためのソフトウェアであってもよいが、主として本体１０が備える機能（コピー機能、スキャナ機能、ファクス機能、プリンタ機能）に関する操作や表示を行うためのＵＩ（ユーザインタフェース）の機能を提供するためのソフトウェアである。この例では、アプリ層２０１のアプリには、アプリケーション一覧画面を取得する機能を提供するアプリマーケットアプリなども含まれる。また、サービス層２０２のソフトウェアは、コンピュータのハードウェアを管理、制御するなど、コンピュータの稼動や使用そのものをサポートするためのシステムソフトウェアであると考えることができる。サービス層２０２のソフトウェア（システムソフトウェア）には、アプリケーションのインストールやファームウェアの更新を行うためのインストーラなどが含まれる。
【００２７】
なお、本実施形態では、機能の独立性を保つために、本体１０側のＯＳ層１０３のソフトウェアと操作部２０側のＯＳ層２０３のソフトウェアが互いに異なる。つまり、本体１０と操作部２０は、別々のオペレーティングシステムで互いに独立して動作する。例えば本体１０側のＯＳ層１０３のソフトウェア（第１のオペレーティングシステム）としてＬｉｎｕｘ（登録商標）を用い、操作部２０側のＯＳ層２０３のソフトウェア（第２のオペレーティングシステム）としてＡｎｄｒｏｉｄ（登録商標）を用いることも可能である。
【００２８】
以上のように、本実施形態のＭＦＰ１において、本体１０と操作部２０は別々のオペレーティングシステムで動作するため、本体１０と操作部２０との間の通信は、共通の装置内のプロセス間通信ではなく、異なる装置間の通信として行われる。操作部２０が受け付けた情報（ユーザからの指示内容）を本体１０へ伝達する動作（コマンド通信）や、本体１０が操作部２０へイベントを通知する動作などがこれに該当する。ここでは、操作部２０が本体１０へコマンド通信を行うことにより、本体１０の機能を使用することができる。また、本体１０から操作部２０に通知するイベントには、本体１０における動作の実行状況、本体１０側で設定された内容などが挙げられる。
【００２９】
また、本実施形態では、操作部２０に対する電力供給は、本体１０から通信路３０を経由して行われているので、操作部２０の電源制御を、本体１０の電源制御とは別に（独立して）行うことができる。
【００３０】
図５は、本体１０および操作部２０のソフトウェア構成を説明するための図である。図５に示すように、本体１０は、ＣＰＵ１１等が搭載されたコントローラ３１と、エンジン部１７と、を備える。コントローラ３１は、ＷｅｂＡＰＩサービス（Ｗｅｂサーバ）３０１、アプリ層１０１の本体アプリ（コピーアプリ３０２、スキャンアプリ３０３、プリントアプリ３０４、ＦＡＸアプリ３０５等）、サービス層１０２のシステムソフトウェア（エンジンコントロールサービス３１１（以下、「ＥＣＳ３１１」と称する）、システムコントロールサービス３１２（以下、「ＳＣＳ３１２」と称する）、ネットワークコントロールサービス３１３（以下、「ＮＣＳ３１３」と称する）等）、ＯＳ層１０３などを有する。これらの機能は、ＣＰＵ１１が各種プログラムを実行することにより提供される。
【００３１】
ＷｅｂＡＰＩサービス３０１は、操作部２０や外部端末からの要求を受け付け、本体アプリが解釈できる情報（要求情報）に変換して、対応する本体アプリに振り分ける（ディスパッチする）。本体アプリは、ＷｅｂＡＰＩサービス３０１からの要求情報を受けると、本体内部ＡＰＩ３１５を用いて各サービス経由でエンジン部１７にジョブ等の処理を実行させる。
【００３２】
ＥＣＳ３１１は、エンジン部１７の管理や調停などを行うサービスモジュールである。ＳＣＳ３１２は、ＭＦＰ１の省エネ制御（詳しくは後述）やジョブの管理などを行うためのサービスモジュールである。ＮＣＳ３１３は、通信制御（ネットワーク制御）などを行うためのサービスモジュールである。
【００３３】
例えば本体１０のコピーアプリ３０２は、ＷｅｂＡＰＩサービス３０１からコピー要求（操作部２０のアプリ（コピーアプリ）からのコピー要求に基づく）を受けると、本体内部ＡＰＩ３１５を用いてＥＣＳ３１１経由で、エンジン部１７にコピージョブを実行させる。
【００３４】
なお、操作部２０のアプリから本体のＳＣＳ３１２を利用する場合は、操作部２０と本体１０との間の通信モジュール（コントローラ３１が有する、操作部アプリとＳＣＳ３１２との間の通信の橋渡し役を果たすモジュール）を利用し、ＡＰＩ（ＷｅｂＡＰＩサービス３０１や本体内部ＡＰＩ３１５）は利用しない。
【００３５】
また、ここでは、操作部２０は、本体１０のＯＳ層１０３が有するＮＡＰＴ（Network Address Port Translation）機能３２０を介して、ネットワーク８を利用することができる。例えば図６に示すように、操作部２０のネットワーク機能（ＣＰＵ１１がアプリ等のプログラムを実行して通信Ｉ／Ｆ２５を制御することにより実現）が、本体１０を介して外部サーバと通信する場合を想定する。この例では、操作部２０のポート番号は「SRCPORT_A」、ＩＰアドレスは「SRCIP_A」とする。
【００３６】
操作部２０から外部サーバへデータを送信する場合を想定する。ここでは、外部サーバのポート番号は「DSTPORT_A」、ＩＰアドレスは「DSTIP_A」とする。この場合、ＮＡＰＴ機能３２０は、送信元（操作部２０）のポート番号とＩＰアドレスを、本体１０側のポート番号（SRCPORT_B）とＩＰアドレス（SRCIP_B）に変換し、変換後のポート番号とＩＰアドレスを送信元として外部サーバへデータ送信する。反対に、外部サーバからデータを受信する場合は、ＮＡＰＴ機能３２０は、外部サーバのデータ送信先（本体１０）のポート番号とＩＰアドレスを、操作部２０側のポート番号（SRCPORT_A）とＩＰアドレス（SRCIP_A）に変換し、外部サーバから受信したデータを操作部２０へ渡す。
【００３７】
図５の例では、操作部２０のアプリマーケットアプリは、本体１０のＮＡＰＴ機能３２０を利用して、アプリマーケットサーバ２からアプリケーション一覧画面を取得する。そして、何れかのアプリケーションのインストールボタン６が押下されると、操作部２０のインストーラが起動し、インストーラは、ＮＡＰＴ機能３２０を利用して、アプリケーションサーバ３からアプリケーションをダウンロードし、インストールする。このようにして、操作部２０へのアプリ追加を随時行うことができる。
【００３８】
図７は、操作部２０が有する機能の一例を示す図である。説明の便宜上、図７では、本発明に関する機能を主に例示しているが、操作部２０が有する機能は、これらに限られるものではない。
【００３９】
図７に示すように、操作部２０は、アプリマーケットアプリと、システムソフトウェアと、を備える。アプリマーケットアプリは、アプリケーション一覧画面制御部２１１、通知受付部２１２、設定ＵＩ部２１３、アプリケーション更新実行部２２０の各々の機能を提供する。この例では、アプリケーション更新実行部２２０は、設定部２１４、更新アプリケーション情報取得部２１５、更新制御部２１６および報知メッセージ通知部２１７を含み、アプリマーケットアプリのスレッドとして実装される。これらの機能は、操作部２０のＣＰＵ２１がアプリマーケットアプリを実行することにより実現される。システムソフトウェアは、インストーラ２２１、監視モジュール２２２、報知メッセージ表示モジュール２２３の各々の機能を提供する。これらの機能は、操作部２０のＣＰＵ２１がシステムソフトウェアを実行することにより実現される。
【００４０】
アプリケーション一覧画面制御部２１１は、アプリマーケットサーバ２からアプリケーション一覧画面を取得し、取得したアプリケーション一覧画面を操作パネル２７に表示する制御を行う。なお、前述したように、アプリケーション一覧画面制御部２１１は、本体１０のＮＡＰＴ機能３２０を介して、アプリマーケットサーバ２と通信する。本実施形態では、ユーザが、図８に示すような、各種の操作を受け付ける操作画面上のアプリマーケットアプリを起動するためのアイコン５をタッチすると、アプリマーケットアプリが起動する。そして、アプリケーション一覧画面制御部２１１は、アプリケーション一覧画面を要求する信号（以下、「表示リクエスト」と称する場合がある）をアプリマーケットサーバ２に送信する。そして、その応答として、アプリマーケットサーバ２から、図２に示すようなアプリケーション一覧画面を取得し、操作パネル２７に表示する。この例では、インストール命令の実行手順を記述したＵＲＬスキームが、インストールボタン６に貼り付けられている。
【００４１】
図９は、「４９３５４」というＩＤ（アプリＩＤ）で識別されるアプリケーションに対応するインストールボタン６に貼り付けられたＵＲＬスキームの一例を示す図である。図９における「ｉｎｓｔａｌｌｅｒ」の部分は、ＵＲＬスキームのヘッダ部分であり、以下では、ＵＲＬスキームのヘッダ部分を「スキーム部分」と称する場合がある。「ｉｎｓｔａｌｌｅｒ」というスキーム部分は、インストール命令を実行するアプリケーションを識別するための情報を表し、この例では、ＭＦＰ１に搭載されたインストーラを表している。また、図９における「ｉｎｓｔａｌｌＡｐｐ？ｉｄ＝４９３５４」のうち「ｉｎｓｔａｌｌＡｐｐ」の部分はインストール命令であり、そのインストール命令の引数が「ｉｄ＝４９３５４」である。これは、「４９３５４」というｉｄで識別されるアプリケーションのインストール命令を表している。つまり、命令の具体的な内容を表す部分である。図９に示すＵＲＬスキームは、インストール命令の実行手順をＵＲＬ形式で記述した情報であり、このＵＲＬスキームが貼り付けられたインストールボタン６が押下されると、インストーラ２２１が起動し、起動したインストーラ２２１が、「４９３５４」というｉｄで識別されるアプリケーションをインストールする命令を実行することになる。具体的には、インストーラ２２１は、該アプリケーションのダウンロードをアプリケーションサーバ３に要求し、アプリケーションサーバ３から該アプリケーションをダウンロードする。そして、インストーラ２２１は、そのダウンロードしたアプリケーションをＭＦＰ１にインストールする。なお、前述したように、インストーラ２２１は、本体１０のＮＡＰＴ機能３２０を介して、アプリケーションサーバ３と通信する。
【００４２】
図７に戻って説明を続ける。通知受付部２１２は、後述する監視モジュール２２２からの通知を受け付ける。通知受付部２１２はレシーバとして機能する。
【００４３】
設定ＵＩ部２１３は、設定に必要な画面を操作パネル２７に表示する。例えば設定Ｕｉ部２１３は、図１０に示すような管理メニュー画面を操作パネル２７に表示する。そして、管理メニュー画面の「自動更新」ボタンの押下を受け付けた場合、設定ＵＩ部２１３は、図１１に示すような自動更新設定画面を操作パネル２７に表示する。この例では、自動更新設定画面から、インストール済みのアプリケーションの自動更新の設定を有効にすることを示す「ＯＮ」の選択を受け付けた場合、自動更新の設定が有効になる。一方、自動更新を無効にすることを示す「ＯＦＦ」の選択を受け付けた場合、自動更新の設定は無効になる。また、自動更新設定画面から、「更新時刻」ボタンの押下を受け付けた場合、設定ＵＩ部２１３は、図１２に示すような更新時刻設定画面を操作パネル２７に表示し、更新時刻の設定を受け付けることができる。
【００４４】
図７に示すように、アプリケーション更新実行部２２０は、設定部２１４、更新アプリケーション情報取得部２１５、更新制御部２１６、報知メッセージ通知部２１７を含む。設定部２１４は、設定ＵＩ部２１３により表示された画面で受け付けた入力に応じて、各種の設定を行う（設定のための制御を含む）。設定部２１４は、予め設定された更新時間帯に基づいて、更新（アプリケーションの自動更新）を実施するタイミングを示す更新タイミング（更新時刻）を設定する。この例では、設定部２１４は、ユーザにより指定された時刻から２時間後までの時間帯を「更新時間帯」として設定するが、これに限られるものではない。以上のようにして、予め更新時間帯が設定される。設定部２１４は、予め設定された更新時間帯の範囲でランダムに時刻を選択し、その選択した時刻を更新タイミングとして設定することができる。この例では、設定部２１４は、１５分間隔でランダムに更新タイミングを決定する。
【００４５】
また、この例では、図１０に示す管理メニュー画面の「更新禁止設定」ボタンの押下を受け付けた場合、設定部２１４は、図１３に示すような更新禁止設定画面を操作パネル２７に表示する。ユーザは、アプリケーションごとに、自動更新の可否を決めることができ、自動更新を禁止したいアプリケーションについては、「禁止する」を選択する。この選択を受け付けた設定部２１４は、そのアプリケーションを自動更新の対象から外すように設定する。
【００４６】
図７に戻って説明を続ける。設定部２１４は、以上のようにして設定した更新タイミングを監視モジュール２２２へ通知する。監視モジュール２２２は、「監視部」の一例であり、設定部２１４により設定された更新タイミング（設定部２１４から通知された更新タイミング）に到達したか否かを監視する。監視モジュール２２２は、更新タイミングに到達した場合に、その旨をアプリマーケットアプリ（通知受付部２１２）へ通知する。また、この例では、監視モジュール２２２は、ＭＦＰ１が起動すると、ＭＦＰ１が起動したことを示す起動通知をアプリマーケットアプリ（通知受付部２１２）へ通知する。さらに、この例では、監視モジュール２２２は、操作部２０がユーザの操作を受け付けていない状態が所定期間継続した場合、操作部２０の状態を、通常時（操作部２０が画面を表示し、ユーザの操作を受け付け可能な状態）よりも消費電力が少ない省エネ状態（スリープモード）に移行させる。例えば監視モジュール２２２は、ＣＰＵ２１の動作を停止させてもよい。
【００４７】
更新アプリケーション情報取得部２１５は、ＭＦＰ１（操作部２０）にインストール済みの１以上のアプリケーションのうち、更新が必要なアプリケーションを示す更新アプリケーション情報を、「サーバ」の一例であるアプリマーケットサーバ２から取得する。本実施形態では、更新アプリケーション情報取得部２１５は、更新を実施するタイミングを示す更新タイミングに到達した場合に、更新アプリケーション情報を要求する取得要求をアプリマーケットサーバ２へ送信し、その応答として、更新アプリケーション情報をアプリマーケットサーバ２から取得する。取得要求は、ＭＦＰ１にインストール済みの１以上のアプリケーションごとに、該アプリケーションを識別するプロダクトＩＤと、バージョンと、アプリ名とを示す情報を含む。この例では、取得要求は、プロダクトＩＤとバージョンとアプリ名との組を、インストール済みのアプリケーションと同じ数だけ含む。
【００４８】
ここでは、更新アプリケーション情報取得部２１５は、通知受付部２１２が監視モジュール２２２からの通知（更新タイミングの通知）を受け受けた場合に、前述の取得要求をアプリマーケットサーバ２へ送信し、その応答として、更新アプリケーション情報を取得する。なお、更新アプリケーション情報取得部２１５は、本体１０のＮＡＰＴ機能３２０を介して、アプリマーケットサーバ２と通信する。この例では、更新アプリケーション情報は、更新が必要な１以上のアプリケーションごとに、該アプリケーションを識別するプロダクトＩＤと、該アプリケーションの最新のバージョンと、アプリ名とを示す情報である。なお、更新が必要なアプリケーションが存在しない場合、取得要求の応答としては、更新が必要なアプリケーションは存在しないことを示す情報（以下の説明では、「更新不要情報」と称する場合がある）が通知されることになる。更新アプリケーション情報取得部２１５は、アプリマーケットサーバ２から更新アプリケーション情報を取得した場合、更新が必要なアプリケーションの数を示す情報をキャッシュデータとして本体１０のＨＤＤ１４に記憶する。なお、これに限らず、例えば更新アプリケーション情報そのものをキャッシュデータとして記憶する形態であってもよい。要するに、キャッシュデータは、更新が必要なアプリケーションに関する情報であればよく、その内容は任意である。一方、更新アプリケーション情報取得部２１５は、アプリマーケットサーバ２から更新不要情報を取得した場合は、ＨＤＤ１４内のキャッシュデータをクリアする。詳しくは後述する。
【００４９】
更新制御部２１６は、更新アプリケーション情報取得部２１５により取得された更新アプリケーション情報が示すアプリケーションを更新する制御を行う。この例では、更新制御部２１６は、更新アプリケーション情報が示す１以上のアプリケーションの更新を要求する更新要求を、インストーラ２２１へ送信する。ここでは、更新要求には、更新が必要なアプリケーションごとのプロダクトＩＤ、バージョン、アプリ名の組が含まれている。
【００５０】
更新制御部２１６からの更新要求を受けたインストーラ２２１は、更新が必要なアプリケーションの更新を行う。ここでは、更新制御部２１６とインストーラ２２１との組み合わせが、「更新アプリケーション情報取得部２１５により取得された更新アプリケーション情報が示すアプリケーションを更新する制御を行う機能（更新制御部）」に相当すると考えてもよいし、更新制御部２１６およびインストーラ２２１のうちの一方が、上記機能（更新制御部）に相当すると考えてもよい。また、インストーラ２２１は、「ファームウェア更新制御部」の一例であり、更新アプリケーション情報が示すアプリケーションを利用するためにファームウェアの更新が必要な場合、ファームウェアを更新する制御を行う。
【００５１】
ここで、ファームウェアの自動更新について説明する。図１４は、インストーラ２２１が有する機能の一例を示す図である。図１４に示すように、インストーラ２２１は、判定要求情報送信部２３０と、判定結果情報受信部２３１と、ファームウェア更新画面制御部２３２と、第１の制御部２３３と、インストール制御部２３４と、を有する。説明の便宜上、ここでは、ファームウェアの更新に必要な機能を例示しているが、インストーラ２２１が有する機能はこれらに限られるものではない。なお、前述したように、インストーラ２２１は、本体１０のＮＡＰＴ機能３２０を介して、アプリケーションサーバ３と通信する。
【００５２】
判定要求情報送信部２３０は、更新が必要なアプリケーションをＭＦＰ１で利用できるか否かを判定する妥当性判定を要求する判定要求情報を、アプリケーションサーバ３へ送信する。この判定要求情報は、更新要求に含まれるアプリケーションを識別するプロダクトＩＤと、該アプリケーションを利用するために必要な機能を提供するためのモジュールを識別するモジュール識別情報と、ＭＦＰ１に搭載された該モジュールのバージョン値を示すバージョン情報と、を含む。モジュールとは、特定の機能を提供するためのソフトウェアの単位を表す。また、バージョン値は、対応するモジュールの属性を示すとともに該モジュールが変更を重ねるたびに大きな値を示す。
【００５３】
本実施形態における判定要求情報は、更新要求に含まれる１以上のプロダクトＩＤを含む。さらに、本実施形態における判定要求情報は、ＭＦＰ１に搭載された複数のモジュールと１対１に対応する複数のモジュールＩＤ（モジュール識別情報の一例）ごとに、該モジュールＩＤで識別されるモジュールのバージョン値を示すバージョン情報を対応付けたモジュール情報を含んでいる。ただし、判定要求情報の形態は、これに限られるものではない。例えば判定要求情報は、更新要求に含まれるプロダクトＩＤと、該プロダクトＩＤで識別されるアプリケーションを利用するために必要な機能を提供するためのモジュールを識別するモジュールＩＤと、ＭＦＰ１に搭載された、該モジュールＩＤで識別されるモジュールのバージョン値を示すバージョン情報と、を含む一方、該プロダクトＩＤで識別されるアプリケーションを利用するために必要としないモジュールを識別するモジュールＩＤやそのバージョン値を示すバージョン情報を含まない形態であってもよい。
【００５４】
判定結果情報受信部２３１は、上述の判定要求情報に対する応答として、上述の妥当性判定の結果を示す判定結果情報をアプリケーションサーバ３から受信する。アプリケーションサーバ３の具体的な構成については後述する。
【００５５】
ファームウェア更新画面制御部２３２は、判定結果情報受信部２３１により受信された判定結果情報が、更新が必要なアプリケーション（つまり、更新要求に含まれるプロダクトＩＤで識別されるアプリケーション）はＭＦＰ１で利用できないことを示す場合、ファームウェアの更新を行うか否かの指示を受け付けるためのファームウェア更新画面を表示する制御を行う。本実施形態では、ファームウェア更新画面制御部２３２は、図１５に示すようなファームウェア更新画面を操作パネル２７に表示する制御を行う。この例では、ユーザは、図１５に示す「ＯＫ」ボタンを押下することで、ファームウェアの更新を指示することができる。
【００５６】
図１４の説明を続ける。第１の制御部２３３は、判定結果情報受信部２３１により受信された判定結果情報が、更新が必要なアプリケーションはＭＦＰ１で利用できないことを示す場合、ＭＦＰ１の動作を制御するファームウェアを更新する制御を行う。この例では、第１の制御部２３３は、上述のファームウェア更新画面を介して、ファームウェアを更新する指示を受け付けた場合、ファームウェアを更新する制御を行う。
【００５７】
本実施形態では、第１の制御部２３３は、判定結果情報受信部２３１により受信された判定結果情報が、更新が必要なアプリケーションはＭＦＰ１で利用できないことを示す場合、最新版のファームウェアを示す第１のファームウェアをＭＦＰ１に導入（インストール）する制御を行う。ここでは、第１のファームウェアは、操作部２０の動作を制御する操作部用ファームウェアの最新版を示す第２のファームウェアと、本体１０の動作を制御する本体用ファームウェアの最新版を示す第３のファームウェアとから構成される。また、図１６に示すように、第１の制御部２３３は、第２の制御部２４０と、第３の制御部２５０とを含む。第２の制御部２４０は、第２のファームウェアを操作部２０に導入する制御を行う。第３の制御部２５０は、第３のファームウェアを本体１０に導入する制御を行う。
【００５８】
説明の便宜上、第２の制御部２４０が有する機能を説明する前に、第３の制御部２５０が有する機能について説明する。図１７は、第３の制御部２５０が有する機能の一例を示す図である。図１７に示すように、第３の制御部２５０は、パッケージ取得部２５１と、分解部２５２と、アドレス情報送信部２５３と、第１の導入制御部２５４とを有する。
【００５９】
パッケージ取得部２５１は、第２のファームウェアと第３のファームウェアとが一体化されたパッケージ（つまり、操作部用ファームウェアの最新版と、本体用ファームウェアの最新版とが一体化されたパッケージ、以下の説明では「最新版のパッケージ」と称する場合がある）を取得し、取得したパッケージを記憶部（この例ではＨＤＤ１４）に保存する。本実施形態では、パッケージ取得部２５１は、後述の指示部２４１からの指示に従って、最新版のパッケージを要求するパッケージリクエストをファームウェア配信サーバ４に送信し、その応答として、最新版のパッケージをファームウェア配信サーバ４から取得する。
【００６０】
分解部２５２は、パッケージ取得部２５１により取得された最新版のパッケージを、第２のファームウェアと第３のファームウェアに分解する。パッケージの分解方法としては、公知の様々な方法を利用することができる。
【００６１】
アドレス情報送信部２５３は、記憶部（この例ではＨＤＤ１４）のうち第２のファームウェアが記憶された領域（記憶領域）を特定可能なアドレス情報（ＨＤＤ１４における第２のファームウェアの所在を示す情報）を第２の制御部２４０へ送信する。
【００６２】
第１の導入制御部２５４は、分解部２５２により分解された第３のファームウェアを本体１０に導入する制御を行う。この例では、第１の導入制御部２５４は、第３のファームウェアを本体１０にインストールする制御を行う。より具体的には、第３のファームウェアを構成するプログラムやデータなどのファイルを展開して必要な設定を行い、ＯＳの起動中は改変できないファイルについては、本体１０の再起動を行って設定する。
【００６３】
次に、第２の制御部２４０が有する機能について説明する。図１８は、第２の制御部２４０が有する機能の一例を示す図である。図１８に示すように、第２の制御部２４０は、指示部２４１と、アドレス情報受信部２４２と、読出部２４３と、第２の導入制御部２４４とを有する。
【００６４】
指示部２４１は、上述の判定結果情報受信部２３１により受信された判定結果情報が、更新が必要なアプリケーションはＭＦＰ１で利用できないことを示す場合、最新版のパッケージの取得を第３の制御部２５０（パッケージ取得部２５１）に指示する。
【００６５】
アドレス情報受信部２４２は、第３の制御部２５０から前述のアドレス情報を受信する。読出部２４３は、記憶部（この例ではＨＤＤ１４）のうち、アドレス情報受信部２４２により受信されたアドレス情報により特定される領域から、第２のファームウェアを読み出す。
【００６６】
第２の導入制御部２４４は、読出部２４３により読み出された第２のファームウェアを操作部２０に導入する制御を行う。この例では、第２の導入制御部２４４は、第２のファームウェアを操作部２０にインストールする制御を行う。より具体的には、第２のファームウェアを構成するプログラムやデータなどのファイルを展開して必要な設定を行い、ＯＳの起動中は改変できないファイルについては、操作部２０の再起動を行って設定する。
【００６７】
本実施形態では、操作部２０が上述の第２の制御部２４０を有し、本体１０が上述の第３の制御部２５０を有している。
【００６８】
以上のようにして、第１の制御部２３３は、判定結果情報受信部２３１により受信された判定結果情報が、更新が必要なアプリケーションはＭＦＰ１で利用できないことを示す場合、最新版のファームウェアを示す第１のファームウェアをＭＦＰ１に導入する制御を行う。第１の制御部２３３による制御が行われた後、判定要求情報送信部２３０は、アプリケーションサーバ３へ上述の判定要求情報を再送信し、以上の処理が繰り返される。
【００６９】
以下、図１９〜図２３を用いて、ファームウェアの更新手順を説明する。まず、図１９に示すように、第３の制御部２５０（パッケージ取得部２５１）は、第２の制御部２４０（指示部２４１）からの指示に従って、ファームウェア配信サーバ４から、最新版のパッケージを取得し、取得したパッケージをＨＤＤ１４に保存する。
【００７０】
次に、図２０に示すように、第３の制御部２５０（分解部２５２）は、ＨＤＤ１４に保存したパッケージを、第２のファームウェアと第３のファームウェアに分解する。
【００７１】
次に、図２１に示すように、第３の制御部２５０（第１の導入制御部２５４）は、第３のファームウェアを構成するプログラムやデータなどのファイルを展開して必要な設定を行う。なお、この段階では、本体１０の再起動は行わない。
【００７２】
次に、第３の制御部２５０は、第２の制御部２４０に、第２のファームウェアの導入を指示（操作部用ファームウェアの更新を指示）する。この例では、第３の制御部２５０（アドレス情報送信部２５３）は、ＨＤＤ１４のうち第２のファームウェアが記憶された領域を特定可能なアドレス情報を第２の制御部２４０へ送信することで、第２のファームウェアの導入を指示することになる。第２の制御部２４０（読出部２４３）は、ＨＤＤ１４のうち、第３の制御部２５０から受信したアドレス情報により特定される領域から、第２のファームウェアを読み出す。そして、図２２に示すように、第２の制御部２４０（第２の導入制御部２４４）は、第２のファームウェアを構成するプログラムやデータなどのファイルを展開して必要な設定を行う。そして、ＯＳの起動中は改変できないファイル以外の設定が完了した後、操作部２０の再起動を行い、ＯＳの起動中は改変できないファイルの設定を行う。これにより、操作部２０に対する第２のファームウェアの導入が完了する。
【００７３】
操作部２０の再起動が完了し、操作部２０と本体１０の再接続後、図２３に示すように、第３の制御部２５０は、第２の制御部２４０に、再度、第２のファームウェアの導入を指示する。この段階では、操作部２０に対する第２のファームウェアの導入は完了しているので、この指示を受けた第２の制御部２４０は、即時に、第２のファームウェアの導入が完了していることを示す応答を第３の制御部２５０へ返す。この応答を受けた第３の制御部２５０（第１の導入制御部２５４）は、本体１０の再起動を行い、ＯＳの起動中は改変できないファイルの設定を行う。これにより、本体１０に対する第３のファームウェアの導入も完了する。
【００７４】
以上のようにして、ＭＦＰ１に対する第１のファームウェアの導入が完了した後、ＭＦＰ１は、上述の妥当性判定を再びアプリケーションサーバ３に要求する。つまり、ＭＦＰ１に対する第１のファームウェアの導入が完了した後、判定要求情報送信部２３０は、再度、上述の判定要求情報をアプリケーションサーバ３へ送信する。この場合の判定要求情報に含まれるモジュール情報は、最新のモジュール情報となる（プロダクトＩＤは前回と同じ）。上記と同様に、この判定要求情報を受信したアプリケーションサーバ３は、上述の妥当性判定を行い、その結果を示す判定結果情報をＭＦＰ１へ送信する。
【００７５】
図１４の説明を続ける。インストール制御部２３４は、判定結果情報受信部２３１により受信された判定結果情報が、更新が必要なアプリケーションはＭＦＰ１で利用できることを示す場合、該アプリケーションのダウンロードをアプリケーションサーバ３に要求し、アプリケーションサーバ３から該アプリケーションをダウンロードする。そして、そのダウンロードしたアプリケーションをＭＦＰ１にインストールする。これにより、該アプリケーションの更新が完了する。
【００７６】
再び図７に戻って説明を続ける。報知メッセージ通知部２１７は、更新が必要なアプリケーションが存在する場合（典型的にはアプリマーケットサーバ２から前述の更新アプリケーション情報が取得された場合）、報知メッセージ表示モジュール２２３に対して、報知メッセージの表示を指示する。この指示を受けた報知メッセージ表示モジュール２２３は、報知メッセージを操作パネル２７に表示する。ここでは、報知メッセージ通知部２１７と報知メッセージ表示モジュール２２３との組み合わせが、「更新が必要なアプリケーションが存在する場合、その旨を報知する報知メッセージを表示部に表示する機能（報知メッセージ表示制御部）」に相当すると考えてもよいし、報知メッセージ通知部２１７および報知メッセージ表示モジュール２２３のうちの一方が、「報知メッセージ表示制御部」に相当すると考えてもよい。図２４は、報知メッセージの一例を示す図である。
【００７７】
次に、アプリマーケットサーバ２の構成を説明する。図２５は、アプリマーケットサーバ２のハードウェア構成の一例を示す図である。なお、アプリケーションサーバ３、ファームウェア配信サーバ４のハードウェア構成も図２５の構成と同様である。
【００７８】
図２５に示すように、アプリマーケットサーバ２は、ＣＰＵ３２と、ＲＯＭ３３と、ＲＡＭ３４と、通信Ｉ／Ｆ３５と、入力装置３６と、表示装置３７とを備える。ＣＰＵ３２は、アプリマーケットサーバ３の動作を統括的に制御する。ＲＯＭ３３は、プログラム等の各種のデータを記憶する不揮発性のメモリである。ＲＡＭ３４は、ＣＰＵ３２が実行する各種の処理の作業領域（ワークエリア）として機能する揮発性のメモリである。通信Ｉ／Ｆ３５は、ネットワーク８と接続するためのインタフェースである。入力装置３６は、ユーザによる操作の入力に用いられるデバイスであり、例えばマウスやキーボードなどで構成される。表示装置３７は各種の情報を表示するデバイスであり、例えば液晶型ディスプレイ装置などで構成される。
【００７９】
図２６は、アプリマーケットサーバ２が有する機能の一例を示す図である。図２６に示すように、アプリマーケットサーバ２は、アプリケーション一覧画面保持部２６１と、アプリケーション一覧画面送信部２６２と、アプリケーション情報記憶部２６３と、判断部２６４と、更新アプリケーション情報送信部２６６と、更新不要情報送信部２６７と、を有する。説明の便宜上、図２６では、本実施形態に関する機能を主に例示しているが、アプリマーケットサーバ２が有する機能は、これらに限られるものではない。
【００８０】
アプリケーション一覧画面保持部２６１は、上述のアプリケーション一覧画面を保持する。アプリケーション一覧画面送信部２６２は、ＭＦＰ１から上述の表示リクエストを受信すると、その応答として、アプリケーション一覧画面保持部２６１に保持されているアプリケーション一覧画面をＭＦＰ１に送信する。
【００８１】
アプリケーション情報記憶部２６３は、アプリケーション一覧画面に表示する複数のアプリケーションごとに、プロダクトＩＤと、バージョンと、アプリ名とを対応付けたアプリケーション情報を記憶する。
【００８２】
判断部２６４は、ＭＦＰ１から前述の取得要求を受信した場合に、更新が必要なアプリケーションの有無を判断する。本実施形態では、判断部２６４は、アプリケーション情報記憶部２６３に記憶されたアプリケーション情報を参照して、前述の取得要求に含まれる組（プロダクトＩＤとバージョンとアプリ名との組）ごとに、該組に含まれるプロダクトＩＤと一致するプロダクトＩＤに対応付けられたバージョンが、該組に含まれるバージョンと同じであるか否かを判断する。バージョンが異なる場合、判断部２６４は、その組に含まれるプロダクトＩＤで識別されるアプリケーションは更新が必要であると判断する。
【００８３】
更新アプリケーション情報送信部２６６は、判断部２６４により、更新が必要なアプリケーションが存在すると判断された場合、取得要求への応答として、前述の更新アプリケーション情報をＭＦＰ１へ送信する。更新アプリケーション情報は、判断部２６４により更新が必要であると判断された１以上のアプリケーションごとに、該アプリケーションを識別するプロダクトＩＤと、バージョンと、アプリ名とを示す情報である。
【００８４】
更新不要情報送信部２６７は、判断部２６４により、更新が必要なアプリケーションが存在しないと判断された場合、取得要求への応答として、前述の更新不要情報をＭＦＰ１へ送信する。
【００８５】
本実施形態では、上述のアプリマーケットサーバ２が有するアプリケーション一覧画面送信部２６２、判断部２６４、更新アプリケーション情報送信部２６６および更新不要情報送信部２６７の各々の機能は、ＣＰＵ３２がＲＯＭ３３等に格納されたプログラムを実行することにより実現されるが、これに限らず、例えば専用のハードウェア回路（半導体集積回路等）により実現されてもよい。また、上述のアプリケーション一覧画面保持部２６１、アプリケーション情報記憶部２６３は、例えばＲＯＭ３３または例えばＨＤＤなどの補助記憶装置等により実現される。なお、ここでは、アプリケーション一覧画面送信部２６２、更新アプリケーション情報送信部２６６、更新不要情報送信部２６７の機能は、プログラムを実行するＣＰＵ３２と通信Ｉ／Ｆ３５との組み合わせにより実現されると考えてもよい。例えばアプリケーション一覧画面送信部２６２の機能は、ＣＰＵ３２が、アプリケーション一覧画面をＭＦＰ１へ送信するよう、通信Ｉ／Ｆ３５を制御することにより実現される。同様に、更新アプリケーション情報送信部２６６の機能は、ＣＰＵ３２が、更新アプリケーション情報をＭＦＰ１へ送信するよう、通信Ｉ／Ｆ３５を制御することにより実現される。同様に、更新不要情報送信部２６７の機能は、ＣＰＵ３２が、更新不要情報をＭＦＰ１へ送信するよう、通信Ｉ／Ｆ３５を制御することにより実現される。
【００８６】
次に、図２７を用いて、アプリケーションサーバ３が有する機能の一例を説明する。図２７に示すように、アプリケーションサーバ３は、対応情報記憶部３２１と、判定部３２２と、判定結果情報送信部３２３と、アプリケーション保持部３２４と、アプリケーション送信部３２５とを有する。説明の便宜上、図２７では、本実施形態に関する機能を主に例示しているが、アプリケーションサーバ３が有する機能は、これらに限られるものではない。
【００８７】
対応情報記憶部３２１は、対応情報を記憶する。対応情報は、複数のアプリケーションと１対１に対応する複数のアプリケーション識別情報（この例ではプロダクトＩＤ）ごとに、該プロダクトＩＤで識別されるアプリケーションを利用するために必要な機能を提供するためのモジュールを識別するモジュール識別情報（この例ではモジュールＩＤ）と、該モジュール識別情報で識別されるモジュールの最低限のバージョン値（対応するアプリケーションを利用するために必要な最低限のバージョン値）を示す下限バージョン情報と、を対応付けた情報である。図２８は、対応情報の一例を示す図である。
【００８８】
図２７の説明を続ける。判定部３２２は、ＭＦＰ１から上述の判定要求情報を受信した場合、妥当性判定を行う。より具体的には、判定部３２２は、ＭＦＰ１から受信した上述の判定要求情報と、対応情報記憶部３２１に記憶された対応情報とに基づいて、上述の判定要求情報に含まれるプロダクトＩＤで識別されるアプリケーションをＭＦＰ１で利用できるか否かを判定する。さらに言えば、判定部３２２は、上述の対応情報に含まれるプロダクトＩＤとモジュールＩＤの組み合わせのうち、判定要求情報に含まれるプロダクトＩＤとモジュールＩＤの組み合わせと一致する組み合わせを特定し、その特定した組み合わせに対応付けられた下限バージョン情報が示すバージョン値が、判定要求情報に含まれるバージョン情報が示すバージョン値よりも大きい場合、上述の判定要求情報に含まれるプロダクトＩＤで識別されるアプリケーションはＭＦＰ１で利用できないと判定する。一方、下限バージョン情報が示すバージョン値が、上述の判定要求情報に含まれるバージョン情報が示すバージョン値以下の場合は、上述の判定要求情報に含まれるプロダクトＩＤで識別されるアプリケーションはＭＦＰ１で利用できると判定する。
【００８９】
本実施形態における妥当性判定の手順は以下のとおりであるが、これに限られるものではない。判定部３２２は、ＭＦＰ１から上述の判定要求情報を受信した場合、上述の対応情報に含まれる複数のプロダクトＩＤのうち、上述の判定要求情報に含まれるプロダクトＩＤと一致するプロダクトＩＤを特定する。そして、上述の対応情報において、その特定したプロダクトＩＤに対応付けられたモジュールＩＤを特定し、上述の判定要求情報に含まれる上述のモジュール情報（ＭＦＰ１に搭載された複数のモジュールと１対１に対応する複数のモジュールＩＤごとにバージョン情報を対応付けた情報）に含まれる複数のモジュールＩＤの中から、その特定したモジュールＩＤと一致するモジュールＩＤを選択（説明の便宜上、この選択したモジュールＩＤを「選択モジュールＩＤ」と称する）するとともに、モジュール情報において該選択モジュールＩＤに対応付けられたバージョン情報を選択する（説明の便宜上、この選択したバージョン情報を「選択バージョン情報」と称する）。そして、上述の対応情報に含まれるプロダクトＩＤとモジュールＩＤの組み合わせのうち、上述の判定要求情報に含まれるプロダクトＩＤと、上述の選択モジュールＩＤとの組み合わせと一致する組み合わせを特定し、その特定した組み合わせに対応付けられた下限バージョン情報が示すバージョン値が、上述の選択バージョン情報が示すバージョン値よりも大きい場合、上述の判定要求情報に含まれるプロダクトＩＤで識別されるアプリケーションはＭＦＰ１で利用できないと判定する。一方、下限バージョン情報が示すバージョン値が、上述の選択バージョン情報が示すバージョン値以下の場合は、上述の判定要求情報に含まれるプロダクトＩＤで識別されるアプリケーションはＭＦＰ１で利用できると判定する。
【００９０】
図２７に示す判定結果情報送信部３２３は、上述の妥当性判定の結果を示す判定結果情報をＭＦＰ１へ送信する。アプリケーション保持部３２４は、複数のアプリケーションを保持する。アプリケーション送信部３２５は、ＭＦＰ１からの要求に応じて、アプリケーション保持部３２４に保持されたアプリケーションをＭＦＰ１へ送信する。以上が、アプリケーションサーバ３の構成である。
【００９１】
本実施形態では、上述のアプリケーションサーバ３の各部の機能（判定部３２２、判定結果情報送信部３２３、アプリケーション送信部３２５等）は、ＣＰＵ３０１がＲＯＭ３０２等に格納されたプログラムを実行することにより実現されるが、これに限らず、例えば上述のアプリケーションサーバ３の各部の機能のうちの少なくとも一部が専用のハードウェア回路（半導体集積回路等）により実現されてもよい。また、上述の対応情報記憶部３２１や上述のアプリケーション保持部３２４は、例えばＲＯＭ３０２等により実現される。なお、ここでは、判定結果情報送信部３２３およびアプリケーション送信部３２５の各々の機能は、プログラムを実行するＣＰＵ３０１と通信Ｉ／Ｆ３０４との組み合わせにより実現されると考えてもよい。例えば判定結果情報送信部３２３の機能は、ＣＰＵ３０１が、判定結果情報をＭＦＰ１へ送信するよう、通信Ｉ／Ｆ３０４を制御することにより実現される。また、例えばアプリケーション送信部３２５の機能は、ＣＰＵ３０１が、アプリケーションをＭＦＰ１へ送信するよう、通信Ｉ／Ｆ３０４を制御することにより実現される。
【００９２】
次に、図２９を用いて、ファームウェア配信サーバ４が有する機能の一例について説明する。図２９に示すように、ファームウェア配信サーバ４は、パッケージ保持部４１１と、パッケージ送信部４１２とを有する。説明の便宜上、図２９では、本実施形態に関する機能を主に例示しているが、ファームウェア配信サーバ４が有する機能は、これらに限られるものではない。
【００９３】
パッケージ保持部４１１は、最新版のパッケージを保持する。パッケージ送信部４１２は、ＭＦＰ１から上述のパッケージリクエストを受信すると、その応答として、パッケージ保持部４１１に保持されている最新版のパッケージをＭＦＰ１に送信する。
【００９４】
本実施形態では、上述のファームウェア配信サーバ４が有するパッケージ送信部４１２の機能は、ＣＰＵ３０１がＲＯＭ３０２等に格納されたプログラムを実行することにより実現されるが、これに限らず、例えば専用のハードウェア回路（半導体集積回路等）により実現されてもよい。また、上述のパッケージ保持部４１１は、例えばＲＯＭ３０２または例えばＨＤＤなどの補助記憶装置等により実現される。なお、ここでは、パッケージ送信部４１２の機能は、プログラムを実行するＣＰＵ３０１と通信Ｉ／Ｆ３０４との組み合わせにより実現されると考えてもよい。例えばパッケージ送信部４１２の機能は、ＣＰＵ３０１が、パッケージをＭＦＰ１へ送信するよう、通信Ｉ／Ｆ３０４を制御することにより実現される。
【００９５】
次に、本実施形態のシステム１００の動作手順について説明する。図３０は、ユーザによる更新時刻の設定入力を受け付けた場合のＭＦＰ１の動作手順の一例を示すシーケンス図である。ユーザは、設定部ＵＩ部２１３により表示された画面（更新時刻設定画面）に対して、設定したい更新時刻を入力する（ステップＳ１００）。アプリケーション更新実行部２２０（設定部２１４）は、更新時刻設定画面で受け付けた更新時刻を、操作部２０の記憶部（例えばフラッシュメモリ２４等）に記憶する（ステップＳ１０１）。そして、アプリケーション更新実行部２２０（設定部２１４）は、監視モジュール２２２に対して、自動更新の設定を指示する（ステップＳ１０２）。この指示の中には、ユーザから入力された更新時刻を示す情報が含まれている。この指示を受けた監視モジュール２２２は、本体１０に対して、更新時刻を通知する（ステップＳ１０３）。その後、監視モジュール２２２は、操作部２０がユーザの操作を受け付けていない状態が所定期間継続した場合、操作部２０の状態をスリープモードに移行させる（ステップＳ１０４）。一方、Ｗｅｂサーバ３０１を介して監視モジュール２２２からの更新時刻を受け取った本体１０のＳＣＳ３１２は、その受け取った更新時刻を本体１０の記憶部（例えばＨＤＤ１４等）に格納し、計時を開始する（ステップＳ１０５）。この例では、本体１０のＳＣＳ３１２が、更新時刻（更新タイミング）に到達したか否かを検出する機能を有している。また、ＳＣＳ３１２は、本体１０が印刷等の画像処理を実行しない状態（アイドル状態）が所定期間継続した場合は、計時機能およびネットワーク８と通信する機能のみが動作可能な省エネモード（画像処理を実行可能な通常状態よりも消費電力が少ない状態）に移行させる（ステップＳ１０６）。なお、省エネモードの形態は任意であり、計時機能およびネットワーク８と通信する機能以外の機能も動作可能な状態であってもよい。要するに、画像処理を実行可能な通常の状態よりも消費電力が少ない状態であればよい。
【００９６】
図３１は、ＭＦＰ１（操作部２０）の起動時の動作手順の一例を示すシーケンス図である。ＭＦＰ１が起動すると（電源ＯＮすると）、監視モジュール２２２は、アプリマーケットアプリに対して、ＭＦＰ１が起動した旨を示す起動通知を送信する（ステップＳ１）。ここで、ＭＦＰ１の起動は、本体１０が起動した場合と操作部２０が起動した場合をともに含む。具体的には、本体１０の電源スイッチのＯＮが検知された後、または、操作部２０のスリープ状態からの復帰が検知された後に、監視モジュール２２２が起動通知を行う。起動通知を受けた通知受付部２１２は、アプリケーション更新実行部２２０に対して、その起動通知を通知する（ステップＳ２）。この起動通知を受けたアプリケーション更新実行部２２０は、前述のキャッシュデータの有無を確認する（ステップＳ３）。キャッシュデータが存在する場合、アプリケーション更新実行部２２０（報知メッセージ通知部２１７）は、報知メッセージ表示モジュール２２３に対して、報知メッセージの表示を指示する（ステップＳ４）。この指示を受けた報知メッセージ表示モジュール２２３は、報知メッセージを操作パネル２７に表示する制御を行う（ステップＳ５）。
【００９７】
また、アプリケーション更新実行部２２０（設定部２１４）は、監視モジュール２２２に対して、自動更新の設定を指示する（ステップＳ６）。なお、この指示の中には、操作部２０の記憶部に記憶された更新時刻（図３０のようにユーザにより設定された更新時刻またはデフォルトの更新時刻）を示す情報が含まれている。この指示を受けた監視モジュール２２２は、本体１０に対して、更新時刻を通知する（ステップＳ７）。その後、監視モジュール２２２は、操作部２０がユーザの操作を受け付けていない状態が所定期間継続した場合、操作部２０の状態をスリープモードに移行させる（ステップＳ８）。一方、Ｗｅｂサーバ３０１を介して監視モジュール２２２からの更新時刻を受け取った本体１０のＳＣＳ３１２は、その受け取った更新時刻を本体１０の記憶部に格納し、計時を開始する（ステップＳ９）。また、ＳＣＳ３１２は、本体１０のアイドル状態が所定期間継続した場合は、本体１０を省エネモードに移行させる（ステップＳ１０）。
【００９８】
次に、図３２を用いて、更新タイミング（更新時刻）に到達した場合のＭＦＰ１の動作手順の一例を説明する。本体１０のＳＣＳ３１２は、更新時刻に到達したことを検出すると（ステップＳ２１）、操作部２０の監視モジュール２２２に対して、更新時刻に到達した旨を通知する（ステップＳ２２）。この通知を受けた監視モジュール２２２は、通知受付部２１２に対して、更新時刻に到達した旨を通知し（ステップＳ２３）、通知受付部２１２は、アプリケーション更新実行部２２０に対して、更新時刻に到達した旨を通知する（ステップＳ２４）。この通知を受けたアプリケーション更新実行部２２０（更新アプリケーション情報取得部２１５）は、アプリマーケットサーバ２に対して、前述の取得要求を送信する（ステップＳ２５）。この例では、アプリケーション更新実行部２２０は、本体１０のＮＡＰＴ機能３２０を介して、前述の取得要求をアプリマーケットサーバ２へ送信する。ＭＦＰ１からの取得要求を受けたアプリマーケットサーバ２は、更新が必要なアプリケーションの有無を判断する（ステップＳ２６）。具体的な内容は前述したとおりであるが、ここでは、更新が必要なアプリケーションが存在すると判断されたことを前提として以下の説明を続ける。アプリマーケットサーバ２は、取得要求への応答として、前述の更新アプリケーション情報をＭＦＰ１へ返信する（ステップＳ２７）。
【００９９】
アプリケーション更新実行部２２０（更新アプリケーション情報取得部２１５）は、本体１０のＮＡＰＴ機能３２０を介して、アプリマーケットサーバ２から更新アプリケーション情報を取得する。そして、アプリケーション更新実行部２２０は、更新アプリケーション情報を元に、更新が必要なアプリケーション数を算出する（ステップＳ２８）。そして、アプリケーション更新実行部２２０（報知メッセージ通知部２１７）は、報知メッセージ表示モジュール２２３に対して、更新が必要なアプリケーションの数を含み、更新が必要なアプリケーションが存在することを報知するための報知メッセージの表示を指示する（ステップＳ２９）。この指示を受けた報知メッセージ表示モジュール２２３は、報知メッセージを操作パネル２７に表示する（ステップＳ３０）。また、アプリケーション更新実行部２２０は、更新が必要なアプリケーションの数を示す情報をキャッシュデータとして本体１０のＨＤＤ１４に保存する（ステップＳ３１）。
【０１００】
また、アプリケーション更新実行部２２０（更新制御部２１６）は、インストーラ２２１に対して、更新が必要なアプリケーションのうち更新が禁止されていないアプリケーションの更新を要求する前述の更新要求を送信する（ステップＳ３２）。この更新要求を受けたインストーラ２２１は、更新が必要なアプリケーションの更新を行う。このときの詳細な動作手順については図３３を用いて後述するが、インストーラ２２１は、本体１０のＮＡＰＴ機能３２０を介して、更新対象のアプリケーションのダウンロードをアプリケーションサーバ３（外部サーバの一例）に要求し（ステップＳ３３）、アプリケーションサーバ３から該アプリケーションをダウンロードする（ステップＳ３４）。そして、インストーラ２２１は、そのダウンロードしたアプリケーションをＭＦＰ１にインストールする（ステップＳ３５）。
【０１０１】
要するに、本実施形態では、操作部２０は、操作部２０にインストール済みの１以上のアプリケーションを更新するための機能（更新実行部）を備える。更新実行部は、更新対象のアプリケーションの自動更新を行う時刻である更新時刻（更新タイミング）を本体１０に送信し、更新時刻に到達した場合は、本体１０から、更新時刻に到達した旨の通知を受信する。そして、更新実行部は、更新対象のアプリケーションのダウンロードを、本体１０を介して外部サーバ（この例ではアプリケーションサーバ３）へ要求して取得し、該取得したアプリケーションをインストールする（操作部２０にインストール済みのアプリケーションのうち更新対象のアプリケーションを更新する）。上記更新実行部は、上述の更新アプリケーション情報取得部２１５と、上述の更新制御部２１６とを少なくとも含む更新アプリケーション（この例ではアプリマーケットアプリ）と、インストーラ２２１とを含む。操作部２０は、更新アプリケーションおよびインストーラ２２１を有している。
【０１０２】
また、上述したように、操作部２０と本体１０は互いに異なるＩＰアドレスを有し、本体１０は、操作部２０のＩＰアドレスを本体１０のＩＰアドレスに変換する変換部（ＮＡＰＴ機能３２０）を有する。更新実行部は、本体１０の変換部を介して、外部サーバから更新対象のアプリケーションをダウンロードする。
【０１０３】
図３２の説明を続ける。また、アプリケーション更新実行部２２０（設定部２１４）は、監視モジュール２２２に対して、自動更新の設定を指示する（ステップＳ３６）。この指示を受けた監視モジュール２２２は、本体１０に対して、更新時刻を通知する（ステップＳ３７）。Ｗｅｂサーバ３０１を介して監視モジュール２２２からの更新時刻を受け取った本体１０のＳＣＳ３１２は、その受け取った更新時刻を本体１０の記憶部に格納し、計時を開始する（ステップＳ３８）。また、ＳＣＳ３１２は、本体１０のアイドル状態が所定期間継続した場合は、本体１０を省エネモードに移行させる（ステップＳ３９）。
【０１０４】
図３３は、図３２のステップＳ３２の後にアプリケーションの更新を行う場合のＭＦＰ１の動作手順の一例を示すシーケンス図である。インストーラ２２１は、本体１０のＮＡＰＴ機能３２０を介して、前述の判定要求情報をアプリケーションサーバ３へ送信する（ステップＳ３０）。判定要求情報を受信したアプリケーションサーバ３は、前述の妥当性判定を行い（ステップＳ３１）、その結果を示す判定結果情報をＭＦＰ１へ送信する（ステップＳ３２）。インストーラ２２１は、本体１０のＮＡＰＴ機能３２０を介して、判定結果情報を受信する。
【０１０５】
アプリケーションサーバ３から受信した判定結果情報が、判定要求情報に含まれるプロダクトＩＤで識別されるアプリケーションはＭＦＰ１で利用できないことを示す場合、インストーラ２２１は、前述のファームウェア更新画面を表示する制御を行う（ステップＳ３３）。なお、アプリケーションサーバ３から受信した判定結果情報が、判定要求情報に含まれるプロダクトＩＤで識別されるアプリケーションはＭＦＰ１で利用できないことを示す場合は後述のステップＳ５１以降の処理となる。ステップＳ３３の後、インストーラ２２１は、ファームウェア更新画面を介して、ファームウェアを更新する指示を受け付けた場合（ステップＳ３４）、本体１０のＳＣＳ３１２（パッケージ取得部２５１）に対して、最新版のパッケージの取得を指示する（ステップＳ３５）。この指示を受けたＳＣＳ３１２（パッケージ取得部２５１）は、前述のパッケージリクエストをファームウェア配信サーバ４に送信し（ステップＳ３６）、その応答として、最新版のパッケージをファームウェア配信サーバ４から取得し、取得した最新版のパッケージをＨＤＤ１４に保存する（ステップＳ３７）。
【０１０６】
次に、ＳＣＳ３１２（分解部２５２）は、ステップＳ３７で取得した最新版のパッケージを、第２のファームウェアと第３のファームウェアに分解する（ステップＳ３８）。そして、ＳＣＳ３１２（第１の導入制御部２５４）は、ステップＳ３８の分解で得られた第３のファームウェアを構成するプログラムやデータなどのファイルを展開して必要な設定を行う（ステップＳ３９）。なお、この段階では、本体１０の再起動は行わない。
【０１０７】
次に、ＳＣＳ３１２は、第２のファームウェアの導入をインストーラ２２１に指示する。前述したように、この例では、ＳＣＳ３１２（アドレス情報送信部２５３）は、ＨＤＤ１４のうち第２のファームウェアが記憶された領域を特定可能なアドレス情報をインストーラ２２１へ送信する（ステップＳ４０）。インストーラ２２１（読出部２４３）は、ＨＤＤ１４のうち、ＳＣＳ３１２から受信したアドレス情報により特定される領域から、第２のファームウェアを読み出す（ステップＳ４１）。次に、インストーラ２２１は、第２のファームウェアを構成するプログラムやデータなどのファイルを展開して必要な設定を行う（ステップＳ４２）。そして、ＯＳの起動中は改変できないファイル以外の設定が完了した後、操作部２０の再起動を行い、ＯＳの起動中は改変できないファイルの設定を行う（ステップＳ４３）。これにより、操作部２０に対する第２のファームウェアの導入が完了する。
【０１０８】
操作部２０の再起動が完了し、操作部２０と本体１０の再接続後、本体１０のＳＣＳ３１２は、インストーラ２２１に、再度、第２のファームウェアの導入を指示する（ステップＳ４４）。この段階では、操作部２０に対する第２のファームウェアの導入は完了しているので、この指示を受けたインストーラ２２１は、即時に、第２のファームウェアの導入が完了していることを示す応答をＳＣＳ３１２へ返す（ステップＳ４５）。この応答を受けたＳＣＳ３１２（第１の導入制御部２５４）は、本体１０の再起動を行い、ＯＳの起動中は改変できないファイルの設定を行う（ステップＳ４６）。これにより、本体１０に対する第３のファームウェアの導入も完了する。
【０１０９】
ステップＳ４６の処理が完了すると、ＳＣＳ３１２は、本体１０に対する第３のファームウェアの導入が完了したことをインストーラ２２１へ通知する（ステップＳ４７）。この通知を受けたインストーラ２２１は、アプリケーションサーバ３に対して、再度、妥当性判定を要求する。より具体的には、インストーラ２２１は、本体１０のシステムモジュールからモジュール情報を再取得し、その再取得したモジュール情報と、更新が必要なアプリケーションを識別するプロダクトＩＤ（更新要求に含まれていたプロダクトＩＤ）とを含む判定要求情報を、本体１０のＮＡＰＴ機能３２０を介してアプリケーションサーバ３へ送信する（ステップＳ４８）。上記と同様に、判定要求情報を受信したアプリケーションサーバ３は、上述の妥当性判定を行い（ステップＳ４９）、その結果を示す判定結果情報をＭＦＰ１へ送信する（ステップＳ５０）。インストーラ２２１は、本体１０のＮＡＰＴ機能３２０を介して判定結果情報を受信する。
【０１１０】
アプリケーションサーバ３から受信した判定結果情報が、判定要求情報に含まれるプロダクトＩＤで識別されるアプリケーションはＭＦＰ１で利用できることを示す場合、インストーラ２２１（インストール制御部２３４）は、本体１０のＮＡＰＴ機能３２０を介して、該アプリケーションのダウンロードをアプリケーションサーバ３に要求し（ステップＳ５１）、アプリケーションサーバ３から該アプリケーションをダウンロードする（ステップＳ５２）。そして、インストーラ２２１（インストール制御部２３４）は、そのダウンロードしたアプリケーションをＭＦＰ１にインストールする（ステップＳ５３）。
【０１１１】
次に、図３４を用いて、アプリケーションの更新完了後のＭＦＰ１の動作手順の一例を説明する。インストーラ２２１は、更新が必要なアプリケーション（前述の更新要求に含まれるプロダクトＩＤで識別されるアプリケーション）の更新が完了した場合、その旨を示す更新完了通知を更新制御部２１６へ返信する（ステップＳ６１）。更新完了通知を受けた更新制御部２１６は、アプリケーションの更新が完了したことを更新アプリケーション情報取得部２１５へ通知する（ステップＳ６２）。この通知を受けた更新アプリケーション情報取得部２１５は、本体１０のＮＡＰＴ機能３２０を介して、前述の取得要求をアプリマーケットサーバ２に送信する（ステップＳ６３）。ＭＦＰ１からの取得要求を受けたアプリマーケットサーバ２は、更新が必要なアプリケーションの有無を判断する（ステップＳ６４）。具体的な内容は前述したとおりであるが、ここでは、更新が必要なアプリケーションが存在しないと判断されたことを前提として以下の説明を続ける。アプリマーケットサーバ２は、取得要求への応答として、前述の更新不要情報をＭＦＰ１へ返信する（ステップＳ６５）。更新アプリケーション情報取得部２１５は、本体１０のＮＡＰＴ機能３２０を介して、アプリマーケットサーバ２から更新不要情報を受信する。
【０１１２】
更新アプリケーション情報取得部２１５は、アプリマーケットサーバ２から更新不要情報を取得した場合、本体１０のＨＤＤ１４に保存されたキャッシュデータをクリア（消去）する（ステップＳ６６）。そして、更新アプリケーション情報取得部２１５は、報知メッセージ通知部２１７に対して、更新が必要なアプリケーションが存在しないことを通知する（ステップＳ６７）。この通知を受けた報知メッセージ通知部２１７は、報知メッセージ表示モジュール２２３に対して、全てのアプリケーションは最新であることを示す報知メッセージの表示を指示する（ステップＳ６８）。この指示を受けた報知メッセージ表示モジュール２２３は、報知メッセージを操作パネル２７に表示する（ステップＳ６９）。図３５は、この場合の報知メッセージの一例を示す図である。
【０１１３】
以上に説明したように、本実施形態のＭＦＰ１は、インストール済みの１以上のアプリケーションのうち、更新が必要なアプリケーションを示す更新アプリケーション情報をアプリマーケットサーバ２から取得し、その取得した更新アプリケーション情報が示すアプリケーションを更新する制御を行う。本実施形態によれば、アプリの自動更新に際して、更新が必要なアプリの有無の判断をＭＦＰ１側で実施する必要は無く、ＭＦＰ１は、更新が必要なアプリを示す情報（更新アプリケーション情報）をアプリマーケットサーバ２から取得するだけで済むので、処理が効率的になる。すなわち、本実施形態によれば、ＭＦＰ１にインストール済みのアプリケーションの更新を、自動で効率良く実施することができる。
【０１１４】
また、本体１０とは独立したＣＰＵとＯＳを持つ操作部２０は、本体１０に一体的に搭載されているものの、実体は独立して制御される別の装置であるため、操作部２０が、ネットワークインターフェースを有する本体１０を介して、外部のサーバ装置と通信する仕組みが無いという課題があった。操作部１０が本体１０側のＮＡＰＴ機能３２０によるアドレス変換を用いることで、本体１０側が有するネットワークインターフェース（例えば通信Ｉ／Ｆ１５）を用いて、アプリマーケットサーバ２などの外部のサーバ装置と通信し、アプリケーションの更新情報取得、一覧表示、操作部２０にインストールするアプリケーションのダウンロードを行なうことができる。また、本体１０と操作部２０とは別個のＩＰアドレス（およびポート番号）を有するため、画像形成装置としては２つのＩＰアドレスを有することになるが、ＮＡＰＴ機能３２０によるアドレス変換により、操作部２０から本体１０経由で通信する場合でも、外部のサーバ装置から見て単一の装置として識別され、互いに通信接続することができる。
【０１１５】
（第２の実施形態）
次に、第２の実施形態について説明する。なお、上述の第１の実施形態と共通する部分については適宜に説明を省略する。上述のように、操作部１０は、操作部２０がユーザの操作を受け付けていない状態が所定期間継続した場合、操作部２０の状態を、操作部２０が通常動作可能な操作部通常状態よりも消費電力が小さい操作部省エネ状態に遷移させる制御を行う第１の省エネ制御部（監視モジュール２２２の機能）を備え、本体１０は、本体１０が画像処理を実行しないアイドル状態が所定期間継続した場合、本体１０の状態を、本体１０が通常動作可能な本体通常状態よりも消費電力が小さい本体省エネ状態に遷移させる制御を行う第２の省エネ制御部（ＳＣＳ３１２）を備えている。本実施形態では、操作部２０が操作部省エネ状態であり、かつ、本体１０が本体省エネ状態のときに更新時刻（更新タイミング）に到達した場合、操作部２０の監視モジュール２２２（第１の省エネ制御部）は、操作部２０を操作部通常状態に復帰させる一方、本体１０のＳＣＳ３１２（第２の省エネ制御部）は、本体１０を本体省エネ状態に維持する。上述したように、本体省エネ状態（省エネモード）は、計時機能およびネットワーク８と通信する機能のみが動作可能な状態とすることができるが、これに限られるものではない。
【０１１６】
上述の第１の実施形態と同様に、更新時刻に到達した場合、ＳＣＳ３１２は、その旨を監視モジュール２２２へ通知する。このとき、ＳＣＳ３１２は本体１０を本体省エネ状態に維持する。ＳＣＳ３１２からの通知を受けた監視モジュール２２２は、操作部２０を操作部通常状態に復帰させる制御を行い、アプリマーケットアプリ（通知受付部２１２）に対して、更新時刻に到達した旨を通知する。以降の動作は上述の第１の実施形態と同様である。本実施形態によれば、ＭＦＰ１の消費電力をさらに低減できるというメリットがある。
【０１１７】
なお、上述の各実施形態では、本体１０のＳＣＳ３１２が、更新時刻に到達したか否かを検出する機能を有しているが、これに限らず、例えば操作部２０の監視モジュール２２２が、更新時刻に到達したか否かを検出する機能（設定された更新時刻を保持し、計時する機能）を有する形態であってもよい。この形態において、監視モジュール２２２は、更新時刻に到達したことを検出した場合、その旨をアプリマーケットアプリに通知する。以降の動作は上述の第１の実施形態と同様になる。なお、本体１０に対しては、通知してもよいし、通知しなくてもよい。本体１０のＳＣＳ３１２は、上述の本体省エネ状態のときに、操作部２０の監視モジュール２２２から更新時刻に到達した旨の通知を受けても、本体１０を本体省エネ状態に維持することになる。
【０１１８】
以上、本発明に係る実施形態について説明したが、本発明は、上述の各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上述の各実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、各実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態や変形例にわたる構成要素を適宜組み合わせてもよい。
【０１１９】
また、上述の実施形態では、本体１０と操作部２０は、別々のオペレーティングシステムで互いに独立して動作しているが、これに限らず、例えば本体１０と操作部２０が同じオペレーティングシステムで動作する形態であってもよい。また、例えば上述のアプリマーケットサーバ２と、アプリケーションサーバ３とを統合した１つのサーバが設けられる形態であってもよい。
【０１２０】
また、上述した実施形態のシステム１００（ＭＦＰ１、アプリマーケットサーバ２、アプリケーションサーバ３、ファームウェア配信サーバ４等）で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよいし、インターネット等のネットワーク経由で提供または配布するように構成してもよい。また、各種プログラムを、ＲＯＭ等に予め組み込んで提供するように構成してもよい。
【符号の説明】
【０１２１】
１      ＭＦＰ
２      アプリマーケットサーバ
３      アプリケーションサーバ
４      ファームウェア配信サーバ
８      ネットワーク
１０    本体
２０    操作部
１００  システム
２１１  アプリケーション一覧画面制御部
２１２  通知受付部
２１３  設定ＵＩ部
２１４  設定部
２１５  更新アプリケーション情報取得部
２１６  更新制御部
２１７  報知メッセージ通知部
２２０  アプリケーション更新実行部
２２１  インストーラ
２２２  監視モジュール
２２３  報知メッセージ表示モジュール
２３０  判定要求情報送信部
２３１  判定結果情報受信部
２３２  ファームウェア更新画面制御部
２３３  第１の制御部
２３４  インストール制御部
２４０  第２の制御部
２４１  指示部
２４２  アドレス情報受信部
２４３  読出部
２４４  第２の導入制御部
２５０  第３の制御部
２５１  パッケージ取得部
２５２  分解部
２５３  アドレス情報送信部
２５４  第１の導入制御部
２６１  アプリケーション一覧画面保持部
２６２  アプリケーション一覧画面送信部
２６３  アプリケーション情報記憶部
２６４  判断部
２６６  更新アプリケーション情報送信部
２６７  更新不要情報送信部
３２１  対応情報記憶部
３２２  判定部
３２３  判定結果情報送信部
３２４  アプリケーション保持部
３２５  アプリケーション送信部
４１１  パッケージ保持部
４１２  パッケージ送信部
【先行技術文献】
【特許文献】
【０１２２】
【特許文献１】特開２００５−２９７２３７号公報
【図１】
2018198013.tif 000003
【図２】
2018198013.tif 000004
【図３】
2018198013.tif 000005
【図４】
2018198013.tif 000006
【図５】
2018198013.tif 000007
【図６】
2018198013.tif 000008
【図７】
2018198013.tif 000009
【図８】
2018198013.tif 000010
【図９】
2018198013.tif 000011
【図１０】
2018198013.tif 000012
【図１１】
2018198013.tif 000013
【図１２】
2018198013.tif 000014
【図１３】
2018198013.tif 000015
【図１４】
2018198013.tif 000016
【図１５】
2018198013.tif 000017
【図１６】
2018198013.tif 000018
【図１７】
2018198013.tif 000019
【図１８】
2018198013.tif 000020
【図１９】
2018198013.tif 000021
【図２０】
2018198013.tif 000022
【図２１】
2018198013.tif 000023
【図２２】
2018198013.tif 000024
【図２３】
2018198013.tif 000025
【図２４】
2018198013.tif 000026
【図２５】
2018198013.tif 000027
【図２６】
2018198013.tif 000028
【図２７】
2018198013.tif 000029
【図２８】
2018198013.tif 000030
【図２９】
2018198013.tif 000031
【図３０】
2018198013.tif 000032
【図３１】
2018198013.tif 000033
【図３２】
2018198013.tif 000034
【図３３】
2018198013.tif 000035
【図３４】
2018198013.tif 000036
【図３５】
2018198013.tif 000037