図1は、画像処理システム3の全体的な構成の例を示す図である。図2は、画像形成装置1のハードウェア構成の例を示す図である。図3は、画像形成装置1のプラットフォームの例を示す図である。図4は、メニュー画面50Aの例を示す図である。図5は、コピージョブ画面50Bの例を示す図である。図6は、簡易設定コピー用ページ50Cの例を示す図である。図7は、ワンタッチ指令ページ50Dの例を示す図である。図8は、ウェブメニューページ50Eの例を示す図である。
図1に示すように、画像処理システム3は、複数台の画像形成装置1、サーバ装置21、1台または複数台の端末装置23、および通信回線29などによって構成される。
画像処理システム3によると、ユーザは、用紙に記されている画像を他の用紙に複写したり電子化して保存したり、アプリケーションによって作成した画像を用紙に印刷したりすることができる。
画像処理システム3は、企業、役所、または学校などの組織において、その組織のメンバによって使用される。
各画像形成装置1は、サーバ装置21、および各端末装置23は、通信回線29を介してデータをやり取りすることができる。通信回線29として、LAN(Local Area Network)回線、インターネット、公衆回線、または専用線などが用いられる。
画像形成装置1は、コピー、PCプリント、ファックス、スキャン、およびボックスなどのサービスを提供する機能を集約した装置である。「MFP(Multi Function Peripherals)」または「複合機」などと呼ばれることがある。
PCプリントの機能は、端末装置23から受信した画像ファイルに基づいて画像を用紙に印刷する機能である。「ネットワークプリンティング」または「ネットワークプリント」などと呼ばれることもある。
ボックスの機能は、ユーザごとに「ボックス」または「パーソナルボックス」などと呼ばれる記憶領域を与えておき、各ユーザが自分の記憶領域によって画像ファイルなどを保存し管理するための機能である。ボックスは、パーソナルコンピュータにおける「フォルダ」または「ディレクトリ」に相当する。
以下、これらの画像形成装置1をそれぞれ「画像形成装置1A」、「画像形成装置1B」、「画像形成装置1C」、…と区別して記載することがある。
サーバ装置21は、OpenAPI(Application Program Interface)またはWebAPIによって画像形成装置1へ種々のサービスを提供する。サーバ装置21には、サービスごとにアプリケーションが用意されている。例えば、スキャンtoOCR(Optical Character Recognition)およびオンラインストレージなどのサービスのアプリケーションが用意されている。「スキャンtoOCR」は、画像形成装置1によって読み取られた画像に示される文字列をOCRによってテキストデータに変換するサービスである。
サーバ装置21は、画像形成装置1へ提供するサービスに対応するアプリケーションを実行し、それによって得られるデータなどを画像形成装置1へ送信する。例えば、スキャンtoOCRのサービスによると、サーバ装置21は、これに対応するアプリケーションを実行することによって画像形成装置1から画像ファイルを取得し、OCRの処理を実行し、得られたテキストデータを画像形成装置1へ送信する。
画像形成装置1がウェブサイトへアクセスすると、サーバ装置21は、適宜、アプリケーションに基づいて演算の処理を行うことによって、画像形成装置1へサービスを提供する。
端末装置23は、画像形成装置1の上述の機能を遠隔的に使用するためのクライアントである。端末装置23として、パーソナルコンピュータ、スマートフォン、またはタブレットコンピュータなどが用いられる。
画像形成装置1は、図2に示すように、CPU(Central Processing Unit)10a、RAM(Random Access Memory)10b、VRAM(Video RAM)10c、ROM(Read Only Memory)10d、大容量記憶装置10e、タッチパネルディスプレイ10f、操作キーパネル10g、NIC(Network Interface Card)10h、モデム10i、スキャンユニット10j、プリントユニット10k、およびフィニッシャ10mなどによって構成される。
タッチパネルディスプレイ10fは、ユーザに対するメッセージを示す画面、ユーザがコマンドまたは情報を入力するための画面、およびCPU10aが実行した処理の結果を示す画面などを表示する。また、タッチパネルディスプレイ10fは、タッチされた位置を示す信号をCPU10aへ送る。
VRAM10cは、タッチパネルディスプレイ10fに表示させる画面のデータを記憶するために用いられる。
操作キーパネル10gは、いわゆるハードウェアキーボードであって、テンキー、スタートキー、ストップキー、およびファンクションキーなどによって構成される。
NIC10hは、TCP/IP(Transmission Control Protocol/Internet Protocol)などのプロトコルで他の装置との通信を行う。
モデム10iは、ファクシミリ端末との間でG3などのプロトコルで画像ファイルをやり取りする。
スキャンユニット10jは、プラテンガラスの上にセットされた用紙に記されている画像を読み取って画像ファイルを生成する。
プリントユニット10kは、スキャンユニット10jによって読み取られた画像のほか、NIC10hまたはモデム10iによって他の装置から受信した画像を用紙に印刷する。
フィニッシャ10mは、プリントユニット10kによって画像が印刷された用紙つまり印刷物をステープルで綴じたり、パンチ穴を開けたりする。
ROM10dまたは大容量記憶装置10eには、画像形成装置1の全体的な管理または基本的な処理を行ったりユーザインタフェースを提供したりするソフトウェアとして、図3に示すオペレーティングシステム101およびMFPシステム102がインストールされている。オペレーティングシステム101またはMFPシステム102の機能をアプリケーションに提供するために、ネイティブアプリケーショプラットフォーム103が用意されている。
さらに、大容量記憶装置10eには、コピーアプリケーション401、スキャンアプリケーション402、ボックスアプリケーション403、ブラウザアプリケーション404、およびメニューアプリケーション405などがインストールされている。コピーアプリケーション401ないしメニューアプリケーション405は、ネイティブアプリケーショプラットフォーム103を介して動作する。
また、大容量記憶装置10eには、IWS(Internal Web Server)用のソフトウェアであるウェブサーバシステム105がインストールされている。ウェブサーバシステム105は、ウェブベースのシステムであって、HTML(Hypertext Markup Language)、JavaScript、およびPythonなどの言語に対応している。
さらに、大容量記憶装置10eには、簡易設定コピーアプリケーション471、ワンタッチコピーアプリケーション472、簡易設定スキャンアプリケーション473、およびウェブメニューアプリケーション474のほかSNS(Social Networking Service)のアプリケーションおよび翻訳のアプリケーションなどがインストールされている。これらのアプリケーションは、ウェブサーバシステム105を介して動作する。
このように、アプリケーションには、サーバ装置21によって実行されるものもあれば、ネイティブアプリケーショプラットフォーム103を介して実行されるものもあれば、ウェブサーバシステム105を介して実行されるものもある。
以下、これらのアプリケーションを区別するために、サーバ装置21によって実行されるものを「サーバアプリケーション48」と記載する。ネイティブアプリケーショプラットフォーム103を介して実行されるアプリケーションを「ネイティブアプリケーション40」と記載する。また、ウェブサーバシステム105を介して実行されるアプリケーションを「IWSアプリケーション47」と記載する。
IWSアプリケーション47は、ソースコード64(図13参照)または画像ファイル67などによって再現される。ソースコード64は、HTML、JavaScript、またはPythonなどによって記述される。
メニューアプリケーション405は、図4のような、アプリケーションごとのボタンを含むメニュー画面50Aをタッチパネルディスプレイ10fに表示させ、ユーザが選択したボタンに対応するネイティブアプリケーション40を起動するためのアプリケーションである。
コピーアプリケーション401、スキャンアプリケーション402、およびボックスアプリケーション403は、それぞれ、上述のコピー、スキャン、およびボックスの各サービスを提供するためのアプリケーションである。
コピーアプリケーション401によると、図5のようなコピージョブ画面50Bがタッチパネルディスプレイ10fに表示される。ユーザは、コピーに関するすべての項目(部数、カラー、用紙サイズ、倍率、読取解像度、出力解像度、印刷面、集約印刷、および仕上げなど)の条件をコピージョブ画面50Bに対して任意に設定し、コピーのスキャンユニット10jおよびジョブをプリントユニット10kなどに実行させることができる。
同様に、スキャンアプリケーション402によると、スキャンの条件の設定用の画面がタッチパネルディスプレイ10fに表示される。ユーザは、スキャンに関するすべての項目の条件をこの画面に対して任意に設定し、スキャンのジョブを画像形成装置1に実行させることができる。また、ボックスアプリケーション403によると、ボックスの処理の条件の設定用の画面がタッチパネルディスプレイ10fに表示される。ユーザは、ボックスの処理に関するすべての項目の条件をこの画面に対して任意に設定し、ボックスのジョブを画像形成装置1に実行させることができる。
ブラウザアプリケーション404は、ウェブブラウザであって、IWSアプリケーション47またはサーバ装置21からウェブページのデータを取得し、タッチパネルディスプレイ10fにウェブページを表示させる。
ネイティブアプリケーション40は、基本的に、納品の際までに画像形成装置1に固定的にインストールされている。
簡易設定コピーアプリケーション471は、コピーアプリケーション401と同様に、コピーのジョブをスキャンユニット10jおよびプリントユニット10kなどに実行させるためのアプリケーションである。上述の通りコピーアプリケーション401によるとコピーに関するすべての項目の条件をコピージョブ画面50B(図5参照)によって設定することができた。
しかし、簡易設定コピーアプリケーション471によると、図6のような簡易設定コピー用ページ50Cがウェブページとして表示される。ユーザは、特定の一部の項目の条件のみを、簡易設定コピー用ページ50Cを介して設定し、コピーのジョブを実行させることができる。
ワンタッチコピーアプリケーション472も、コピーアプリケーション401および簡易設定コピーアプリケーション471と同様に、コピーのジョブをスキャンユニット10jおよびプリントユニット10kなどに実行させるためのアプリケーションである。ワンタッチコピーアプリケーション472によると、図7のようなワンタッチ指令ページ50Dがウェブページとして表示される。ユーザは、ワンタッチ指令ページ50Dの中の中央のボタンを押すだけでジョブの指令を与えることができるが、予め決められた条件の通りにしかコピーのジョブを行わせることができない。
簡易設定スキャンアプリケーション473は、スキャンアプリケーション402と同様に、スキャンのジョブをスキャンユニット10jなどに実行させるためのアプリケーションである。上述の通りスキャンアプリケーション402によるとスキャンに関するすべての項目の条件を設定することができたが、簡易設定スキャンアプリケーション473によると、特定の一部の項目の条件のみを設定し、スキャンのジョブを実行させることができる。
ユーザは、IWSアプリケーション47を、ブラウザアプリケーション404を介して次のように使用することができる。ユーザは、メニュー画面50Aの中から「ウェブメニュー」のボタンを押す。すると、ブラウザアプリケーション404が起動し、ブラウザアプリケーション404は、ウェブメニューアプリケーション474へアクセスする。
ウェブサーバシステム105は、ウェブメニューアプリケーション474を実行することによって、IWSアプリケーション47の一覧のウェブページを表示するためのデータを生成し、ブラウザアプリケーション404へ与える。
ブラウザアプリケーション404は、与えられたデータに基づいて図8のようなウェブメニューページ50Eをタッチパネルディスプレイ10fに表示させる。
そして、ユーザは、使用したいIWSアプリケーション47に対応するボタンを押す。すると、ブラウザアプリケーション404は、そのIWSアプリケーション47へアクセスする。
ウェブサーバシステム105は、そのIWSアプリケーション47を実行し、その結果を示すウェブページを表示するためのデータを適宜、ブラウザアプリケーション404へ与える。
ブラウザアプリケーション404は、ウェブサーバシステム105から与えられたデータに基づいてウェブページを表示する。そして、ユーザは、表示されたウェブページに対して操作を行うことによって、選択したIWSアプリケーション47を使用する。
サーバアプリケーション48によるサービスは、ブラウザアプリケーション404を介してユーザへ提供されることもあれば、そのサーバアプリケーション48の専用のネイティブアプリケーション40と連携してユーザへ提供されることもある。
大容量記憶装置10eには、さらに、ジョブマネージャ49、状況データ付与アプリケーション107、および書換アプリケーション108がインストールされている。
ジョブマネージャ49は、ユーザがネイティブアプリケーション40またはIWSアプリケーション47を用いてジョブの実行を指令すると、そのジョブをキューに登録する。そして、各ハードウェアの状況などに応じて、キューに登録されているジョブを順次、実行させる。
状況データ付与アプリケーション107は、IWSアプリケーション47からの要求に応じて、特定の項目の情報を取得し、そのIWSアプリケーション47へ与える。ただし、取得するのに要する時間が所定の時間以上であると予測される場合は、以前に取得した情報へ与える。
書換アプリケーション108は、最初のウェブページを表示するのに掛かる時間(いわゆる初期起動時間)が短縮されるようにIWSアプリケーション47を書き換える。
図3に示した各ソフトウェアを構成するプログラムは、必要に応じてRAM10bにロードされ、CPU10aによって実行される。大容量記憶装置10eとして、ハードディスクドライブまたはSSD(Solid State Drive)などが用いられる。
以下、状況データ付与アプリケーション107および書換アプリケーション108それぞれについて順次、説明する。
〔状況データ付与アプリケーション〕
図9は、状況データ付与アプリケーション107によって実現される機能的構成の例を示す図である。図10は、所要時間テーブル61A、61Bの例を示す図である。図11は、最初のウェブページの提供の際の処理の流れの例を示す図である。
状況データ付与アプリケーション107によると、図9に示す所要時間テーブル記憶部171、負荷データ取得部172、初期起動時間予測部173、状況データ取得部174、状況データ記憶部175、および状況データ付与部176などの機能が実現される。
所要時間テーブル記憶部171には、所要時間テーブル61Aおよび所要時間テーブル61Bが記憶されている。
所要時間テーブル61Aには、図10(A)に示すように、特定の項目ごとに、その情報を取得するのに要する目安の時間(以下、「所要時間T1」と記載する。)が、CPU10aの稼働率(30%未満、30%以上60%未満、および60%以上)ごと示される。例えば、図10(A)の1つ目のレコードは、CPU10aの稼働率が30%未満、30%以上60%未満、および60%以上それぞれの場合におけるアドレス帳の情報の所要時間T1として、「0.6秒」、「1.2秒」、および「1.8秒」が示される。そのほか、所要時間テーブル61Aには、フィニッシャ10mの状況(ステープルの残量、障害の発生の有無など)の情報およびボックスに記憶されている文書の一覧の情報などの所要時間T1が示される。
所要時間テーブル61Bには、図10(B)に示すように、画像ファイルを読み出すのに要する目安の時間(以下、「所要時間T2」と記載する。)が、CPU10aの稼働率(30%未満、30%以上60%未満、および60%以上)ごと示される。本実施形態では、5個未満の画像ファイル、5個以上10個未満の画像ファイル、10個以上の画像ファイルそれぞれの所要時間T2が、これら3つの範囲における稼働率ごとに示される。
所要時間テーブル61Aの内容は、過去の実績に基づいて例えば次のように定めればよい。特定の項目の情報(後述する状況データ63)を取得するごとに、CPU10aの稼働率および掛かった時間を記録する。そして、特定の項目ごとに、稼働率ごとの掛かった時間の平均値を所要時間T1として算出する。所要時間テーブル61Bの内容についても同様に、過去の実績に基づいて定めればよい。
負荷データ取得部172は、画像形成装置1自身の現在の負荷を検知する。具体的には、負荷を示す負荷データ62を取得する。本実施形態では、CPU10aの現在の稼働率を示すデータを負荷データ62として取得する。負荷データ62は、MFPシステム102を介してオペレーティングシステム101へ問い合わせることによって取得することができる。
ところで、IWSアプリケーション47には、このIWSアプリケーション47において使用される特定の項目の情報を負荷データ取得部172へ要求するコードが予め記述されている。
IWSアプリケーション47が実行されると、最初のウェブページを表示するために、このコードに基づいて特定の項目の情報が負荷データ取得部172へ要求される。この際に、情報が必要な特定の項目(必要項目)と、ウェブページの表示などに使用するために大容量記憶装置10eなどから読み出す画像ファイル67の個数(必要ファイル個数)とが、負荷データ取得部172へ通知される。以下、要求元のIWSアプリケーション47を「要求元アプリケーション」と記載する。
初期起動時間予測部173は、要求元アプリケーションから要求を受けると、要求元アプリケーションから通知された必要項目および必要ファイル個数、負荷データ取得部172によって得られた負荷データ62に示される、CPU10aの現在の稼働率、ならびに所要時間テーブル61A、61B(図10参照)に基づいて、初期起動時間T3を次のように予測する。
初期起動時間予測部173は、通知された必要項目の、CPU10aの現在の稼働率に対応する所要時間T1を、所要時間テーブル61Aから選出する。例えば、必要項目として「アドレス帳」が通知され、かつ、CPU10aの現在の稼働率が70%である場合は、所要時間T1として「1.8秒」を選出する。
必要項目を複数通知された場合は、初期起動時間予測部173は、それぞれの必要項目について、所要時間T1を選出する。したがって、通知された必要項目の個数だけ、所要時間T1が選出される。
さらに、初期起動時間予測部173は、通知された必要ファイル個数の、CPU10aの現在の稼働率に対応する所要時間T2を、所要時間テーブル61Bから選出する。例えば、必要ファイル個数として「12」が通知され、かつ、CPU10aの現在の稼働率が70%である場合は、所要時間T2として「2.7秒」を選出する。
そして、初期起動時間予測部173は、選出したすべての所要時間T1および所要時間T2の合計値を算出する。この合計値が、初期起動時間T3である。
なお、ブラウザアプリケーション404が起動しIWSアプリケーション47へのアクセスが開始されてからウェブページを表示するのに必要なデータをブラウザアプリケーション404へ提供するまでに、通常、図11に示すようにそのIWSアプリケーション47のソースコードの読込み、必要項目の情報の取得、および画像ファイル67の読込みなどが行われる。
これらの処理のうち、ソースコードの読込みに掛かる時間Taは、環境に応じて変わることがほとんどない。しかし、必要項目の情報の取得に掛かる時間Tbおよび画像ファイル67の読込みに掛かる時間Tcは、環境に応じて変動し得る。時間Tbは、選出したすべての所要時間T1の合計であり、時間Tcは、所要時間T2である。
状況データ取得部174は、初期起動時間予測部173によって算出(予測)された初期起動時間T3が所定の時間(例えば、3.0秒)未満である場合に、通知された必要項目の情報を示す状況データ63を取得する。この状況データ63は、MFPシステム102へ問い合わせることによって、またはMFPシステム102を介してオペレーティングシステム101へ問い合わせることによって、取得することができる。必要項目が複数通知された場合は、それぞれについて、状況データ63を取得する。
例えば、簡易設定コピーアプリケーション471における必要項目は、トナー残量(プリントユニット10kにおいて使用されるCMYK各色のトナーの残量)および用紙残量(プリントユニット10kの各給紙トレイに格納されている用紙の残量)である。また、簡易設定コピーアプリケーション471が起動して最初に表示される画面は、簡易設定コピー用ページ50Cである。図6に示した通り、簡易設定コピー用ページ50Cには、画像が3つ配置されている。
したがって、CPU10aの稼働率が75%である場合において、簡易設定コピーアプリケーション471から要求がなされると、初期起動時間予測部173は、次の(1)式の通り、初期起動時間T3を算出する。
T3=T1+T2
=(1.2秒+1.5秒)+0.9秒
=3.6秒 …… (1)
なお、ワンタッチコピーアプリケーション472が実行されると、最初のウェブページとしてワンタッチ指令ページ50D(図7参照)が表示される。ワンタッチ指令ページ50Dには、特定の項目の情報が不要である。よって、ワンタッチコピーアプリケーション472は、要求元アプリケーションには、ならない。同様の理由により、後述する対象アプリケーションにも、ならない。
状況データ記憶部175は、状況データ63が状況データ取得部174によって取得されると、状況データ63をその必要項目の項目名と対応付けて記憶する。同一の必要項目の状況データ63を既に記憶している場合は、古い方の状況データ63を削除し、新たに取得された状況データ63を記憶する。
状況データ付与部176は、初期起動時間T3が所定の時間(例えば、3.0秒)未満である場合は、状況データ取得部174によって取得された、通知された必要項目の状況データ63を要求元アプリケーションへ与える。
一方、所定の時間以上である場合は、上述の通り、状況データ取得部174は、状況データ63を取得しない。そこで、状況データ付与部176は、状況データ記憶部175に記憶されている、通知された必要項目の状況データ63を要求元アプリケーションへ与える。
なお、状況データ取得部174は、初期起動時間T3が所定の時間以上である場合であっても、通知された必要項目の状況データ63が状況データ記憶部175に記憶されていない場合は、この状況データ63を取得する。そして、状況データ付与部176は、この状況データ63を要求元アプリケーションへ与え、状況データ記憶部175は、この状況データ63を記憶する。
要求元アプリケーションへ状況データ63が与えられると、状況データ63それぞれに示される情報に基づいて処理が行われ、その結果を示すウェブページのデータが適宜生成され、ブラウザアプリケーション404へ与えられる。そして、ブラウザアプリケーション404によってウェブページが表示される。
〔書換アプリケーション〕
図12は、書換アプリケーション108によって実現される機能的構成の例を示す図である。図13は、ソースコード641の例を示す図である。図14は、簡易設定コピー用ページ50Cの例を示す図である。
書換アプリケーション108によると、図12に示す所要時間テーブル記憶部181、負荷データ取得部182、ソースコード読出部183、初期起動時間予測部184、ソースコード書換部185、およびソースコード登録部186などの機能が実現される。書換アプリケーション108は、メンテナンスの時期が訪れ、または、管理者が所定のコマンドを入力した場合に、実行される。
所要時間テーブル記憶部181には、所要時間テーブル記憶部171(図9参照)と同様に、所要時間テーブル61Aおよび所要時間テーブル61Bを記憶する。
負荷データ取得部182は、メンテナンスの時期が訪れ、または、管理者が所定のコマンドを入力したら、負荷データ取得部172と同様に、負荷データ62を取得する。
ソースコード読出部183は、メンテナンスの対象であるIWSアプリケーション47(以下、「対象アプリケーション」と記載する。)のソースコード64を大容量記憶装置10eの所定の記憶領域から読み出す。状況データ63を必要とするIWSアプリケーション47が、対象アプリケーションである。対象アプリケーションが複数ある場合は、それぞれのソースコード64を読み出す。
初期起動時間予測部184は、対象アプリケーションごとの初期起動時間T3を予測する。予測の方法は、初期起動時間予測部173による初期起動時間T3の予測の方法と同様である。必要項目および必要ファイル個数は、ソースコード64を解析することによって分かる。
ソースコード書換部185は、ソースコード読出部183によって読み出されたソースコード64を次のように書き換える。
ソースコード64にUI(User Interface)ライブラリを読み込むためのコードが記述されている場合は、ソースコード書換部185は、そのコードをソースコード64から削除する。
または、画像ファイル67を取得して画像を表示するためのコードが記述されている場合は、そのコードを、その画像に対応するテキストまたはコントロールのコードに置き換える。
例えば、簡易設定コピーアプリケーション471のソースコード641には、図13(A)に示すようなコードが記述されており、これにより、簡易設定コピー用ページ50C(図6参照)が表示される。ソースコード641には、コピーの際のカラーに関する選択肢として「Auto Color」、「Full Color」、および「Black」の3つの選択肢を画像によって表示するコードが記述されている。
ソースコード書換部185は、これらのコード(図13(A)において点線で示す部分)を、図13(B)の点線の部分のように、画像を使用しないコードに書き換える。書換え後のソースコード641によると、簡易設定コピー用ページ50Cは、図14のように表示される。
以下、ソースコード64を書き換えることによって生成されたソースコードを「ソースコード65」と記載する。
ソースコード登録部186は、ソースコード64からソースコード65が生成されると、このソースコード64を大容量記憶装置10eの所定の記憶領域から削除し、このソースコード65をこの所定の記憶領域に記憶させる。
図15は、IWSアプリケーション47の管理の全体的な処理の流れの例を説明するフローチャートである。図16は、状況データ付与処理の流れの例を説明するフローチャートである。図17は、アプリケーション書換処理の流れの例を説明するフローチャートである。
次に、画像形成装置1におけるIWSアプリケーション47の管理に関する全体的な処理の流れを、フローチャートを参照しながら説明する。
画像形成装置1は、図15に示す処理を、オペレーティングシステム101またはMFPシステム102に含まれるIWSアプリケーション管理モジュールによって実行する。
画像形成装置1は、要求元アプリケーションから特定の項目の情報を要求されると(図15の#11でYes)、状況データ63を取得し要求元アプリケーションへ与える処理を、状況データ付与アプリケーション107に基づいて、図16に示す手順で行う(#12)。
図16において、画像形成装置1は、負荷データ62を取得し(#701)、負荷データ62に示される稼働率、要求元アプリケーションから通知された必要項目および必要ファイル個数、ならびに所要時間テーブル61A、61B(図10参照)に基づいて初期起動時間T3を予測する(#702)。
初期起動時間T3が所定の時間未満である場合は(#703でYes)、画像形成装置1は、必要項目の状況データ63を、オペレーティングシステム101またはMFPシステム102などに問い合わせるなどして取得する。(#704)。そして、要求元アプリケーションへ与えるとともに(#705)、状況データ記憶部175によって記憶(キャッシュ)する(#706)。
一方、初期起動時間T3が所定の時間以上である場合は(#703でNo)、画像形成装置1は、状況データ記憶部175に記憶しておいた、必要項目の状況データ63を要求元アプリケーションへ与える(#707)。ただし、初期起動時間予測部173にその状況データ63が記憶されていない場合は、それを取得して要求元アプリケーションへ与えるとともに、状況データ記憶部175によって記憶する(#704〜#706)。
図15に戻って、画像形成装置1は、メンテナンスの時期が訪れまたは所定のコマンドが入力されると(#13でYes)、対象アプリケーションのソースコード64を書き換える処理を、書換アプリケーション108に基づいて、図17に示す手順で行う(#14)。管理者がメンテナンスのコマンドを入力した場合も同様に、対象アプリケーションのソースコード64を書き換える処理を行う。
図17において、画像形成装置1は、負荷データ62を取得するとともに(#801)、対象アプリケーションのソースコード64を大容量記憶装置10eの所定の記憶領域から読み出す(#802)。
取得した負荷データ62、読み出したソースコード64、および所要時間テーブル61A、61Bに基づいて、対象アプリケーションの初期起動時間T3を予測する(#803)。
初期起動時間T3が所定の時間以上である場合に(#804でYes)、画像形成装置1は、対象アプリケーションの読み出したソースコード64を、UIライブラリを読み込むためのコードを削除したり画像を表示するコードを削除したりすることによって、書き換える(#805)。これにより、ソースコード65が得られる。
そして、画像形成装置1は、ソースコード64をソースコード65に置き換える(#806)。
なお、初期起動時間T3が所定の時間未満である場合は(#804でNo)、画像形成装置1は、書換えを行わない。また、対象アプリケーションが複数ある場合は、それぞれについて、ステップ#802〜#806の処理を適宜、実行する。
図15に戻って、画像形成装置1は、サービスを提供している間、要求元アプリケーションから特定の項目の情報を要求されるごとに(#11でYes)、ステップ#12の処理を実行し、メンテナンスの時期が訪れまたは所定のコマンドが入力されるごとに(#13でYes)、ステップ#14の処理を実行する。
本実施形態によると、IWSアプリケーション47を起動した後、最初の画面を表示させるのに時間が掛かることによるユーザへのストレスを従来よりも軽減することができる。
起動してから最初のウェブページを表示するまでに掛かる時間を従来よりも短縮することができる。
本実施形態では、画像形成装置1は、ローカル(画像形成装置1自身)にインストールされているIWSアプリケーション47を書き換えたが、他の画像形成装置1にインストールされているIWSアプリケーション47をも書き換えてもよい。以下、画像形成装置1Aが画像形成装置1BにインストールされているIWSアプリケーション47を書き換える場合を例に、図12および図17を参照しながら、この仕組みを説明する。
画像形成装置1Aにおいて、負荷データ取得部182(図12参照)は、画像形成装置1Bから画像形成装置1Bの負荷データ62を取得する(#801)。
ソースコード読出部183は、画像形成装置1Bから対象アプリケーションのソースコード64を取得する(#802)。
初期起動時間予測部184は、負荷データ62およびソースコード64に基づいて画像形成装置1Bにおける初期起動時間T3を、上述の方法で予測(算出)する(#803)。
ソースコード書換部185は、初期起動時間T3が所定の時間以上である場合に(#804でYes)、ソースコード64を上述の方法で書き換えることによってソースコード65を生成する(#805)。
そして、ソースコード登録部186は、ソースコード64に代えてソースコード65を画像形成装置1Bに記憶させる(#806)。
画像形成装置1Aは、画像形成装置1B以外の画像形成装置1(1C、1D、…)にインストールされている対象アプリケーションについても同様に、書換えの処理を行うことができる。
なお、画像形成装置1B、1C、1D、…それぞれに、画像形成装置1Aから問合せがあった場合に負荷データ62およびソースコード64を画像形成装置1Aへ提供する機能を設けておく。または、画像形成装置1B、1C、1D、…それぞれが自らの初期起動時間T3を予測し画像形成装置1Aへ通知してもよい。
画像形成装置1Aは、自らにインストールされているIWSアプリケーション47ごとの書換えによる、最初のウェブページの表示までに要する時間の短縮の効果を記録してもよい。そして、最も効果の高い書換えまたは所定の以上の効果があった書換えを画像形成装置1B、1C、1D、…それぞれにインストールされているIWSアプリケーション47に対して行ってもよい。
画像形成装置1Aは、ジョブを実行していないときに画像形成装置1B、1C、1D、…それぞれから負荷データ62および状況データ63を取得し、それぞれのインストールされているIWSアプリケーション47の書換えを行ってもよい。
本実施形態では、画像形成装置1は、対象アプリケーションを書き換えるか否かを判別する際に、CPU10aの現在の稼働率に基づいて初期起動時間T3を予測したが、稼働率として固定の値(例えば、「10%」)を用いてもよい。
図18は、所要時間テーブル65A、65Bの例を示す図である。本実施形態では、画像形成装置1は、初期起動時間T3を、CPU10aの現在の稼働率に基づいて算出したが、画像形成装置1における負荷の度合を表わす他の情報に基づいて算出してもよい。
例えば、ウェブサーバシステム105においてPythonによって一部または全部の処理が行われるジョブ(以下、「Pythonジョブ」と記載する。)が現在実行されているか否かによって算出してもよい。この場合は、図18に示すような所要時間テーブル65A、65Bを用意する。
所要時間テーブル65Aには、Pythonジョブが実行中である場合および実行中でない場合それぞれの、アイコン特定の項目ごとの所要時間T1が示され、所要時間テーブル65Bには、画像ファイル67の個数ごとの所要時間T2が示される。
画像形成装置1は、図16のステップ#701または図17のステップ#801において、負荷データ62の代わりに、Pythonジョブを現在実行しているか否かを示す負荷データ66を取得する。そして、ステップ#702または#803において、負荷データ62の代わりに負荷データ66に基づいて、所要時間テーブル61A、61Bの代わりに所要時間テーブル65A、65Bに基づいて、初期起動時間T3を算出する。
本実施形態では、画像形成装置1は、画像形成装置1の負荷の状況として、CPU10aの稼働率または特定の種類のジョブを実行しているか否かを用いたが、他の状況を用いてもよい。例えば、実行中のジョブの個数を用いてもよい。
本実施形態では、画像形成装置1は、テーブルを用いて所要時間T1、T2を算出したが、関数を用いて所要時間T1、T2を算出してもよい。
本実施形態では、画像形成装置1は、予測した初期起動時間T3が所定の時間以上である場合に、すべての特定の項目の状況データ63として状況データ記憶部175に記憶されているものをIWSアプリケーション47へ付与したが、一部の特定の項目については、状況データ63を新たに取得して付与してもよい。
本実施形態では、画像形成装置1は、メンテナンスの時期が訪れ、または、管理者が所定のコマンドを入力した場合に、書換アプリケーション108を実行したが、環境に所定の変化があった場合に実行してもよい。例えば、画像形成装置1のRAM10bの容量に変化があった場合に行ってもよい。または、画像形成装置1の常駐プログラムが変更された場合に行ってもよい。または、IWSアプリケーション47を実行している最中にエラーが所定の頻度で発生するようになった場合に行ってもよい。または、IWSアプリケーション47による所定の処理に掛かる時間がIWSアプリケーション47を使用し始めた時期よりも所定の割合以上長くなった場合に行ってもよい。
その他、画像処理システム3、画像形成装置1、サーバ装置21の全体または各部の構成、処理の内容、処理の順序、データの構成、画面の構成、テーブルの構成などは、本発明の趣旨に沿って適宜変更することができる。