(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-06-13
(45)【発行日】2022-06-21
(54)【発明の名称】情報処理システムおよび情報処理方法
(51)【国際特許分類】
G06F 8/61 20180101AFI20220614BHJP
G06F 8/65 20180101ALI20220614BHJP
【FI】
G06F8/61
G06F8/65
(21)【出願番号】P 2018105650
(22)【出願日】2018-05-31
【審査請求日】2021-02-08
(73)【特許権者】
【識別番号】000006747
【氏名又は名称】株式会社リコー
(74)【代理人】
【識別番号】100089118
【氏名又は名称】酒井 宏明
(72)【発明者】
【氏名】韓 暁峰
【審査官】山本 俊介
(56)【参考文献】
【文献】特開2012-059180(JP,A)
【文献】特開2017-174384(JP,A)
【文献】特開2017-167844(JP,A)
【文献】特開2016-212855(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/00-8/77
(57)【特許請求の範囲】
【請求項1】
サーバと、前記サーバと通信可能な画像形成装置と、を含む情報処理システムであって、
前記サーバは、外部装置によって設定された、前記画像形成装置に対するアプリケーションに関する処理であるアプリケーション処理の予約の設定情報を受信する設定情報受信部を備え、
前記画像形成装置は、
前記設定情報が示す前記アプリケーション処理に基づいて、前記画像形成装置に対してインストール済みおよび未インストールの少なくともいずれかである1以上のアプリケーションのうち、該アプリケーション処理が必要と判断されるアプリケーションを示すアプリケーション処理情報を
要求する取得要求を前記サーバへ送信し、前記取得要求の応答として、前記アプリケーション処理情報を前記サーバから取得するアプリケーション処理情報取得部と、
前記アプリケーション処理情報取得部により取得された前記アプリケーション処理情報が示すアプリケーションに対する前記アプリケーション処理の制御を行うアプリケーション処理制御部と、
を備え
、
前記サーバは、
前記画像形成装置から前記取得要求を受信した場合に、前記設定情報に基づいて前記アプリケーション処理が必要なアプリケーションの有無を判断する判断部と、
前記判断部により、前記アプリケーション処理が必要なアプリケーションが存在すると判断された場合、前記取得要求への応答として、前記アプリケーション処理情報を前記画像形成装置へ送信するアプリケーション処理情報送信部と、
をさらに備えた情報処理システム。
【請求項2】
前記アプリケーション処理情報取得部は、前記アプリケーション処理を実行するタイミングである処理タイミングに到達した場合に、前記アプリケーション処理情報を要求する取得要求を前記サーバへ送信し、該取得要求の応答として、前記アプリケーション処理情報を前記サーバから取得する請求項1に記載の
情報処理システム。
【請求項3】
前記画像形成装置は、
所定の処理時間帯に基づいて、前記処理タイミングを設定する設定部と、
前記設定部により設定された前記処理タイミングに到達したか否かを監視する監視部と、
をさらに備え、
前記監視部は、前記処理タイミングに到達した場合に、その旨の通知を前記アプリケーション処理情報取得部に対して行い、
前記アプリケーション処理情報取得部は、前記通知を受けた場合に、前記取得要求を前記サーバへ送信する請求項2に記載の
情報処理システム。
【請求項4】
前記設定部は、前記処理時間帯の範囲でランダムに時刻を選択し、選択した前記時刻を前記処理タイミングとして設定する請求項3に記載の
情報処理システム。
【請求項5】
前記アプリケーション処理情報取得部は、
前記設定情報が示す前記アプリケーション処理としてのインストール、更新およびアンインストールのうち、少なくともいずれかの実行が必要と判断されるアプリケーションを示す前記アプリケーション処理情報を前記サーバから取得する請求項1~4のいずれか一項に記載の
情報処理システム。
【請求項6】
前記画像形成装置は、
前記アプリケーション処理情報取得部により取得された前記アプリケーション処理情報が、前記アプリケーション処理を必要とするアプリケーションが存在することを示す場合、その旨を報知する報知メッセージを表示部に表示させる制御を行う報知メッセージ表示制御部をさらに備えた請求項1~5のいずれか一項に記載の
情報処理システム。
【請求項7】
前記画像形成装置は、ユーザの操作を受け付ける操作部と、本体と、を備え、
前記操作部は、
前記アプリケーション処理情報取得部と、前記アプリケーション処理制御部と、を少なくとも備え、
前記本体は、
記録媒体上に画像を形成する画像形成部を少なくとも備えた請求項1~6のいずれか一項に記載の
情報処理システム。
【請求項8】
前記操作部は、該操作部が前記ユーザの操作を受け付けていない状態が所定期間継続した場合、該操作部の状態を、該操作部が通常動作可能な操作部通常状態よりも消費電力が小さい操作部省エネ状態に遷移させる制御を行う第1の省エネ制御部を備え、
前記本体は、該本体が画像処理を実行しないアイドル状態が所定期間継続した場合、該本体の状態を、該本体が通常動作可能な本体通常状態よりも消費電力が小さい本体省エネ状態に遷移させる制御を行う第2の省エネ制御部を備え、
前記操作部が前記操作部省エネ状態であり、かつ、前記本体が前記本体省エネ状態のときに前記アプリケーション処理を実行するタイミングに到達した場合、前記第1の省エネ制御部は、前記操作部を前記操作部通常状態に復帰させ、前記第2の省エネ制御部は、前記本体を前記本体省エネ状態に維持する請求項7に記載の
情報処理システム。
【請求項9】
前記画像形成装置は、
前記アプリケーション処理情報が示すアプリケーションを利用するためにファームウェアの更新が必要な場合、前記ファームウェアを更新する制御を行うファームウェア更新制御部をさらに備えた請求項1~8のいずれか一項に記載の
情報処理システム。
【請求項10】
サーバと、前記サーバと通信可能な画像形成装置と、を含む情報処理システムによる情報処理方法であって、
前記サーバが、外部装置によって設定された、前記画像形成装置に対するアプリケーションに関する処理であるアプリケーション処理の予約の設定情報を受信する設定情報受信ステップと、
前記画像形成装置が、前記設定情報が示す前記アプリケーション処理に基づいて、前記画像形成装置に対してインストール済みおよび未インストールの少なくともいずれかである1以上のアプリケーションのうち、該アプリケーション処理が必要と判断されるアプリケーションを示すアプリケーション処理情報を
要求する取得要求を前記サーバへ送信し、前記取得要求の応答として、前記アプリケーション処理情報を前記サーバから取得するアプリケーション処理情報取得ステップと、
前記画像形成装置が、取得した前記アプリケーション処理情報が示すアプリケーションに対する前記アプリケーション処理の制御を行うアプリケーション処理制御ステップと、
前記サーバが、前記画像形成装置から前記取得要求を受信した場合に、前記設定情報に基づいて前記アプリケーション処理が必要なアプリケーションの有無を判断する判断ステップと、
前記サーバが、前記アプリケーション処理が必要なアプリケーションが存在すると判断した場合、前記取得要求への応答として、前記アプリケーション処理情報を前記画像形成装置へ送信するアプリケーション処理情報送信ステップと、
を有する情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システムおよび情報処理方法に関する。
【背景技術】
【0002】
従来、画像形成装置の一例である複合機(MFP:Multifunction Peripheral)において、アプリケーションをウェブページからダウンロードしてインストールする仕組みが知られている(例えば、特許文献1等)。
【発明の概要】
【発明が解決しようとする課題】
【0003】
しかしながら、従来の技術では、画像形成装置等を含む電子機器にアプリケーションのインストール、更新、およびアンインストール等を行うアプリケーションに関する処理(以下、アプリケーション処理と称する場合がある)を、当該電子機器に対するユーザの入力操作によって行わなければならない。すなわち、上述の処理を、自動で効率良く実施することができないという問題があった。
【0004】
本発明は、上記に鑑みてなされたものであり、アプリケーションを利用する機器に対して、アプリケーションに関する処理を、自動で効率よく実施することができる情報処理システムおよび情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【0005】
上述した課題を解決し、目的を達成するために、本発明は、サーバと、前記サーバと通信可能な画像形成装置と、を含む情報処理システムであって、前記サーバは、外部装置によって設定された、前記画像形成装置に対するアプリケーションに関する処理であるアプリケーション処理の予約の設定情報を受信する設定情報受信部を備え、前記画像形成装置は、前記設定情報が示す前記アプリケーション処理に基づいて、前記画像形成装置に対してインストール済みおよび未インストールの少なくともいずれかである1以上のアプリケーションのうち、該アプリケーション処理が必要と判断されるアプリケーションを示すアプリケーション処理情報を要求する取得要求を前記サーバへ送信し、前記取得要求の応答として、前記アプリケーション処理情報を前記サーバから取得するアプリケーション処理情報取得部と、前記アプリケーション処理情報取得部により取得された前記アプリケーション処理情報が示すアプリケーションに対する前記アプリケーション処理の制御を行うアプリケーション処理制御部と、を備え、前記サーバは、前記画像形成装置から前記取得要求を受信した場合に、前記設定情報に基づいて前記アプリケーション処理が必要なアプリケーションの有無を判断する判断部と、前記判断部により、前記アプリケーション処理が必要なアプリケーションが存在すると判断された場合、前記取得要求への応答として、前記アプリケーション処理情報を前記画像形成装置へ送信するアプリケーション処理情報送信部と、をさらに備える。
【発明の効果】
【0006】
本発明によれば、アプリケーションを利用する機器に対して、アプリケーションに関する処理を、自動で効率よく実施することができる。
【図面の簡単な説明】
【0007】
【
図1】
図1は、情報処理システムの構成の一例を示す図である。
【
図2】
図2は、アプリケーション一覧画面(Webページ)の一例を示す図である。
【
図3】
図3は、MFPのハードウェア構成の一例を示す図である。
【
図4】
図4は、MFPのソフトウェア構成の一例を示す図である。
【
図5】
図5は、本体および操作部のソフトウェア構成を説明するための図である。
【
図6】
図6は、操作部の通信方法を説明するための図である。
【
図7】
図7は、第1の実施形態の操作部の機能ブロック構成の一例を示す図である。
【
図9】
図9は、URLスキームの一例を示す図である。
【
図11】
図11は、自動アプリケーション処理設定画面の一例を示す図である。
【
図14】
図14は、インストーラの機能ブロック構成の一例を示す図である。
【
図15】
図15は、ファームウェア更新画面の一例を示す図である。
【
図16】
図16は、第1の制御部の機能ブロック構成の一例を示す図である。
【
図17】
図17は、第3の制御部の機能ブロック構成の一例を示す図である。
【
図18】
図18は、第2の制御部の機能ブロック構成の一例を示す図である。
【
図19】
図19は、ファームウェアの更新手順を説明するための図である。
【
図20】
図20は、ファームウェアの更新手順を説明するための図である。
【
図21】
図21は、ファームウェアの更新手順を説明するための図である。
【
図22】
図22は、ファームウェアの更新手順を説明するための図である。
【
図23】
図23は、ファームウェアの更新手順を説明するための図である。
【
図25】
図25は、アプリマーケットサーバのハードウェア構成の一例を示す図である。
【
図26】
図26は、アプリマーケットサーバの機能ブロック構成の一例を示す図である。
【
図27】
図27は、アプリケーションサーバが機能ブロック構成の一例を示す図である。
【
図29】
図29は、ファームウェア配信サーバの機能ブロック構成の一例を示す図である。
【
図30】
図30は、ウェブアプリサーバの機能ブロック構成の一例を示す図である。
【
図31】
図31は、設定用PCの機能ブロック構成の一例を示す図である。
【
図33】
図33は、処理可能アプリケーション一覧画面の一例を示す図である。
【
図34】
図34は、ユーザから処理時刻の設定入力を受け付けた場合のMFPの動作手順の一例を示すシーケンス図である。
【
図35】
図35は、MFPの起動時の動作手順の一例を示すシーケンス図である。
【
図36】
図36は、アプリケーション処理の予約設定動作手順の一例を示すシーケンス図である。
【
図37】
図37は、自動アプリケーション処理の動作手順の一例を示すシーケンス図である。
【
図38】
図38は、ファームウェアの更新動作手順の一例を示すシーケンス図である。
【
図39】
図39は、アプリケーション処理の完了後の動作手順の一例を示すシーケンス図である。
【発明を実施するための形態】
【0008】
以下、添付図面を参照しながら、本発明に係る画像形成装置、情報処理システム、電子機器および情報処理方法を詳細に説明する。以下では、本発明に係る画像形成装置の一例として、複合機(MFP)を例に挙げて説明するが、これに限られるものではない。なお、複合機とは、コピー機能、スキャナ機能、プリンタ機能、およびファクス機能等の複数の異なる機能を有する装置である。
【0009】
[第1の実施形態]
(情報処理システムの構成)
図1は、情報処理システムの構成の一例を示す図である。
図2は、アプリケーション一覧画面(Webページ)の一例を示す図である。
図1および
図2を参照しながら、情報処理システム100の構成等について説明する。
【0010】
図1に示すように、情報処理システム100は、MFP1と、アプリマーケットサーバ2と、アプリケーションサーバ3と、ファームウェア配信サーバ4と、ウェブアプリサーバ5と、設定用PC(Personal Computer)6と、を有し、これらはネットワーク8を介して相互に接続される。
【0011】
アプリマーケットサーバ2は、複数のアプリケーションごとに、当該アプリケーションをMFP1に導入する命令の一例であるインストール命令が対応付けられたアプリケーション一覧画面を、MFP1へ提供する。
図2の例では、アプリケーション一覧画面は、複数のアプリケーションごとに、当該アプリケーションの内容を説明する説明情報と、当該アプリケーションのインストールを指示するためのインストールボタン50とが表示される。ユーザが、MFP1に表示されたアプリケーション一覧画面の中から、所望のアプリケーションのインストールボタン50を押下することで、該アプリケーションがダウンロードされ、MFP1にインストールされる。MFP1の具体的な内容については後述する。また、このようにアプリケーション一覧画面における操作によって、手動によるアプリケーションのインストールを行うことも可能であるが、本実施形態では、自動でアプリケーションのインストール等の処理(アプリケーション処理)を行うことを可能とし、当該処理の詳細については後述する。
【0012】
アプリケーションサーバ3は、アプリケーション一覧画面で表示されているアプリケーションを保持し、MFP1からの要求に応じて、アプリケーションを配信する。具体的には、アプリケーションサーバ3が保持しているアプリケーションは、ネイティブアプリケーションである。また、アプリケーションサーバ3は、MFP1から提示されたアプリケーションを該MFP1で利用できるか否かを判定する妥当性判定(詳しくは後述する)を行う。
【0013】
ファームウェア配信サーバ4は、MFP1からの要求に応じて、MFP1の動作を制御するファームウェアを配信する。より具体的な内容については後述する。
【0014】
ウェブアプリサーバ5は、アプリケーション一覧画面等で表示されているウェブアプリケーションのコンテンツを保持し、MPF1から当該ウェブアプリケーションの実行要求に応じて、当該コンテンツを配信する。
【0015】
設定用PC6は、特定の電子機器(例えば、MFP1)に対して、アプリケーションのインストール、更新、およびアンインストール等を行うアプリケーション処理の予約設定を行うための情報処理装置である。
【0016】
(MFPのハードウェア構成)
図3は、MFPのハードウェア構成の一例を示す図である。
図3を用いて、MFP1のハードウェア構成について説明する。
【0017】
図3に示すように、MFP1は、コピー機能、スキャナ機能、ファクス機能、プリンタ機能等の各種の機能を実現可能な本体10と、ユーザの操作を受け付ける操作部20とを備える。なお、ユーザの操作を受け付けるとは、ユーザの操作に応じて入力される情報(画面の座標値を示す信号等を含む)を受け付けることを含む概念である。ここでは、操作部20は、本体10に操作指示するためのデバイスでもある。本体10と操作部20とは、専用の通信路30を介して相互に通信可能に接続されている。通信路30は、例えば、USB(Universal Serial Bus)規格のものを用いることもできるが、有線か無線かを問わず任意の規格のものであってよい。
【0018】
なお、本体10は、操作部20で受け付けた操作に応じた動作を行うことができる。また、本体10は、クライアントPC(パーソナルコンピュータ)等の外部装置とも通信可能であり、外部装置から受信した指示に応じた動作を行うこともできる。本体10は、記録媒体(例えば、用紙)上に画像を形成する画像形成部を少なくとも備える。本体10の詳細な構成は後述する。
【0019】
まず、本体10のハードウェア構成について説明する。
図3に示すように、本体10は、CPU(Central Proseccing Unit)11と、ROM(Read Only Memory)12と、RAM(Random Access Memory)13と、HDD(Hard Disk Drive)14と、通信I/F(Interface)15と、接続I/F16と、エンジン部17と、を備え、これらがシステムバス18を介して相互に接続されている。
【0020】
CPU11は、本体10の動作を統括的に制御する。CPU11は、RAM13をワークエリア(作業領域)としてROM12またはHDD14等に格納されたプログラムを実行することで、本体10全体の動作を制御し、上述したコピー機能、スキャナ機能、ファクス機能、プリンタ機能等の各種機能を実現する。
【0021】
通信I/F15は、ネットワーク8と接続するためのインタフェースである。接続I/F16は、通信路30を介して操作部20と通信するためのインタフェースである。
【0022】
エンジン部17は、コピー機能、スキャナ機能、ファクス機能、および、プリンタ機能を実現させるための、汎用的な情報処理および通信以外の処理を行うハードウェアである。例えば、原稿の画像をスキャンして読み取るスキャナ(画像読取部)、用紙等のシート材への印刷を行うプロッタ(画像形成部)、ファクス通信を行うファクス部等を備えている。さらに、印刷済みシート材を仕分けるフィニッシャ、または、原稿を自動給送するADF(Auto Document Feeder:自動原稿給送装置)のような特定のオプションを備えることもできる。ここでは、本体10は、プリンタまたはスキャナを備える形態であればよい。
【0023】
次に、操作部20のハードウェア構成について説明する。
図3に示すように、操作部20は、CPU21と、ROM22と、RAM23と、フラッシュメモリ24と、通信I/F25と、接続I/F26と、操作パネル27とを備え、これらがシステムバス28を介して相互に接続されている。
【0024】
CPU21は、操作部20の動作を統括的に制御する。CPU21は、RAM23をワークエリア(作業領域)としてROM22またはフラッシュメモリ24等に格納されたプログラムを実行することで、操作部20全体の動作を制御し、ユーザから受け付けた入力に応じた情報(画像)の表示等の後述する各種機能を実現する。
【0025】
通信I/F25はネットワーク8に接続するためのインタフェースである。接続I/F26は、通信路30を介して本体10と通信するためのインタフェースである。操作パネル27は、ユーザの操作に応じた各種の入力を受け付けるとともに、各種の情報(例えば、受け付けた操作に応じた情報、MFP1の動作状況を示す情報、設定状態等を示す情報等)を表示する。この例では、操作パネル27は、タッチパネル機能を搭載した液晶表示装置(LCD)で構成されるが、これに限られるものではない。例えば、タッチパネル機能が搭載された有機EL表示装置で構成されてもよい。さらに、これに加えて又はこれに代えて、ハードウェアキー等の操作部やランプ等の表示部を設けることもできる。
【0026】
(MFPのソフトウェア構成)
図4は、MFPのソフトウェア構成の一例を示す図である。
図4を用いて、MFP1のソフトウェア構成について説明する。
【0027】
図4に示すように、本体10は、アプリ層101と、サービス層102と、OS(Operatign System)層103とを有する。アプリ層101、サービス層102、および、OS層103の実体は、ROM12またはHDD14等に格納されている各種ソフトウェアである。CPU11が、これらのソフトウェアを実行することにより、各種の機能が提供される。
【0028】
アプリ層101のソフトウェアは、ハードウェア資源を動作させて所定の機能を提供するためのアプリケーションソフトウェア(以下の説明では、単に「アプリ」と称する場合がある)である。例えば、アプリとしては、コピー機能を提供するためのコピーアプリ、スキャナ機能を提供するためのスキャナアプリ、ファクス機能を提供するためのファクスアプリ、プリンタ機能を提供するためのプリンタアプリ等が挙げられる。
【0029】
サービス層102のソフトウェアは、アプリ層101とOS層103との間に介在し、アプリに対し、本体10が備えるハードウェア資源を利用するためのインタフェースを提供するためのソフトウェアである。より具体的には、ハードウェア資源に対する動作要求の受付、動作要求の調停を行う機能を提供するためのソフトウェアである。サービス層102が受け付ける動作要求としては、スキャナによる読み取りやプロッタによる印刷等の要求が考えられる。
【0030】
なお、サービス層102によるインタフェースの機能は、本体10のアプリ層101だけではなく、操作部20のアプリ層201にも提供される。すなわち、操作部20のアプリ層201(アプリ)も、サービス層102のインタフェース機能を介して、本体10のハードウェア資源(例えば、エンジン部17)を利用した機能を実現することができる。例えば、サービス層102のインタフェース機能は、WebAPI(Application Programming Interface)で提供される。
【0031】
OS層103のソフトウェアは、本体10が備えるハードウェアを制御する基本機能を提供するための基本ソフトウェア(オペレーティングシステム(OS))である。サービス層102のソフトウェアは、各種アプリからのハードウェア資源の利用要求を、OS層103が解釈可能なコマンドに変換してOS層103に渡す。そして、OS層103のソフトウェアによりコマンドが実行されることで、ハードウェア資源は、アプリの要求に従った動作を行う。
【0032】
同様に、操作部20は、アプリ層201と、サービス層202と、OS層203とを有する。操作部20が備えるアプリ層201、サービス層202およびOS層203も、階層構造については本体10側と同様である。ただし、アプリ層201のアプリにより提供される機能や、サービス層202が受け付け可能な動作要求の種類は、本体10側とは異なる。
【0033】
アプリ層201のアプリは、操作部20が備えるハードウェア資源を動作させて所定の機能を提供するためのソフトウェアであってもよいが、主として本体10が備える機能(コピー機能、スキャナ機能、ファクス機能、プリンタ機能)に関する操作や表示を行うためのUI(User Interface)の機能を提供するためのソフトウェアである。この例では、アプリ層201のアプリには、アプリケーション一覧画面を取得する機能を提供するアプリマーケットアプリ等も含まれる。また、サービス層202のソフトウェアは、コンピュータのハードウェアを管理、制御する等、コンピュータの稼動および使用そのものをサポートするためのシステムソフトウェアであると考えることができる。サービス層202のソフトウェア(システムソフトウェア)には、アプリケーションのインストールおよびファームウェアの更新を行うためのインストーラ等が含まれる。
【0034】
なお、本実施形態では、機能の独立性を保つために、本体10側のOS層103のソフトウェアと操作部20側のOS層203のソフトウェアとが互いに異なる。つまり、本体10および操作部20は、別々のオペレーティングシステムで互いに独立して動作する。例えば、本体10側のOS層103のソフトウェアとしてLinux(登録商標)を用い、操作部20側のOS層203のソフトウェアとしてAndroid(登録商標)を用いることも可能である。
【0035】
以上のように、本実施形態のMFP1において、本体10および操作部20は、別々のオペレーティングシステムで動作するため、本体10と操作部20との間の通信は、共通の装置内のプロセス間通信ではなく、異なる装置間の通信として行われる。操作部20が受け付けた情報(ユーザからの指示内容)を本体10へ伝達する動作(コマンド通信)、および、本体10が操作部20へイベントを通知する動作等がこれに該当する。ここでは、操作部20が本体10へコマンド通信を行うことにより、本体10の機能を使用することができる。また、本体10から操作部20に通知するイベントには、本体10における動作の実行状況、および、本体10側で設定された内容等が挙げられる。
【0036】
また、本実施形態では、操作部20に対する電力供給は、本体10から通信路30を経由して行われているので、操作部20の電源制御を、本体10の電源制御とは別に(独立して)行うことができる。
【0037】
図5は、本体および操作部のソフトウェア構成を説明するための図である。
図5に示すように、本体10は、CPU11等が搭載されたコントローラ31と、エンジン部17と、を備える。
【0038】
コントローラ31は、WebAPIサービス(Webサーバ)301、アプリ層101の本体アプリ(コピーアプリ302、スキャンアプリ303、プリントアプリ304、FAXアプリ305等)、サービス層102のシステムソフトウェア(エンジンコントロールサービス311(以下、「ECS311」と称する)、システムコントロールサービス312(以下、「SCS312」と称する)、ネットワークコントロールサービス313(以下、「NCS313」と称する)等)、および、OS層103等を有する。これらの機能は、CPU11が各種プログラムを実行することにより提供される。
【0039】
WebAPIサービス301は、操作部20または外部端末からの要求を受け付け、本体アプリが解釈できる情報(要求情報)に変換して、対応する本体アプリに振り分ける(ディスパッチする)。本体アプリは、WebAPIサービス301からの要求情報を受けると、本体内部API315を用いて各サービス経由でエンジン部17にジョブ等の処理を実行させる。
【0040】
ECS311は、エンジン部17の管理および調停等を行うサービスモジュールである。SCS312は、MFP1の省エネ制御(詳しくは後述)、およびジョブの管理等を行うためのサービスモジュールである。NCS313は、通信制御(ネットワーク制御)等を行うためのサービスモジュールである。
【0041】
例えば、本体10のコピーアプリ302は、WebAPIサービス301からコピー要求(操作部20のアプリ(コピーアプリ)からのコピー要求に基づく)を受けると、本体内部API315を用いてECS311経由で、エンジン部17にコピージョブを実行させる。
【0042】
なお、操作部20のアプリから本体のSCS312を利用する場合は、操作部20と本体10との間の通信モジュール(コントローラ31が有する、操作部アプリとSCS312との間の通信の橋渡し役を果たすモジュール)を利用し、API(WebAPIサービス301および本体内部API315)は利用しない。
【0043】
図6は、操作部の通信方法を説明するための図である。
図5および
図6を用いて、本体10のOS層103が有するNAPT(Network Address Port )機能320について説明する。
【0044】
操作部20は、本体10のOS層103が有するNAPT機能320を介して、ネットワーク8を利用することができる。例えば、
図6に示すように、操作部20のネットワーク機能(CPU11がアプリ等のプログラムを実行して通信I/F25を制御することにより実現)が、本体10を介して外部サーバと通信する場合を想定する。この例では、操作部20のデータ通信を行うアプリケーションのポート番号は「SRCPORT_A」であり、操作部20のIP(Internet Protocol)アドレスは「SRCIP_A」とする。
【0045】
操作部20のアプリケーションから外部サーバのアプリケーションへデータを送信する場合を想定する。ここでは、外部サーバのデータ通信を行うアプリケーションのポート番号は「DSTPORT_A」であり、外部サーバのIPアドレスは「DSTIP_A」とする。この場合、NAPT機能320は、送信元(操作部20)のポート番号およびIPアドレスを、それぞれ本体10側のポート番号(SRCPORT_B)およびIPアドレス(SRCIP_B)に変換し、変換後のポート番号およびIPアドレスを送信元として外部サーバへデータ送信する。
【0046】
反対に、操作部20のアプリケーションが外部サーバのアプリケーションからデータを受信する場合は、NAPT機能320は、外部サーバのデータ送信先(本体10)のポート番号およびIPアドレスを、それぞれ操作部20側のポート番号(SRCPORT_A)およびIPアドレス(SRCIP_A)に変換し、外部サーバから受信したデータを操作部20へ渡す。
【0047】
図5の例では、操作部20のアプリマーケットアプリ205は、本体10のNAPT機能320を利用して、アプリマーケットサーバ2からアプリケーション一覧画面を取得する。そして、いずれかのアプリケーションのインストールボタン50が押下されると、操作部20のインストーラ221が起動し、インストーラ221は、NAPT機能320を利用して、アプリケーションサーバ3からアプリケーションをダウンロードし、インストールする。このようにして、操作部20へのアプリ追加を随時行うことができる。
【0048】
(操作部の機能ブロックの構成および動作)
図7は、第1の実施形態の操作部の機能ブロック構成の一例を示す図である。説明の便宜上、
図7では、本発明に関する機能を主に例示しているが、操作部20が有する機能は、これらに限られるものではない。
【0049】
図7に示すように、操作部20は、アプリマーケットアプリ205と、システムソフトウェア206と、を備える。アプリマーケットアプリ205は、アプリケーション一覧画面制御部211、通知受付部212、設定UI部213、およびアプリケーション処理実行部220の各々の機能を提供する。この例では、アプリケーション処理実行部220は、設定部214、アプリケーション処理情報取得部215、アプリケーション処理制御部216、報知メッセージ通知部217および機器情報制御部218を含み、アプリマーケットアプリ205のスレッドとして実装される。これらの機能は、操作部20のCPU21がアプリマーケットアプリ205を実行することにより実現される。
【0050】
システムソフトウェア206は、インストーラ221、監視モジュール222、報知メッセージ表示モジュール223、およびランチャ224の各々の機能を提供する。これらの機能は、操作部20のCPU21がシステムソフトウェア206を実行することにより実現される。
【0051】
アプリケーション一覧画面制御部211は、アプリマーケットサーバ2からアプリケーション一覧画面を取得し、取得したアプリケーション一覧画面を操作パネル27に表示する制御を行う。なお、前述したように、アプリケーション一覧画面制御部211は、本体10のNAPT機能320を介して、アプリマーケットサーバ2と通信する。
【0052】
図8は、操作画面の一例を示す図である。
図9は、URLスキームの一例を示す図である。本実施形態では、ユーザが、
図8に示すような、各種の操作を受け付ける操作画面上のアプリマーケットアプリ205を起動するためのアイコン51をタッチすると、アプリマーケットアプリ205が起動する。そして、アプリケーション一覧画面制御部211は、アプリケーション一覧画面を要求する信号(以下、「表示リクエスト」と称する場合がある)をアプリマーケットサーバ2に送信する。そして、アプリケーション一覧画面制御部211は、その応答として、アプリマーケットサーバ2から、
図2に示すようなアプリケーション一覧画面を取得し、操作パネル27に表示する。この例では、インストール命令の実行手順を記述したURL(Uniform Resource Locator)スキームが、インストールボタン50に貼り付けられている。
【0053】
図9では、「49354」というID(アプリID)で識別されるアプリケーションに対応するインストールボタン50に貼り付けられたURLスキームの一例が示されている。
図9における「Installer」の部分は、URLスキームのヘッダ部分であり、以下では、URLスキームのヘッダ部分を「スキーム部分」と称する場合がある。「Installer」というスキーム部分は、インストール命令を実行するアプリケーションを識別するための情報を表し、この例では、MFP1に搭載されたインストーラを表している。また、
図9における「installApp?id=49354」のうち「installApp」の部分はインストール命令であり、そのインストール命令の引数が「id=49354」である。これは、「49354」というIDで識別されるアプリケーションのインストール命令を表している。つまり、命令の具体的な内容を表す部分である。
【0054】
図9に示すURLスキームは、インストール命令の実行手順をURL形式で記述した情報であり、このURLスキームが貼り付けられたインストールボタン50が押下されると、インストーラ221が起動し、起動したインストーラ221が、「49354」というIDで識別されるアプリケーションをインストールする命令を実行することになる。具体的には、インストーラ221は、該アプリケーションのダウンロードをアプリケーションサーバ3に要求し、アプリケーションサーバ3から該アプリケーションをダウンロードする。そして、インストーラ221は、そのダウンロードしたアプリケーションをMFP1にインストールする。なお、前述したように、インストーラ221は、本体10のNAPT機能320を介して、アプリケーションサーバ3と通信する。
【0055】
図10は、管理メニュー画面の一例を示す図である。
図11は、自動アプリケーション処理設定画面の一例を示す図である。
図12は、処理時刻設定画面の一例を示す図である。
図13は、更新禁止設定画面の一例を示す図である。
図7に戻りつつ、
図10~
図13を用いて説明を続ける。
【0056】
通知受付部212は、後述する監視モジュール222からの通知を受け付ける。通知受付部212は、レシーバとして機能する。
【0057】
設定UI部213は、設定に必要な画面を操作パネル27に表示する。例えば、設定UI部213は、
図10に示すような管理メニュー画面を操作パネル27に表示する。そして、管理メニュー画面の「自動アプリケーション処理」ボタンの押下を受け付けた場合、設定UI部213は、
図11に示すような自動アプリケーション処理設定画面を操作パネル27に表示する。この例では、自動アプリケーション処理設定画面から、インストール済みおよび未インストールのアプリケーションに対する自動アプリケーション処理の設定を有効にすることを示す「ON」の選択を受け付けた場合、自動アプリケーション処理の設定が有効になる。
【0058】
一方、自動アプリケーション処理を無効にすることを示す「OFF」の選択を受け付けた場合、自動アプリケーション処理の設定は無効になる。また、自動アプリケーション処理設定画面から、「処理時刻」ボタンの押下を受け付けた場合、設定UI部213は、
図12に示すような処理時刻設定画面を操作パネル27に表示し、処理時刻(自動アプリケーション処理が実行される時刻)の設定を受け付けることができる。
【0059】
図7に示すように、アプリケーション処理実行部220は、上述のように、設定部214、アプリケーション処理情報取得部215、アプリケーション処理制御部216、報知メッセージ通知部217および機器情報制御部218を含む。
【0060】
設定部214は、設定UI部213により表示された画面で受け付けた入力に応じて、各種の設定を行う(設定のための制御を含む)。設定部214は、予め設定された処理時間帯に基づいて、アプリケーション処理を実施するタイミングを示す処理タイミング(処理時刻)を設定する。この例では、設定部214は、ユーザにより指定された時刻から2時間後までの時間帯を「処理時間帯」として設定するが、これに限られるものではない。以上のようにして、予め処理時間帯が設定される。設定部214は、予め設定された処理時間帯の範囲でランダムに時刻を選択し、その選択した時刻を処理タイミングとして設定することができる。この例では、設定部214は、15分間隔でランダムに処理タイミングを決定する。これによって、同様のアプリケーション処理を行う他のMFPとの関係で、当該アプリケーション処理の実行タイミングをずらすことができ、各サーバ(アプリマーケットサーバ2、アプリケーションサーバ3、ファームウェア配信サーバ4、およびウェブアプリサーバ5)の負荷の集中を抑制し、ネットワーク8のトラフィックを軽減することができる。
【0061】
なお、
図12に示す処理時刻設定画面では、指定した処理時刻から2時間後までの時間帯を処理時間帯として設定するものとしているが、2時間後までに限定されるものではない。この場合、処理時間帯を処理時刻から何時間後までにするかを設定可能としてもよい。また、上述の例では、処理タイミングとして15分間隔でランダムに決定しているものとしているが、これに限定されず、他の時間間隔でランダムに決定されるものとしてもよく、当該時間間隔を設定可能とするものとしてもよい。
【0062】
また、この例では、
図10に示す管理メニュー画面の「更新禁止設定」ボタンの押下を受け付けた場合、設定部214は、
図13に示すような更新禁止設定画面を操作パネル27に表示する。ユーザは、アプリケーションごとに、自動アプリケーション処理のうち自動更新の可否を決めることができ、自動更新を禁止したいアプリケーションについては、「禁止する」を選択する。この選択を受け付けた設定部214は、そのアプリケーションを自動更新の対象から外すように設定する。
【0063】
図7に戻って説明を続ける。設定部214は、以上のようにして設定した処理タイミングを監視モジュール222へ通知する。監視モジュール222は、設定部214により設定された処理タイミング(設定部214から通知された処理タイミング)に到達したか否かを監視する。監視モジュール222は、処理タイミングに到達した場合に、その旨をアプリマーケットアプリ205(通知受付部212)へ通知する。また、この例では、監視モジュール222は、MFP1が起動すると、MFP1が起動したことを示す起動通知をアプリマーケットアプリ205(通知受付部212)へ通知する。さらに、この例では、監視モジュール222は、操作部20がユーザの操作を受け付けていない状態が所定期間継続した場合、操作部20の状態を、通常時(操作部20が画面を表示し、ユーザの操作を受け付け可能な状態)よりも消費電力が少ない省エネ状態(スリープモード)に移行させる。例えば、監視モジュール222は、CPU21の動作を停止させてもよい。
【0064】
ここで、監視モジュール222とSCS312との組み合わせが、「設定部214により設定された処理タイミングに到達したか否かを監視する機能(監視部)」に相当すると考えてもよいし、監視モジュール222およびSCS312のうちの一方が、上記機能(監視部)に相当すると考えてもよい。
【0065】
アプリケーション処理情報取得部215は、MFP1(操作部20)にインストール済みおよび未インストールの1以上のアプリケーションのうち、アプリケーション処理(すなわち、インストール、更新、およびアンインストール)が必要なアプリケーションを示すアプリケーション処理情報を、アプリマーケットサーバ2から取得する。本実施形態では、アプリケーション処理情報取得部215は、アプリケーション処理を実施するタイミングを示す処理タイミングに到達した場合に、アプリケーション処理情報を要求する取得要求をアプリマーケットサーバ2へ送信し、その応答として、アプリケーション処理情報をアプリマーケットサーバ2から取得する。取得要求は、MFP1の機番を含むと共に、MFP1にインストール済みの1以上のアプリケーションごとに、該アプリケーションを識別するプロダクトIDと、バージョンと、アプリ名とを示す情報を含む。この例では、取得要求は、アプリケーション処理の内容とプロダクトIDとバージョンとアプリ名との組を、インストール済みおよび未インストールのアプリケーションと同じ数だけ含む。
【0066】
ここでは、アプリケーション処理情報取得部215は、通知受付部212が監視モジュール222からの通知(処理タイミングの通知)を受け受けた場合に、上述の取得要求をアプリマーケットサーバ2へ送信し、その応答として、アプリケーション処理情報を取得する。なお、アプリケーション処理情報取得部215は、本体10のNAPT機能320を介して、アプリマーケットサーバ2と通信する。この例では、アプリケーション処理情報は、アプリケーション処理が必要な1以上のアプリケーションごとに、アプリケーション処理の内容と、該アプリケーションを識別するプロダクトIDと、該アプリケーションの最新のバージョンと、アプリ名とを示す情報である。なお、アプリケーション処理が必要なアプリケーションが存在しない場合、取得要求の応答としては、アプリケーション処理が必要なアプリケーションは存在しないことを示す情報(以下の説明では、「アプリケーション処理不要情報」と称する場合がある)が通知されることになる。
【0067】
アプリケーション処理情報取得部215は、アプリマーケットサーバ2からアプリケーション処理情報を取得した場合、アプリケーション処理が必要なアプリケーションの数を示す情報をキャッシュデータとして本体10のHDD14に記憶する。なお、これに限らず、例えば、アプリケーション処理情報そのものをキャッシュデータとして記憶する形態であってもよい。要するに、キャッシュデータは、アプリケーション処理が必要なアプリケーションに関する情報であればよく、その内容は任意である。一方、アプリケーション処理情報取得部215は、アプリマーケットサーバ2からアプリケーション処理不要情報を取得した場合は、HDD14内のキャッシュデータをクリアする。詳しくは後述する。
【0068】
アプリケーション処理制御部216は、アプリケーション処理情報取得部215により取得されたアプリケーション処理情報が示すアプリケーションのインストール、更新、およびアンインストールのうち少なくともいずれかを処理(アプリケーション処理)する制御を行う。この例では、アプリケーション処理制御部216は、アプリケーション処理情報が示す1以上のアプリケーションについてのアプリケーション処理を要求するアプリケーション処理要求を、インストーラ221およびランチャ224へ送信する。ここでは、アプリケーション処理要求には、アプリケーション処理が必要なアプリケーションごとの処理内容、プロダクトID、バージョン、アプリ名の組が含まれている。
【0069】
アプリケーション処理制御部216からのアプリケーション処理要求を受けたインストーラ221は、アプリケーション処理が必要なアプリケーションについてアプリケーション処理を行う。なお、インストーラ221がアプリケーション処理を行うアプリケーションは、MFP1に対して直接インストール、更新およびアンインストールが行われるネイティブアプリケーションである。ここで、ネイティブアプリケーションとは、ウェブアプリケーション等のようにブラウザ上で実行されるものではなく、OS上で直接実行されるアプリケーションである。ここでは、アプリケーション処理制御部216とインストーラ221との組み合わせが、「アプリケーション処理情報取得部215により取得されたアプリケーション処理情報が示すアプリケーションに対するアプリケーション処理の制御を行う機能(アプリケーション処理制御部)」に相当すると考えてもよいし、アプリケーション処理制御部216およびインストーラ221のうちの一方が、上記機能(アプリケーション処理制御部)に相当すると考えてもよい。また、インストーラ221は、「ファームウェア更新制御部」の一例であり、アプリケーション処理情報が示すアプリケーションを利用するためにファームウェアの更新が必要な場合、ファームウェアを更新する制御を行う。
【0070】
アプリケーション処理制御部216からアプリケーション処理要求を受けたランチャ224は、アプリケーション処理が必要なウェブアプリケーションについてアプリケーション処理を行う。具体的には、ランチャ224は、アプリケーション処理要求にインストールを示す処理内容が含まれる場合、該当するウェブアプリケーションに関するコンテンツ等のダウンロード先を示すウェブアプリサーバ5を示すショートカットを含むアイコンを、例えば、上述の
図8に示す操作画面に登録する。また、ランチャ224は、アプリケーション処理要求に更新を示す処理内容が含まれる場合、例えば、該当するウェブアプリケーションについて既に登録されているアイコンのショートカットについて、コンテンツ等のダウンロード先を変更する。また、ランチャ224は、アプリケーション処理要求にアンインストールを示す処理内容が含まれる場合、該当するウェブアプリケーションに関するコンテンツ等のショートカットを含むアイコンを削除する。
【0071】
図14は、インストーラの機能ブロック構成の一例を示す図である。
図15は、ファームウェア更新画面の一例を示す図である。
図16は、第1の制御部の機能ブロック構成の一例を示す図である。
図17は、第3の制御部の機能ブロック構成の一例を示す図である。
図18は、第2の制御部の機能ブロック構成の一例を示す図である。
図14~
図18を参照しながら、ファームウェアの自動更新について説明する。
【0072】
図14に示すように、インストーラ221は、判定要求情報送信部230と、判定結果情報受信部231と、ファームウェア更新画面制御部232と、第1の制御部233と、インストール制御部234と、を有する。説明の便宜上、ここでは、ファームウェアの更新に必要な機能を例示しているが、インストーラ221が有する機能はこれらに限られるものではない。なお、前述したように、インストーラ221は、本体10のNAPT機能320を介して、アプリケーションサーバ3と通信する。
【0073】
判定要求情報送信部230は、インストールまたは更新が必要なアプリケーションをMFP1で利用できるか否かを判定する妥当性判定を要求する判定要求情報を、アプリケーションサーバ3へ送信する。すなわち、判定要求情報送信部230は、アプリケーション処理要求に含まれる処理内容がインストールまたは更新を示す場合に、上述の判定要求情報を、アプリケーションサーバ3へ送信する。この判定要求情報は、アプリケーション処理要求に含まれるアプリケーションを識別するプロダクトIDと、該アプリケーションを利用するために必要な機能を提供するためのモジュールを識別するモジュール識別情報と、MFP1に搭載された該モジュールのバージョン値を示すバージョン情報と、を含む。モジュールとは、特定の機能を提供するためのソフトウェアの単位を表す。また、バージョン値は、対応するモジュールの属性を示すとともに該モジュールが変更を重ねるたびに大きな値を示す。
【0074】
本実施形態における判定要求情報は、アプリケーション処理要求に含まれる1以上のプロダクトIDを含む。さらに、本実施形態における判定要求情報は、MFP1に搭載された複数のモジュールと1対1に対応する複数のモジュールID(モジュール識別情報の一例)ごとに、該モジュールIDで識別されるモジュールのバージョン値を示すバージョン情報を対応付けたモジュール情報を含んでいる。ただし、判定要求情報の形態は、これに限られるものではない。例えば、判定要求情報は、アプリケーション処理要求に含まれるプロダクトIDと、該プロダクトIDで識別されるアプリケーションを利用するために必要な機能を提供するためのモジュールを識別するモジュールIDと、MFP1に搭載された、該モジュールIDで識別されるモジュールのバージョン値を示すバージョン情報と、を含む一方、該プロダクトIDで識別されるアプリケーションを利用するために必要としないモジュールを識別するモジュールIDやそのバージョン値を示すバージョン情報を含まない形態であってもよい。
【0075】
判定結果情報受信部231は、上述の判定要求情報に対する応答として、上述の妥当性判定の結果を示す判定結果情報をアプリケーションサーバ3から受信する。アプリケーションサーバ3の具体的な構成については後述する。
【0076】
ファームウェア更新画面制御部232は、判定結果情報受信部231により受信された判定結果情報が、インストールまたは更新が必要なアプリケーション(つまり、インストールまたは更新を示すアプリケーション処理要求に含まれるプロダクトIDで識別されるアプリケーション)はMFP1で利用できないことを示す場合、ファームウェアの更新を行うか否かの指示を受け付けるためのファームウェア更新画面を表示する制御を行う。本実施形態では、ファームウェア更新画面制御部232は、
図15に示すようなファームウェア更新画面を操作パネル27に表示する制御を行う。この例では、ユーザは、
図15に示す「OK」ボタンを押下することで、ファームウェアの更新を指示することができる。
【0077】
図14の説明を続ける。第1の制御部233は、判定結果情報受信部231により受信された判定結果情報が、インストールまたは更新が必要なアプリケーションはMFP1で利用できないことを示す場合、MFP1の動作を制御するファームウェアを更新する制御を行う。この例では、第1の制御部233は、上述のファームウェア更新画面を介して、ファームウェアを更新する指示を受け付けた場合、ファームウェアを更新する制御を行う。
【0078】
本実施形態では、第1の制御部233は、判定結果情報受信部231により受信された判定結果情報が、インストールまたは更新が必要なアプリケーションがMFP1で利用できないことを示す場合、最新版のファームウェアを示す第1のファームウェアをMFP1に導入(インストール)する制御を行う。ここでは、第1のファームウェアは、操作部20の動作を制御する操作部用ファームウェアの最新版を示す第2のファームウェアと、本体10の動作を制御する本体用ファームウェアの最新版を示す第3のファームウェアとから構成される。また、
図16に示すように、第1の制御部233は、第2の制御部240と、第3の制御部250とを含む。第2の制御部240は、第2のファームウェアを操作部20に導入する制御を行う。第3の制御部250は、第3のファームウェアを本体10に導入する制御を行う。
【0079】
説明の便宜上、第2の制御部240が有する機能を説明する前に、第3の制御部250が有する機能について説明する。
図17に示すように、第3の制御部250は、パッケージ取得部251と、分解部252と、アドレス情報送信部253と、第1の導入制御部254とを有する。
【0080】
パッケージ取得部251は、第2のファームウェアと第3のファームウェアとが一体化されたパッケージ(つまり、操作部用ファームウェアの最新版と、本体用ファームウェアの最新版とが一体化されたパッケージ、以下の説明では「最新版のパッケージ」と称する場合がある)を取得し、取得したパッケージを記憶部(この例ではHDD14)に保存する。本実施形態では、パッケージ取得部251は、後述の指示部241からの指示に従って、最新版のパッケージを要求するパッケージリクエストをファームウェア配信サーバ4に送信し、その応答として、最新版のパッケージをファームウェア配信サーバ4から取得する。
【0081】
分解部252は、パッケージ取得部251により取得された最新版のパッケージを、第2のファームウェアと第3のファームウェアに分解する。パッケージの分解方法としては、公知の様々な方法を利用することができる。
【0082】
アドレス情報送信部253は、記憶部(この例ではHDD14)のうち第2のファームウェアが記憶された領域(記憶領域)を特定可能なアドレス情報(HDD14における第2のファームウェアの所在を示す情報)を第2の制御部240へ送信する。
【0083】
第1の導入制御部254は、分解部252により分解された第3のファームウェアを本体10に導入する制御を行う。この例では、第1の導入制御部254は、第3のファームウェアを本体10にインストールする制御を行う。より具体的には、第1の導入制御部254は、第3のファームウェアを構成するプログラムおよびデータ等のファイルを展開して必要な設定を行い、OSの起動中は改変できないファイルについては、本体10の再起動を行って設定する。
【0084】
次に、第2の制御部240が有する機能について説明する。
図18に示すように、第2の制御部240は、指示部241と、アドレス情報受信部242と、読出部243と、第2の導入制御部244とを有する。
【0085】
指示部241は、上述の判定結果情報受信部231により受信された判定結果情報が、インストールまたは更新が必要なアプリケーションはMFP1で利用できないことを示す場合、最新版のパッケージの取得を第3の制御部250(パッケージ取得部251)に指示する。
【0086】
アドレス情報受信部242は、第3の制御部250から前述のアドレス情報を受信する。読出部243は、記憶部(この例ではHDD14)のうち、アドレス情報受信部242により受信されたアドレス情報により特定される領域から、第2のファームウェアを読み出す。
【0087】
第2の導入制御部244は、読出部243により読み出された第2のファームウェアを操作部20に導入する制御を行う。この例では、第2の導入制御部244は、第2のファームウェアを操作部20にインストールする制御を行う。より具体的には、第2の導入制御部244は、第2のファームウェアを構成するプログラムおよびデータ等のファイルを展開して必要な設定を行い、OSの起動中は改変できないファイルについては、操作部20の再起動を行って設定する。
【0088】
本実施形態では、操作部20が上述の第2の制御部240を有し、本体10が上述の第3の制御部250を有している。
【0089】
以上のようにして、第1の制御部233は、判定結果情報受信部231により受信された判定結果情報が、インストールまたは更新が必要なアプリケーションはMFP1で利用できないことを示す場合、最新版のファームウェアを示す第1のファームウェアをMFP1に導入する制御を行う。第1の制御部233による制御が行われた後、判定要求情報送信部230は、アプリケーションサーバ3へ上述の判定要求情報を再送信し、以上の処理が繰り返される。
【0090】
図19~
図23は、ファームウェアの更新手順を説明するための図である。
図19~
図23を用いて、ファームウェアの更新手順を説明する。
【0091】
まず、
図19に示すように、第3の制御部250(パッケージ取得部251)は、第2の制御部240(指示部241)からの指示に従って、ファームウェア配信サーバ4から、最新版のパッケージを取得し、取得したパッケージをHDD14に保存する。
【0092】
次に、
図20に示すように、第3の制御部250(分解部252)は、HDD14に保存したパッケージを、第2のファームウェアと第3のファームウェアとに分解する。
【0093】
次に、
図21に示すように、第3の制御部250(第1の導入制御部254)は、第3のファームウェアを構成するプログラムおよびデータ等のファイルを展開して必要な設定を行う。なお、この段階では、本体10の再起動は行わない。
【0094】
次に、第3の制御部250は、第2の制御部240に、第2のファームウェアの導入を指示(操作部用ファームウェアの更新を指示)する。この例では、第3の制御部250(アドレス情報送信部253)は、HDD14のうち第2のファームウェアが記憶された領域を特定可能なアドレス情報を第2の制御部240へ送信することで、第2のファームウェアの導入を指示することになる。第2の制御部240(読出部243)は、HDD14のうち、第3の制御部250から受信したアドレス情報により特定される領域から、第2のファームウェアを読み出す。そして、
図22に示すように、第2の制御部240(第2の導入制御部244)は、第2のファームウェアを構成するプログラムおよびデータ等のファイルを展開して必要な設定を行う。そして、OSの起動中は改変できないファイル以外の設定が完了した後、操作部20の再起動を行い、OSの起動中は改変できないファイルの設定を行う。これにより、操作部20に対する第2のファームウェアの導入が完了する。
【0095】
操作部20の再起動が完了し、操作部20と本体10との再接続後、
図23に示すように、第3の制御部250は、第2の制御部240に、再度、第2のファームウェアの導入を指示する。この段階では、操作部20に対する第2のファームウェアの導入は完了しているので、この指示を受けた第2の制御部240は、即時に、第2のファームウェアの導入が完了していることを示す応答を第3の制御部250へ返す。この応答を受けた第3の制御部250(第1の導入制御部254)は、本体10の再起動を行い、OSの起動中は改変できないファイルの設定を行う。これにより、本体10に対する第3のファームウェアの導入も完了する。
【0096】
以上のようにして、MFP1に対する第1のファームウェアの導入が完了した後、MFP1は、上述の妥当性判定を再びアプリケーションサーバ3に要求する。つまり、MFP1に対する第1のファームウェアの導入が完了した後、判定要求情報送信部230は、再度、上述の判定要求情報をアプリケーションサーバ3へ送信する。この場合の判定要求情報に含まれるモジュール情報は、最新のモジュール情報となる(プロダクトIDは前回と同じ)。上記と同様に、この判定要求情報を受信したアプリケーションサーバ3は、上述の妥当性判定を行い、その結果を示す判定結果情報をMFP1へ送信する。
【0097】
図14の説明を続ける。インストール制御部234は、判定結果情報受信部231により受信された判定結果情報が、インストールまたは更新が必要なアプリケーションはMFP1で利用できることを示す場合、該アプリケーションのダウンロードをアプリケーションサーバ3に要求し、アプリケーションサーバ3から該アプリケーションをダウンロードする。そして、そのダウンロードしたアプリケーションをMFP1にインストール(更新含む)する。これにより、該アプリケーションのインストールまたは更新が完了する。
【0098】
図24は、報知メッセージの一例を示す図である。
図7に戻って説明を続けると共に、
図24を用いて報知メッセージ通知部217の動作を説明する。
【0099】
報知メッセージ通知部217は、アプリケーション処理が必要なアプリケーションが存在する場合(典型的にはアプリマーケットサーバ2から上述のアプリケーション処理情報が取得された場合)、報知メッセージ表示モジュール223に対して、報知メッセージの表示を指示する。この指示を受けた報知メッセージ表示モジュール223は、例えば、
図24に示すような報知メッセージを操作パネル27に表示する。ここでは、報知メッセージ通知部217と報知メッセージ表示モジュール223との組み合わせが、「アプリケーション処理情報が、アプリケーション処理を必要とするアプリケーションが存在することを示す場合、その旨を報知する報知メッセージを表示部に表示する機能(報知メッセージ表示制御部)」に相当すると考えてもよいし、報知メッセージ通知部217および報知メッセージ表示モジュール223のうちの一方が、「報知メッセージ表示制御部」に相当すると考えてもよい。
【0100】
機器情報制御部218は、MFP1の機番と共に、MFP1にインストール済みのアプリケーション(ネイティブアプリケーション、およびウェブアプリケーション双方含む)ごとに、該アプリケーションを識別するプロダクトIDと、バージョンと、アプリ名と、を機器情報として取得する。具体的には、機器情報制御部218は、MFP1の機番と共に、MFP1にインストール済みのアプリケーションのうちネイティブアプリケーションについて、該ネイティブアプリケーションを識別するプロダクトIDと、バージョンと、アプリ名と、を機器情報として取得する。また、機器情報制御部218は、MFP1の機番と共に、MFP1にインストール済みのアプリケーションのうちウェブアプリケーション(すなわち、登録済みのウェブアプリケーション)について、該ウェブアプリケーションを識別するプロダクトIDと、バージョンと、アプリ名と、を機器情報として取得する。
【0101】
次に、機器情報制御部218による機器情報の取得タイミングについて説明する。まず、MFP1の新規設置時に、機器情報制御部218は、MFP1に既にインストールされている、すなわち、プリインストールされているアプリケーションの機器情報を取得する。そして、機器情報制御部218は、機器情報をアプリマーケットサーバ2へ送信し、アプリマーケットサーバ2は、受信した機器情報を保存する。
【0102】
また、機器情報制御部218は、アプリケーション処理を実施するタイミングを示す処理タイミングに到達した場合に、機器情報を取得してアプリケーション処理情報取得部215に渡す。アプリケーション処理情報取得部215は、受け取った機器情報を、上述の取得要求に含めてアプリマーケットサーバ2へ送信する。
【0103】
また、機器情報制御部218は、MFP1でのアプリケーション処理が終了した後、機器情報を取得してアプリケーション処理情報取得部215に渡す。アプリケーション処理情報取得部215は、受け取った機器情報を、上述の取得要求に含めてアプリマーケットサーバ2へ送信する。アプリマーケットサーバ2は、受信した取得要求に含まれる機器情報を、MFP1にインストールされたアプリケーションの最新の状態であるものとして保存(更新)する。
【0104】
(アプリマーケットサーバ等のハードウェア構成)
図25は、アプリマーケットサーバのハードウェア構成の一例を示す図である。
図25を用い、アプリマーケットサーバ2のハードウェア構成を説明する。なお、アプリケーションサーバ3、ファームウェア配信サーバ4、ウェブアプリサーバ5および設定用PC6のハードウェア構成も
図25の構成と同様である。
【0105】
図25に示すように、アプリマーケットサーバ2は、CPU32と、ROM33と、RAM34と、通信I/F35と、入力装置36と、表示装置37とを備える。
【0106】
CPU32は、アプリマーケットサーバ2の動作を統括的に制御する。ROM33は、プログラム等の各種のデータを記憶する不揮発性のメモリである。RAM34は、CPU32が実行する各種の処理の作業領域(ワークエリア)として機能する揮発性のメモリである。通信I/F35は、ネットワーク8と接続するためのインタフェースである。入力装置36は、ユーザによる操作の入力に用いられるデバイスであり、例えば、マウスおよびキーボード等で構成される。表示装置37は、各種の情報を表示するデバイスであり、例えば、液晶型ディスプレイ装置等で構成される。
【0107】
(アプリマーケットサーバの機能ブロックの構成および動作)
図26は、アプリマーケットサーバの機能ブロック構成の一例を示す図である。
【0108】
図26に示すように、アプリマーケットサーバ2は、アプリケーション一覧画面保持部261と、アプリケーション一覧画面送信部262と、アプリケーション情報記憶部263と、判断部264と、アプリケーション処理情報送信部266と、アプリケーション処理不要情報送信部267と、処理予約画面保持部270と、処理予約画面送信部271と、設定情報受信部272と、設定情報保持部273と、を有する。説明の便宜上、
図26では、本実施形態に関する機能を主に例示しているが、アプリマーケットサーバ2が有する機能は、これらに限られるものではない。
【0109】
アプリケーション一覧画面保持部261は、上述のアプリケーション一覧画面を保持する。アプリケーション一覧画面送信部262は、MFP1から上述の表示リクエストを受信すると、その応答として、アプリケーション一覧画面保持部261に保持されているアプリケーション一覧画面をMFP1に送信する。
【0110】
アプリケーション情報記憶部263は、アプリケーション一覧画面に表示する複数のアプリケーションごとに、プロダクトIDと、バージョンと、アプリ名とを対応付けたアプリケーション情報を記憶する。
【0111】
判断部264は、MFP1から前述の取得要求を受信した場合に、アプリケーション処理、すなわち、インストール、更新、またはアンインストールが必要なアプリケーションの有無を判断する。
【0112】
本実施形態では、判断部264は、アプリケーション情報記憶部263に記憶されたアプリケーション情報を参照し、上述の取得要求に含まれるプロダクトIDとは異なるプロダクトIDであり、かつ、MFP1にインストール可能とされるアプリケーションが、当該アプリケーション情報に含まれる場合、当該アプリケーションをインストールの候補と判断する。次に、判断部264は、設定情報保持部273に記憶された処理予約設定情報(後述)に、上述のようにインストールの候補と判断したアプリケーションについて、「インストール予約」の設定内容が含まれている場合、当該アプリケーションはインストールが必要であると判断する。一方、判断部264は、処理予約設定情報に、上述のようにインストールの候補と判断したアプリケーションについて、「インストール予約」の設定内容が含まれていない場合、当該アプリケーションはインストールが不要であると判断する。
【0113】
また、判断部264は、アプリケーション情報記憶部263に記憶されたアプリケーション情報を参照し、上述の取得要求に含まれるプロダクトIDで識別されるアプリケーションであり、かつ、MFP1にインストール可能とされるアプリケーションが、当該アプリケーション情報に含まれる場合、当該アプリケーションをアンインストールの候補と判断する。次に、判断部264は、設定情報保持部273に記憶された処理予約設定情報に、上述のようにアンインストールの候補と判断したアプリケーションについて、「アンインストール予約」の設定内容が含まれている場合、当該アプリケーションはアンインストールが必要であると判断する。一方、判断部264は、処理予約設定情報に、上述のようにアンインストールの候補と判断したアプリケーションについて、「アンインストール予約」の設定内容が含まれていない場合、当該アプリケーションはアンインストールが不要であると判断する。
【0114】
また、判断部264は、アプリケーション情報記憶部263に記憶されたアプリケーション情報を参照し、上述の取得要求に含まれる組(プロダクトIDとバージョンとアプリ名との組)ごとに、該組に含まれるプロダクトIDと一致するプロダクトIDに対応付けられたバージョンが、該組に含まれるバージョンと同じであるか否かを判断する。バージョンが異なる場合、判断部264は、その組に含まれるプロダクトIDで識別されるアプリケーションを更新の候補であると判断する。次に、判断部264は、設定情報保持部273に記憶された処理予約設定情報に、上述のように更新の候補と判断したアプリケーションについて、「更新予約」の設定内容が含まれている場合、当該アプリケーションは更新が必要であると判断する。一方、判断部264は、処理予約設定情報に、上述のように更新の候補と判断したアプリケーションについて、「更新予約」の設定内容が含まれていない場合、当該アプリケーションは更新が不要であると判断する。
【0115】
アプリケーション処理情報送信部266は、判断部264により、アプリケーション処理が必要なアプリケーションが存在すると判断された場合、取得要求への応答として、前述のアプリケーション処理情報をMFP1へ送信する。アプリケーション処理情報は、判断部264によりアプリケーション処理が必要であると判断された1以上のアプリケーションごとに、アプリケーション処理の内容と、該アプリケーションを識別するプロダクトIDと、バージョンと、アプリ名とを示す情報である。
【0116】
アプリケーション処理不要情報送信部267は、判断部264により、アプリケーション処理が必要なアプリケーションが存在しないと判断された場合、取得要求への応答として、前述のアプリケーション処理不要情報をMFP1へ送信する。
【0117】
処理予約画面保持部270は、設定用PC6における処理予約を設定するための画面の情報を保持する。処理予約画面送信部271は、設定用PC6から処理予約のための画面取得要求を受信すると、その応答として、後述する機器一覧画面の情報、および処理可能アプリケーション一覧画面の情報、ならびに、設定情報保持部273で保持されている現状の処理予約設定情報を、設定用PC6へ送信する。
【0118】
設定情報受信部272は、設定用PC6で設定された処理予約設定情報を、該設定用PC6から受信する。設定情報保持部273は、設定情報受信部272により受信された処理予約設定情報を保持する。
【0119】
本実施形態では、上述のアプリマーケットサーバ2が有するアプリケーション一覧画面送信部262、判断部264、アプリケーション処理情報送信部266、アプリケーション処理不要情報送信部267、処理予約画面送信部271および設定情報受信部272の各々の機能は、CPU32がROM33等に格納されたプログラムを実行することにより実現されるが、これに限らず、例えば、専用のハードウェア回路(半導体集積回路等)により実現されてもよい。また、上述のアプリケーション一覧画面保持部261、アプリケーション情報記憶部263、処理予約画面保持部270および設定情報保持部273は、例えば、ROM33または例えば、HDD等の補助記憶装置等により実現される。なお、ここでは、アプリケーション一覧画面送信部262、アプリケーション処理情報送信部266、アプリケーション処理不要情報送信部267、処理予約画面送信部271および設定情報受信部272の機能は、プログラムを実行するCPU32と通信I/F35との組み合わせにより実現されると考えてもよい。例えば、アプリケーション一覧画面送信部262の機能は、CPU32が、アプリケーション一覧画面をMFP1へ送信するよう、通信I/F35を制御することにより実現される。同様に、アプリケーション処理情報送信部266の機能は、CPU32が、更新アプリケーション情報をMFP1へ送信するよう、通信I/F35を制御することにより実現される。同様に、アプリケーション処理不要情報送信部267の機能は、CPU32が、更新不要情報をMFP1へ送信するよう、通信I/F35を制御することにより実現される。同様に、処理予約画面送信部271の機能は、CPU32が、後述する機器一覧画面の情報、および処理可能アプリケーション一覧画面の情報、ならびに、設定情報保持部273で保持されている現状の処理予約設定情報を、設定用PC6へ送信するよう、通信I/F35を制御することにより実現される。同様に、設定情報受信部272の機能は、CPU32が、処理予約設定情報を、該設定用PC6から受信するよう、通信I/F35を制御することにより実現される。
【0120】
(アプリケーションサーバの機能ブロックの構成および動作)
図27は、アプリケーションサーバが機能ブロック構成の一例を示す図である。
図28は、対応情報の一例を示す図である。
図27および
図28を用いて、アプリケーションサーバ3が有する機能の一例を説明する。
【0121】
図27に示すように、アプリケーションサーバ3は、対応情報記憶部321と、判定部322と、判定結果情報送信部323と、アプリケーション保持部324と、アプリケーション送信部325とを有する。説明の便宜上、
図27では、本実施形態に関する機能を主に例示しているが、アプリケーションサーバ3が有する機能は、これらに限られるものではない。
【0122】
対応情報記憶部321は、対応情報を記憶する。対応情報は、複数のアプリケーションと1対1に対応する複数のアプリケーション識別情報(この例ではプロダクトID)ごとに、該プロダクトIDで識別されるアプリケーションを利用するために必要な機能を提供するためのモジュールを識別するモジュール識別情報(この例ではモジュールID)と、該モジュール識別情報で識別されるモジュールの最低限のバージョン値(対応するアプリケーションを利用するために必要な最低限のバージョン値)を示す下限バージョン情報と、を対応付けた情報である。
【0123】
図27の説明を続ける。判定部322は、MFP1から上述の判定要求情報を受信した場合、妥当性判定を行う。より具体的には、判定部322は、MFP1から受信した上述の判定要求情報と、対応情報記憶部321に記憶された対応情報とに基づいて、上述の判定要求情報に含まれるプロダクトIDで識別されるアプリケーションをMFP1で利用できるか否かを判定する。さらに言えば、判定部322は、上述の対応情報に含まれるプロダクトIDとモジュールIDとの組み合わせのうち、判定要求情報に含まれるプロダクトIDとモジュールIDとの組み合わせと一致する組み合わせを特定する。そして、判定部322は、その特定した組み合わせに対応付けられた下限バージョン情報が示すバージョン値が、判定要求情報に含まれるバージョン情報が示すバージョン値よりも大きい場合、上述の判定要求情報に含まれるプロダクトIDで識別されるアプリケーションはMFP1で利用できないと判定する。一方、判定部322は、下限バージョン情報が示すバージョン値が、上述の判定要求情報に含まれるバージョン情報が示すバージョン値以下の場合は、上述の判定要求情報に含まれるプロダクトIDで識別されるアプリケーションはMFP1で利用できると判定する。
【0124】
本実施形態における妥当性判定の手順は以下のとおりであるが、これに限られるものではない。判定部322は、MFP1から上述の判定要求情報を受信した場合、上述の対応情報に含まれる複数のプロダクトIDのうち、上述の判定要求情報に含まれるプロダクトIDと一致するプロダクトIDを特定する。そして、判定部322は、上述の対応情報において、その特定したプロダクトIDに対応付けられたモジュールIDを特定し、上述の判定要求情報に含まれる上述のモジュール情報(MFP1に搭載された複数のモジュールと1対1に対応する複数のモジュールIDごとにバージョン情報を対応付けた情報)に含まれる複数のモジュールIDの中から、その特定したモジュールIDと一致するモジュールIDを選択(説明の便宜上、この選択したモジュールIDを「選択モジュールID」と称する)するとともに、モジュール情報において該選択モジュールIDに対応付けられたバージョン情報を選択する(説明の便宜上、この選択したバージョン情報を「選択バージョン情報」と称する)。そして、判定部322は、上述の対応情報に含まれるプロダクトIDとモジュールIDの組み合わせのうち、上述の判定要求情報に含まれるプロダクトIDと、上述の選択モジュールIDとの組み合わせと一致する組み合わせを特定し、その特定した組み合わせに対応付けられた下限バージョン情報が示すバージョン値が、上述の選択バージョン情報が示すバージョン値よりも大きい場合、上述の判定要求情報に含まれるプロダクトIDで識別されるアプリケーションはMFP1で利用できないと判定する。一方、判定部322は、下限バージョン情報が示すバージョン値が、上述の選択バージョン情報が示すバージョン値以下の場合は、上述の判定要求情報に含まれるプロダクトIDで識別されるアプリケーションはMFP1で利用できると判定する。
【0125】
図27に示す判定結果情報送信部323は、上述の妥当性判定の結果を示す判定結果情報をMFP1へ送信する。アプリケーション保持部324は、複数のアプリケーション(ここでは、ネイティブアプリケーション)を保持する。アプリケーション送信部325は、MFP1からの要求に応じて、アプリケーション保持部324に保持されたアプリケーションをMFP1へ送信する。以上が、アプリケーションサーバ3の構成である。
【0126】
本実施形態では、上述のアプリケーションサーバ3の各部の機能(判定部322、判定結果情報送信部323、アプリケーション送信部325等)は、CPU32がROM33等に格納されたプログラムを実行することにより実現されるが、これに限らず、例えば、上述のアプリケーションサーバ3の各部の機能のうちの少なくとも一部が専用のハードウェア回路(半導体集積回路等)により実現されてもよい。また、上述の対応情報記憶部321および上述のアプリケーション保持部324は、例えば、ROM33等により実現される。なお、ここでは、判定結果情報送信部323およびアプリケーション送信部325の各々の機能は、プログラムを実行するCPU32と通信I/F35との組み合わせにより実現されると考えてもよい。例えば、判定結果情報送信部323の機能は、CPU32が、判定結果情報をMFP1へ送信するよう、通信I/F35を制御することにより実現される。また、例えば、アプリケーション送信部325の機能は、CPU32が、アプリケーションをMFP1へ送信するよう、通信I/F35を制御することにより実現される。
【0127】
(ファームウェア配信サーバの機能ブロックの構成および動作)
図29は、ファームウェア配信サーバの機能ブロック構成の一例を示す図である。
図29を用いて、ファームウェア配信サーバ4が有する機能の一例について説明する。
【0128】
図29に示すように、ファームウェア配信サーバ4は、パッケージ保持部411と、パッケージ送信部412とを有する。説明の便宜上、
図29では、本実施形態に関する機能を主に例示しているが、ファームウェア配信サーバ4が有する機能は、これらに限られるものではない。
【0129】
パッケージ保持部411は、最新版のパッケージを保持する。パッケージ送信部412は、MFP1から上述のパッケージリクエストを受信すると、その応答として、パッケージ保持部411に保持されている最新版のパッケージをMFP1に送信する。
【0130】
本実施形態では、上述のファームウェア配信サーバ4が有するパッケージ送信部412の機能は、CPU32がROM33等に格納されたプログラムを実行することにより実現されるが、これに限らず、例えば、専用のハードウェア回路(半導体集積回路等)により実現されてもよい。また、上述のパッケージ保持部411は、例えば、ROM33または例えば、HDD等の補助記憶装置等により実現される。なお、ここでは、パッケージ送信部412の機能は、プログラムを実行するCPU32と通信I/F35との組み合わせにより実現されると考えてもよい。例えば、パッケージ送信部412の機能は、CPU32が、パッケージをMFP1へ送信するよう、通信I/F35を制御することにより実現される。
【0131】
(ウェブアプリサーバの機能ブロックの構成および動作)
図30は、ウェブアプリサーバの機能ブロック構成の一例を示す図である。
図30を用いて、ウェブアプリサーバ5が有する機能の一例について説明する。
【0132】
図30に示すように、ウェブアプリサーバ5は、ウェブアプリコンテンツ保持部501と、ウェブアプリコンテンツ送信部502とを有する。説明の便宜上、
図30では、本実施形態に関する機能を主に例示しているが、ウェブアプリサーバ5が有する機能は、これらに限られるものではない。
【0133】
ウェブアプリコンテンツ保持部501は、複数のアプリケーション(ここでは、ウェブアプリケーション)で使用されるコンテンツ等を保持する。ウェブアプリコンテンツ送信部502は、MFP1からの要求に応じて、ウェブアプリコンテンツ保持部501に保持されたウェブアプリケーションのコンテンツ等をMFP1へ送信する。
【0134】
本実施形態では、上述のウェブアプリサーバ5が有するウェブアプリコンテンツ送信部502の機能は、CPU32がROM33等に格納されたプログラムを実行することにより実現されるが、これに限らず、例えば、専用のハードウェア回路(半導体集積回路等)により実現されてもよい。また、上述のウェブアプリコンテンツ保持部501は、例えば、ROM33または例えば、HDD等の補助記憶装置等により実現される。なお、ここでは、ウェブアプリコンテンツ送信部502の機能は、プログラムを実行するCPU32と通信I/F35との組み合わせにより実現されると考えてもよい。例えば、ウェブアプリコンテンツ送信部502の機能は、CPU32が、パッケージをMFP1へ送信するよう、通信I/F35を制御することにより実現される。
【0135】
(設定用PCの機能ブロックの構成および動作)
図31は、設定用PCの機能ブロック構成の一例を示す図である。
図32は、機器一覧画面の一例を示す図である。
図33は、処理可能アプリケーション一覧画面の一例を示す図である。
図31~
図33を用いて、設定用PC6が有する機能の一例について説明する。
【0136】
図31に示すように、設定用PC6は、処理予約画面制御部601と、設定部602と、設定情報送信部603とを有する。説明の便宜上、
図31では、本実施形態に関する機能を主に例示しているが、設定用PC6が有する機能は、これらに限られるものではない。
【0137】
処理予約画面制御部601は、アプリマーケットサーバ2から機器一覧画面の情報、および処理可能アプリケーション一覧画面の情報、ならびに、現状の処理予約設定情報等を取得し、取得した画面を表示装置37に表示する制御を行う。
【0138】
本実施形態では、例えば、
図32に示すような機器一覧画面が表示される場合、処理予約画面制御部601は、アプリマーケットサーバ2から当該機器一覧画面の情報と共に、各機器の機器情報を取得して、該各機器の機番およびモデル名を表示させる。なお、
図32に示す機器一覧画面は一例であり、機番およびモデル名の他、例えば、バージョン等を表示させるものとしてもよい。
【0139】
図32に示す機器一覧画面において、ユーザは、アプリケーション処理の予約設定を行う対象となる機器(ここでは、MFP1)を選択する。このように機器一覧画面に特定の機器が選択された場合、処理予約画面制御部601は、特定の機器について、アプリマーケットサーバ2のアプリケーション情報から、新たにインストール可能なアプリケーションの情報を取得し、かつ、該特定の機器の現状の処理予約設定情報を取得して、例えば、
図33に示す処理可能アプリケーション一覧画面を表示させる。処理予約設定情報は、例えば、各アプリケーションを識別するプロダクトIDに、当該アプリケーションに対する「インストール予約」、「アンインストール予約」および「更新予約」等の予約処理の情報を関連付けた設定情報である。そして、処理予約画面制御部601は、処理可能アプリケーション一覧画面において、取得した機器情報に基づくインストール済みのアプリケーションの情報、および、新たにインストール可能なアプリケーションの情報を表示させる。
図33に示す例では、アプリケーションの情報として、「アプリケーションタイトル」(アプリ名)、「バージョン」、「アプリケーション状態」(現状の当該アプリケーションの状態および設定状態)、および「処理予約」を表示させている。
【0140】
処理予約画面制御部601は、例えば、対象となるアプリケーションが未インストールであり、かつ、現状の処理予約設定情報に該アプリケーションに対する「インストール予約」の設定内容が含まれていない場合、アプリケーション状態として「未インストール」と表示させる。一方、処理予約画面制御部601は、現状の処理予約設定情報に該アプリケーションに対する「インストール予約」の設定内容が含まれている場合、アプリケーション状態として「インストール予約中」と表示させる。
【0141】
また、処理予約画面制御部601は、例えば、対象となるアプリケーションがインストール済みであり、かつ、取得した機器情報およびアプリケーション情報から更新の必要がないと判断した場合、アプリケーション状態として「インストール済み」と表示させる。また、処理予約画面制御部601は、取得した機器情報およびアプリケーション情報から更新が可能と判断した場合であって、現状の処理予約設定情報に該アプリケーションに対する「更新予約」の設定内容が含まれていない場合、アプリケーション状態として「未更新」と表示させる。さらに、処理予約画面制御部601は、取得した機器情報およびアプリケーション情報から更新が可能と判断した場合であって、現状の処理予約設定情報に該アプリケーションに対する「更新予約」の設定内容が含まれている場合、アプリケーション状態として「更新予約中」と表示させる。
【0142】
また、処理予約画面制御部601は、例えば、対象となるアプリケーションがインストール済みであり、かつ、現状の処理予約設定情報に該アプリケーションに対する「アンインストール予約」の設定内容が含まれている場合、アプリケーション状態として「アンインストール予約中」と表示させる。また、処理予約画面制御部601は、対象となるアプリケーションが未インストールであるが、かつ、過去に一度インストールされた実績がある場合、アプリケーション状態として「アンインストール済」と表示させる。
【0143】
また、
図33に示すように、画面の上部には、各アプリケーション状態を選択するチェクボックスがあり、ユーザは、所望のアプリケーション状態を選択することによって、選択したアプリケーション状態であるアプリケーションの一覧のみを表示させることができる。なお、上述したアプリケーション状態として示したものは一例であり、現状のアプリケーションの状態および設定状態が認識できるような状態を表示できるものであれば、他の表示態様であってもよい。
【0144】
さらに、処理予約画面制御部601は、処理可能アプリケーション一覧画面において、上述のように表示させたアプリケーション状態に応じて、予約することができる処理の選択肢を「処理予約」の欄に選択可能に表示させる。例えば、処理予約画面制御部601は、アプリケーション状態が「インストール予約中」である場合、処理予約の欄に予約することができる処理として「インストール予約取消」を選択可能に表示させる。また、処理予約画面制御部601は、アプリケーション状態が「未更新」である場合、更新することもアンインストールすることも可能であるので、処理予約の欄に「更新予約」および「アンインストール予約」を選択可能に表示させる。なお、予約することができる処理が一以上である場合、処理予約の欄においてプルダウン形式により、予約する処理を選択することができるようにしてもよい。
【0145】
図31に戻って説明を続ける。設定部602は、処理可能アプリケーション一覧画面で受け付けた入力に応じて、各種の設定を行う。具体的には、設定部602は、処理予約の欄でユーザにより選択された処理を、該当するアプリケーションに対して予約する処理として設定する。設定情報送信部603は、設定部602により設定された情報を、処理予約設定情報として、アプリマーケットサーバ2へ送信する。例えば、ユーザの選択操作によって、「インストール予約取消」が選択された場合、設定情報送信部603は、「インストール予約」とされていたアプリケーションを識別するプロダクトIDと、当該「インストール予約」という予約情報との関連情報を、処理予約設定情報から削除して送信すればよい。
【0146】
本実施形態では、上述の設定用PC6が処理予約画面制御部601、設定部602および設定情報送信部603の各々の機能は、CPU32がROM33等に格納されたプログラムを実行することにより実現されるが、これに限らず、例えば、専用のハードウェア回路(半導体集積回路等)により実現されてもよい。なお、ここでは、設定情報送信部603の機能は、プログラムを実行するCPU32と通信I/F35との組み合わせにより実現されると考えてもよい。例えば、設定情報送信部603の機能は、CPU32が、処理予約設定情報をアプリマーケットサーバ2へ送信するよう、通信I/F35を制御することにより実現される。
【0147】
(MFPの動作手順)
図34は、ユーザから処理時刻の設定入力を受け付けた場合のMFPの動作手順の一例を示すシーケンス図である。
図34を用いて、処理時刻の設定入力を受け付けた場合のMFP1の動作手順について説明する。
【0148】
ユーザは、設定UI部213により表示された画面(処理時刻設定画面)に対して、設定したい更新時刻を入力する(ステップS100)。アプリケーション処理実行部220(設定部214)は、処理時刻設定画面で受け付けた処理時刻を、操作部20の記憶部(例えば、フラッシュメモリ24等)に記憶する(ステップS101)。そして、アプリケーション処理実行部220(設定部214)は、監視モジュール222に対して、自動アプリケーション処理の設定を指示する(ステップS102)。この指示の中には、ユーザから入力された処理時刻を示す情報が含まれている。この指示を受けた監視モジュール222は、本体10に対して、処理時刻を通知する(ステップS103)。
【0149】
その後、監視モジュール222は、操作部20がユーザの操作を受け付けていない状態が所定期間継続した場合、操作部20の状態をスリープモードに移行させる(ステップS104)。一方、Webサーバ301を介して監視モジュール222からの処理時刻を受け取った本体10のSCS312は、その受け取った処理時刻を本体10の記憶部(例えば、HDD14等)に格納し、計時を開始する(ステップS105)。この例では、本体10のSCS312が、処理時刻(処理タイミング)に到達したか否かを検出する機能を有している。また、SCS312は、本体10が印刷等の画像処理を実行しない状態(アイドル状態)が所定期間継続した場合は、計時機能およびネットワーク8と通信する機能のみが動作可能な省エネモード(画像処理を実行可能な通常状態よりも消費電力が少ない状態)に移行させる(ステップS106)。なお、省エネモードの形態は任意であり、計時機能およびネットワーク8と通信する機能以外の機能も動作可能な状態であってもよい。要するに、画像処理を実行可能な通常の状態よりも消費電力が少ない状態であればよい。
【0150】
図35は、MFPの起動時の動作手順の一例を示すシーケンス図である。
図35を用いて、MFP1(操作部20)の起動時の動作手順について説明する。
【0151】
MFP1が起動すると(電源ONすると)、監視モジュール222は、アプリマーケットアプリ205に対して、MFP1が起動した旨を示す起動通知を送信する(ステップS1)。ここで、MFP1の起動は、本体10が起動した場合と操作部20が起動した場合をともに含む。具体的には、本体10の電源スイッチのONが検知された後、または、操作部20のスリープ状態からの復帰が検知された後に、監視モジュール222が起動通知を行う。起動通知を受けた通知受付部212は、アプリケーション処理実行部220に対して、その起動通知を通知する(ステップS2)。この起動通知を受けたアプリケーション処理実行部220は、前述のキャッシュデータの有無を確認する(ステップS3)。キャッシュデータが存在する場合、アプリケーション処理実行部220(報知メッセージ通知部217)は、報知メッセージ表示モジュール223に対して、報知メッセージの表示を指示する(ステップS4)。この指示を受けた報知メッセージ表示モジュール223は、報知メッセージを操作パネル27に表示する制御を行う(ステップS5)。
【0152】
また、アプリケーション処理実行部220(設定部214)は、監視モジュール222に対して、自動アプリケーション処理の設定を指示する(ステップS6)。なお、この指示の中には、操作部20の記憶部に記憶された処理時刻(
図34のようにユーザにより設定された処理時刻またはデフォルトの処理時刻)を示す情報が含まれている。この指示を受けた監視モジュール222は、本体10に対して、処理時刻を通知する(ステップS7)。その後、監視モジュール222は、操作部20がユーザの操作を受け付けていない状態が所定期間継続した場合、操作部20の状態をスリープモードに移行させる(ステップS8)。一方、Webサーバ301を介して監視モジュール222からの処理時刻を受け取った本体10のSCS312は、その受け取った処理時刻を本体10の記憶部に格納し、計時を開始する(ステップS9)。また、SCS312は、本体10のアイドル状態が所定期間継続した場合は、本体10を省エネモードに移行させる(ステップS10)。
【0153】
(予約処理の設定動作手順)
図36は、アプリケーション処理の予約設定動作手順の一例を示すシーケンス図である。
図36を用いて、設定用PC6におけるアプリケーション処理の予約設定動作手順について説明する。
【0154】
ユーザは、設定用PC6において、処理予約画面制御部601により表示された画面に対して、アプリケーション処理の予約の設定開始の操作を行う(ステップS121)。処理予約画面制御部601は、機器一覧画面を表示させるための画面取得要求を、アプリマーケットサーバ2へ送信する(ステップS122)。そして、アプリマーケットサーバ2(処理予約画面送信部271)は、画面取得要求の応答として、機器一覧画面の情報、および各機器の機器情報を、設定用PC6へ送信する(ステップS123)。
【0155】
処理予約画面制御部601は、アプリマーケットサーバ2から機器一覧画面の情報と共に、各機器の機器情報を取得して、機器一覧画面に該各機器の機番およびモデル名を表示させる。ユーザは、表示された機器の一覧から、アプリケーション処理の設定対象なる機器の機番を選択操作する(ステップS124)。処理予約画面制御部601は、ユーザによって選択された機器の機番情報を、アプリマーケットサーバ2へ送信する(ステップS125)。
【0156】
処理予約画面制御部601は、アプリケーション処理の予約の対象となる選択された機器について、アプリマーケットサーバ2のアプリケーション情報から、新たにインストール可能なアプリケーションの情報を取得し、かつ、該特定の機器の現状の処理予約設定情報(最新の処理予約設定情報)を取得して、処理可能アプリケーション一覧画面を表示させる(ステップS126)。処理予約画面制御部601は、例えば、上述の
図33に示したように、処理可能アプリケーション一覧画面において、アプリケーションの情報として、「アプリケーションタイトル」(アプリ名)、「バージョン」、「アプリケーション状態」(現状の当該アプリケーションの状態および設定状態)、および「処理予約」を表示させる。処理予約画面制御部601は、一覧に表示されたアプリケーションのインストール状態(未インストール、インストール済)、および、現状の処理予約設定情報に基づいて、アプリケーション状態の表示を更新させる(ステップS127)。また、処理予約画面制御部601は、処理可能アプリケーション一覧画面において、上述のように表示させたアプリケーション状態に応じて、予約することができる処理の選択肢を「処理予約」の欄に選択可能に表示させる。
【0157】
ユーザは、処理可能アプリケーション一覧画面において、所望のアプリケーションに対して予約する処理(例えば、「インストール予約」、「インストール予約取消」、「アンインストール予約」、「アンインストール予約取消」、「更新予約」、および「更新予約取消」等)の選択操作を行う(ステップS128)。設定部602は、処理可能アプリケーション一覧画面で受け付けた選択操作に係る処理を、該当するアプリケーションに対して予約する処理として設定する(ステップS129)。設定情報送信部603は、設定部602により設定された情報を、処理予約設定情報として、アプリマーケットサーバ2(設定情報受信部272)へ送信する(ステップS130)。
【0158】
(自動アプリケーション処理の動作手順)
図37は、自動アプリケーション処理の動作手順の一例を示すシーケンス図である。
図37を用いて、処理タイミング(処理時刻)に到達した場合の自動アプリケーション処理の動作手順の一例を説明する。
【0159】
本体10のSCS312は、処理時刻に到達したことを検出すると(ステップS21)、操作部20の監視モジュール222に対して、処理時刻に到達した旨を通知する(ステップS22)。この通知を受けた監視モジュール222は、通知受付部212に対して、処理時刻に到達した旨を通知し(ステップS23)、通知受付部212は、アプリケーション処理実行部220に対して、処理時刻に到達した旨を通知する(ステップS24)。この通知を受けたアプリケーション処理実行部220(機器情報制御部218)は、MFP1の機番と共に、MFP1にインストール済みのアプリケーション(ネイティブアプリケーション、およびウェブアプリケーション双方含む)ごとに、該アプリケーションを識別するプロダクトIDと、バージョンと、アプリ名と、を機器情報として取得する(ステップS25)。そして、アプリケーション処理実行部220(アプリケーション処理情報取得部215)は、アプリマーケットサーバ2に対して、機器情報を含む前述の取得要求を送信する(ステップS26)。この例では、アプリケーション処理実行部220は、本体10のNAPT機能320を介して、前述の取得要求をアプリマーケットサーバ2へ送信する。MFP1からの取得要求を受けたアプリマーケットサーバ2は、アプリケーション処理が必要なアプリケーションの有無を判断する(ステップS27)。具体的な内容は前述したとおりであるが、ここでは、アプリケーション処理が必要なアプリケーションが存在すると判断されたことを前提として以下の説明を続ける。アプリマーケットサーバ2は、取得要求への応答として、前述のアプリケーション処理情報をMFP1へ返信する(ステップS28)。
【0160】
アプリケーション処理実行部220(アプリケーション処理情報取得部215)は、本体10のNAPT機能320を介して、アプリマーケットサーバ2からアプリケーション処理情報を取得する。そして、アプリケーション処理実行部220は、アプリケーション処理情報を元に、アプリケーション処理が必要なアプリケーション数を算出する(ステップS29)。そして、アプリケーション処理実行部220(報知メッセージ通知部217)は、報知メッセージ表示モジュール223に対して、アプリケーション処理が必要なアプリケーションの数を含み、アプリケーション処理が必要なアプリケーションが存在することを報知するための報知メッセージ(例えば、上述の
図24に示す報知メッセージ)の表示を指示する(ステップS30)。この指示を受けた報知メッセージ表示モジュール223は、報知メッセージを操作パネル27に表示する(ステップS31)。また、アプリケーション処理実行部220は、アプリケーション処理が必要なアプリケーションの数を示す情報をキャッシュデータとして本体10のHDD14に保存する(ステップS32)。
【0161】
また、アプリケーション処理実行部220(アプリケーション処理制御部216)は、インストーラ221およびランチャ224に対して、アプリケーション処理が必要なアプリケーションのうち更新が禁止されていないアプリケーションのアプリケーション処理を要求する前述のアプリケーション処理要求を送信する(ステップS33)。
【0162】
このアプリケーション処理要求を受けたインストーラ221は、アプリケーション(ネイティブアプリケーション)のアプリケーション処理を行う。このときのファームウェア更新の詳細な動作手順については
図38を用いて後述するが、インストーラ221は、本体10のNAPT機能320を介して、インストールまたは更新対象のアプリケーション(ネイティブアプリケーション)のダウンロードをアプリケーションサーバ3(外部サーバの一例)に要求し(ステップS34)、アプリケーションサーバ3から該アプリケーションをダウンロードする(ステップS35)。そして、インストーラ221は、そのダウンロードしたアプリケーションをMFP1にインストール(更新含む)する(ステップS36)。また、インストーラ221は、アプリケーション処理要求で示されるアンインストール対象のアプリケーションのアンインストールを行う。
【0163】
また、アプリケーション処理要求を受けたランチャ224は、ウェブアプリケーションのアプリケーション処理を行う。具体的には、ランチャ224は、アプリケーション処理要求にインストールを示す処理内容が含まれる場合、該当するウェブアプリケーションに関するコンテンツ等のダウンロード先を示すウェブアプリサーバ5を示すショートカットを含むアイコンを、例えば、上述の
図8に示す操作画面に登録する(ステップS37)。また、ランチャ224は、アプリケーション処理要求に更新を示す処理内容が含まれる場合、例えば、該当するウェブアプリケーションについて既に登録されているアイコンのショートカットについて、コンテンツ等のダウンロード先を変更する。また、ランチャ224は、アプリケーション処理要求にアンインストールを示す処理内容が含まれる場合、該当するウェブアプリケーションに関するコンテンツ等のショートカットを含むアイコンを削除する。
【0164】
要するに、本実施形態では、操作部20は、操作部20にインストール済みおよび未インストールの1以上のアプリケーションに対してアプリケーション処理(インストール、更新またはアンインストール)するための機能を備える。当該機能は、アプリケーション処理対象のアプリケーションの自動アプリケーション処理を行う時刻である処理時刻(処理タイミング)を本体10に送信し、処理時刻に到達した場合は、本体10から、処理時刻に到達した旨の通知を受信する。そして、当該機能は、アプリケーション処理(ここでは、インストールまたは更新)対象のアプリケーションのダウンロードを、本体10を介して外部サーバ(この例ではアプリケーションサーバ3)へ要求して取得し、該取得したアプリケーションをインストールする(操作部20にアプリケーション処理対象のアプリケーションをインストールまたは更新する)。当該機能は、上述のアプリケーション処理情報取得部215と、上述のアプリケーション処理制御部216とを少なくとも含むアプリケーション(この例ではアプリマーケットアプリ205)と、インストーラ221と、ランチャ224と、によって実現される。操作部20は、アプリマーケットアプリ205、インストーラ221およびランチャ224を有している。
【0165】
また、上述したように、操作部20および本体10は互いに異なるIPアドレスを有し、本体10は、操作部20のIPアドレスを本体10のIPアドレスに変換する変換部(NAPT機能320)を有する。インストーラ221は、本体10の変換部を介して、外部サーバからインストールまたは更新対象のアプリケーションをダウンロードする。
【0166】
図37の説明を続ける。また、アプリケーション処理実行部220(設定部214)は、監視モジュール222に対して、自動アプリケーション処理の設定を指示する(ステップS38)。この指示を受けた監視モジュール222は、本体10に対して、処理時刻を通知する(ステップS39)。Webサーバ301を介して監視モジュール222からの処理時刻を受け取った本体10のSCS312は、その受け取った処理時刻を本体10の記憶部に格納し、計時を開始する(ステップS40)。また、SCS312は、本体10のアイドル状態が所定期間継続した場合は、本体10を省エネモードに移行させる(ステップS41)。
【0167】
図38は、ファームウェアの更新動作手順の一例を示すシーケンス図である。
図38に示す動作は、
図37のステップS33の後にアプリケーションのインストールまたは更新を行う場合のMFP1の動作手順の一例を示すシーケンス図である。インストーラ221は、本体10のNAPT機能320を介して、前述の判定要求情報をアプリケーションサーバ3へ送信する(ステップS51)。判定要求情報を受信したアプリケーションサーバ3は、前述の妥当性判定を行い(ステップS52)、その結果を示す判定結果情報をMFP1へ送信する(ステップS53)。インストーラ221は、本体10のNAPT機能320を介して、判定結果情報を受信する。
【0168】
アプリケーションサーバ3から受信した判定結果情報が、判定要求情報に含まれるプロダクトIDで識別されるアプリケーションはMFP1で利用できないことを示す場合、インストーラ221は、前述のファームウェア更新画面を表示する制御を行う(ステップS54)。なお、アプリケーションサーバ3から受信した判定結果情報が、判定要求情報に含まれるプロダクトIDで識別されるアプリケーションはMFP1で利用できることを示す場合は、上述の
図37に示すステップS34以降の処理となる。ステップS54の後、インストーラ221は、ファームウェア更新画面を介して、ファームウェアを更新する指示を受け付けた場合(ステップS55)、本体10のSCS312(パッケージ取得部251)に対して、最新版のパッケージの取得を指示する(ステップS56)。この指示を受けたSCS312(パッケージ取得部251)は、前述のパッケージリクエストをファームウェア配信サーバ4に送信し(ステップS57)、その応答として、最新版のパッケージをファームウェア配信サーバ4から取得し、取得した最新版のパッケージをHDD14に保存する(ステップS58)。
【0169】
次に、SCS312(分解部252)は、ステップS58で取得した最新版のパッケージを、第2のファームウェアと第3のファームウェアとに分解する(ステップS59)。そして、SCS312(第1の導入制御部254)は、ステップS59の分解で得られた第3のファームウェアを構成するプログラムおよびデータ等のファイルを展開して必要な設定を行う(ステップS60)。なお、この段階では、本体10の再起動は行わない。
【0170】
次に、SCS312は、第2のファームウェアの導入をインストーラ221に指示する。前述したように、この例では、SCS312(アドレス情報送信部253)は、HDD14のうち第2のファームウェアが記憶された領域を特定可能なアドレス情報をインストーラ221へ送信する(ステップS61)。インストーラ221(読出部243)は、HDD14のうち、SCS312から受信したアドレス情報により特定される領域から、第2のファームウェアを読み出す(ステップS62)。次に、インストーラ221は、第2のファームウェアを構成するプログラムおよびデータ等のファイルを展開して必要な設定を行う(ステップS63)。そして、インストーラ221は、OSの起動中は改変できないファイル以外の設定が完了した後、操作部20の再起動を行い、OSの起動中は改変できないファイルの設定を行う(ステップS64)。これにより、操作部20に対する第2のファームウェアの導入が完了する。
【0171】
操作部20の再起動が完了し、操作部20および本体10の再接続後、本体10のSCS312は、インストーラ221に、再度、第2のファームウェアの導入を指示する(ステップS65)。この段階では、操作部20に対する第2のファームウェアの導入は完了しているので、この指示を受けたインストーラ221は、即時に、第2のファームウェアの導入が完了していることを示す応答をSCS312へ返す(ステップS66)。この応答を受けたSCS312(第1の導入制御部254)は、本体10の再起動を行い、OSの起動中は改変できないファイルの設定を行う(ステップS67)。これにより、本体10に対する第3のファームウェアの導入も完了する。
【0172】
ステップS67の処理が完了すると、SCS312は、本体10に対する第3のファームウェアの導入が完了したことをインストーラ221へ通知する(ステップS68)。この通知を受けたインストーラ221は、アプリケーションサーバ3に対して、再度、妥当性判定を要求する。より具体的には、インストーラ221は、本体10のシステムモジュールからモジュール情報を再取得し、その再取得したモジュール情報と、インストールまたは更新が必要なアプリケーションを識別するプロダクトID(アプリケーション処理要求に含まれていたプロダクトID)とを含む判定要求情報を、本体10のNAPT機能320を介してアプリケーションサーバ3へ送信する(ステップS69)。上記と同様に、判定要求情報を受信したアプリケーションサーバ3は、上述の妥当性判定を行い(ステップS70)、その結果を示す判定結果情報をMFP1へ送信する(ステップS71)。インストーラ221は、本体10のNAPT機能320を介して判定結果情報を受信する。
【0173】
このように、ファームウェアの更新は、アプリケーションがインストールまたは更新される前に実行されるものとしてる。これによって、例えば、複数のアプリケーションを更新しようとして一部が正常更新後に、一部が更新失敗した場合等に、正常更新したアプリケーションが起動できなくなる等の不具合の発生を防止することができる。ただし、ファームウェアの更新は、アプリケーションのインストールまたは更新の前に実行されることに制限するものではなく、順序が逆であってもよい。なお、
図38に示したように、ファームウェアが自動で更新される動作を示したが、これに限定されるものではなく、ファームウェアについては、適時に管理者等によって手動で更新を行うものとしてもよい。
【0174】
図39は、アプリケーション処理の完了後の動作手順の一例を示すシーケンス図である。
図40は、報知メッセージの一例を示す図である。
図39および
図40を用いて、アプリケーション処理の完了後のMFP1の動作手順の一例を説明する。
【0175】
インストーラ221およびランチャ224は、それぞれ、アプリケーション処理が必要なアプリケーション(前述のアプリケーション処理要求に含まれるプロダクトIDで識別されるアプリケーション)のアプリケーション処理が完了した場合、その旨を示す処理完了通知をアプリケーション処理制御部216へ返信する(ステップS81)。処理完了通知を受けたアプリケーション処理制御部216は、アプリケーション処理が完了したことを機器情報制御部218へ通知する(ステップS82)。この通知を受けた機器情報制御部218は、MFP1の機番と共に、MFP1にインストール済みのアプリケーション(ネイティブアプリケーション、およびウェブアプリケーション双方含む)ごとに、該アプリケーションを識別するプロダクトIDと、バージョンと、アプリ名と、を機器情報として取得する(ステップS83)。機器情報制御部218は、取得した機器情報を、アプリケーション処理情報取得部215へ送る(ステップS84)。機器情報を受けたアプリケーション処理情報取得部215は、本体10のNAPT機能320を介して、該機器情報を含む取得要求をアプリマーケットサーバ2に送信する(ステップS85)。MFP1からの取得要求を受けたアプリマーケットサーバ2は、アプリケーション処理が必要なアプリケーションの有無を判断する(ステップS86)。これによって、アプリマーケットサーバ2で管理している機器(ここではMFP1)の機器情報が最新の情報に更新されることになる。また、具体的な内容は前述したとおりであるが、ここでは、アプリケーション処理が必要なアプリケーションが存在しないと判断されたことを前提として以下の説明を続ける。アプリマーケットサーバ2は、取得要求への応答として、前述のアプリケーション処理不要情報をMFP1へ返信する(ステップS87)。アプリケーション処理情報取得部215は、本体10のNAPT機能320を介して、アプリマーケットサーバ2からアプリケーション処理不要情報を受信する。
【0176】
アプリケーション処理情報取得部215は、アプリマーケットサーバ2からアプリケーション処理不要情報を取得した場合、本体10のHDD14に保存されたキャッシュデータをクリア(消去)する(ステップS88)。そして、アプリケーション処理情報取得部215は、報知メッセージ通知部217に対して、アプリケーション処理が必要なアプリケーションが存在しないことを通知する(ステップS89)。この通知を受けた報知メッセージ通知部217は、報知メッセージ表示モジュール223に対して、全てのアプリケーションは最新であることを示す報知メッセージの表示を指示する(ステップS90)。この指示を受けた報知メッセージ表示モジュール223は、例えば、
図40に示すような報知メッセージを操作パネル27に表示する(ステップS91)。なお、何らかの原因で、
図37で示したアプリケーション処理情報が示すアプリケーション処理がすべて完了できなかった場合(例えば、ネットワーク8の障害発生によりアプリケーションをダウンロードできなかったためにインストールができなかった場合等)、その旨を示す報知メッセージを操作パネル27に表示させるものとしてもよい。また、ステップS90およびS91のタイミングで、上述の
図37のステップS30で表示させていた報知メッセージを消すことによって、アプリケーション処理が正常に完了し、全てのアプリケーションは最新であることを示すものとしてもよい。
【0177】
以上に説明したように、本実施形態のMFP1は、インストール済みおよび未インストールの1以上のアプリケーションのうち、アプリケーション処理(すなわち、インストール、更新、およびアンインストール)が必要なアプリケーションを示すアプリケーション処理情報をアプリマーケットサーバ2から取得し、その取得したアプリケーション処理情報が示すアプリケーションについてアプリケーション処理の制御を行う。本実施形態によれば、アプリの自動アプリケーション処理に際して、ユーザは、アプリケーション処理が必要なアプリの有無の判断を行って当該処理をMFP1側で操作する必要は無く、予め外部装置(例えば、設定用PC6)でMFP1に対するアプリケーション処理の予約設定を行っておくことで、MFP1は、アプリケーション処理が必要なアプリを示す情報(アプリケーション処理情報)をアプリマーケットサーバ2から取得するだけで済むので、処理が効率的になる。すなわち、本実施形態によれば、MFP1について、アプリケーションに関する処理を、自動で効率よく実施することができる。
【0178】
また、例えば、MFP1を含むLAN(Local Area Network)等について外部からのアクセスをブロックするために、MFP1(すなわち当該LAN)と、アプリマーケットサーバ2とを通信接続するネットワーク上にファイアウォールが設置されている場合を想定する。この場合、アプリマーケットサーバ2からMFP1へアクセスして、インストールおよび更新等のアプリケーション処理を実行するプッシュ型の処理では、上述のファイアウォールが障壁となって処理の効率が悪くなる。しかし、本実施形態音MFP1のように、処理時刻に到達した場合、上述の取得要求をアプリマーケットサーバ2へ自発的に送信してアプリケーション処理情報を取得するプル型の処理を実行するものとしている。これによって、ファイアウォールにより不正な外部アクセスをブロックしつつ、アプリケーションのインストール、更新およびアンインストールについての自動処理を実現することができる。
【0179】
また、本体10とは独立したCPUおよびOSを持つ操作部20は、本体10に一体的に搭載されているものの、実体は独立して制御される別の装置であるため、操作部20が、ネットワークインターフェースを有する本体10を介して、外部のサーバ装置と通信する仕組みが無いという課題があった。操作部20が本体10側のNAPT機能320によるアドレス変換を用いることで、本体10側が有するネットワークインターフェース(例えば、通信I/F15)を用いて、アプリマーケットサーバ2等の外部のサーバ装置と通信し、アプリケーション処理の情報取得、一覧表示、操作部20にインストールまたは更新するアプリケーションのダウンロードを行うことができる。また、本体10と操作部20とは別個のIPアドレスを有するため、画像形成装置としては2つのIPアドレスを有することになるが、NAPT機能320によるアドレス変換により、操作部20から本体10経由で通信する場合でも、外部のサーバ装置から見て単一の装置として識別され、互いに通信接続することができる。
【0180】
なお、上述の説明では、予約設定されたアプリケーション処理の対象がMFP1であるものとして説明したが、これに限定されるものではなく、アプリケーションのインストール、更新、またはアンインストール(アプリケーション処理)が可能な一般の電子機器であれば適用することが可能である。
【0181】
[第2の実施形態]
次に、第2の実施形態について説明する。なお、上述の第1の実施形態と共通する部分については適宜に説明を省略する。上述のように、操作部20は、操作部20がユーザの操作を受け付けていない状態が所定期間継続した場合、操作部20の状態を、操作部20が通常動作可能な操作部通常状態よりも消費電力が小さい操作部省エネ状態に遷移させる制御を行う第1の省エネ制御部(監視モジュール222の機能)を備え、本体10は、本体10が画像処理を実行しないアイドル状態が所定期間継続した場合、本体10の状態を、本体10が通常動作可能な本体通常状態よりも消費電力が小さい本体省エネ状態に遷移させる制御を行う第2の省エネ制御部(SCS312)を備えている。本実施形態では、操作部20が操作部省エネ状態であり、かつ、本体10が本体省エネ状態のときに処理時刻(処理タイミング)に到達した場合、操作部20の監視モジュール222(第1の省エネ制御部)は、操作部20を操作部通常状態に復帰させる一方、本体10のSCS312(第2の省エネ制御部)は、本体10を本体省エネ状態に維持する。上述したように、本体省エネ状態(省エネモード)は、計時機能およびネットワーク8と通信する機能のみが動作可能な状態とすることができるが、これに限られるものではない。
【0182】
上述の第1の実施形態と同様に、処理時刻に到達した場合、SCS312は、その旨を監視モジュール222へ通知する。このとき、SCS312は本体10を本体省エネ状態に維持する。SCS312からの通知を受けた監視モジュール222は、操作部20を操作部通常状態に復帰させる制御を行い、アプリマーケットアプリ205(通知受付部212)に対して、処理時刻に到達した旨を通知する。以降の動作は上述の第1の実施形態と同様である。本実施形態によれば、MFP1の消費電力をさらに低減できるというメリットがある。
【0183】
なお、上述の各実施形態では、本体10のSCS312が、処理時刻に到達したか否かを検出する機能を有しているが、これに限らず、例えば、操作部20の監視モジュール222が、処理時刻に到達したか否かを検出する機能(設定された処理時刻を保持し、計時する機能)を有する形態であってもよい。この形態において、監視モジュール222は、処理時刻に到達したことを検出した場合、その旨をアプリマーケットアプリに通知する。以降の動作は上述の第1の実施形態と同様になる。なお、本体10に対しては、通知してもよいし、通知しなくてもよい。本体10のSCS312は、上述の本体省エネ状態のときに、操作部20の監視モジュール222から処理時刻に到達した旨の通知を受けても、本体10を本体省エネ状態に維持することになる。
【0184】
以上、本発明に係る実施形態について説明したが、本発明は、上述の各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上述の各実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、各実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、各実施形態にわたる構成要素を適宜組み合わせてもよい。
【0185】
また、上述の実施形態では、本体10および操作部20は、別々のオペレーティングシステムで互いに独立して動作しているが、これに限らず、例えば、本体10および操作部20が同じオペレーティングシステムで動作する形態であってもよい。また、例えば、上述のアプリマーケットサーバ2と、アプリケーションサーバ3とを統合した1つのサーバが設けられる形態であってもよい。
【0186】
また、上述した実施形態の情報処理システム100(MFP1、アプリマーケットサーバ2、アプリケーションサーバ3、ファームウェア配信サーバ4、ウェブアプリサーバ5、設定用PC6等)で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでCD-ROM、フレキシブルディスク(FD)、CD-R(Compact Disc Read Only Memory)、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよいし、インターネット等のネットワーク経由で提供または配布するように構成してもよい。また、各種プログラムを、ROM等に予め組み込んで提供するように構成してもよい。
【符号の説明】
【0187】
1 MFP
2 アプリマーケットサーバ
3 アプリケーションサーバ
4 ファームウェア配信サーバ
5 ウェブアプリサーバ
6 設定用PC
8 ネットワーク
10 本体
11 CPU
12 ROM
13 RAM
14 HDD
15 通信I/F
16 接続I/F
17 エンジン部
18 バス
20 操作部
21 CPU
22 ROM
23 RAM
24 フラッシュメモリ
25 通信I/F
26 接続I/F
27 操作パネル
28 バス
30 通信路
32 CPU
33 ROM
34 RAM
35 通信I/F
36 入力装置
37 表示装置
50 インストールボタン
51 アイコン
100 情報処理システム
101 アプリ層
102 サービス層
103 OS層
201 アプリ層
202 サービス層
203 OS層
205 アプリマーケットアプリ
206 システムソフトウェア
211 アプリケーション一覧画面制御部
212 通知受付部
213 設定UI部
214 設定部
215 アプリケーション処理情報取得部
216 アプリケーション処理制御部
217 報知メッセージ通知部
218 機器情報制御部
220 アプリケーション処理実行部
221 インストーラ
222 監視モジュール
223 報知メッセージ表示モジュール
224 ランチャ
230 判定要求情報送信部
231 判定結果情報受信部
232 ファームウェア更新画面制御部
233 第1の制御部
234 インストール制御部
240 第2の制御部
241 指示部
242 アドレス情報受信部
243 読出部
244 第2の導入制御部
250 第3の制御部
251 パッケージ取得部
252 分解部
253 アドレス情報送信部
254 第1の導入制御部
261 アプリケーション一覧画面保持部
262 アプリケーション一覧画面送信部
263 アプリケーション情報記憶部
264 判断部
266 アプリケーション処理情報送信部
267 アプリケーション処理不要情報送信部
270 処理予約画面保持部
271 処理予約画面送信部
272 設定情報受信部
273 設定情報保持部
301 Webサーバ
302 コピーアプリ
303 スキャンアプリ
304 プリントアプリ
305 FAXアプリ
311 ECS
312 SCS
313 NCS
315 本体内部API
320 NAPT機能
321 対応情報記憶部
322 判定部
323 判定結果情報送信部
324 アプリケーション保持部
325 アプリケーション送信部
411 パッケージ保持部
412 パッケージ送信部
501 ウェブアプリコンテンツ保持部
502 ウェブアプリコンテンツ送信部
601 処理予約画面制御部
602 設定部
603 設定情報送信部
【先行技術文献】
【特許文献】
【0188】