(57)【要約】【課題】プログラムの開発負荷を軽減させることのできる画像形成装置、プログラム実行方法、及びプログラムの提供を目的とする。【解決手段】ジョブの実行を制御するアプリケーションプログラムを有する画像形成装置であって、プログラムの実行環境を識別する実行環境情報ごとに、プログラムモジュールの識別情報との対応情報を記憶した対応情報記憶手段と、前記アプリケーションプログラムからの問い合わせに応じ、当該画像形成装置において取得される実行環境情報と前記対応情報とに基づいて、前記アプリケーションプログラムに利用させる前記プログラムモジュールの識別情報を判定する判定手段とを有し、前記アプリケーションプログラムは、前記判定手段によって判定されたプログラムモジュールを利用してジョブの実行を制御する。【選択図】図１
2010140110.tif 000002
【特許請求の範囲】
【請求項１】
ジョブの実行を制御するアプリケーションプログラムを有する画像形成装置であって、
プログラムの実行環境を識別する実行環境情報ごとに、プログラムモジュールの識別情報との対応情報を記憶した対応情報記憶手段と、
前記アプリケーションプログラムからの問い合わせに応じ、当該画像形成装置において取得される実行環境情報と前記対応情報とに基づいて、前記アプリケーションプログラムに利用させる前記プログラムモジュールの識別情報を判定する判定手段とを有し、
前記アプリケーションプログラムは、前記判定手段によって判定されたプログラムモジュールを利用してジョブの実行を制御する画像形成装置。
【請求項２】
前記実行環境情報は、前記画像形成装置の機種の識別情報である請求項１記載の画像形成装置。
【請求項３】
前記プログラムモジュールは、前記実行環境に固有のインタフェースを吸収し、複数種類の前記実行環境に対して共通のインタフェースを前記アプリケーションプログラムに提供する請求項１又は２記載の画像形成装置。
【請求項４】
ジョブの実行を制御するアプリケーションプログラムを有する画像形成装置が実行するプログラム実行方法であって、
前記アプリケーションプログラムからの問い合わせに応じ、当該画像形成装置において取得される実行環境情報と、プログラムの実行環境を識別する実行環境情報ごとにプログラムモジュールの識別情報との対応情報を記憶した対応情報記憶手段とに基づいて、前記アプリケーションプログラムに利用させる前記プログラムモジュールの識別情報を判定する判定手順を有し、
前記アプリケーションプログラムは、前記判定手段によって判定されたプログラムモジュールを利用してジョブの実行を制御するプログラム実行方法。
【請求項５】
前記実行環境情報は、前記画像形成装置の機種の識別情報である請求項４記載のプログラム実行方法。
【請求項６】
前記プログラムモジュールは、前記実行環境に固有のインタフェースを吸収し、複数種類の前記実行環境に対して共通のインタフェースを前記アプリケーションプログラムに提供する請求項４又は５記載のプログラム実行方法。
【請求項７】
ジョブの実行を制御するアプリケーションプログラムを有する画像形成装置に、
前記アプリケーションプログラムからの問い合わせに応じ、当該画像形成装置において取得される実行環境情報と、プログラムの実行環境を識別する実行環境情報ごとにプログラムモジュールの識別情報との対応情報を記憶した対応情報記憶手段とに基づいて、前記アプリケーションプログラムに利用させる前記プログラムモジュールの識別情報を判定する判定手順を実行させ、
前記アプリケーションプログラムは、前記判定手段によって判定されたプログラムモジュールを利用してジョブの実行を制御するプログラム。
【請求項８】
前記実行環境情報は、前記画像形成装置の機種の識別情報である請求項７記載のプログラム。
【請求項９】
前記プログラムモジュールは、前記実行環境に固有のインタフェースを吸収し、複数種類の前記実行環境に対して共通のインタフェースを前記アプリケーションプログラムに提供する請求項７又は８記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、プログラム実行方法、及びプログラムに関し、特にジョブの実行を制御するアプリケーションプログラムを有する画像形成装置、プログラム実行方法、及びプログラムに関する。
【背景技術】
【０００２】
近年の画像形成装置には各種のアプリケーションが実装されている。また、アプリケーションを実装するためのＡＰＩ（Application Program Interface）が公開され、画像形成装置の製造者以外のサードベンダ等においても、画像形成装置上で動作するアプリケーションの開発が行われるようになっている。
【特許文献１】特開２０００−８１９７４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、画像形成装置の機種（すなわち、アプリケーションの実行環境）が異なると、アプリケーションから利用される下位のプログラムモジュールが異なるのが一般的である。したがって、アプリケーションの開発者は、同一のサービスを提供するアプリケーションであっても機種毎に異なったコーディングが強いられるという問題がある。
【０００４】
本発明は、上記の点に鑑みてなされたものであって、プログラムの開発負荷を軽減させることのできる画像形成装置、プログラム実行方法、及びプログラムの提供を目的とする。
【課題を解決するための手段】
【０００５】
そこで上記課題を解決するため、本発明は、ジョブの実行を制御するアプリケーションプログラムを有する画像形成装置であって、プログラムの実行環境を識別する実行環境情報ごとに、プログラムモジュールの識別情報との対応情報を記憶した対応情報記憶手段と、前記アプリケーションプログラムからの問い合わせに応じ、当該画像形成装置において取得される実行環境情報と前記対応情報とに基づいて、前記アプリケーションプログラムに利用させる前記プログラムモジュールの識別情報を判定する判定手段とを有し、前記アプリケーションプログラムは、前記判定手段によって判定されたプログラムモジュールを利用してジョブの実行を制御する。
【０００６】
このような画像形成装置では、プログラムの開発負荷を軽減させることができる。
【発明の効果】
【０００７】
本発明によれば、プログラムの開発負荷を軽減させることができる。
【発明を実施するための最良の形態】
【０００８】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態におけるソフトウェアの一例の配置図である。同図には、画像形成装置１０ａ及び１０ｂ（以下、総称する場合「画像形成装置１０」という。）と、ＳＤカード８０とが示されている。
【０００９】
画像形成装置１０は、少なくともスキャナを備えている画像形成装置である。画像形成装置１０ａは、スキャナを制御するためのソフトウェア（スキャナを上位アプリケーションに利用させるためのソフトウェア）としてスキャンモジュールＡ１２１ａを有する。画像形成装置１０ｂは、スキャナを制御するためのソフトウェア（スキャナを上位アプリケーションに利用させるためのソフトウェア）としてスキャンモジュールＢ１２１ｂを有する。
【００１０】
なお、画像形成装置１０ａと画像形成装置１０ｂとはプログラムの実行環境が異なる。例えば、画像形成装置１０ａと画像形成装置１０ｂとは機種（モデル）が異なる。また、スキャンモジュールＡ１２１ａとスキャンモジュール１２１ｂ（総称する場合、「スキャンモジュール１２１」という。）との間には互換性がない。具体的には、各スキャンモジュール１２１は、それぞれ異なるインタフェースを上位アプリケーションに提供する。
【００１１】
一方、ＳＤカード８０には、画像形成装置１０において利用されるソフトウェアとして、スキャンアプリ８１、互換モジュールＡ８２ａ、互換モジュールＢ８２ｂ、切り替えモジュール８３、及び対応情報ファイル８４等が格納（記録）されている。
【００１２】
スキャンアプリ８１は、ユーザによる指示入力に応じて画像形成装置１０にスキャンジョブを実行させるアプリケーションプログラムでる。スキャンジョブに関するプログラムの中でスキャンアプリ８１は最上位に位置する。互換モジュールＡ８２ａ及び互換モジュールＢ８２ｂ（以下、総称する場合「互換モジュール８２」という。）は、各スキャンモジュール１２１の互換性を確保するためのプログラムモジュールである。すなわち、各互換モジュール８２は、各スキャンモジュール１２１間のインタフェースの差異を吸収し、互換インタフェース（Ｉ／Ｆ）と呼ばれる複数種類のプログラム実行環境に対して共通的な（汎用的な）インタフェースをスキャンアプリ８１に提供する。互換モジュールＡ８２ａは、互換インタフェースに従った要求をスキャンモジュールＡ１２１ａに固有のインタフェースに変換し、スキャンモジュールＡ１２１ａを呼び出す。互換モジュールＢ８２ｂは、互換インタフェースに従った要求をスキャンモジュールＢ１２１ｂに固有のインタフェースに変換し、スキャンモジュールＢ１２１ｂを呼び出す。
【００１３】
切り替えモジュール８３は、スキャンアプリ８１の実行環境（画像形成装置１０ａ又は１０ｂ）に応じて、いずれの互換モジュール８２をスキャンアプリ８１が利用すべきかを対応情報ファイル８４を参照して判定する。対応情報ファイル８４は、画像形成装置１０の機種と互換モジュール８２との対応情報が記録されている。
【００１４】
各画像形成装置１０は、例えば、図２に示されるようなハードウェア構成を有する。図２は、本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。図２において、画像形成装置１０は、コントローラ１１、スキャナ１２、ネットワークインタフェース１３、操作パネル１４等のハードウェアを有する。
【００１５】
コントローラ１１は、ＣＰＵ１１１、ＲＡＭ１１２、ＲＯＭ１１３、及びＨＤＤ１１４等より構成される。ＲＯＭ１１３には、各種のプログラムやプログラムによって利用されるデータ等が記録されている。ＲＡＭ１１２は、プログラムをロードするための記憶領域や、ロードされたプログラムのワーク領域等として用いられる。ＣＰＵ１１１は、ＲＡＭ１１２にロードされたプログラムを処理することにより、各種の機能を実現する。ＨＤＤ１１４には、スキャンされた画像データ等が保存される。
【００１６】
スキャナ１２は、原稿より画像データを読み取るためのハードウェアである。ネットワークインタフェース１３は、ＬＡＮ（Local Area Network）等のネットワーク（有線又は無線の別は問わない。）に接続するためのハードウェアである。操作パネル１４は、ユーザからの入力の受け付けや、ユーザに対する情報の通知等を行うめのボタン、液晶パネル（表示装置）等を備えたハードウェアである。
【００１７】
また、画像形成装置１０には、ＵＳＢ（Universal Serial Bus）ケーブル等を介してＳＤカードリーダ１５が接続されている。ＳＤカードリーダ１５は、ＳＤカード８０に記録されたプログラムを読み取るために利用される。すなわち、画像形成装置１０では、ＲＯＭ１１３に記録されたプログラムだけでなく、ＳＤカード８０に記録されたプログラムもＲＡＭ１１２にロードされ、実行される。なお、ＳＤカードリーダ１５は画像形成装置１０に内蔵されていてもよい。
【００１８】
以下、プログラムが画像形成装置１０に実行させる処理手順について説明する。図３は、画像形成装置における処理手順を説明するためのシーケンス図である。同図では、画像形成装置１０ａに接続されているＳＤカードリーダ１５にＳＤカード８０がセットされ、ＳＤカード８０に格納されているプログラムが画像形成装置１０ａのＲＡＭ１１２にロードされている状態において、当該プログラムが画像形成装置１０ａに実行させる処理手順について説明する。
【００１９】
スキャンジョブの実行中の所定のタイミング（ここでは、スキャンの実行指示が入力されたタイミングとする）において、スキャンアプリ８１は、切り替えモジュール８３に対し、現在の実行環境（画像形成装置１０ａ）に対応する互換モジュール８２（以下、「対応モジュール」という。）を問い合わせる（Ｓ１０１）。
【００２０】
切り替えモジュール８３は、現在の実行環境を識別する情報（環境情報）を画像形成装置１０ａより（例えば、画像形成装置１０ａのＯＳ（Operating System）より）取得する（Ｓ１０２）。本実施の形態では、環境情報として画像形成装置１０の機種名（モデル名）が利用されることとする。画像形成装置１０ａの機種名は「Ｍｏｄｅｌ＿ＡＡＡ」であるとし、画像形成装置１０ｂの機種名は「Ｍｏｄｅｌ＿ＢＢＢ」であるとする。したがって、ここでは、「Ｍｏｄｅｌ＿ＡＡＡ」が取得される。なお、環境情報は、スキャンモジュール１２１の違いを識別可能な情報であれば所定のものに限定されない。例えば、ＯＳ名又はＯＳのバージョン情報等であってもよい。
【００２１】
続いて、切り替えモジュール８３は、対応情報ファイル８４に格納されている対応情報をＲＡＭ１１２に読み込む（Ｓ１０３）。
【００２２】
図４は、対応情報の例を示す図である。同図ではＸＭＬ（eXtensible Markup Language）形式によって定義された例が示されている。
【００２３】
対応情報８４０は、＜Ｐｒｏｐｅｒｔｉｅｓ＞タグで囲まれたＰｒｏｐｅｒｔｉｅｓ要素をルート要素とする。Ｐｒｏｐｅｒｔｉｅｓ要素は、機種の数分のＤｅｖｉｃｅ要素を子要素として含む。
【００２４】
Ｄｅｖｉｃｅ要素には、一つの機種に関する機種名と、対応する互換モジュール８２の識別情報（モジュール名）とが記述されている。具体的には、Ｄｅｖｉｃｅ要素は、Ｎａｍｅ要素とＴａｒｇｅｔ要素とを子要素として含む。Ｎａｍｅ要素の値は機種名を示す。Ｔａｒｇｅｔ要素の値は、機種名に対応する互換モジュール８２のモジュール名を示す。
【００２５】
同図では、二つのＤｅｖｉｃｅ要素（８４１及び８４２）が定義されている。Ｄｅｖｉｃｅ要素８４１では、機種名「Ｍｏｄｅｌ＿ＡＡＡ（画像形成装置１０ａ）」に対してモジュール名「互換モジュールＡ（互換モジュールＡ８２ａ）」が対応付けられている。また、Ｄｅｖｉｃｅ要素８４２では、機種名「Ｍｏｄｅｌ＿ＢＢＢ（画像形成装置１０ｂ）」に対してモジュール名「互換モジュールＢ（互換モジュールＢ８２ｂ）」が対応付けられている。
【００２６】
続いて、切り替えモジュール８３は、取得された機種名（Ｍｏｄｅｌ＿ＡＡＡ）に対応するモジュール名を対応情報８４０に基づいて判定する（Ｓ１０４）。ここでは、当該モジュール名は、「スキャンモジュールＡ」であると判定される。続いて、スキャンアプリ８１は、判定結果として「スキャンモジュールＡ」をスキャンアプリ８１に返却する（Ｓ１０５）。
【００２７】
続いて、スキャンアプリ８１は、スキャンモジュールＡをモジュール名とする互換モジュールＡ８２ａをロードし、互換モジュールＡ８２ａに対してスキャンの実行を要求する（Ｓ１０６）。当該要求は、互換インタフェースに従って行われる。続いて、互換モジュールＡ８２ａは、スキャンモジュールＡ１２１ａに固有のインタフェースに基づいてスキャンの実行をスキャンモジュールＡ１２１ａに要求する（Ｓ１０７）。スキャンモジュールＡ１２１ａは、画像形成装置１０ａのスキャナ１２にスキャンを実行させ、その結果を互換モジュールＡ８２ａに応答する（Ｓ１０８）。互換モジュールＡ８２ａは、互換インタフェースに従った形式でスキャンアプリ８１に対して処理結果を応答する（Ｓ１０９）。
【００２８】
画像形成装置１０ｂにおける処理手順は、図３より自明であるため省略する。すなわち、スキャンアプリ８１は、切り替えモジュール８３の判定結果に従って互換モジュールＢ８２ｂを動的にロードし、互換モジュールＢ８２ｂを介してスキャンモジュールＢ１２１ｂを利用する。
【００２９】
なお、上記において、対応情報８４０はＸＭＬ形式によって定義されている例を示したが、対応情報８４０の形式は所定のものに限定されない。例えば、ＣＳＶ（Comma Separated Values）形式であってもよい。また、対応情報８４０をオブジェクト（例えば、Ｊａｖａ（登録商標）のオブジェクト）とし、当該オブジェクトをシリアライズしたものを対応情報ファイル８４としてもよい。この場合、当該オブジェクトは、機種名と対応モジュール名とを格納するための属性を有していればよい。更に、対応情報８４０に相当する情報は、切り替えモジュール８３内にハードコーディングされていてもよい。
【００３０】
また、対応情報ファイル８４０は、ＳＤカード８０内ではなく、ネットワーク上におけるコンピュータにおいて一元的に管理されてもよい。この場合、互換モジュール８２の増減に伴った対応情報ファイル８４の変更等を一元的に行うことができる。
【００３１】
上述したように、本実施の形態によれば、実行環境に応じて利用すべき互換モジュール８２を自動的に切り替えることができる。したがって、実行環境ごとにスキャンアプリ８１を開発する必要はない。
【００３２】
なお、本実施の形態では、スキャンアプリ８１を例としたが、本発明は、画像形成装置にジョブを実行させる各種のアプリケーションプログラムに対して適用可能である。
【００３３】
また、ＳＤカード８０に記録されたプログラムについて、実行環境に応じて再コンパイル及びリンク等が必要とされる場合もあるが、ソースコードとしては基本的に同一のものを使用することができる。したがって、再コンパイル及びリンク等が必要とされる場合であっても、開発負荷の軽減は達成される。
【００３４】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【００３５】
【図１】本発明の実施の形態におけるソフトウェアの一例の配置図である。
【図２】本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。
【図３】画像形成装置における処理手順を説明するためのシーケンス図である。
【図４】対応情報の例を示す図である。
【符号の説明】
【００３６】
１０          画像形成装置
１１          コントローラ
１２          スキャナ
１３          ネットワークインタフェース
１４          操作パネル
１５          ＳＤカードリーダ
８１          スキャンアプリ
８２ａ          互換モジュールＡ
８２ｂ          互換モジュールＢ
８３          切り替えモジュール
８４          対応情報ファイル
１１１        ＣＰＵ
１１２        ＲＡＭ
１１３        ＲＯＭ
１１４        ＨＤＤ
１２１ａ      スキャンモジュールＡ
１２１ｂ      スキャンモジュールＢ
【図１】
2010140110.tif 000003
【図２】
2010140110.tif 000004
【図３】
2010140110.tif 000005
【図４】
2010140110.tif 000006