以下、本発明の実施形態を図面に基づいて説明する。
<1.構成概要>
図1は、本発明の実施形態に係る画像形成装置10を示す図であり、図2は、画像形成装置10の機能ブロックを示す図である。ここでは、画像形成装置10として、MFP(マルチ・ファンクション・ペリフェラル(Multi-Functional Peripheral))を例示する。
MFP10は、スキャン機能、コピー機能、ファクシミリ機能およびボックス格納機能などを備える装置(複合機とも称する)である。具体的には、MFP10は、図2の機能ブロック図に示すように、画像読取部2、印刷出力部3、通信部4、格納部5、操作部6およびコントローラ9等を備えており、これらの各部を複合的に動作させることによって、各種の機能を実現する。
画像読取部2は、MFP10の所定の位置に載置された原稿を光学的に読み取って(すなわちスキャンして)、当該原稿の画像データ(原稿画像なしいスキャン画像とも称する)を生成する処理部である。この画像読取部2は、スキャン部であるとも称される。画像読取部2は、ADF(Auto Document Feeder:原稿自動送り装置)を有しており、複数枚の原稿を順次に且つ自動的に読み取ることが可能である。
印刷出力部3は、印刷対象に関するデータに基づいて紙などの各種の媒体に画像を印刷出力する出力部である。
通信部4は、公衆回線等を介したファクシミリ通信を行うことが可能な処理部である。通信部4は、ネットワークを介したネットワーク通信を行うことも可能である。このネットワーク通信では、たとえば、TCP/IP(Transmission Control Protocol / Internet Protocol)等の各種のプロトコルが利用される。当該ネットワーク通信を利用することによって、MFP10は、所望の相手先との間で各種のデータを授受することが可能である。
格納部5は、ハードディスクドライブ(HDD)等の記憶装置で構成される。格納部5は、印刷ジョブに係るデータ等を記憶する。また、格納部5は、起動タイミング情報記憶部5b等を有する。起動タイミング情報記憶部5bには、起動タイミング情報MA(詳細には起動イベントリスト)が記憶される。起動タイミング情報MAは、複数のアプリケーションソフトウエアプログラムAP(以下、単にアプリケーションとも称する)(後述)のそれぞれの起動タイミング(より詳細には、各アプリケーションAPがいずれのイベントに応答して起動されるべきか)を示す情報である(図15等参照)。また、起動タイミング情報MAは、複数のアプリケーションを複数のカテゴリに分類するカテゴリ情報をアプリケーションごとに有している(図15等参照)。
起動タイミング情報MA(起動イベントリスト)には、初期状態において、標準アプリケーションAPに関する起動タイミングが予め登録されている。その後、各新規アプリケーションAEがインストールされるごとに、各新規アプリケーションに関する起動タイミングが起動タイミング情報MA(起動イベントリスト)に追加登録される。
操作部6は、MFP10に対する入力を受け付ける操作入力部6aと、各種情報の表示出力を行う表示部6bとを備えている。このMFP10においては、略板状の操作パネル部6c(図1参照)が設けられている。また、操作パネル部6cは、その正面側にタッチパネル25(図1参照)を有している。タッチパネル25は、液晶表示パネルに圧電センサ等が埋め込まれて構成され、各種情報を表示するとともに操作者からの操作入力を受け付けることが可能である。たとえば、タッチパネル25においては、メニュー画像(ボタン画像等を含む)が表示される。操作者は、タッチパネル25内に仮想的に配置されるボタン(ボタン画像で表現されるボタン)を押下することによって、画像形成装置10の各種動作内容を設定することなどが可能である。タッチパネル25は、操作入力部6aの一部としても機能するとともに、表示部6bの一部としても機能する。
また、コントローラ9は、MFP10に内蔵され、MFP10を統括的に制御する制御装置である。コントローラ9は、CPUおよび各種の半導体メモリ(RAMおよびROM)等を備えるコンピュータシステムとして構成される。コントローラ9は、CPUにおいて、ROM(例えば、EEPROM)内に格納されている所定のソフトウエアプログラム(以下、単にプログラムとも称する)を実行することによって、各種の処理部を実現する。なお、当該プログラム(詳細にはプログラムモジュール群)は、USBメモリなどの可搬性の記録媒体、あるいは通信ネットワーク等を介してMFP10にインストールされてもよい。
具体的には、図2に示すように、コントローラ9は、プログラムの実行により(特に、OS(オペレーションシステム)上でファームウエアを実行することによって)、インストール検知部11と登録制御部12とイベント検出部15と情報取得部16と動作制御部17とイベント制御部19とを含む各種の処理部(後述)を実現する。
この画像形成装置10においては、複数のアプリケーションソフトウエアプログラムAPが予めインストールされている。
このようなアプリケーションAPとしては、たとえば、まず、ユーザによるボタン操作(タッチパネル25内に設けられたソフトウエアボタンに対する操作等)に応じて起動されるものが存在する。より具体的には、コピーアプリケーション、スキャンアプリケーション、ファクシミリ通信アプリケーションなどが存在する。
また、このようなアプリケーションAPとしては、画像形成装置10にて発生する各種のイベントの発生に応じて自動的に起動されるものも存在する。たとえば、ジャム位置表示アプリケーション、およびイルミネーション表示アプリケーション等が存在する。ジャム位置表示アプリケーションは、ジャム発生(プリンタエンジン部における用紙ジャム(プリンタジャムイベントとも称する)等の発生)に応答して起動され、ジャム発生に応じてそのジャム位置(紙詰まり等が発生している装置内位置)をタッチパネル25内に表示するプログラムである。また、イルミネーション表示アプリケーションは、各種のエラーイベント等の発生に応答して起動され、エラー発生に応じてイルミネーション表示(タッチパネル25内の表示状態および/または操作パネル部6c付近に設けられたLED表示部(不図示)の点灯状態等)を変更して、操作者(操作ユーザ)に向けて注意喚起(ないし警告通知)等を行うプログラムである。
また、特定のユーザ(管理ユーザ等)UAは、画像形成装置に予めインストールされている標準アプリケーションに加えて、拡張機能等を有する新規アプリケーションをさらに画像形成装置10にインストールすることが可能である。このような新規アプリケーションとしては、標準アプリケーションに類似する拡張アプリケーションが例示される。より具体的には、画像形成装置10に既にインストールされていた旧アプリケーション(例えば、標準ジャム位置表示アプリケーションAS1)と同一のカテゴリ「ジャム位置表示」に属する拡張アプリケーション(例えば、拡張ジャム位置表示アプリケーションAE1)等が例示される。
より詳細には、ユーザUAは、ジャム位置表示アプリケーションAP1に関して、元のジャム位置表示アプリケーションAS1に類似する新たなジャム位置表示アプリケーションAE1を、追加的にインストールすることができる。ここで、新たなアプリケーションAE1は、元のアプリケーションAS1では対応できなかった特定イベントへの対応も可能となるように、その機能が拡張されたプログラムである。当該新たなアプリケーション(拡張ジャム位置表示アプリケーション)AE1は、プリンタエンジンにおける用紙ジャムの発生に応答して用紙ジャム位置を表示するのみならず、画像読取部(スキャン部)2のADF(Auto Document Feeder:原稿自動送り装置)における原稿ジャムの発生に応答してADFジャム位置を表示することも可能である。すなわち、元のアプリケーションAS1はプリンタジャム位置のみを表示することが可能であるのに対して、新たなアプリケーションAE1は、プリンタジャム位置のみならずADFジャム位置をも表示することが可能である。
しかしながら、仮に、アプリケーションプラットフォームが、予め定められた(固定された)イベントの発生時にのみ、予め定められた標準アプリケーションのみを起動するように構成されている場合には、拡張ジャム位置表示アプリケーション)AE1をADFジャム発生時に起動することは困難である。
一方、この実施形態では、各種の処理部11,12,15,16,17等がアプリケーションプラットフォーム(後述)に設けられ当該各処理部がそれぞれ適宜の動作を行うことによって、ADFジャムの発生時にも当該拡張ジャム位置表示アプリケーションを適切に起動することが可能である。
インストール検知部11は、画像形成装置10に対する新規アプリケーションのインストールを検知する処理部である。
登録制御部12は、画像形成装置10における複数のアプリケーションの各起動タイミングに関する起動タイミング情報MAを起動タイミング情報記憶部5bに登録する処理部である。この起動タイミング情報MAは、既存のアプリケーションAP(AS)に関する起動タイミング情報と新規アプリケーションAP(AE)に関する起動タイミング情報との双方を含む。登録制御部12は、各新規アプリケーションのインストール時において、当該各新規アプリケーションに関する個別の起動タイミング情報(個別起動タイミング情報とも称する)MEを後述するようにして取得して、当該個別起動タイミング情報MEを含む起動タイミング情報MAを、起動タイミング情報記憶部5bに登録する。
イベント検出部15は、画像形成装置における各種イベントの発生を検出する処理部である。イベント検出部15は、MFPプラットフォーム(後述)にて発生し且つイベント制御部19により管理される各種のイベントを、イベント制御部19から受信することによって、各種イベントの発生を検出する。
情報取得部16は、起動タイミング情報MAを起動タイミング情報記憶部5bから抽出して取得する処理部である。
動作制御部17は、複数のイベントのうちの特定イベントの発生に応答して起動すべきアプリケーション(起動対象アプリケーションとも称する)を起動タイミング情報MAに基づいて決定するとともに、当該起動対象アプリケーションを当該特定イベントの発生に応答して起動する処理部である。
イベント制御部19は、画像形成装置10の動作状態に応じて発生する各種のイベントを管理する処理部である。
図3は、画像形成装置10におけるソフトウエア構成を示す図である。図3に示すように、この画像形成装置10においては、OS(オペレーティングシステム)の上で実行されるファームウエアFWが実装されており、各種アプリケーションは、当該ファームウエアFWの上で動作する。換言すれば、MFP10におけるプログラム群は、三種類の階層に大別される。具体的には、当該プログラム群は、比較的下位の階層から順に、「オペレーティングシステム」(OS)、「ファームウエア」(FW)、「アプリケーション」(APP)の3つの階層に大別される。
さらに、この実施形態においては、「ファームウエア」(FW)が下位階層部分LY1と上位階層部分LY2とに分離されて設けられる(図3参照)。すなわち、ファームウエアFWは、階層化されて構成されている。
下位階層部分LY1は、OSと協働して本装置(MFP)10における比較的下位の動作を制御する処理部であり、互いに異なる複数の種類のMFP(画像形成装置)のそれぞれに応じて個別に生成されて設けられる。下位階層部分LY1は、互いに異なる機種相互間における装置構成の相違を吸収する役割を有している。当該下位階層部分LY1は、MFPプラットフォーム(MFP_PF)とも称される。
一方、上位階層部分LY2は、アプリケーション(APP)階層とファームウエアFWの下位階層部分LY1との間で動作する処理部である。上位階層部分LY2は、互いに異なる種類の複数の画像形成装置(複数の機種)に対して共通に利用可能である。上位階層部分LY2は、各アプリケーションを管理する処理部であり、各アプリケーションにおけるジョブ要求等を、当該MFP10の装置構成に適合する内容に適宜修正して、下位階層部分LY1に対して送出する。当該上位階層部分LY2は、アプリケーションに関する動作を管理することから、アプリケーションプラットフォームとも称される。
上記の各処理部のうち、インストール検知部11と登録制御部12とイベント検出部15と情報取得部16と動作制御部17とは上位階層部分LY2に属し、イベント制御部19は下位階層部分LY1に属する。
<2.動作>
<新規アプリケーションのインストール>
つぎに、画像形成装置10における動作について図4のフローチャート等を参照しながら説明する。図4は、新規アプリケーションのインストール時における画像形成装置の動作を示すフローチャートである。
まず、図4を参照しながら、ユーザ(管理ユーザ等)UAによって新規アプリケーションが画像形成装置10にインストールされる際における画像形成装置10の動作について説明する。
図4に示すように、まずステップS11において、ユーザUAによるアプリケーションAPのインストール操作が行われる。具体的には、各種の記録媒体(USBメモリ等)に記録されている新たなアプリケーションAE(たとえば拡張ジャム位置表示アプリケーションAE1)が画像形成装置10にインストールされる。なお、これに限定されず、新たなアプリケーションAEは、通信ネットワークを介してダウンロードされ、画像形成装置10にインストールされるようにしてもよい。
ステップS12では、新規アプリケーションAEに関するインストール動作が検知され、画像形成装置10に対して新規アプリケーションAEがインストールされた旨が検知される。
次のステップS13においては、新規アプリケーションAEの起動タイミングに関する情報(個別起動タイミング情報)MEが取得される。ここでは、新規アプリケーションAEの起動タイミングを記述したデータファイルDFが、画像形成装置10の格納部5内の所定フォルダ(たとえばアプリケーションがインストールされているフォルダ(インストールフォルダ)と同一のフォルダ)にインストール時に格納されるものとする。そして、登録制御部12は、当該所定フォルダ内の所定名称(たとえば、「setup.ini」)のファイルを、新規アプリケーションAE用のデータファイルDFとして特定し、当該データファイルDF内に格納されている情報を抽出する。
図5は、このようなデータファイルDFの一例を示す図である。図5においては、起動イベント情報とカテゴリ情報とを含む起動タイミング情報(個別起動タイミング情報)MEがタグ形式で記述されている。
具体的には、新規アプリケーションAEの起動イベント情報として、2つのイベント(「ENGJAM_EVENT」および「ADFJAM_EVENT」)がそれぞれタグ識別子「startevnet」で挟まれてデータファイルDFに記述されている。当該記述は、この新規アプリケーションAEが、プリンタジャム(エンジンジャム)イベント「ENGJAM_EVENT」とADFジャムイベント「ADFJAM_EVENT」との双方にそれぞれ応答して起動されるべきものであることを示している。
また、新規アプリケーションAEのカテゴリ情報として、カテゴリコード「0030」がタグ識別子「category」で挟まれてデータファイルDFに記述されている。カテゴリ情報は、プログラムの種類に関する分類情報(「ジャム位置表示」、「イルミネーション」等)である。ここでは、カテゴリ情報は、カテゴリコードで示されている。カテゴリコード「0030」は、カテゴリ「ジャム位置表示」を示すものである。
登録制御部12は、このようにタグ形式で記載された個別起動タイミング情報MEをデータファイルDFから抽出する。
なお、ここでは、新規アプリケーションAEに関する個別起動タイミング情報MEがタグ形式(テキスト形式)で記載されている態様が例示されているが、これに限定されず、個別起動タイミング情報MEは他の形式(たとえばバイナリ形式等)でデータファイルDFに格納されていてもよい。また、ここでは、タグに基づいて(タグを目印にして)個別起動タイミング情報MEを当該データファイルDFから抽出しているが、これに限定されず、データファイルDF内の特定位置に特定形式で記述された個別起動タイミング情報MEを、データ内における情報記述位置情報(たとえばファイル先頭から100バイト目)およびデータ長(データ型)情報(たとえば256バイト)等に基づいて抽出するようにしてもよい。さらに、ここでは、所定のファイル全体名称(たとえば、「setup.ini」)を有するファイルがデータファイルDFとして特定される態様が例示されているが、これに限定されない。たとえば、所定の拡張子名称(たとえば「ini」)を有するファイルがデータファイルDFとして特定されるようにしてもよい。
また、上記のようなデータファイルDFは、アプリケーション開発者あるいは管理ユーザ等によって適宜の手法で作成されればよい。たとえば、テキストエディタ(あるいはバイナリエディタ)等によって作成されるようにしてもよい。あるいは、図6および図7に示すような専用ツール(プログラム)を使用して、データファイルDFが作成されるようにしてもよい。
図6は、専用ツール(「起動タイミング情報作成ツール」)の操作画面を示す図である。当該操作画面内の左側には、新規アプリケーションの所属カテゴリを指定するリストボックスが表示されている。たとえば、選択肢「ジャム位置表示」がユーザ操作によって選択されると、カテゴリ「ジャム位置表示」が当該新規アプリケーションの所属カテゴリとして指定される(図7参照)。
また、図6(および図7)の操作画面内の中央および右側には、新規アプリケーションに関連づけるべき1または2以上の起動イベントを指定するリストボックスが表示されている。たとえば、「起動イベント1」欄のリストボックスにおいて、選択肢「プリンタジャム」がユーザ操作によって選択されると、イベント「プリンタジャム」が当該新規アプリケーションの1つの起動イベントとして指定される(図7参照)。同様にして、「起動イベント2」欄のリストボックスにおいて、選択肢「ADFジャム」がユーザ操作によって選択されると、イベント「ADFジャム」が当該新規アプリケーションの他の1つの起動イベントとして指定される(図7参照)。
このようにして指定された内容が、新規アプリケーションAEの個別起動タイミング情報MEとしてデータファイルDFに記述される。具体的には、カテゴリ「ジャム位置表示」が新規アプリケーションAEのカテゴリ情報としてデータファイルDFに記述されるとともに、イベント「プリンタジャム」とイベント「ADFジャム」とがそれぞれ新規アプリケーションAEの起動イベントとしてデータファイルDFに記述される。
登録制御部12は、新規アプリケーションAEに関する個別起動タイミング情報MEをデータファイルDFから抽出すると、当該個別起動タイミング情報MEを、起動タイミング情報記憶部5bに予め格納されている起動タイミング情報MA(起動イベントリスト)に追加登録する(ステップS14)。これにより、新規アプリケーションAEをも含む複数のアプリケーションプログラムAPに関する起動タイミング情報MAが登録される。すなわち、画像形成装置における複数のアプリケーションの各起動タイミングに関する起動タイミング情報が登録(更新登録)される。
<新規アプリケーション起動>
つぎに、図8を参照しながら、イベント受信に応じてアプリケーションが起動される動作について説明する。図8は、イベント受信に応じてアプリケーションが起動される動作を示すフローチャートである。図8は、新規アプリケーションのインストール後における画像形成装置10の動作を示している。
ステップS51において、画像形成装置において発生したイベントが検出されると、ステップS52に進む。具体的には、イベント検出部15は、イベント制御部19から送信されてきたイベントを受信する。
ステップS52では、起動タイミング情報MAが取得される。具体的には、起動タイミング情報記憶部5bに格納されている起動タイミング情報MA(最新の起動タイミング情報MA)が、情報取得部16によって抽出されて取得される。
そして、ステップS53においては、ステップS51で受信したイベント(受信イベントとも称する)に対応する複数の起動候補アプリケーションを、起動タイミング情報MAに基づいて選定する。
次のステップS54においては、複数の起動候補アプリケーションの中から、起動対象アプリケーション(受信イベントの発生に応答して起動すべきアプリケーション)が、起動タイミング情報MAに基づいて決定される。たとえば、起動タイミング情報MAに基づいて単一の起動候補アプリケーションが特定される場合には、当該起動候補アプリケーションがそのまま起動対象アプリケーションとして決定される。また、同一のカテゴリに属する2以上のアプリケーションが複数の起動候補アプリケーションに含まれている場合には、当該2以上のアプリケーションのうち最も新しくインストールされた最新アプリケーションが起動対象アプリケーションとして決定される。また、異なるカテゴリに属する2以上のアプリケーションが複数の起動候補アプリケーションに含まれている場合には、当該2以上のアプリケーションのそれぞれが起動対象アプリケーションとして決定される。
そして、ステップS55において、ステップS54にて決定された起動対象アプリケーションが、受信イベントの発生に応答して起動される。より具体的には、動作制御部17は、起動対象アプリケーションを起動して、当該受信イベントを起動対象アプリケーションに通知し、当該受信イベントに応じた処理を当該起動対象アプリケーションに実行させる。
なお、ステップS53〜S55においては、既に起動されているアプリケーション(起動済みアプリケーション)を、起動候補対象アプリケーションおよび/または起動対象アプリケーションから除外するようにしてもよい。
<第1の動作例>
次に、より具体的な動作例について説明する。
ここでは簡単化のため、まず、1つの標準アプリケーションASに対する拡張アプリケーションAEがインストールされた後、当該拡張アプリケーションが特定イベント(「ADFジャム」イベント)に応答して起動される動作例(第1の動作例)について説明する。
図9は、新規アプリケーションAEのインストール前において起動タイミング情報記憶部5bに格納されている起動タイミング情報MAを示す図である。図9に示すように、インストール前の起動タイミング情報MAにおいては、標準ジャム位置表示アプリケーションAS1の起動イベントが「プリンタジャムイベント」(EV1)であることが規定されている。また、標準ジャム位置表示アプリケーションAS1がカテゴリ「ジャム位置表示」(CT1)に分類されることも規定されている。
図10は、拡張ジャム位置表示アプリケーションAE1がインストールされる際に、当該拡張ジャム位置表示アプリケーションAE1の個別起動タイミング情報ME(ME1)が取得(ステップS13参照)される様子を示す図である。図10に示すように、拡張ジャム位置表示アプリケーションAE1の起動イベントが「プリンタジャムイベント」(EV1)および「ADFジャムイベント」(EV4)であることが個別起動タイミング情報ME(ME1)に規定されている。また、拡張ジャム位置表示アプリケーションAE1がカテゴリ「ジャム位置表示」(CT1)に分類されることも個別起動タイミング情報ME(ME1)に規定されている。
図11は、個別起動タイミング情報ME(ME1)が追加登録(ステップS14)された後の起動タイミング情報MAを示す図である。図11に示されるように、追加登録後の起動タイミング情報MAにおいては、標準ジャム位置表示アプリケーションAS1に関する各種情報に加えて、拡張ジャム位置表示アプリケーションAE1に関する各種情報(図10に示す個別起動タイミング情報ME(ME1))も規定されている。
起動タイミング情報MAにおいては、各アプリケーションに対して、(その発生に応答して)当該各アプリケーションを起動すべきイベントである起動イベントが対応付けられて(関連付けられて)規定される。上述のように、新規アプリケーションAEがインストールされる際には、登録制御部12は、新規アプリケーションAEを起動すべき起動イベントEV1,EV4を当該新規アプリケーションAEに関連付けて登録する。
このような登録更新が行われた後の状況において、「ADFジャム」イベントの発生が検知(ステップS51)されると、図11のような最新の起動タイミング情報MAが取得された(ステップS52)後にステップS53に進む。そして、当該最新の起動タイミング情報MAに基づいて、起動候補アプリケーションおよび起動対象アプリケーションが決定される(ステップS53,S54)。より詳細には、ステップS51で検知されたイベント(「ADFジャム」イベント)をその「起動イベント」として規定するアプリケーション(ここでは、拡張ジャム位置表示アプリケーションAE1)が、起動候補アプリケーションとして選定される。ここでは、単一の起動候補アプリケーションが選定されるため、当該単一の起動候補アプリケーション(すなわち、拡張ジャム位置表示アプリケーションAE1)がそのまま起動対象アプリケーションとして決定される(図12参照)。
その後、ステップS55において、ステップS54にて決定された起動対象アプリケーションが、ステップS51で検知されたイベント発生に応答して起動される。より具体的には、動作制御部17は、当該イベント(ADFジャムイベント)を起動対象アプリケーション(拡張ジャム位置表示アプリケーションAE1)に通知し、当該イベントに応じた処理(ADFジャムの発生箇所を画面上に示す処理)を当該起動対象アプリケーションAE1に実行させる。このように、特定イベント(ADFジャム)の発生に応答して、対応する拡張アプリケーションAE1が適切に起動される。
以上のような動作においては、新規アプリケーションAEのインストール時に、当該新規アプリケーションAEの起動タイミングに関する情報(個別起動タイミング情報ME)が登録制御部12によって取得され、当該個別起動タイミング情報MEを含む起動タイミング情報MAが起動タイミング情報記憶部5bに登録される。その後、画像形成装置10における特定イベントの発生が検出されると、当該特定イベントの発生に応答して起動すべき起動対象アプリケーションが起動タイミング情報MAに基づいて決定され、起動対象アプリケーションが特定イベントの発生に応答して起動される。これによれば、特に、当該特定イベント(たとえばADFジャム)が新規アプリケーションAE(たとえば拡張ジャム位置表示アプリケーションAE1)の起動イベントであるときであっても、当該特定イベントの発生に応じて当該新規アプリケーションAEを適切に起動させることができる。このように、新規アプリケーションを含む複数のアプリケーションの起動タイミングを柔軟に管理することが可能である。
<第2の動作例>
次に、2つの標準アプリケーションAS1,AS2に対する各拡張アプリケーションAE1,AE2がインストールされた後、当該2つの拡張アプリケーションAE1,AE2のうちの少なくとも一方が特定イベントに応答して起動される動作例(第2の動作例)について説明する。この第2の動作例は、イルミネーション表示アプリケーション(単にイルミネーションアプリケーションなどとも表現する)AP2についても拡張アプリケーションAE2がインストールされる点等において、第1の動作例と相違する。
図13は、新規アプリケーションAE1,AE2のインストール前において起動タイミング情報記憶部5bに格納されている起動タイミング情報MAを示す図である。図13に示すように、インストール前の起動タイミング情報MAにおいては、(図9と同様に)標準ジャム位置表示アプリケーションAS1に関する「カテゴリ」と「起動イベント」とが登録されていることに加えて、標準イルミネーションアプリケーションAS2に関する「カテゴリ」と「起動イベント」とが登録されている。具体的には、標準イルミネーションアプリケーションAS2の起動イベントが「印刷中用紙無しエラーイベント」(EV2)および「FAX送信通信中エラーイベント」(EV3)であることが規定されている。また、標準イルミネーションAS2がカテゴリ「イルミネーション」(CT2)に分類されることも規定されている。
図14は、拡張アプリケーションAE1,AE2がインストールされる際に、当該拡張アプリケーションAE1,AE2の個別起動タイミング情報ME(ME1,ME2)がそれぞれ取得(ステップS13参照)される様子を示す図である。図14に示すように、拡張ジャム位置表示アプリケーションAE1のインストール時には、当該拡張ジャム位置表示アプリケーションAE1の起動イベントが「プリンタジャムイベント」(EV1)および「ADFジャムイベント」(EV4)であることと、拡張ジャム位置表示アプリケーションAE1のカテゴリが「ジャム位置表示」(CT1)であることとが取得される。同様に、当該拡張イルミネーションアプリケーションAE2の起動イベントが「サービスコールイベント」(EV5)、「FAX送信通信中エラーイベント」(EV3)、「プリンタジャムイベント」(EV1)および「ADFジャムイベント」(EV4)であることが拡張イルミネーションアプリケーションAE2のインストール時に取得される。また、拡張イルミネーションアプリケーションAE2のカテゴリが「イルミネーション」(CT2)であることも併せて取得される。
図15は、拡張アプリケーションAE1,AE2に関する両個別起動タイミング情報ME1,ME2が追加登録(ステップS14)された後の起動タイミング情報MAを示す図である。図15に示されるように、追加登録後の起動タイミング情報MAにおいては、標準アプリケーションAS1,AS2に関する各種情報に加えて、拡張アプリケーションAE1,AE2に関する各種情報(図14に示す個別起動タイミング情報ME1,ME2)も規定されている。なお、起動タイミング情報MAの各行(データレコード)においては、アプリケーションと起動イベントとの対応関係がアプリケーション単位且つ起動イベント単位で規定されている。
この状況において、図17に示すように「印刷中用紙無しエラー」イベントEV2の発生が検知(ステップS51)されると、図15のような最新の起動タイミング情報MAが取得された(ステップS52)後、ステップS53に進む。そして、当該最新の起動タイミング情報MAに基づいて、起動候補アプリケーションおよび起動対象アプリケーションが決定される(ステップS53,S54)。より詳細には、ステップS51で検知されたイベント(「印刷中用紙無しエラー」イベントEV2)をその「起動イベント」として規定するアプリケーション(ここでは、標準イルミネーションアプリケーションAS2)が、起動候補アプリケーションとして選定される。ここでは、単一の起動候補アプリケーションが選定されるため、当該単一の起動候補アプリケーション(すなわち、標準イルミネーションアプリケーションAS2)がそのまま起動対象アプリケーションとして決定される(図17参照)。
また、同様の状況(図15参照)において、図18に示すように「サービスコール」イベント(サービスセンターへの連絡を要するようなエラーイベント)EV5の発生が検知(ステップS51)されると、図15のような最新の起動タイミング情報MAが取得された(ステップS52)後、ステップS53に進む。そして、ステップS51で検知されたイベント(「サービスコール」イベントEV5)をその「起動イベント」として規定するアプリケーション(ここでは、拡張イルミネーションアプリケーションAE2)が、起動候補アプリケーションとして選定される(ステップS53)。ここでは、単一の起動候補アプリケーションが選定されるため、当該単一の起動候補アプリケーション(すなわち、拡張イルミネーションアプリケーションAE2)がそのまま起動対象アプリケーションとして決定される(ステップS54)。
同様の状況(図15参照)において、今度は図19に示すように「FAX送信通信中エラー」イベントEV3の発生が検知(ステップS51)されると、図15のような最新の起動タイミング情報MAが取得された(ステップS52)後、ステップS53に進む。そして、ステップS51で検知されたイベント(「FAX送信通信中エラー」イベントEV3)をその「起動イベント」として規定する2つのアプリケーション(標準イルミネーションアプリケーションAS2および拡張イルミネーションアプリケーションAE2)が、起動候補アプリケーションとして選定される(ステップS53)。ここでは、2つの起動候補アプリケーションがいずれも同種カテゴリCT2(「イルミネーション」)に属する。換言すれば、同一のカテゴリに属する2以上のアプリケーションが起動候補アプリケーションに含まれている。この場合には、当該2以上のアプリケーションのうち最も新しくインストールされた最新アプリケーション(すなわち、拡張イルミネーションアプリケーションAE2)のみが起動対象アプリケーションとして決定される(ステップS54)。
同様の状況(図15参照)において、今度は図20に示すように「ADFジャム」イベントの発生が検知(ステップS51)されると、図15のような最新の起動タイミング情報MAが取得された(ステップS52)後、ステップS53に進む。そして、ステップS51で検知されたイベント(「ADFジャム」イベントEV4)をその「起動イベント」として規定する2つのアプリケーション(拡張ジャム位置表示アプリケーションAE1および拡張イルミネーションアプリケーションAE2)が、起動候補アプリケーションとして選定される(ステップS53)。ここでは、2つの起動候補アプリケーションが互いに異なるカテゴリCT1,CT2(「ジャム位置表示」および「イルミネーション」)に属する。換言すれば、異なるカテゴリに属する2以上のアプリケーションが起動候補アプリケーションに含まれている。この場合には、当該2以上のアプリケーションの双方(すなわち、拡張ジャム位置表示アプリケーションAE1および拡張イルミネーションアプリケーションAE2)が起動対象アプリケーションとして決定される(ステップS54)。
同様の状況(図15参照)において、今度は図21に示すように「プリンタジャム」イベントEV1の発生が検知(ステップS51)されると、図15のような最新の起動タイミング情報MAが取得された(ステップS52)後、ステップS53に進む。そして、ステップS51で検知されたイベント(「プリンタジャム」イベントEV1)をその「起動イベント」として規定する3つのアプリケーション(標準ジャム位置表示アプリケーションAS1、拡張ジャム位置表示アプリケーションAE1および拡張イルミネーションアプリケーションAE2)が、起動候補アプリケーションとして選定される(ステップS53)。ここでは、3つの起動候補アプリケーションのうち同種カテゴリに属する2以上のアプリケーションAS1,AE1のうちの最新アプリケーション(すなわち、拡張ジャム位置表示アプリケーションAE1)が起動対象アプリケーションとして決定される(ステップS54)。また、3つの起動候補アプリケーションのうち、拡張ジャム位置表示アプリケーションAE1とは互いに異なるカテゴリに属する拡張イルミネーションアプリケーションAE2も起動対象アプリケーションとして決定される(ステップS54)。
なお、起動タイミング情報MAにおいては、図16に示すように、複数のアプリケーションと複数の起動イベントとの関係が、同一の起動イベントごとに分類されて格納されることが好ましい。より詳細には、図15の各行のデータ(データレコード)が、図16に示すように並べ替えられ、起動イベントごとに分類されて配置されることが好ましい。これによれば、特定イベントに応じて起動すべきアプリケーションを比較的高速に検索することが可能である。たとえば、プリンタジャムイベントEV1と3つのアプリケーションとの対応関係が纏めて格納されているので、プリンタジャムイベントEV1に対応する3つのアプリケーションを非常に高速に検索することが可能である。
<3.その他>
以上、この発明の実施の形態について説明したが、この発明は上記説明した内容のものに限定されるものではない。
たとえば、上記実施形態においては、新規アプリケーションAEの起動タイミングを記述したデータファイルDFが画像形成装置10内の所定フォルダ(たとえばインストールフォルダ)から抽出される態様が例示されているが、これに限定されない。
具体的には、登録制御部12は、新規アプリケーションが記録されたインストール用記録媒体(インストールメディア)(具体的には、CD−ROMあるいはUSBメモリ等)内を検索し、当該インストール用記録媒体内に格納されているデータファイルDFを抽出するようにしてもよい。あるいは、登録制御部12は、画像形成装置10に対してネットワーク接続されている外部装置(より詳細には外部装置(外部サーバ等)内の所定フォルダ)内を検索し、当該外部装置に格納されているデータファイルDFを抽出するようにしてもよい。そして、登録制御部12は、抽出された当該データファイルDF内に格納されている各種情報(個別起動タイミング情報ME等)を取得すればよい。
また、上記実施形態においては、新規アプリケーションAEの外部に(新規アプリケーションAEとは別個に)個別起動タイミング情報MEが格納されている態様が例示されているが、これに限定されない。例えば、新規アプリケーションAEの内部に個別起動タイミング情報MEが埋め込まれていても良い。この場合には、登録制御部12は、個別起動タイミング情報MEを新規アプリケーションAEの内部から抽出して取得すればよい。
また、上記実施形態においては、既存の標準アプリケーションに対して拡張アプリケーションが追加的にインストールされる態様が主に例示されているが、これに限定されない。たとえば、拡張アプリケーション(カスタマイズアプリケーション)が既存の標準アプリケーション(デフォルトアプリケーション)に置き換え(入れ替え)られてインストールされるようにしてもよい。
また、上記実施形態においては、拡張アプリケーションの全ての起動イベントがデータファイルDFに記述されている態様が例示されているが、これに限定されない。
たとえば、拡張アプリケーションが標準アプリケーションの起動イベント情報を継承することを前提として、拡張アプリケーションの全ての起動イベントのうち、対応する標準アプリケーションの起動イベントでもあるイベントは、データファイルDFに記述されないようにしてもよい。換言すれば、データファイルDFには、拡張アプリケーションの複数の起動イベントのうち、旧アプリケーションの起動イベントを除く追加起動イベントのみが記述されるようにしてもよい。この場合、登録制御部12は、新規アプリケーションが特定の標準アプリケーション(旧アプリケーション)に対する拡張アプリケーションである旨の情報を、当該新規アプリケーション内から取得するとともに、当該特定の標準アプリケーションの起動イベントとして起動タイミング情報MAに登録されていたイベントを、拡張アプリケーションの起動イベントとしても登録するようにすればよい。端的に言えば、標準アプリケーションの起動イベントを拡張アプリケーションの起動イベントとして自動的に継承するようにしてもよい。これによっても、上記と同様の起動動作が実現される。
また、上記実施形態においては、新規アプリケーション(拡張アプリケーション)の起動イベントが旧来のアプリケーション(標準アプリケーション)の起動イベントと一部重複している態様が例示されているが、これに限定されない。
たとえば、新規アプリケーション(拡張アプリケーション)の起動イベントが標準アプリケーションの起動イベントと重複しないように設定されてもよい。より詳細には、標準アプリケーションの起動イベントとして登録されていたイベントを、拡張アプリケーションの起動イベントとしても重複登録することなく、データファイルDFに記述されていた起動イベント(拡張アプリケーションに固有の起動イベント)のみを拡張アプリケーションAEの起動イベントとして登録するようにしてもよい。さらに、標準アプリケーションにのみ対応するイベントが発生したときには標準アプリケーションが起動され、拡張アプリケーションにのみ対応するイベントが発生したときには、拡張アプリケーションが起動されるようにしてもよい。
なお、新規アプリケーションの起動イベントと旧来のアプリケーションの起動イベントとの間には包含関係が存在しなくてもよい。換言すれば、新規アプリケーションの起動イベントは、旧来のアプリケーションの起動イベントとは無関係に独自に設定されてもよい。逆に、上述のように拡張アプリケーションが標準アプリケーションの起動イベント情報を継承し、拡張アプリケーションの起動イベントが標準アプリケーションの全ての起動イベントを包含してもよい。
また、上記実施形態においては、新規アプリケーションAEに関する個別起動タイミング情報MEがデータファイルDFとして予め生成されている態様が例示されているが、これに限定されない。
たとえば、インストール時において、登録制御部12および動作制御部17等が、試験的に(仮想的に)発生させたイベントに応答して新規アプリケーションAEを試験的に起動し、当該イベントに応答して新規アプリケーションAEが実際に正常に動作した場合に、当該イベントが新規アプリケーションAEに関する起動イベントである旨を判定するようにしてもよい。
図22は、このような改変例に係る動作を示すフローチャートである。図22の動作は、たとえば、新規アプリケーションAEのインストール時、より詳細には図4のステップS13において、実行される。以下では、図22を参照しながら、このような改変例について説明する。
図22のステップS21においては、まず、登録制御部12は、画像形成装置10において発生し得る複数のイベントを記述したイベント一覧データEDを取得する。複数のイベントとしては、「プリンタジャムイベント」、「ADFジャムイベント」、「印刷中用紙無しエラーイベント」、「FAX送信通信中エラーイベント」、「サービスコールイベント」などが存在し得る。イベント一覧データEDは、予め画像形成装置10の格納部5内に予め格納されているものとする。
ステップS22においては、イベント一覧データEDに記述された複数のイベントの中から動作確認対象の一のイベント(確認対象イベントとも称する)を選択し、選択されたイベント(確認対象イベント)を新規アプリケーションAEに試験的に渡して新規アプリケーションAEを試験的に起動させる。
新規アプリケーションAEは、受け渡されたイベント(確認対象イベント)が、対応可能なイベントであるか否かを判定し、その判定結果を登録制御部12に送出する。具体的には、新規アプリケーションAEが確認対象イベントに対応している場合には、新規アプリケーションAEは、確認対象イベントに応じた動作を実行するとともに、正常動作する旨を示すデータDGを登録制御部12に送出する。一方、新規アプリケーションAEが確認対象イベントに対応していない場合には、新規アプリケーションAEは、確認対象イベントに対応していない(正常動作しない旨)旨を示すデータDNを登録制御部12に送出する。
ステップS23においては、登録制御部12は、新規アプリケーションAEから受信したデータに応じて分岐処理を行う。
データDGが新規アプリケーションAEから受信される場合には、登録制御部12は、確認対象イベントが新規アプリケーションAEに対する起動イベントであると判定する。そして、この確認対象イベントを、新規アプリケーションAEに対する起動イベントとして、起動タイミング情報(起動イベントリスト)MAに追加登録する(ステップS24)。たとえば、確認対象イベント「ADFジャム」に対して新規アプリケーションAEが正常に起動する場合には、確認対象イベント「ADFジャム」が当該新規アプリケーションAEに対する起動イベントとして登録される。その後、次の確認対象イベントに関するテストに備えるため、一旦新規アプリケーションAEを終了し(ステップS25)、ステップS26に進む。
一方、データDNが新規アプリケーションAEから受信される場合には、登録制御部12は、確認対象イベントが新規アプリケーションAEに対する起動イベントではないと判定する。この場合には、登録制御部12は、確認対象イベントに関する起動タイミング情報MAへの登録動作を行うことなく、ステップS23からステップS26に進む。
なお、登録制御部12は、新規アプリケーションAEの起動開始時点から一定時間以内に新規アプリケーションAEからのデータを受信できない場合には、新規アプリケーションAEが反応できないエラーが生じたものとして、新規アプリケーションAEが正常に起動できない旨を判定するようにしてもよい。この場合にも、確認対象イベントが新規アプリケーションAEに対する起動イベントではないと判定され、ステップS23からステップS26へ進む。
ステップS26では、ステップS21で検出された複数のイベント(イベント一覧データEDに記述された複数のイベント)のうち、確認対象イベントとして未だ採用されていないものが存在するか否かが判定される。
確認対象イベントとして未だ採用されていないイベントが存在する場合には、その未採用のイベントを新たな確認対象イベントとして決定し、ステップS22に戻る。そして、ステップS22からステップS25までの動作(新たな確認対象イベントに関する確認動作)が実行される。
一方、確認対象イベントとして全てのイベントが採用済みである場合には、図22の処理は終了する。
以上のように、登録制御部12等は、複数の起動イベントのそれぞれを(確認対象イベントとして)新規アプリケーションAEに試験的に渡して新規アプリケーションAEを試験的に起動させる。そして、複数の起動イベントのうち、新規アプリケーションAEを正常に起動させることができたイベントのみが、当該新規アプリケーションAEに対する起動イベントとして当該新規アプリケーションAEに関連付けて登録される。このような動作によって、新規アプリケーションAEに関する個別起動タイミング情報MEを自動的に起動タイミング情報(起動イベントリスト)MAに追加するようにしてもよい。これによれば、新規アプリケーションAEごとの個別起動タイミング情報MEを予め作成することを要さずに、新規アプリケーションAEごとの個別起動タイミング情報MEを自動的に生成し起動タイミング情報MAを自動的に更新することが可能である。
また、上記実施形態においては、新規アプリケーションAEに関する「カテゴリ」と「起動イベント」との両者が個別起動タイミング情報MEに格納されている場合を例示しているが、これに限定されず、当該両者のうちの一方のみが個別起動タイミング情報MEに格納されていてもよい。たとえば、当該両者のうち「起動イベント」のみが個別起動タイミング情報MEに格納されていてもよく、あるいは、当該両者のうち「カテゴリ」のみが個別起動タイミング情報MEに格納されていてもよい。後者の場合には、次述する手法等を用いて、個別起動タイミング情報MEに含まれるカテゴリ情報に基づき、新規アプリケーションAEに関する起動イベント情報が補充されればよい。
図23は、このような改変例に係る動作を示すフローチャートである。また、図24は、「カテゴリ」と「起動イベント」との一般的関係を予め規定するデータテーブルTBを示す図である。データテーブルTBは、予め画像形成装置10の格納部5内に予め格納されているものとする。
図23の動作は、たとえば、新規アプリケーションAEのインストール時、より詳細には図4のステップS13において、実行される。以下では、図23を主に参照しながら、当該改変例について説明する。
図23のステップS31においては、まず、登録制御部12は、新規アプリケーションAEに関する個別起動タイミング情報MEを正常に取得できたか否か、具体的には、新規アプリケーションAEに関する「カテゴリ」と「起動イベント」との両者が取得できたか否かが判定される。
正常に取得できた場合には、本処理は終了する。
一方、正常に取得できなかった場合には、ステップS32に進む。
ステップS32では、新規アプリケーションAEに関する「カテゴリ」が取得できたか否かが判定される。換言すれば、新規アプリケーションAEに関する所属カテゴリ情報(新規アプリケーションAEが複数のカテゴリのいずれに所属するかを示す情報)が取得できたか否かが判定される。
新規アプリケーションAEに関する「カテゴリ」が取得できなかった場合には、本処理は終了する。一方、新規アプリケーションAEに関する「カテゴリ」が取得できた場合には、ステップS33に進む。
ステップS33においては、登録制御部12は、データテーブルTBに基づいて、新規アプリケーションAEの所属カテゴリに対する対応イベントを求め、当該対応イベントを新規アプリケーションAEに対する起動イベントとして決定する。
データテーブルTBは、複数のカテゴリのそれぞれに対応するイベント(対応イベント)を予め規定したものである。図24のデータテーブルTBにおいては、カテゴリ「ジャム位置表示」には2つのイベント(具体的には、「プリンタジャムイベント」および「ADFジャムイベント」)が関連付けて規定されている。換言すれば、カテゴリ「ジャム位置表示」に分類される新規アプリケーションAEに関しては、当該2つのイベントが起動イベントとして決定されるべき旨が予め規定されている。同様に、カテゴリ「イルミネーション」に対して、5つのイベント(具体的には、「印刷中用紙無しエラーイベント」、「画像読み取りエラーイベント」、「ADF原稿無しイベント」、「FAX送信通信中エラーイベント」、「サービスコールイベント」)が関連付けて規定されている。すなわち、カテゴリ「イルミネーション」に分類される新規アプリケーションAEに関しては、当該5つのイベントが起動イベントとして決定されるべき旨が予め規定されている。
たとえば、新規アプリケーションAEの所属カテゴリが「ジャム位置表示」である旨が取得された場合には、カテゴリ「ジャム位置表示」に予め関連付けられている2つのイベント(具体的には、「プリンタジャムイベント」および「ADFジャムイベント」)が、新規アプリケーションAEの対応イベントとして求められる。そして、当該2つの対応イベントが、新規アプリケーションAEに対する「起動イベント」として決定される。また、新規アプリケーションAEの所属カテゴリが「イルミネーション」である旨が取得された場合には、カテゴリ「イルミネーション」に予め関連付けられている5つのイベント(具体的には、「印刷中用紙無しエラーイベント」、「画像読み取りエラーイベント」、「ADF原稿無しイベント」、「FAX送信通信中エラーイベント」、「サービスコールイベント」)が、新規アプリケーションAEの対応イベントとして求められる。そして、当該5つの対応イベントが、新規アプリケーションAEに対する「起動イベント」として決定される。
なお、このような手法は、たとえばカテゴリー情報が新規アプリケーションAE自体に埋め込まれている場合にも有用である。この場合、登録制御部12は、新規アプリケーションAE自体に埋め込まれた所属カテゴリ情報を当該新規アプリケーションAEから取得し、取得された所属カテゴリ情報と上述のようなデータテーブルTBとに基づいて、新規アプリケーションAEに対する起動イベントを決定すればよい。