図1は、アプリケーションシステム100の全体的な構成の例を示す図である。図2は、画像形成装置1のハードウェア構成の例を示す図である。図3は、画像形成装置1のプラットフォームの例を示す図である。図4は、メニュー画面50の例を示す図である。
図1に示すように、アプリケーションシステム100は、画像形成装置1、サーバ装置21、22、および通信回線4などによって構成される。
画像形成装置1とサーバ装置21、22とは、通信回線4を介して通信を行うことができる。通信回線4として、いわゆるLAN(Local Area Network)回線、インターネット、公衆回線、または専用線などが用いられる。
画像形成装置1は、コピー、PCプリント、ファックス、スキャナ、およびボックスなどの機能を集約した装置である。一般に、「複合機」または「MFP(Multi Function Peripherals)」などと呼ばれることがある。
PCプリント機能は、パーソナルコンピュータまたはスマートフォンなどの端末装置から受信した画像データに基づいて画像を用紙に印刷する機能である。「ネットワークプリンティング」または「ネットワークプリント」などと呼ばれることもある。
ボックス機能は、ユーザごとに「ボックス」または「パーソナルボックス」などと呼ばれる記憶領域を与えておき、各ユーザが自分の記憶領域によって画像データなどを保存し管理するための機能である。ボックスは、パーソナルコンピュータにおける「フォルダ」または「ディレクトリ」に相当する。
画像形成装置1は、図2に示すように、CPU(Central Processing Unit)10a、RAM(Random Access Memory)10b、ROM(Read Only Memory)10c、大容量記憶装置10d、タッチパネルディスプレイ10e、操作キーパネル10f、NIC(Network Interface Card)10g、モデム10h、スキャンユニット10i、プリントユニット10j、およびスピーカ10kなどによって構成される。
タッチパネルディスプレイ10eは、ユーザに対するメッセージを示す画面、ユーザがコマンドまたは情報を入力するための画面、およびCPU10aが実行した処理の結果を示す画面などを表示する。また、タッチパネルディスプレイ10eは、タッチされた位置を示す信号をCPU10aへ送る。
操作キーパネル10fは、いわゆるハードウェアキーボードであって、テンキー、スタートキー、ストップキー、およびファンクションキーなどによって構成される。
NIC10gは、TCP/IP(Transmission Control Protocol/Internet Protocol)などのプロトコルで他の装置との通信を行う。
モデム10hは、ファクシミリ端末との間でG3などのプロトコルで画像データをやり取りする。
スキャンユニット10iは、プラテンガラスの上にセットされたシートに記されている画像を読み取って画像データを生成する。
プリントユニット10jは、スキャンユニット10iによって読み取られた画像のほか、NIC10gまたはモデム10hによって他の装置から受信した画像を用紙に印刷する。
ROM10cまたは大容量記憶装置10dには、画像形成装置1の全体的な管理または基本的な処理を行ったりユーザインタフェースを提供したりするソフトウェアとして、図3に示すオペレーティングシステム(OS)101およびMFPシステム102が記憶されている。さらに、オペレーティングシステム101またはMFPシステム102の機能をアプリケーションに提供するために、ネイティブアプリケーショプラットフォーム103が用意されている。
さらに、大容量記憶装置10dには、コピーアプリケーション401、スキャンアプリケーション402、およびボックスアプリケーション403のほか、ブラウザアプリケーション404、およびメニューアプリケーション405などが記憶されている。コピーアプリケーション401ないしメニューアプリケーション405は、ネイティブアプリケーショプラットフォーム103を介して動作する。
また、大容量記憶装置10dには、IWS(Internal Web Server)用のソフトウェアであるウェブサーバシステム105が記憶されている。さらに、掲示板アプリケーション471および翻訳アプリケーション472のほか、ウェブメニューアプリケーション473などが記憶されている。掲示板アプリケーション471ないしウェブメニューアプリケーション473は、ウェブサーバシステム105を介して動作する。
このように、アプリケーションには、ネイティブアプリケーショプラットフォーム103を介して動作するものもあれば、ウェブサーバシステム105を介して動作するものもある。以下、両アプリケーションを区別するために、前者を「ネイティブアプリケーション40」と記載し、後者を「ウェブアプリケーション47」と記載する。
コピーアプリケーション401、スキャンアプリケーション402、およびボックスアプリケーション403は、それぞれ、上述のコピー、スキャン、およびボックスの各機能を実現するためのアプリケーションである。ブラウザアプリケーション404は、ウェブブラウザである。メニューアプリケーション405は、選択肢としてネイティブアプリケーション40を含むメニュー画面を表示し、ユーザが選択したネイティブアプリケーション40を起動するアプリケーションである。ウェブアプリケーション47は選択肢に含まれない。そのほか、ファックスおよびPCプリントなどの機能を実現するためのアプリケーションがネイティブアプリケーション40として大容量記憶装置10dに記憶されている。
掲示板アプリケーション471は、電子掲示板のアプリケーションである。翻訳アプリケーション472は、ある言語のテキストを他の言語のテキストに翻訳するアプリケーションである。ウェブメニューアプリケーション473は、図4のような、選択肢としてウェブアプリケーション47を含むメニュー画面50を表示し、ユーザが選択したウェブアプリケーション47を起動するアプリケーションである。さらに、ウェブメニューアプリケーション473によると、選択肢としてネイティブアプリケーション40をメニュー画面50に含め、ネイティブアプリケーション40をユーザが選択した場合にこれを起動することができる。この仕組みについては、後述する。
これらのソフトウェアを構成するモジュールまたはプログラムファイルは、必要に応じてRAM10bにロードされ、CPU10aによって実行される。大容量記憶装置10dとして、ハードディスクドライブまたはSSD(Solid State Drive)などが用いられる。
オペレーティングシステム101、MFPシステム102、およびネイティブアプリケーショプラットフォーム103は、一般的な画像形成装置の従来のプラットフォームの要素の一部である。一方、ウェブサーバシステム105は、ウェブアプリケーションを実行するために拡張した要素である。
図1に戻って、サーバ装置21は、OpenAPI(Application Program Interface)によって画像形成装置1へサービスを提供する。通信プロトコルとしてSOAP(Simple Object Access Protocol)が用いられる。サーバ装置22は、WebAPIによって画像形成装置1へサービスを提供する。
次に、画像形成装置1に新たにネイティブアプリケーション40Xおよびウェブアプリケーション47Xをインストールし起動する場合を例に、メニュー画面50を表示する仕組みおよびメニュー画面50から各アプリケーションを起動する仕組みを説明する。
〔データの準備〕
図5は、インストーラ35によって実現される機能的構成の例を示す図である。図6は、アプリケーション情報テーブル6Tの例を示す図である。図7は、インストーラ36によって実現される機能的構成の例を示す図である。
ネイティブアプリケーション情報格納領域141(図5および図7参照)が、ネイティブアプリケーション40用のハードウェアリソース(特に、大容量記憶装置10dの一部分)に予め設けられている。
さらに、ウェブアプリケーション情報格納領域142が、ウェブアプリケーション47用のハードウェアリソース(特に、大容量記憶装置10dの一部分)に予め設けられている。
ネイティブアプリケーション情報格納領域141およびウェブアプリケーション情報格納領域142ともに、従来の画像形成装置1において設けられるものと同様の役割を有する。
すなわち、ネイティブアプリケーション情報格納領域141には、ネイティブアプリケーション40に関する情報を示す種々のデータが記憶される。具体的には、ネイティブアプリケーション40のアイコンの画像ファイル61A、アプリケーション名を示すテキストファイル61B、1つまたは複数のプログラムファイル61C、および起動方法(最初に実行すべきプログラムを起動するためのコードおよび必要なパラメータなど)を示す起動属性データ61Dなどが、互いに対応付けられて記憶される。
ウェブアプリケーション情報格納領域142には、ウェブアプリケーション47に関するデータを示す種々のデータが記憶される。具体的には、ウェブアプリケーション47のアイコンの画像ファイル62A、アプリケーション名およびトップページのURL(Uniform Resource Locator)などを示すテキストファイル62B、ウェブページのウェブページファイル62C、および演算用のプログラムファイル62Dなどが、互いに対応付けられて記憶される。
ウェブページファイル62Cは、マークアップ言語(例えば、HTML(Hypertext Markup Language)またはXML(Extensible Markup Language))またはスクリプト言語(例えば、PythonまたはJavaScript)によって記述される。プログラムファイル62Dは、CGI(Common Gateway Interface)、例えば、PythonのWSGI(Web Server Gateway Interface)によって記述される。1つのウェブアプリケーション47にウェブページファイル62Cまたはプログラムファイル62Dが複数用意されていることもある。また、ウェブページファイル62Cが予め用意されておらず、ウェブブラウザからアクセスがあるごとに新たに生成することも、ある。
さらに、本実施形態においては、ネイティブアプリケーション情報格納領域141には、ウェブアプリケーション47に関する情報を示す幾つかのデータが記憶される。また、ウェブアプリケーション情報格納領域142には、ネイティブアプリケーション40に関する情報を示す幾つかのデータが記憶される。
これらのデータは、各アプリケーションのインストーラによってネイティブアプリケーション情報格納領域141およびウェブアプリケーション情報格納領域142に格納される。以下、ネイティブアプリケーション情報格納領域141およびウェブアプリケーション情報格納領域142にこれらのデータを格納する方法の例を説明する。
ネイティブアプリケーション40Xのインストーラ35は、図5に示すように、主にデータ領域358およびプログラム領域359によって構成される。
データ領域358には、ネイティブアプリケーション40Xの画像ファイル61A、テキストファイル61B、プログラムファイル61C、および起動属性データ61Dなどが格納されている。
プログラム領域359には、データ変換部351、ウェブサーバ用ファイル書込部352、ネイティブインタフェース用ファイル書込部353、およびネイティブインタフェース用レコード書込部354などの機能を実現するためのプログラムが記述されている。
データ変換部351は、画像ファイル61Aおよびテキストファイル61Bを、ウェブサーバシステム105に対応するフォーマット(形式)のファイルに変換する。
例えば、画像ファイル61Aのフォーマットがビットマップフォーマットであり、ウェブサーバシステム105に対応するフォーマットがGIF(Graphics Interchange Format)である場合は、画像ファイル61AをGIFのファイルに変換する。また、テキストファイル61Bの文字コードがJIS(Japanese Industrial Standards)コードであり、ウェブサーバシステム105に対応する文字コードがEUC(Extended Unix Code)である場合は、テキストファイル61BをEUCのファイルに変換する。以下、変換された画像ファイルおよびテキストファイルをそれぞれ「画像ファイル63A」および「テキストファイル63B」と記載する。(Unixは登録商標である。)
ウェブサーバ用ファイル書込部352は、ウェブアプリケーション情報格納領域142に、ネイティブアプリケーション40X用のディレクトリを設ける。そして、画像ファイル63Aおよびテキストファイル63Bを、このディレクトリに書き込む。
ネイティブインタフェース用ファイル書込部353は、ネイティブアプリケーション情報格納領域141にネイティブアプリケーション40X用のディレクトリを設ける。そして、データ領域358の中の画像ファイル61A、テキストファイル61B、プログラムファイル61Cを、このディレクトリに書き込む。
ところで、ネイティブアプリケーション情報格納領域141には、図6に示すアプリケーション情報テーブル6Tが予め用意されている。
ネイティブインタフェース用レコード書込部354は、ネイティブアプリケーション40Xのためのレコード8として、識別番号、アプリケーション名、種別、配置順、起動方法、ネイティブ用アイコンファイル名、およびウェブサーバ用アイコンファイル名を示すレコードをアプリケーション情報テーブル6Tに書き込む。これらの情報の意味は、後述する。
ウェブアプリケーション47Xのインストーラ36は、図7に示すように、主にデータ領域368およびプログラム領域369によって構成される。
データ領域368には、ウェブアプリケーション47Xの画像ファイル62A、テキストファイル62B、ウェブページファイル62C、およびプログラムファイル62Dなどが格納されている。
プログラム領域369には、データ変換部361、ウェブサーバ用ファイル書込部362、ネイティブインタフェース用ファイル書込部363、およびネイティブインタフェース用レコード書込部364などの機能を実現するためのプログラムが格納されている。
データ変換部361は、画像ファイル62Aおよびテキストファイル62Bを、ネイティブアプリケーショプラットフォーム103に対応するフォーマットのファイルに変換する。変換の方法は、データ変換部351(図5参照)による変換の方法と同様である。以下、変換によって得られた画像ファイル62Aおよびテキストファイル62Bをそれぞれ「画像ファイル64A」および「テキストファイル64B」と記載する。
ウェブサーバ用ファイル書込部362は、ウェブアプリケーション情報格納領域142に、ウェブアプリケーション47X用のディレクトリを設ける。そして、データ領域368の中の画像ファイル62A、テキストファイル62B、ウェブページファイル62C、およびプログラムファイル62Dを、このディレクトリに書き込む。
ネイティブインタフェース用ファイル書込部363は、ネイティブアプリケーション情報格納領域141にウェブアプリケーション47X用のディレクトリを設ける。そして、データ変換部361によって得られた画像ファイル64Aおよびテキストファイル64Bをこのディレクトリに書き込む。
ネイティブインタフェース用レコード書込部364は、ウェブアプリケーション47Xのためのレコード8を生成しアプリケーション情報テーブル6T(図6参照)に書き込む。
ここで、アプリケーション情報テーブル6Tに格納される各レコードの情報の意味について説明する。「識別番号」は、アプリケーションを識別するためのID(identification)である。
「アプリケーション名」は、アプリケーションの名称である。ネイティブアプリケーション40の場合は、テキストファイル61Bに示されるアプリケーション名が用いられる。ウェブアプリケーション47の場合は、テキストファイル62Bに示されるアプリケーション名が用いられる。
「種別」は、アプリケーションの種類である。ネイティブアプリケーション40の場合は「Native」が示され、ウェブアプリケーション47の場合は「Web」が示される。
「配置順」は、メニュー画面50(図4参照)における、アプリケーションのボタンの配置順である。デフォルトでは画像形成装置1にインストールされた順に配置順が決まるが、ユーザが任意に変更することができる。
「起動方法」は、アプリケーションを起動する方法である。ネイティブアプリケーション40の場合は、起動属性データ61Dに示される起動方法が用いられる。ウェブアプリケーション47の場合は、起動時に実行するプログラムファイルとしてブラウザアプリケーション404のメインプログラムを起動するためのコード(コマンドまたはリンク)を示し、スタートページのパラメータとしてトップページのURLを示す情報が、用いられる。なお、このURLは、テキストファイル62Bに示されている。
「ネイティブ用アイコンファイル名」は、メニューアプリケーション405が表示するメニュー画面に用いられるアイコンのファイル名である。ネイティブアプリケーション40の場合は画像ファイル61Aのファイル名が示され、ウェブアプリケーション47の場合は画像ファイル63Aのファイル名が示される。
「ウェブサーバ用アイコンファイル名」は、ウェブメニューアプリケーション473が表示するメニュー画面50に用いられるアイコンのファイル名である。ネイティブアプリケーション40の場合は画像ファイル64Aのファイル名が示され、ウェブアプリケーション47の場合は画像ファイル62Aのファイル名が示される。
なお、画像ファイル61A、63Aは、ネイティブアプリケーション情報格納領域141に格納されたものであり、画像ファイル62A、63Aは、ウェブアプリケーション情報格納領域142に格納されたものである。ファイル名が重複することがあるので、ネイティブ用アイコンファイル名として、ファイル名だけでなく格納先のディレクトリ名をも示すようにしてもよい。ウェブ用アイコンファイル名も、同様である。
アプリケーション(ネイティブアプリケーション40またはウェブアプリケーション47)がアンインストールされた場合は、このアプリケーションのレコード8をアプリケーション情報テーブル6Tから削除するのが望ましい。この際に、残りのレコード8に示される配置順を適宜、繰り上げるのが望ましい。
〔メニュー画面50の表示およびアプリケーションの起動〕
図8は、アプリケーションマネージャ130の構成の例を示す図である。図9は、メニューマネージャ150の構成の例を示す図である。図10は、メッセージ画面51の例を示す図である。図11は、キャプチャ画像52の例を示す図である。
図3に示すように、ネイティブアプリケーショプラットフォーム103には、アプリケーションマネージャ130が備わっている。ウェブサーバシステム105には、メニューマネージャ150が備わっている。
アプリケーションマネージャ130の基本的な役割は、従来のアプリケーションマネージャと同様であり、ネイティブアプリケーショプラットフォーム103に用意されている機能をネイティブアプリケーション40へ仲介することである。アプリケーションマネージャ130は、さらに、メニュー画面50を表示するために必要なデータをメニューマネージャ150へ仲介する。また、メニューマネージャ150からの要求に基づいてアプリケーションを起動させる。
メニューマネージャ150は、オペレーティングシステム101に拡張されたプログラムであって、メニュー画面50を表示するための処理およびメニュー画面50からアプリケーションを起動するための処理をサポートする。
このように、アプリケーションマネージャ130およびメニューマネージャ150は、メニュー画面50の表示のサポートおよびメニュー画面50からのアプリケーションの起動のサポートを連携して行う。
アプリケーションマネージャ130は、メニューマネージャ150と連携するための機能として、図8に示すメニュー用データ付与部131、ネイティブアプリケーション起動部132、およびウェブアプリケーション起動部133を備える。
メニューマネージャ150は、アプリケーションマネージャ130と連携するための機能として、図9に示すメニュー用データ要求部151、素材ファイル取得部152、メニュースクリプト生成部153、キャプチャ画像生成部154、キャプチャ画像提供部155、起動アプリケーション判別部156、ネイティブアプリケーション起動要求部157、ウェブアプリケーション起動要求部158、起動情報記憶部15K、および画面用データ記憶部15Lを備える。
なお、アプリケーションマネージャ130の各部とメニューマネージャ150の各部とは、MFPシステム102(図3参照)を介してデータのやり取りを行う。
以下、アプリケーションマネージャ130およびメニューマネージャ150の各部の処理を、メニュー画面50の表示のための処理、ネイティブアプリケーション40の起動のための処理、およびウェブアプリケーション47の起動のための処理に大別して説明する。
ウェブメニューアプリケーション473が起動すると、ウェブメニューアプリケーション473がウェブページファイル62Cをメニューマネージャ150に対して要求する。
すると、メニューマネージャ150において、メニュー用データ要求部151は、アプリケーション情報テーブル6T(図6参照)をアプリケーションマネージャ130に対して要求する。なお、後述する通り、キャプチャ画像提供部155による処理が並行して行われることがある。
アプリケーションマネージャ130において、メニュー用データ付与部131は、ネイティブアプリケーション情報格納領域141からアプリケーション情報テーブル6Tを読み出し、メニュー用データ要求部151へ与える。
メニューマネージャ150において、素材ファイル取得部152は、アプリケーション情報テーブル6Tに示されるアプリケーションごとの画像ファイル62Aまたは画像ファイル63Aを、アプリケーション情報テーブル6Tに示されるウェブサーバ用アイコンファイル名に基づいてウェブアプリケーション情報格納領域142から取得する。具体的には、ネイティブアプリケーション40ごとの画像ファイル63Aを取得し、ウェブアプリケーション47ごとの画像ファイル62Aを取得する。さらに、画像ファイル62Aと同じディレクトリに記憶されているテキストファイル62Bと、画像ファイル63Aと同じディレクトリに記憶されているテキストファイル63Bとを取得する。
メニュースクリプト生成部153は、取得された画像ファイル62A、63Aおよびテキストファイル62B、63B、とアプリケーション情報テーブル6Tに示される配置順とに基づいて、ウェブメニューアプリケーション473のトップページのウェブページファイル62Cとしてメニュー画面50を表示するためのメニュースクリプト65を生成する。図4に示すように、メニュー画面50には、アプリケーションごとのアイコン501が配置されている。アイコン501のイラストの部分は、画像ファイル62A、63Aに基づいている。アイコン501のテキスト(アプリケーション名)の部分は、テキストファイル62B、63Bに基づいている。アイコン501の配置は、アプリケーション情報テーブル6Tに示される配置順に基づいている。
そして、メニュースクリプト生成部153は、メニュースクリプト65をウェブメニューアプリケーション473に与える。
ウェブメニューアプリケーション473は、要求されたウェブページファイル62Cとしてメニュースクリプト65をブラウザアプリケーション404へ与える。
そして、ブラウザアプリケーション404は、メニュースクリプト65に基づいてメニュー画面50をタッチパネルディスプレイ10eに表示させる。なお、アイコン501の個数が所定の数を超える場合は、所定の個数ずつ複数のページに分けて表示する。または、スクロールさせながら一部分ずつ表示する。
起動情報記憶部15Kは、アプリケーション情報テーブル6Tを記憶する。アプリケーション情報テーブル6Tは、アプリケーションの起動の要求のために用いられる。起動情報記憶部15Kを、ウェブアプリケーション情報格納領域142に設けてもよい。
ところで、上述の通り、メニュー画面50にはアプリケーションごとのアイコン501が配置されるが、アイコン501の個数が多いほど、使用するファイル(画像ファイル62A、63A、テキストファイル62B、63B)が増えるので、メニュースクリプト65が生成され始めてからメニュー画面50が表示されるまでの時間が長くなる。
このような場合に、ブラウザアプリケーション404は、通常、図10のような、ユーザに対して少し待つように促すメッセージを記載したメッセージ画面51を表示させる。
一般に、メッセージ画面51が表示されている間、ユーザはタッチパネルディスプレイ10eに対する操作を行うことができない。したがって、メッセージ画面51をなるべく表示せず次の画面を速やかに表示することが望まれる。
そこで、キャプチャ画像生成部154およびキャプチャ画像提供部155は、次の処理を行う。
キャプチャ画像生成部154は、メニュースクリプト生成部153によってメニュースクリプト65が生成されメニュー画面50がタッチパネルディスプレイ10eに表示されると、タッチパネルディスプレイ10eに表示されている画像をキャプチャすることによって、メニュー画面50の画像データ(いわゆるキャプチャデータ、ハードコピー)を生成する。以下、メニュー画面50をキャプチャした画面を「キャプチャ画像52」と記載し、この画像データを「キャプチャ画像データ66」と記載する。キャプチャ画像データ66のフォーマットとして、例えばビットマップが用いられる。なお、キャプチャは、画像形成装置1のオペレーティングシステム101に備わっているキャプチャ機能を使用することによって行えばよい。キャプチャする代わりにメニュースクリプト65に基づいてキャプチャ画像データ66を生成してもよい。
画面用データ記憶部15Lは、メニュースクリプト生成部153によってメニュースクリプト65が生成され、キャプチャ画像生成部154によってキャプチャ画像データ66が生成されると、これらのデータを互いに対応付けて記憶(保存)する。これらのデータは、次回、ウェブメニューアプリケーション473からウェブページファイル62Cを要求された際に使用される。
キャプチャ画像提供部155は、ウェブメニューアプリケーション473からウェブページファイル62Cを要求されると、キャプチャ画像データ66がデータ記憶部15Lに記憶されていれば、これをウェブメニューアプリケーション473へ提供する。この処理は、メニュースクリプト生成部153による処理と並行して行われる。したがって、キャプチャ画像データ66が記憶されていれば、メニュースクリプト65よりも先にキャプチャ画像データ66がウェブメニューアプリケーション473に与えられる。
初めてウェブページファイル62Cを要求された場合は、未だキャプチャ画像データ66が記憶されていないので、キャプチャ画像データ66をウェブメニューアプリケーション473へ与えることができない。2回目以降の要求の際に、キャプチャ画像データ66が与えられる。
ウェブメニューアプリケーション473は、キャプチャ画像データ66をブラウザアプリケーション404へ与える。
そして、ブラウザアプリケーション404は、キャプチャ画像データ66に基づいて図11のようなキャプチャ画像52を表示させる。
なお、画面用データ記憶部15Lには、最新のキャプチャ画像データ66を記憶(保存)させておき、古いキャプチャ画像データ66は削除するのが望ましい。
〔アプリケーションの起動のための処理〕
(1) メニュー画面50からのネイティブアプリケーション40の起動
ブラウザアプリケーション404は、初めて起動された場合は、未だキャプチャ画像データ66がないので、メニュースクリプト65がウェブメニューアプリケーション473から与えられる。
すると、ブラウザアプリケーション404は、上述の通り、メニュースクリプト65に基づいてメニュー画面50(図4参照)をタッチパネルディスプレイ10eに表示させる。なお、ウェブページファイル62Cを要求してからメニュー画面50を表示させるまでに所定の長さ(例えば、1秒)以上の時間を要する場合は、メッセージ画面51(図10参照)を先に表示させ、その後、準備が整ったらメニュー画面50を表示させる。
ユーザは、メニュー画面50が表示されると、起動したいアプリケーションのアイコン501をタッチして選択する。
すると、ブラウザアプリケーション404は、アイコン501またはそれに対応するアプリケーションをウェブメニューアプリケーション473へ通知する。
アイコン501がネイティブアプリケーション40のものである場合は、ネイティブアプリケーション起動要求部158およびネイティブアプリケーション起動部132によって、このネイティブアプリケーション40の起動のための処理が行われる。以下、ネイティブアプリケーション40Xのアイコン501が選択され、ネイティブアプリケーション40Xのアプリケーション名が「E−FAX」である場合を例に説明する。
ウェブメニューアプリケーション473は、アイコン501に対応するアプリケーションつまりネイティブアプリケーション40Xを起動するようにメニューマネージャ150に要求する。
すると、ネイティブアプリケーション起動要求部158は、起動情報記憶部15Kに記憶されているアプリケーション情報テーブル6Tの中から、ネイティブアプリケーション40Xに対応するレコード8つまりレコード809を読み出す。そして、レコード809に示される起動方法をアプリケーションマネージャ130へ通知することによって、ネイティブアプリケーション40Xの起動を要求する。この際に、起動方法を示すデータを、必要に応じて、アプリケーションマネージャ130が解釈することができる形式に変換して、アプリケーションマネージャ130へ与える。
アプリケーションマネージャ130において、ネイティブアプリケーション起動部132は、起動方法を通知されると、この起動方法の通りにネイティブアプリケーション40Xを起動させる。これ以降の起動の仕組みは、従来と同様である。
すると、ネイティブアプリケーション40Xが起動し、ネイティブアプリケーション40XつまりE−FAXの画面がタッチパネルディスプレイ10eに表示される。
(2) メニュー画面50からのウェブアプリケーション47の起動
ユーザが選択したアイコン501がウェブアプリケーション47のものである場合は、ウェブアプリケーション起動要求部158およびウェブアプリケーション起動部133によって、このウェブアプリケーション47の起動のための処理が行われる。以下、ウェブアプリケーション47Xのアイコン501が選択され、ウェブアプリケーション47Xのアプリケーション名が「WebMail」である場合を例に説明する。
ウェブメニューアプリケーション473は、ネイティブアプリケーション40Xの場合と同様、アイコン501に対応するアプリケーションつまりウェブアプリケーション47Xを起動するようにメニューマネージャ150に要求する。
すると、ウェブアプリケーション起動要求部158は、起動情報記憶部15Kに記憶されているアプリケーション情報テーブル6Tの中から、ウェブアプリケーション47Xに対応するレコード8つまりレコード810を読み出す。そして、レコード810に示される起動方法をアプリケーションマネージャ130へ通知することによって、ウェブアプリケーション47Xの起動を要求する。
アプリケーションマネージャ130において、ネイティブアプリケーション起動部132は、起動方法を通知されると、この起動方法の通りにウェブアプリケーション47Xを起動させる。
ところで、通知された起動方法には、起動するプログラムとしてウェブアプリケーション47Xが記述されておらず、ブラウザアプリケーション404のメインプログラムを起動するためのコードが記述されている。このようなコードが記述されている場合は、ネイティブアプリケーション起動部132は、次のようにウェブアプリケーション47Xを起動させる。
ネイティブアプリケーション起動部132は、現在動作しているブラウザアプリケーション404を終了させる。そして、ブラウザアプリケーション404を再び起動させる。この際に、起動方法に記述されるURLのページをスタートページとして起動させる。本例の場合は、ウェブアプリケーション47XのトップページのURLが記述されている。したがって、ブラウザアプリケーション404は、起動後、最初に、このURLに基づいてウェブサーバシステム105へアクセスしてウェブアプリケーション47X(WebMail)のトップページのデータを取得し、トップページをタッチパネルディスプレイ10eに表示させる。
(3) キャプチャ画像52からのアプリケーションの起動
ブラウザアプリケーション404は、過去に起動されたことがある場合は、キャプチャ画像データ66がメニューマネージャ150に記憶されているので、メニュースクリプト65よりも先にキャプチャ画像データ66がウェブメニューアプリケーション473を介して与えられる。
すると、ブラウザアプリケーション404は、上述の通り、キャプチャ画像データ66に基づいてキャプチャ画像52(図11参照)をタッチパネルディスプレイ10eに表示させる。
ユーザは、キャプチャ画像52が表示されると、起動したいアプリケーションのアイコン501を表わす画像をタッチして選択する。
すると、ブラウザアプリケーション404は、タッチされた位置を、ウェブメニューアプリケーション473を介してメニューマネージャ150へ通知する。なお、タッチされた際に、スピーカ10kから操作音(例えば、ビープ音)を出力させるのが好ましい。
メニューマネージャ150において、起動アプリケーション判別部156は、メニュー画面50の中の、キャプチャ画像52においてタッチされた位置と同じ位置に配置されるアイコン501を特定する。そして、特定したアイコン501に対応するアプリケーションを、起動すべきアプリケーションであると判別する。
起動アプリケーション判別部156は、アイコン501を、メニュースクリプト生成部153によって今回生成される最新のメニュースクリプト65に基づいて特定することができる。つまり、このメニュースクリプト65によって、メニュー画面50における各アイコン501の領域を判別する。そして、タッチされた位置が属する領域を判別することによって、アイコン501を特定することができる。
起動すべきアプリケーションがネイティブアプリケーション40である場合は、このネイティブアプリケーション40の起動のための処理がネイティブアプリケーション起動要求部157によって行われる。処理の方法は、(1)で説明した通りである。
一方、起動すべきアプリケーションがウェブアプリケーション47である場合は、このウェブアプリケーション47の起動のための処理がウェブアプリケーション起動要求部158によって行われる。処理の方法は、(2)で説明した通りである。
ところで、画像形成装置1にインストールされるアプリケーションは、増えたり減ったりする。したがって、メニュー画面50におけるアイコン501の配置が変わることがある。また、ユーザがカスタマイズすることによって配置が変わることもある。
このような場合は、タッチされたアイコン501を起動アプリケーション判別部156が正しく特定できないことがある。
そこで、起動アプリケーション判別部156は、次のように処理を行ってもよい。メニュースクリプト生成部153によって今回生成される最新のメニュースクリプト65と画面用データ記憶部15Lに記憶されているメニュースクリプト65とを比較する。特に、アイコン501の配置に関する記述同士を比較する。そして、両者が一致する場合は、上述の通りアイコン501を特定し起動すべきアプリケーションを判別するが、一致しない場合は、これらの特定および判別を中止する。これにより、キャプチャ画像52に対するタッチの操作が無効になる。
図12は、アプリケーションマネージャ130による全体的な処理の流れの例を説明するフローチャートである。図13は、メニューマネージャ150による全体的な処理の流れの例を説明するフローチャートである。図14は、ブラウザアプリケーション404による全体的な処理の流れの例を説明するフローチャートである。
次に、アプリケーションマネージャ130、メニューマネージャ150、およびブラウザアプリケーション404による全体的な処理の流れを、図12〜図14のフローチャートを参照しながら説明する。
画像形成装置1は、アプリケーションマネージャ130、メニューマネージャ150、およびブラウザアプリケーション404などを実行することによって、選択肢としてウェブアプリケーション47だけでなくネイティブアプリケーション40をメニュー画面50に配置し、メニュー画面50から両種のアプリケーションを起動することができる。
アプリケーションマネージャ130によると、図12に示す手順で処理が行われる。メニューマネージャ150からアプリケーション情報テーブル6Tを要求された場合は(図12の#711でYes)、アプリケーションマネージャ130は、ネイティブアプリケーション情報格納領域141からアプリケーション情報テーブル6Tを読み出してメニューマネージャ150に与える(#712)。
メニューマネージャ150から起動方法を通知された場合は(#713でYes)、アプリケーションマネージャ130は、この起動方法に従って次のようにアプリケーションを起動する。
起動方法がウェブアプリケーション47に関するものである場合は(#714でYes)、アプリケーションマネージャ130は、ブラウザアプリケーション404を終了させる(#715)。そして、この通知方法に示されるURLのウェブページ(通常は、このウェブアプリケーション47のトップページ)をスタートページとして、再度、ブラウザアプリケーション404を起動する(#716)。
一方、起動方法がネイティブアプリケーション40に関するものである場合は(#714でNo)、アプリケーションマネージャ130は、この起動方法に従って、このネイティブアプリケーション40を起動する(#717)。
また、メニューマネージャ150によると、図13に示す手順で処理が行われる。ウェブメニューアプリケーション473からトップページのファイルを要求された場合は(図13の#721でYes)、メニューマネージャ150は、キャプチャ画像データ66を既に記憶していれば(#722でYes)、キャプチャ画像データ66をウェブメニューアプリケーション473へ与える(#723)。
キャプチャ画像データ66の有無に関わらず、メニューマネージャ150は、アプリケーションマネージャ130にアプリケーション情報テーブル6Tを要求し、取得する(#724)。さらに、ウェブアプリケーション情報格納領域142から、各ウェブアプリケーション47の画像ファイル62Aおよびテキストファイル62Bと、各ネイティブアプリケーション40の画像ファイル63Aおよびテキストファイル63Bとを、取得する(#725)。取得したこれらのデータに基づいてメニュースクリプト65を生成し、ウェブメニューアプリケーション473へ与える(#726)。そして、このメニュースクリプト65に基づいてメニュー画面50がブラウザアプリケーション404によって表示されたら、メニュー画面50をキャプチャすることによって新たなキャプチャ画像データ66を生成し記憶する(#727)。古くなったキャプチャ画像データ66は削除しておく。
ウェブメニューアプリケーション473からアプリケーションの起動を要求された場合は(#728でYes)、メニューマネージャ150は、このアプリケーションの起動方法をアプリケーションマネージャ130へ通知することによって、このアプリケーションの起動を要求する(#729)。
ウェブメニューアプリケーション473からタッチの位置を通知された場合は(#728でNo、#730でYes)、メニューマネージャ150は、ステップ#726において今回新たに生成したメニュースクリプト65と以前に記憶したメニュースクリプト65とを比較するなどして、メニュー画面50が変更されたか否かを判別する(#731)。なお、新たなメニュースクリプト65が未だ生成されていない場合は、タッチの位置を一時的に記憶しておき、このメニュースクリプト65が生成されるのを待つ。
変更されていない場合は(#732でYes)、メニューマネージャ150は、タッチの位置に対応するアイコン501を特定し、このアイコン501に対応するアプリケーションを判別する(#733)。そして、このアプリケーションの起動方法をアプリケーションマネージャ130へ通知することによって、このアプリケーションの起動を要求する(#734)。変更されている場合は(#732でNo)、今回のタッチを無効なものであるとみなし、アプリケーションの起動の処理を行わない。
また、ブラウザアプリケーション404によると、図14に示す手順で処理が行われる。ユーザによって所定の操作が行われると、ブラウザアプリケーション404は、ウェブメニューアプリケーション473に対してメニュー画面50のデータをウェブメニューアプリケーション473に対して要求する(#741)。すると、ウェブメニューアプリケーション473からメニュースクリプト65またはキャプチャ画像データ66のうちの少なくともいずれかが与えられる。
キャプチャ画像データ66が先に与えられた場合は(#742でYes)、ブラウザアプリケーション404は、キャプチャ画像データ66に基づいて、メニュー画面50(図4参照)の代わりにキャプチャ画像52(図11参照)を表示させる(#743)。キャプチャ画像52が表示されている間にタッチパネルディスプレイ10eがタッチされたら(#744でYes)、ビープ音を出力させるとともに(#745)、タッチされた位置をウェブメニューアプリケーション473へ通知する(#746)。
その後、メニュースクリプト65が与えられたら(#747でYes)、キャプチャ画像52に代えて、メニュースクリプト65に基づいてメニュー画面50を表示させる(#749)。なお、1回目にタッチされた位置のみを通知し、2回目以降にタッチされた位置を通知しないようにしてもよい。または、図14に示す通り、2回目以降も通知してもよい。
一方、キャプチャ画像データ66が与えられることなくメニュースクリプト65が与えられた場合は(#742でNo、#748でYes)、メニュースクリプト65に基づいてメニュー画面50を表示させる(#749)。
そして、メニュー画面50が表示された後は、ブラウザアプリケーション404は、従来通り、処理を行う(#750)。例えば、アイコン501がタッチされたら、このアイコン501またはそれに対応するアプリケーションをウェブメニューアプリケーション473へ通知する。
本実施形態によると、メニュー画面50のようなウェブページを表示する場合において、ユーザが操作することのできない時間を従来よりも短縮することができる。
図15は、設定画面53の例を示す図である。図16および図17は、アプリケーションシステム100のプラットフォームの変形例を示す図である。
本実施形態では、メニューマネージャ150は、アプリケーション情報テーブル6Tに示される起動方法をアプリケーションマネージャ130へ通知したが、識別番号を通知してもよい。この場合は、アプリケーションマネージャ130は、通知された識別番号に対応する通知方法を、ネイティブアプリケーション情報格納領域141に記憶されているアプリケーション情報テーブル6Tから検索する。そして、検索した通知方法に基づいてアプリケーションの起動の処理を行う。
本実施形態では、キャプチャ画像データ66をメニューマネージャ150が生成し記憶したが、ウェブメニューアプリケーション473またはブラウザアプリケーション404が生成し記憶してもよい。また、メニュー画面50の変更の有無を、メニューマネージャ150の代わりにウェブメニューアプリケーション473またはブラウザアプリケーション404が判別してもよい。
本実施形態では、ウェブメニューアプリケーション473の画面(特に、メニュー画面50)のキャプチャ画像を使用する場合を例に説明したが、他のウェブアプリケーション47の画面(例えば、図15のような、翻訳アプリケーション472の設定画面53)についても同様に、キャプチャ画像を残しておき、設定画面53よりも先に、そのキャプチャ画像を表示させてもよい。この場合は、ウェブアプリケーション47ごとに、図9に示したメニューマネージャ150に相当する機能を用意してもよいし、キャプチャ画像を取り扱う機能をウェブアプリケーション47それぞれに組み込んでもよい。
本実施形態では、キャプチャ画像52が表示されている際にタッチパネルディスプレイ10eがタッチされた場合にビープ音を出力したが、表示されているものがメニュー画面50ではなくキャプチャ画像52である旨を示すメッセージをダイアログとして表示させてもよい。または、タッチパネルディスプレイ10e全体をフラッシュさせることによって、その旨を知らせてもよい。
本実施形態では、タッチパネルディスプレイ10eに表示されている画面の全体をキャプチャしたが、ウェブページが表示される領域だけをキャプチャし、他の部分(ツールバー、アドレスバーなどの領域)をキャプチャしないようにしてもよい。例えば、図15において、領域532だけをキャプチャしてもよい。
本実施形態では、アイコン501を、それが表示されている位置をタッチすることによって選択したが、マウスによってポインタをアイコン501に合わせてクリックすることによって選択してもよい。
本実施形態では、図3に示したように、ウェブサーバシステム105としてIWSのシステムを用いた。つまり、ウェブブラウザとウェブサーバとを1台の画像形成装置1に設けた。ウェブサーバを他の装置に設けた場合にも、本発明を適用することができる。以下、この場合の実施例を説明する。
本実施形態では、ウェブメニューアプリケーション473へユーザが初めてアクセスした際は、キャプチャ画像データ66が未だないのでキャプチャ画像52を表示しなかったが、画像形成装置1の出荷時などに予めキャプチャ画像データ66を用意しておいてもよい。そして、初めてアクセスした際は、このキャプチャ画像データ66に基づいてキャプチャ画像52を表示すればよい。
本実施形態では、キャプチャ画像52に対する操作音としてビープ音を出力したが、キャプチャ画像52に対する操作であることを音声によって知らせてもよい。
サーバ装置21、つまり、OpenAPIのウェブサーバを用いる場合は、図16に示すように、メニューマネージャ150をサーバ装置21に設ける。なお、ウェブサーバのリソース(例えば、ウェブアプリケーション情報格納領域142)も、サーバ装置21に設ける。
一方、サーバ装置22、つまり、WebAPIのウェブサーバを用いる場合は、図17に示すように、メニューマネージャ150を画像形成装置1に設ける。ウェブサーバのリソース(例えば、ウェブアプリケーション情報格納領域142)は、サーバ装置22に設ける。
メニューマネージャ150をはじめ各部が行う処理は、基本的に、IWSの場合と同様である。ただし、サーバ装置21、22は、複数台の画像形成装置1と連携することがある。そこで、サーバ装置21、22は、画像形成装置1ごとにウェブアプリケーション情報格納領域142を用意し、使い分ける。また、画像形成装置1ごとに通信セッションを確立し、データのやり取りを画像形成装置1ごとに独立して行う。
その他、アプリケーションシステム100、画像形成装置1、サーバ装置21、22の全体または各部の構成、処理内容、処理順序、画面の構成、データの構成などは、本発明の趣旨に沿って適宜変更することができる。