以下、本発明の実施の形態について、図面を参照しながら説明する。
<全体構成>
まず、本実施形態に係る画像処理システム1の全体構成について、図1を参照しながら説明する。図1は、本実施形態に係る画像処理システム1の全体構成の一例を示す図である。
図1に示すように、本実施形態に係る画像処理システム1には、1以上の電子機器(一例として画像処理装置10)と、1以上の端末装置20と、アプリマーケットサーバ30と、ファームウェア配信サーバ40と、Webアプリサーバ50とが含まれる。画像処理装置10と、端末装置20と、アプリマーケットサーバ30と、ファームウェア配信サーバ40と、Webアプリサーバ50とは、例えばインターネット等のネットワークNを介して通信可能に接続される。
アプリマーケットサーバ30は、電子機器の一例である画像処理装置10で利用可能なアプリケーションを紹介するWebサイト(以降、「アプリマーケットサイト」とも称する。)を提供するWebサーバである。アプリマーケットサーバ30は、1以上の情報処理装置(コンピュータ)により実現される。
アプリマーケットサイトで紹介されるアプリケーションの種別には、ネイティブアプリと、Webアプリとがある。ネイティブアプリとは、例えば、オブジェクトファイル等の形式で配布され、インストーラ等によって画像処理装置10にインストールされるアプリケーションのことである。Webアプリとは、例えば、当該Webアプリを利用するためのURL(Uniform Resource Locator)等の形式(すなわち、当該Webアプリを提供するWebアプリサーバ50のURL等の形式)で配布され、当該URLを示すショートカットアイコン等を画像処理装置10に登録することで利用可能となるアプリケーションのことである。ただし、アプリマーケットサイトで紹介されるアプリケーションの種別は、ネイティブアプリとWebアプリとに限られず、種々の種別のアプリケーションが紹介されても良い。なお、URLはアドレス情報の一例である。また、アイコンは表示部品の一例である。
また、アプリマーケットサイトで紹介されるアプリケーションは、端末装置20等によってアプリマーケットサーバ30に予め登録される。
電子機器は、例えば、画像処理装置10、例えばプリント機能や印刷機能、スキャン機能、ファクス通信機能等を備えるMFPを含む。また、その他、印刷装置、スキャナ、電子黒板装置、プロジェクタ、テレビ会議端末等のオフィス機器や、オフィス等で用いられる共用端末、その他、デジタルカメラ等の撮像装置、ゲーム機器、車載端末、デジタルサイネージ等の出力装置、HUD(Head Up Display)装置、産業機械、携帯電話、スマートフォン、タブレット端末、PDA(Personal Digital Assistant)、ウェアラブルPC、デスクトップPC等が挙げられる。
画像処理装置10は、アプリマーケットサーバ30が提供するアプリマーケットサイトからアプリケーション(ネイティブアプリ又はWebアプリ)を導入することで、当該アプリケーションを利用することができる。
なお、ネイティブアプリを導入するとは、オブジェクトファイル等を画像処理装置10にインストールすることを意味する。一方で、Webアプリを導入するとは、当該Webアプリを提供するWebアプリサーバ50のURLを示すショートカットアイコンを画像処理装置10に登録することを意味する。以降では、主に、画像処理装置10がアプリマーケットサイトからWebアプリを導入する場合について説明する。
画像処理装置10は、アプリマーケットサイトからWebアプリを導入する際に、当該画像処理装置10のファームウェアのバージョンが、当該Webアプリの利用に必要なバージョンであるか否かを判定する。そして、当該画像処理装置10のファームウェアのバージョンが、当該Webアプリの利用に必要なバージョンでないと判定した場合、当該画像処理装置10は、当該Webアプリの利用に必要なバージョンのファームウェアをファームウェア配信サーバ40から取得し、ファームウェアを更新する。なお、ファームウェアとは、画像処理装置10の動作を制御するためのソフトウェア(プログラム)である。
ファームウェア配信サーバ40は、画像処理装置10からの要求に応じて、ファームウェアを提供するサーバである。ファームウェア配信サーバ40は、1以上の情報処理装置(コンピュータ)により実現される。
端末装置20は、アプリマーケットサイトで紹介されるアプリケーションをアプリマーケットサーバ30に登録するPC(パーソナルコンピュータ)、スマートフォン、タブレット端末等である。端末装置20は、例えば、アプリケーションを開発するベンダー(サードベンダー)等によって利用される。
Webアプリサーバ50は、画像処理装置10に導入されるWebアプリを提供するWebアプリケーションサーバである。画像処理装置10に導入されるWebアプリは、Webアプリサーバ50が提供するWebコンテンツ(例えば、HTML(HyperText Markup Language)やJavaScript(登録商標)等)が、当該画像処理装置10のブラウザ上で実行されることで実現される。
Webアプリサーバ50は、例えば、アプリケーション開発するサードベンダー等によって設置される。なお、Webアプリサーバ50は、例えば、アプリマーケットサーバ30を設置する企業等によって設定されても良い。
なお、図1に示す画像処理システム1は一例であって、他の構成であっても良い。例えば、図1に示す画像処理システム1には、アプリマーケットサイトで紹介されるネイティブアプリのオブジェクトファイル等を画像処理装置10に提供するアプリ配信サーバが含まれていても良い。
<ハードウェア構成>
次に、本実施形態に係る画像処理システム1に含まれる画像処理装置10と、端末装置20と、アプリマーケットサーバ30と、ファームウェア配信サーバ40とのハードウェア構成について説明する。
≪画像処理装置10≫
まず、本実施形態に係る画像処理装置10のハードウェア構成について、図2を参照しながら説明する。図2は、本実施形態に係る画像処理装置10のハードウェア構成の一例を示す図である。
図2に示すように、本実施形態に係る画像処理装置10は、操作装置11と、本体装置12とを有している。
操作装置11は、本体装置12に実行させる画像処理機能の選択、画像処理機能を実行させるための各種設定値の入力、画像処理機能の実行を開始させるための実行指示の入力、表示画面の切り替え等、ユーザが各種操作を行う際に用いられる。
本体装置12は、操作装置11におけるユーザの各種操作に応じて、画像処理機能の実行等の各種の処理を実行する。
図2に示すように、画像処理装置10の操作装置11は、CPU111(Central Processing Unit)と、ROM(Read Only Memory)112と、RAM(Random Access Memory)113とを有している。また、操作装置11は、フラッシュメモリ114と、操作パネル115と、接続I/F116と、通信I/F117とを有している。これら各ハードウェアは、バス118を介して相互に接続されている。
CPU111は、RAM113をワークエリアとしてROM112又はフラッシュメモリ114に記憶された各種プログラムを実行することで、操作装置11全体を制御する演算装置である。
ROM112は、電源を切ってもデータを保持することができる不揮発性の半導体メモリ(記憶装置)である。RAM113は、プログラムやデータを一時保持する揮発性の半導体メモリ(記憶装置)である。
フラッシュメモリ114は、不揮発性の記憶装置であり、CPU111が実行する各種プログラム(例えば、本実施形態を実現するプログラム等)や各種データを記憶する。
操作パネル115は、ユーザが各種操作を行う際に用いられる。また、操作パネル115は、ユーザに対して各種画面等を表示する。
接続I/F116は、通信路13を介して本体装置12と通信するためのインタフェースである。接続I/F116には、例えばUSB(Universal Serial Bus)規格のインタフェースが用いられる。
通信I/F117は、他の機器等と通信するためのインタフェースである。通信I/F117には、例えば、Wi−Fi規格の無線LAN(Local Area Network)等が用いられる。
同様に、画像処理装置10の本体装置12は、CPU121と、ROM122と、RAM123とを有している。また、本体装置12は、HDD(Hard Disk Drive)124と、画像処理エンジン125と、接続I/F126と、通信I/F127とを有している。これら各ハードウェアは、バス128を介して相互に接続されている。
CPU121は、RAM123をワークエリアとしてROM122又はHDD124に記憶された各種プログラムを実行することで、本体装置12全体を制御する演算装置である。
ROM122は、電源を切ってもデータを保持することができる不揮発性の半導体メモリ(記憶装置)である。RAM123は、プログラムやデータを一時保持する揮発性の半導体メモリ(記憶装置)である。
HDD124は、不揮発性の記憶装置であり、CPU121が実行する各種プログラム(例えば、本実施形態を実現するプログラム等)や各種データを記憶する。
画像処理エンジン125は、印刷機能、スキャン機能、コピー機能、及びFAX機能等の各種の画像処理機能を実現するための画像処理を行うハードウェアである。
画像処理エンジン125には、例えば、用紙等のシート材への印刷を行うプロッタ、原稿を光学的に読み取って画像データを生成するスキャナ、及びFAX通信を行うFAX通信装置等が含まれる。また、画像処理エンジン125には、例えば、印刷済みのシート材を仕分けるフィニッシャや原稿を自動給送するADF(自動原稿給送装置)等が含まれていても良い。
接続I/F126は、通信路13を介して操作装置11と通信するためのインタフェースである。接続I/F126には、例えば、USB規格のインタフェースが用いられる。
通信I/F127は、他の機器等と通信するためのインタフェースである。通信I/F127には、例えば、Wi−Fi規格の無線LAN等が用いられる。
本実施形態に係る画像処理装置10は、図2に示すハードウェア構成を有することにより、後述する各種処理を実現することができる。
なお、図2では、画像処理装置10が操作装置11を有している構成を一例として示したが、これに限られず、例えば、タブレット端末、スマートフォン、携帯電話、PDA等の情報処理端末が画像処理装置10の操作装置として機能しても良い。すなわち、これらの情報処理端末は、操作装置11の通信I/F117又は本体装置12の通信I/F127を介して画像処理装置10と通信することにより、当該画像処理装置10を制御することができても良い。
≪端末装置20、アプリマーケットサーバ30及びファームウェア配信サーバ40≫
本実施形態に係る端末装置20は、例えば図3に示すコンピュータ300により実現される。同様に、アプリマーケットサーバ30及びファームウェア配信サーバ40を実現する1台以上の情報処理装置は、例えば図3に示すコンピュータ300により実現される。
図3に示すコンピュータ300は、入力装置301と、表示装置302と、外部I/F303と、RAM304と、ROM305と、CPU306と、通信I/F307と、補助記憶装置308とを有する。これらの各ハードウェアは、それぞれがバス309で接続されている。
入力装置301は、キーボードやマウス、タッチパネル等を含み、ユーザが各操作を入力するのに用いられる。表示装置302は、ディスプレイ等を含み、コンピュータ300による処理結果を表示する。なお、コンピュータ300は、入力装置301及び表示装置302の少なくとも一方を有していなくても良い。
通信I/F307は、コンピュータ300をネットワークNに接続するインタフェースである。コンピュータ300は、通信I/F307を介してデータ通信を行うことができる。
外部I/F303は、外部装置とのインタフェースである。外部装置には、記録媒体303a等がある。コンピュータ300は、外部I/F303を介して、記録媒体303aの読み取りや書き込みを行うことができる。記録媒体503aには、フレキシブルディスク、CD、DVD、SDメモリカード、USBメモリ等がある。
ROM305は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリ(記憶装置)である。ROM305には、コンピュータ300の起動時に実行されるBIOS(Basic Input/Output System)、OS(Operating System)設定、及びネットワーク設定等のプログラムやデータが格納されている。RAM304は、プログラムやデータを一時保持する揮発性の半導体メモリ(記憶装置)である。
CPU306は、ROM305や補助記憶装置308等の記憶装置からプログラムやデータをRAM304上に読み出し、処理を実行することで、コンピュータ300全体の制御や機能を実現する演算装置である。
補助記憶装置308は、例えばHDDやSSD(Solid State Drive)等であり、プログラムやデータを格納している不揮発性の記憶装置である。補助記憶装置308に格納されるプログラムやデータには、コンピュータ300全体を制御する基本ソフトウェアであるOS、OS上において各種機能を提供するアプリケーションソフトウェア等がある。補助記憶装置308は、格納しているプログラムやデータを所定のファイルシステムやDB(データベース)により管理している。
本実施形態に係る端末装置20は、図3に示すコンピュータ300のハードウェア構成を有することにより、後述するような各種処理を実現できる。同様に、本実施形態に係るアプリマーケットサーバ30及びファームウェア配信サーバ40は、図3に示すコンピュータ300のハードウェア構成を有することにより、後述するような各種処理を実現できる。
なお、Webアプリサーバ50を実現する1台以上の情報処理装置も同様に、例えば図3に示すコンピュータ300により実現されても良い。
<画像処理装置10のソフトウェア群の階層構造>
次に、本実施形態に係る画像処理装置10の操作装置11及び本体装置12に含まれるソフトウェア群の階層構造について、図4を参照しながら説明する。図4は、本実施形態に係る画像処理装置10の操作装置11及び本体装置12に含まれるソフトウェア群の階層構造の一例を示す図である。
図4は、操作装置11に含まれるソフトウェア群の階層構造と、本体装置12に含まれるソフトウェア群の階層構造とを示している。
まず、本体装置12に含まれるソフトウェア群(すなわち、本体装置12のROM122やHDD124に記憶されているプログラム群)の階層構造について説明する。本体装置12に含まれるソフトウェア群は、アプリケーション層221と、サービス層222と、OS層223とに大別することができる。
アプリケーション層221に区分されるソフトウェアは、ハードウェア資源を動作させて画像処理機能を実現させるためのソフトウェアである。具体的には、印刷アプリケーション、スキャンアプリケーション、コピーアプリケーション、及びファクスアプリケーション等が挙げられる。
サービス層222に区分されるソフトウェアは、アプリケーション層221とOS層223との間を介在するソフトウェアである。当該ソフトウェアは、本体装置12が備えるハードウェア資源を、アプリケーション層221のソフトウェアが利用したり、本体装置12が備えるハードウェア資源の状態を通知したりするインタフェースとしての役割を果たす。
具体的には、ハードウェア資源に対する実行要求を受け付けたり、受け付けた実行要求の調停を行ったりする。サービス層222が受け付ける実行要求には、例えば、画像処理エンジン125による画像処理の実行要求(スキャナによるスキャン実行要求やプロッタによる印刷実行要求等)が含まれる。
なお、サービス層222に区分されるソフトウェアが果たす上記インタフェースとしての役割は、操作装置11のアプリケーション層211に対しても同様である。すなわち、操作装置11のアプリケーション層211に区分されるソフトウェアも、サービス層222にアクセスすることにより、本体装置12のハードウェア資源を動作させて、画像処理機能を実現させることができる。
サービス層222に区分されるソフトウェアとしては、例えば、システムモジュール450が挙げられる。システムモジュール450は、画像処理装置10のファームウェアのバージョンを管理したり、ファームウェアの更新を行ったりするソフトウェア(プログラム)である。
OS層223に区分されるソフトウェアは、基本ソフトウェア(OS)と呼ばれるプログラムであり、本体装置12が有するハードウェア資源を制御する基本機能を提供する。OS層223に区分されるソフトウェアは、アプリケーション層221に区分されるソフトウェアからのハードウェア資源に対する実行要求を、サービス層222に区分されるソフトウェアを介して受け付けて、当該実行要求に応じた処理を実行する。
次に、操作装置11に含まれるソフトウェア群(すなわち、操作装置11のROM112やフラッシュメモリ114に記憶されているプログラム群)の階層構造について説明する。本体装置12と同様に、操作装置11に含まれるソフトウェア群も、アプリケーション層211と、サービス層212と、OS層213とに大別することができる。
ただし、アプリケーション層211に区分されるソフトウェアが提供する機能やサービス層212が受け付け可能な実行要求の種類は、本体装置12とは異なる。操作装置11のアプリケーション層211に区分されるソフトウェアは、主として、各種操作や表示を行うためのユーザインタフェース機能を提供する。
アプリケーション層211に区分されるソフトウェアとしては、例えば、マーケットアプリ410やブラウザ420が挙げられる。マーケットアプリ410は、アプリマーケットサイトをブラウザ420に表示させるソフトウェア(プログラム)である。ブラウザ420は、アプリマーケットサイト等のWebサイトを表示するソフトウェア(プログラム)である。また、ブラウザ420は、Webアプリサーバ50から取得したWebコンテンツを実行することで、Webアプリによって実現されるサービスを提供することができる。
サービス層212に区分されるソフトウェアとしては、例えば、インストーラ430が挙げられる。インストーラ430は、ネイティブアプリを画像処理装置10にインストールしたり、ファームウェアの更新が必要であることをユーザに通知するための画面(ファームウェア更新確認画面)を表示したりするソフトウェア(プログラム)である。
なお、本実施形態では、操作装置11と本体装置12とで、OSは独立して動作するものとする。また、操作装置11と本体装置12とが相互に通信可能であれば、OSが同じ種類である必要はない。例えば、操作装置11ではOSにAndroid(登録商標)を用いる一方で、本体装置12ではOSにLinux(登録商標)を用いることも可能である。
このように、本実施形態に係る画像処理装置10は、操作装置11と本体装置12とが異なるOSにより制御される。このため、操作装置11と本体装置12との間の通信は、一装置内のプロセス間通信ではなく、異なる情報処理装置間の通信として行われる。
ただし、本実施形態に係る画像処理装置10は、操作装置11と本体装置12とで異なる種類のOSが動作している場合に限られず、操作装置11と本体装置12とで同一種類のOSが動作していても良い。また、本実施形態に係る画像処理装置10は、操作装置11と本体装置12とでOSが独立して動作している場合に限られず、操作装置11及び本体装置12上で一のOSが動作していても良い。
なお、操作装置11及び本体装置12は、それぞれファームウェアを有している。以降では、操作装置11のファームウェアを「第1のファームウェア」、本体装置12のファームウェアを「第2のファームウェア」と表し。第1のファームウェアと第2のファームウェアとを区別しないときは、単に、「ファームウェア」と表す。
第1のファームウェアはサービス層212に区分されるソフトウェア(プログラム)であり、第2のファームウェアはサービス層222に区分されるソフトウェア(プログラム)である。ただし、第1のファームウェアにはOS層213に区分されるソフトウェア(プログラム)が含まれていても良く、第2のファームウェアにはOS層223に区分されるソフトウェア(プログラム)が含まれていても良い。
<機能構成>
次に、本実施形態に係る画像処理システム1の機能構成について、図5を参照しながら説明する。図5は、本実施形態に係る画像処理システム1の機能構成の一例を示す図である。
図5に示すように、本実施形態に係る画像処理装置10の操作装置11は、マーケットアプリ410と、ブラウザ420と、インストーラ430と、ショートカット記憶部440を有する。
また、図5に示すように、本実施形態に係る画像処理装置10の本体装置12は、システムモジュール450と、ファームバージョン記憶部460を有する。
マーケットアプリ410は、CPU111により実行されることで、サイト表示要求部411を実現することができる。サイト表示要求部411は、アプリマーケットサイトをブラウザ42に表示させる。
ブラウザ420は、CPU111により実行されることで、表示制御部421と、入力受付部422と、要求部423と、バージョン判定部424と、更新指示部425と、ショートカット保存部426と、ショートカット登録部427と、ショートカット削除部428とを実現することができる。
表示制御部421は、アプリマーケットサイト等の各種Webサイトの画面を表示する。入力受付部422は、Webサイトにおけるユーザの各種操作入力を受け付ける。
要求部423は、各種要求を送信する。各種要求には、例えば、アプリマーケットサイトの画面(Webページ)をアプリマーケットサーバ30から取得するための表示要求、画像処理装置10のファームウェアのバージョンを本体装置12から取得するための取得要求等がある。また、各種要求には、例えば、画像処理装置10に導入するアプリケーションの情報(以降では、「アプリ情報」とも表す。)をアプリマーケットサーバ30から取得するための取得要求等がある。
バージョン判定部424は、画像処理装置10のファームウェアのバージョンが、当該画像処理装置10に導入するWebアプリの利用に必要なバージョン以上であるか否かを判定する。
更新指示部425は、画像処理装置10のファームウェアのバージョンが、当該画像処理装置10に導入するWebアプリの利用に必要なバージョン以上でないと判定された場合、ファームウェアの更新をインストーラ430に指示する。
ショートカット保存部426は、画像処理装置10のファームウェアのバージョンが、当該画像処理装置10に導入するWebアプリの利用に必要なバージョン以上でないと判定された場合、当該Webアプリのショートカット情報(例えば、ショートカットアイコンの画像やショートカット先のURL等)をショートカット記憶部440に保存する。なお、ショートカット記憶部440は、例えばフラッシュメモリ114等により実現可能である。
ショートカット登録部427は、ファームウェアの更新が成功した場合に、ショートカット記憶部440に記憶されているショートカット情報を用いて、ショートカットアイコンを操作装置11に登録する。操作装置11にショートカットアイコンが登録されることで、当該ショートカットアイコンが示すショートカット先URLのWebアプリサーバ50が提供するWebアプリケーションが利用可能となる(すなわち、当該Webアプリケーションが画像処理装置10に導入される。)。
ショートカット削除部428は、ファームウェアの更新が失敗した場合に、ショートカット記憶部440に記憶されているショートカット情報を削除する。
インストーラ430は、CPU111により実行されることで、更新依頼部431を実現することができる。更新依頼部431は、ファームウェアの更新がブラウザ420から指示された場合に、当該ファームウェアの更新を本体装置12のシステムモジュール450に依頼する。なお、インストーラ430は、CPU111により実行されることで、例えば、ネイティブアプリを操作装置11にインストールするためのインストール部を実現することができても良い。
システムモジュール450は、CPU121により実行されることで、バージョン取得部451と、ファーム取得部452と、ファーム更新部453とを実現することができる。
バージョン取得部451は、画像処理装置10のファームウェアのバージョンを示す情報をファームバージョン記憶部460から取得する。ファームバージョン記憶部460には、画像処理装置10のファームウェアのバージョンを示す情報(例えば、バージョン番号等)が記憶されている。なお、ファームバージョン記憶部460は、例えばHDD124等により実現可能である。
ファーム取得部452は、ファームウェアの更新が操作装置11から依頼された場合に、最新バージョンのファームウェアをファームウェア配信サーバ40から取得する。なお、ファームウェアは、例えば、最新バージョンの第1のファームウェアと、最新バージョンの第2のファームウェアとが一体化されたパッケージで提供される。
ファーム更新部453は、ファームウェア配信サーバ40から取得されたファームウェア(最新バージョンのファームウェア)により、画像処理装置10のファームウェアを更新する。
図5に示すように、本実施形態に係る端末装置20は、ブラウザ510を有する。ブラウザ510は、CPUにより実行されることで、表示制御部511と、入力受付部512と、要求部513とを実現することができる。
表示制御部511は、アプリマーケットサイトで紹介されるアプリケーションを登録するためWebサイトの画面(Webページ)等を表示する。入力受付部512は、Webサイトにおけるユーザの各種操作入力を受け付ける。
要求部513は、各種要求を送信する。各種要求には、例えば、アプリマーケットサイトで紹介されるアプリケーションを登録するためWebサイトの画面(Webページ)をアプリマーケットサーバ30から取得するための表示要求等がある。また、各種要求には、アプリマーケットサイトで紹介されるアプリケーションの登録をアプリマーケットサーバ30に要求するための登録要求等がある。
図5に示すように、本実施形態に係るアプリマーケットサーバ30は、アプリ提供処理部610と、アプリ登録処理部620とを有する。アプリ提供処理部610とアプリ登録処理部620とは、アプリマーケットサーバ30にインストールされた1以上のプログラムをCPUが実行することで実現される。
また、本実施形態に係るアプリマーケットサーバ30は、アプリ情報記憶部630を有する。アプリ情報記憶部630は、例えばHDD等の補助記憶装置を用いて実現可能である。なお、アプリ情報記憶部630は、アプリマーケットサーバ30とネットワークを介して接続される記憶装置(例えば、DB(データベース)サーバ等)を用いて実現されていても良い。
アプリ提供処理部610は、アプリマーケットサイトの画面等を画像処理装置10に提供する。また、アプリ提供処理部610は、アプリマーケットサイト上で選択されたアプリケーション(すなわち、画像処理装置10に導入されるアプリケーション)のアプリ情報をアプリ情報記憶部630から取得し、取得したアプリ情報を画像処理装置10に提供する。
アプリ登録処理部620は、アプリマーケットサイトで紹介されるアプリケーションの登録画面(アプリ登録画面)等を端末装置20に提供する。また、アプリ登録処理部620は、アプリ登録画面を介して登録されたアプリケーションの各種情報を、アプリ情報としてアプリ情報記憶部630に保存する。
アプリ情報記憶部630は、アプリマーケットサイトで紹介されるアプリケーションのアプリ情報を記憶する。アプリ情報には、アプリケーションの名称(アプリ名)やアプリケーションの利用に必要なファームウェアのバージョン等の情報が含まれる。アプリ情報の詳細については後述する。
図5に示すように、本実施形態に係るファームウェア配信サーバ40は、ファームウェア配信処理部710を有する。ファームウェア配信処理部710は、ファームウェア配信サーバ40にインストールされた1以上のプログラムをCPUが実行することで実現される。
また、本実施形態に係るファームウェア配信サーバ40は、パッケージ記憶部720を有する。パッケージ記憶部720は、例えばHDD等の補助記憶装置を用いて実現可能である。なお、パッケージ記憶部720は、ファームウェア配信サーバ40とネットワークを介して接続される記憶装置(例えば、DB(データベース)サーバ等)を用いて実現されていても良い。
ファームウェア配信処理部710は、画像処理装置10からの要求に応じて、最新バージョンのファームウェアのパッケージをパッケージ記憶部720から取得し、取得したパッケージを当該画像処理装置10に配信する。
パッケージ記憶部720は、最新バージョンのファームウェアのパッケージを記憶する。なお、パッケージ記憶部720には、最新バージョンのファームウェアのパッケージだけでなく、例えば、最新バージョン未満のバージョンのファームウェアのパッケージが記憶されていても良い。
<処理の詳細>
次に、本実施形態に係る画像処理システム1の処理の詳細について説明する。
≪アプリ登録処理≫
以降では、例えばサードベンダー等の担当者が端末装置20を用いて、Webアプリをアプリマーケットサーバ30に登録する処理について、図6を参照しながら説明する。図6は、本実施形態に係るアプリ登録処理の一例を示すシーケンス図である。Webアプリがアプリマーケットサーバ30に登録されることで、当該Webアプリがアプリマーケットサイトで紹介され、画像処理装置10に導入可能となる。
まず、ブラウザ510の入力受付部512は、アプリ登録画面の表示操作を受け付ける(ステップS101)。端末装置20のユーザは、例えば、アプリ登録画面を表示するためのリンク等を押下することで、アプリ登録画面の表示操作を行うことができる。
次に、ブラウザ510の要求部513は、アプリ登録画面の表示要求をアプリマーケットサーバ30に送信する(ステップS102)。アプリ登録画面の表示要求は、例えば、アプリ登録画面のURLが指定されたHTTP(Hypertext Transfer Protocol)リクエストである。
そして、アプリマーケットサーバ30のアプリ登録処理部620は、Webコンテンツとしてアプリ登録画面を端末装置20に返信する。アプリ登録画面は、例えば、HTTPレスポンスとして、端末装置20に返信される。
次に、ブラウザ510の表示制御部511は、アプリマーケットサーバ30から返信されたアプリ登録画面を解釈して、例えば図7に示すアプリ登録画面G100を表示する(ステップS103)。
図7に示すアプリ登録画面G100は、アプリマーケットサイトで紹介されるアプリケーションを登録するための画面である。図7に示すアプリ登録画面G100には、アプリ名指定欄G110と、アプリ種別指定欄G120と、プロダクトID指定欄G130と、プロダクトキー指定欄G140とが含まれる。また、図7に示すアプリ登録画面G100には、ショートカット先URL指定欄G150と、アイコン画像指定欄G160と、サポートモデル指定欄G170と、必要ファームバージョン指定欄G180とが含まれる。
アプリ名指定欄G110には、アプリマーケットサイトで紹介するアプリケーションの名称(アプリ名)が指定される。アプリ種別指定欄G120には、アプリマーケットサイトで紹介するアプリケーションの種別(ネイティブアプリ又はWebアプリ)が指定される。例えば、アプリ種別指定欄G120で「Native」が指定された場合にはアプリケーションの種別が「ネイティブアプリ」であることを表し、「Web」が指定された場合にはアプリケーションの種別が「Webアプリ」であることを表す。
プロダクトID指定欄G130には、アプリマーケットサイトで紹介するアプリケーションを識別するプロダクトIDが指定される。プロダクトキー指定欄G140は、アプリ種別指定欄G120で「Native」が指定された場合に用いられ、ネイティブアプリのオブジェクトファイル等をダウンロードする際のプロダクトキー(これは「ライセンスキー」とも称される。)が指定される。
ショートカット先URL指定欄G150は、アプリ種別指定欄G120で「Web」が指定された場合に用いられ、Webアプリを提供するWebアプリサーバ50のURL(ショートカット先URL)が指定される。
アイコン画像指定欄G160は、アプリ種別指定欄G120で「Web」が指定された場合に用いられ、Webアプリを利用するためのショートカットアイコンのアイコン画像が指定される。なお、アイコン画像指定欄G160でアイコン画像が指定された後、アイコン削除ボタンG161を押下することで、ユーザは、一度指定したアイコン画像を削除することができる。
サポートモデル指定欄G170には、アプリマーケットサイトで紹介するアプリケーションが利用可能な画像処理装置10のモデル(例えば、型番等)が指定される。必要ファームバージョン指定欄G180には、アプリマーケットサイトで紹介するアプリケーションの利用に必要なファームウェアのバージョンが指定される。
例えば、図7に示す例では、必要ファームバージョン指定欄G180に「FWVer2.5」が指定されている。これは、ファームウェアのバージョンが「FWVer2.5」以上であれば、当該アプリケーションを利用可能であることを示している。
端末装置20のユーザは、上記の各指定欄に各種情報を指定した上で、OKボタンG190を押下することで、アプリ登録操作を行うことができる。以降では、アプリ種別指定欄G120で「Web」が指定された上で、アプリ登録操作(すなわち、Webアプリをアプリマーケットサーバ30に登録するためのアプリ登録操作)が行われたものとする。
なお、図7に示すアプリ登録画面G100は一例であって、アプリ登録画面G100には、他の種々の指定欄が含まれていても良い。例えば、アプリマーケットサイトに表示されるアプリケーションの説明文が指定できる指定欄が含まれていても良い。また、例えば、アプリケーションを導入可能な国(例えば、アメリカ合衆国や日本等)又は地域が指定できる指定欄が含まれていても良い。
図6に戻る。ブラウザ510の入力受付部512は、アプリ登録操作を受け付ける(ステップS104)。
次に、ブラウザ510の要求部513は、アプリの登録要求をアプリマーケットサーバ30に送信する(ステップS105)。アプリの登録要求には、例えば図7に示すアプリ登録画面G100の各指定欄に指定された各種情報(すなわち、例えば、アプリ名、アプリ種別、プロダクトID、ショートカット先URL、アイコン画像、サポートモデル、必要ファームバージョン等)が含まれる。
アプリマーケットサーバ30のアプリ登録処理部620は、アプリの登録要求を受信すると、当該登録要求に係るアプリを登録する(ステップS106)。すなわち、アプリ登録処理部620は、当該登録要求に含まれる各種情報からアプリ情報を作成し、作成したアプリ情報をアプリ情報記憶部630に保存する。アプリ情報がアプリ情報記憶部630に保存されることで、アプリマーケットサイトで紹介されるアプリケーションがアプリマーケットサーバ30に登録される。
そして、アプリマーケットサーバ30のアプリ登録処理部620は、登録結果を端末装置20に返信する。
ここで、アプリ情報記憶部630に記憶されているアプリ情報について、図8を参照しながら説明する。図8は、アプリ情報の一例を示す図である。
図8に示すように、アプリ情報記憶部630に記憶されている各アプリ情報には、プロダクトIDと、アプリ名と、アプリ種別と、プロダクトキーと、ショートカット先URLと、アイコン画像と、サポートモデルと、必要ファームバージョンとが含まれる。これらの各情報は、例えば図7に示すアプリ登録画面G100においてユーザにより指定される。
なお、上述したように、プロダクトキーは、アプリ種別が「Native」である場合に指定される。また、ショートカット先URL及びアイコン画像は、アプリ種別が「Web」である場合に指定される。
また、例えば、アプリ種別が「Native」である場合、アプリ情報には、必要ファームバージョンが指定されていなくても良い。これは、ネイティブアプリの場合には、必要なファームウェアのバージョンをオブジェクトファイル等に記述することが可能なためである。
以上のように、本実施形態に係る画像処理システム1では、例えばサードベンダー等の担当者が端末装置20を用いて、アプリケーション(ネイティブアプリ又はWebアプリ)をアプリマーケットサーバ30に登録することができる。アプリケーションがアプリマーケットサーバ30に登録されることで、当該アプリケーションがアプリマーケットサイトで紹介され、画像処理装置10に導入可能となる。
なお、本実施形態では、端末装置20に搭載されたブラウザ510を用いて、アプリマーケットサーバ30にアプリケーションを登録したが、例えば、専用のソフトウェア(例えばアプリ登録ツール等)が用いられても良い。
≪Webアプリ導入処理≫
以降では、アプリマーケットサイトで紹介されているWebアプリを画像処理装置10に導入する処理について、図9を参照しながら説明する。図9は、本実施形態に係るWebアプリ導入処理の一例を示すシーケンス図である。
まず、マーケットアプリ410のサイト表示要求部411は、アプリマーケットサイトで紹介されているアプリケーションの一覧が表示されるアプリ一覧画面の表示要求をブラウザ420に送信する(ステップS201)。サイト表示要求部411は、例えば、マーケットアプリ410の起動に応じて、アプリ一覧画面の表示要求をブラウザ420に送信する。なお、マーケットアプリ410の起動は、例えば、操作パネル115に表示されたアイコンの中から、マーケットアプリ410の利用を開始するためのアイコンをユーザが選択することで行うことができる。
次に、ブラウザ420の要求部423は、アプリ一覧画面の表示要求をアプリマーケットサーバ30に送信する(ステップS202)。アプリ一覧画面の表示要求は、例えば、アプリ一覧画面のURLが指定されたHTTPリクエストである。
そして、アプリマーケットサーバ30のアプリ提供処理部610は、Webコンテンツとしてアプリ一覧画面を画像処理装置10に返信する。アプリ一覧画面は、例えば、HTTPレスポンスとして、画像処理装置10に返信される。
次に、ブラウザ420の表示制御部421は、アプリマーケットサーバ30から返信されたアプリ一覧画面を解釈して、例えば図10に示すアプリ一覧画面G200を表示する(ステップS203)。
図10に示すアプリ一覧画面G200は、アプリマーケットサイトで紹介されているアプリケーションの一覧が表示される画面である。図10に示すアプリ一覧画面G200には、アプリ一覧G210が含まれる。ユーザは、アプリ一覧G210の中から、画像処理装置10への導入を所望するアプリを示すアイコンを選択することで、アプリの選択操作を行うことができる。以降では、アプリ名「IDカードコピー」のWebアプリを示すアイコンG211が選択されたアプリの選択操作が行われたものとする。
ブラウザ420の入力受付部422は、アプリの選択操作を受け付ける(ステップS204)。
次に、ブラウザ420の要求部423は、アプリの選択操作により選択されたアプリケーション(本実施形態では、アプリ名「IDカードコピー」のWebアプリ)を導入するためのアプリ導入画面の表示要求をアプリマーケットサーバ30に送信する(ステップS205)。アプリ導入画面の表示要求は、例えば、アプリ導入画面のURLが指定されたHTTPリクエストである。
そして、アプリマーケットサーバ30のアプリ提供処理部610は、Webコンテンツとして、アプリ名「IDカードコピー」のWebアプリを導入するためのアプリ導入画面を画像処理装置10に返信する。アプリ導入画面は、例えば、HTTPレスポンスとして、画像処理装置10に返信される。
次に、ブラウザ420の表示制御部421は、アプリマーケットサーバ30から返信されたアプリ導入画面を解釈して、例えば図10に示すアプリ導入画面G300を表示する(ステップS206)。
図10に示すアプリ導入画面G300は、アプリ名「IDカードコピー」のWebアプリを画像処理装置10に導入するための画面である。図10に示すアプリ導入画面G300には、当該Webアプリの説明G310と、画像処理装置10にWebアプリの導入を開始するためのインストールボタンG320とが含まれる。Webアプリの説明G310には、例えば、当該Webアプリの概要等の説明が表示される。ユーザは、インストールボタンG320を押下することで、当該Webアプリを画像処理装置10に導入することができる。以降では、インストールボタンG320の押下操作が行われたものとする。
なお、アプリ導入画面G300において、ネイティブアプリ選択時に画面内に有する、ネイティブアプリのインストールボタンは、ブラウザ420に画像処理装置10のインストーラを動作させ、アプリケーションのオブジェクトファイルのダウンロードやインストールをさせるために、ブラウザ420の提供するAPIを叩く(呼び出す)ように実装されている。一方で、Webアプリ選択時に画面内に有するインストールボタンは、ブラウザ420の提供するAPIを叩いて、ブラウザ420に画像処理装置10で利用するために必要なファームウェアバージョン情報のサーバからの取得、画像処理装置10に搭載されているファームウェアバージョン情報がサーバから取得したバージョン情報以上であるか否かの判定、更新が必要な場合のファームウェアの更新指示、及び、Webアプリのショートカットのホーム画面への追加、等をさせるように、実装されている。つまり、アプリ導入画面における、ネイティブアプリのインストールボタンと、Webアプリのインストールボタンとでは、押下操作時に、ブラウザ420の提供する異なるAPIを叩くように、異ならせて実装されている。
なお、図10に示すアプリ導入画面G300では、画像処理装置10にWebアプリの導入を開始するためのボタン(インストールボタンG320)に「インストール」と表示されている。このように、ショートカットアイコンを登録するだけのWebアプリの場合も「インストール」と表示することで、画像処理装置10のユーザは、アプリ種別(ネイティブアプリ又はWebアプリ)を意識することなく、アプリケーションを当該画像処理装置10に導入することができるようになる。
また、Webアプリの導入を開始するためのボタンは、インストールや導入開始を表す以外にも、例えば、導入、入手、登録、利用、利用開始、使用、使用開始等を表す場合が含まれていても良い。
ブラウザ420の入力受付部422は、インストールボタンG320の押下操作を受け付ける(ステップS207)。
次に、ブラウザ420の要求部423は、選択されたアプリケーション(本実施形態では、アプリ名「IDカードコピー」のWebアプリ)のアプリ情報の取得要求をアプリマーケットサーバ30に送信する(ステップS208)。アプリ情報の取得要求には、例えば、選択されたアプリケーション(すなわち、アプリ名「IDカードコピー」のWebアプリ)を識別する情報(例えば、プロダクトID等)が指定される。
アプリマーケットサーバ30のアプリ提供処理部610は、アプリ情報記憶部630から該当のアプリ情報(すなわち、アプリ名「IDカードコピー」のWebアプリのアプリ情報)を取得する(ステップS209)。なお、アプリ提供処理部610は、例えば、アプリ情報記憶部630に記憶されているアプリ情報の中から、当該取得要求に指定されている情報(例えば、プロダクトID等によって識別されるアプリ情報)を取得すれば良い。
そして、アプリマーケットサーバ30のアプリ提供処理部610は、取得したアプリ情報を画像処理装置10に返信する。上述したように、アプリ種別が「Web」(すなわち、Webアプリ)であるアプリ情報には、アプリ名やショートカット先URL、アイコン画像、必要ファームバージョン等が含まれる。
ブラウザ420の要求部423は、アプリマーケットサーバ30からアプリ情報が返信されると、現在のファームバージョン(すなわち、現在の画像処理装置10のファームウェアのバージョン)の取得要求を本体装置12に送信する(ステップS210)。なお、要求部423は、例えば、本体装置12のシステムモジュール450が提供するWebAPI(Application Programming Interface)を利用することで、現在のファームバージョンの取得要求を行うことができる。また、要求部423は、例えば、ブラウザ420が提供するAPIを用いて、アプリ情報に含まれる必要ファームバージョンが当該ブラウザ420に渡されたことに応じて、現在のファームバージョンの取得要求を行う。
システムモジュール450のバージョン取得部451は、画像処理装置10の現在のファームウェアのバージョンを示す情報をファームバージョン記憶部460から取得する(ステップS211)。
そして、システムモジュール450のバージョン取得部451は、取得したバージョンを示す情報(以降では、「現在のファームバージョン」と表す。)を操作装置11に返信する。
次に、ブラウザ420のバージョン判定部424は、上記のステップS211で返信された現在のファームバージョンが、上記のステップS209で返信されたアプリ情報に含まれる必要ファームバージョン以上であるか否かを判定する(ステップS212)。
現在のファームバージョンが必要ファームバージョン以上でないと判定された場合、以降のステップS213〜ステップS220の処理が実行される。一方で、現在のファームバージョンが必要ファームバージョン以上であると判定された場合、以降のステップS213〜ステップS220の処理は実行されない。
現在のファームバージョンが必要ファームバージョン以上でないと判定された場合、ブラウザ420のショートカット保存部426は、ショートカット情報をショートカット記憶部440に保存する(ステップS213)。ショートカット情報とは、Webアプリを利用するためのショートカットアイコンの登録に必要な情報であり、例えば、アプリ情報に含まれるアイコン画像及びショートカット先URL等である。
なお、ショートカット情報をショートカット記憶部440に保存するのは、後述するステップS220でファームウェアを更新した後、操作装置11及び本体装置12の再起動が必要となるためである。
次に、ブラウザ420の更新指示部425は、ファームウェア更新指示をインストーラ430に送信する(ステップS214)。
次に、インストーラ430の更新依頼部431は、例えば図11に示すファームウェア更新確認画面G400を表示する(ステップS215)。
図11に示すファームウェア更新確認画面G400は、ファームウェアの更新を行っても良いか否かをユーザに確認させるための画面である。図11に示すファームウェア更新確認画面G400には、「すぐに更新」ボタンG410が含まれる。ユーザは、「すぐに更新」ボタンG410を押下することで、ファームウェア更新操作を行うことができる。以降では、ファームウェア更新操作が行われたものとする。
なお、図11に示すファームウェア更新確認画面G400には、「時刻指定する」ボタンG420も含まれる。「時刻指定する」ボタンG420が押下された場合、更新依頼部431は、例えば図11に示す時刻設定画面G500を表示する。図11に示す時刻設定画面G500では、ファームウェア更新を行う時刻を指定することができる。これにより、ユーザは、所望の時間(例えば、夜間等の画像処理装置10を利用しない時間等)にファームウェアの更新を行うことができるようになる。このとき、ユーザにより指定された時刻前に、更に別のWebアプリの導入するための操作が行われた場合、ファームウェアが更新された後に、当該Webアプリと共に、当該別のWebアプリも同時に画像処理装置10に導入される。
インストーラ430の更新依頼部431は、ファームウェア更新操作を受け付ける(ステップS216)。
次に、インストーラ430の更新依頼部431は、ファームウェア更新依頼を本体装置12に送信する(ステップS217)。なお、更新依頼部431は、例えば、本体装置12のシステムモジュール450が提供するWebAPIを利用することで、ファームウェア更新依頼を行うことができる。
次に、システムモジュール450のファーム取得部452は、ファームウェアの取得要求をファームウェア配信サーバ40に送信する(ステップS218)。
次に、ファームウェア配信サーバ40のファームウェア配信処理部710は、最新バージョンのファームウェアのパッケージをパッケージ記憶部720から取得する(ステップS219)。
そして、ファームウェア配信サーバ40のファームウェア配信処理部710は、取得したパッケージを本体装置12に返信する。
システムモジュール450のファーム更新部453は、ファームウェア配信サーバ40から返信されたパッケージにより、操作装置11の第1のファームウェアと本体装置12の第2のファームウェアとを更新する(ステップS220)。
ファーム更新部453は、例えば、パッケージに含まれる最新バージョンの第2のファームウェアにより本体装置12の第2のファームウェアを更新した後、当該パッケージに含まれる最新バージョンの第1のファームウェアにより操作装置11の第2のファームウェアを更新する。その後、ファーム更新部453は、操作装置11の再起動を行った後に、本体装置12の再起動を行う。これにより、画像処理装置10のファームウェアが最新バージョンに更新される。なお、ファームウェア配信サーバ40から返信されたパッケージが圧縮されている場合、ファーム更新部453は、当該パッケージを解凍した上で、ファームウェアの更新を行う。
そして、システムモジュール450のファーム更新部453は、インストーラ430を介して、ファームウェアの更新結果をブラウザ420に返信する。
以降のステップS221の処理は、上記のステップS220のファームウェアの更新が成功した場合、又は上記のステップS212で現在のファームバージョンが必要ファームバージョン以上であると判定された場合に実行される。すなわち、この場合、ブラウザ420のショートカット登録部427は、ショートカット記憶部440に記憶されているショートカット情報を取得し、取得したショートカット情報を用いて、ショートカットアイコンを操作装置11に登録する(ステップS221)。これにより、Webアプリを利用するためのショートカットアイコンが操作装置11に登録され、当該Webアプリが画像処理装置10に導入される。
ここで、操作装置11上に表示されるアプリ利用画面G600について、Webアプリが画像処理装置10に導入される前と後とを図12に示す。図12は、Webアプリの導入前後におけるアプリ利用画面G600の一例を示す図である。
図12に示すように、アプリ利用画面G600には、コピーアプリケーションを利用するための「コピー」アイコン、スキャンアプリケーションを利用するための「スキャン」、マーケットアプリ410を利用するための「アプリマーケット」アイコン等の種々のアプリケーションのアイコンが表示されている。
アプリ名「IDカードコピー」のWebアプリが画像処理装置10に導入されると、当該Webアプリを利用するためのショートカットアイコンG610がアプリ利用画面G600に追加される。ユーザは、ショートカットアイコンG610を押下することで、ブラウザ420を用いて、当該ショートカットアイコンG610が示すショートカット先URLのWebアプリサーバ50が提供するWebアプリを利用することができる。なお、アプリ利用画面G600は、画像処理装置10の利用開始時(例えば、ログイン時)に最初に表示される画面であり、ホーム画面等とも呼ばれる。
図9に戻る。一方で、以降のステップS222の処理は、上記のステップS220のファームウェアの更新が失敗した場合に実行される。すなわち、この場合、ブラウザ420のショートカット削除部428は、ショートカット記憶部440に記憶されているショートカット情報を削除する(ステップS222)。
以上のように、本実施形態に係る画像処理システム1では、アプリマーケットサイトからWebアプリを画像処理装置10に導入する際に、画像処理装置10のファームウェアが、当該Webアプリの利用に必要なバージョンであるか否かを判定することができる。そして、本実施形態に係る画像処理システム1では、画像処理装置10のファームウェアが、当該Webアプリの利用に必要なバージョンでないと判定された場合、当該画像処理装置10のファームウェアのバージョンを最新のバージョンに更新することができる。
これにより、本実施形態に係る画像処理システム1では、Webアプリの導入にあたり、例えばサービスマン等が画像処理装置10のファームウェアを更新する必要がなくなり、ユーザがWebアプリを利用可能な状態になるまでの待ち時間が軽減される。また、本実施形態に係る画像処理システム1では、例えば、画像処理装置10のファームウェアのバージョンがWebアプリの利用に必要なバージョンでないために、当該Webアプリを利用することができない等の事態を防止することができる。更に、Webアプリの登録をするタイミング、もしくはユーザ指定時刻に、ファーム更新を行うことができるので、ユーザによるWebアプリの利用時には、ユーザがスムーズにWebアプリを利用することができ、ユーザをファームウェア更新のために待たせることがない。このため、本実施形態に係る画像処理システム1によれば、ユーザが画像処理装置10にWebアプリを導入及び利用する際の利便性を向上させることができる。
なお、本実施形態は、Webアプリケーションをオブジェクトファイルを有さないアプリケーションの一例として説明したが、これに限られない。本実施形態は、オブジェクトファイルを有さずに、アプリサーバ等から電子機器(例えばMFP等)で利用可能に登録されるアプリケーションや、ファームウェアの情報を有さないアプリケーションであれば、同様に適用可能である。
また、上記で説明した実施形態の各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP(digital signal processor)、FPGA(field programmable gate array)や従来の回路モジュール等のデバイスを含むものとする。
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。