(57)【要約】【課題】実行環境にて意図通りに動作しないサブモジュールを実行効率を落とすことなく意図通りに動作するようにすること。【解決手段】実行環境が当該サブモジュールの意図通りに動作するバージョンを保持しておき、アプリケーションが含んでいるインストール時に意図通りに動作しないバージョンの当該サブモジュールと置き換える。また当該実行環境が更新されて初回に起動する時にインストール済みのアプリケーションのフォルダ上に置かれている意図通りに動作しないサブモジュールと置き換える。【選択図】図２
2017138747.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションを実行することができる実行環境（２０１）を備えた画像形成装置（１０３）であって、
当該実行環境（２０１）は
アプリケーションをネットワーク（１０１）あるいは外部記憶装置（１３１）から取得する取得手段（２１１）と、
当該取得したアプリケーションをインストール先のフォルダにインストールするインストール手段（２１２）と、
当該インストールされたアプリケーションを実行する実行手段（２１３）と、
当該アプリケーションにより利用されるサブモジュールの、当該実行環境（２０１）上で実行される場合に本来の意図通りの動作をすることが分かっている第一のバージョンを保持する保持手段（２１４）と、
を備えており、
当該インストール手段（２１２）は当該取得したアプリケーションをインストールする際に、
当該アプリケーションがインストールされた時に当該フォルダ中に置かれる中に当該サブモジュールが含まれているかを判定する第一の判定ステップ（Ｓ４０３）と
当該第一の判定ステップにて当該サブモジュールが含まれていると判定された際には当該サブモジュールのバージョンを確認する第一の確認ステップ（Ｓ４０４）と
当該第一の確認ステップにより当該サブモジュールが当該実行手段（２１３）上で実行される場合に本来の意図通りの動作と違う動作をすることが分かっている第二のバージョンと一致するかどうかを判定する第二の判定ステップ（Ｓ４０５）と、
当該第二の判定ステップにおいて当該サブモジュールのバージョンが当該第二のバージョンと一致すると判定された場合には、当該サブモジュールを当該第一のバージョンの複製と置き換える第一の置換ステップ（Ｓ４０６）と
を含むように構成されており、
さらに当該実行環境（２０１）は、
当該実行環境（２０１）がその別のバージョンから更新されて現在のバージョンが当該画像形成装置（１０３）上に配備された後初めて起動されたことを検知する検知手段（２１５）と、
既にインストールされている一つまたは複数のアプリケーションを更新する更新手段（２１６）と、
を備えており、
当該更新手段（２１６）が、当該検知手段により当該実行環境（２０１）が更新された後初めて起動されたことを検知した場合には、
それらインストールされている当該一つまたは複数のアプリケーションのインストール先の当該フォルダを検索する検索ステップ（Ｓ６０３）と、
当該検索ステップにより当該サブモジュールが当該フォルダ内に置かれていると判定する第三の判定ステップ（Ｓ６０４）と、
当該第三の判定ステップにより当該サブモジュールが置かれている場合には、当該サブモジュールのバージョンを確認する第二の確認ステップ（Ｓ６０５）と
当該第二の確認ステップにより当該サブモジュールが当該実行手段（２１３）上で実行される場合に本来の意図通りの動作と違う動作をすることが分かっている第二のバージョンと一致するかどうかを判定する第四の判定ステップ（Ｓ６０６）と、
当該第四の判定ステップにおいて当該サブモジュールのバージョンが当該第二のバージョンと一致する場合には、当該フォルダ内の当該サブモジュールを当該第一のバージョンと置き換える第二の置換ステップ（Ｓ６０７）と
を含むように構成されていることを特徴とする、
実行環境（２０１）を備えた画像形成装置（１０３）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部から与えられたアプリケーションをインストールし実行することを可能にした実行環境を備えた画像形成装置に関する。
【背景技術】
【０００２】
従来、画像形成装置には、外部から与えられたアプリケーションをインストールし実行することを可能にした実行環境を備えたものが存在する。
【０００３】
そのような実行環境の中には、一部の動作が異なるような別バージョンが存在することがある。そして、アプリケーションを実行する際にそのような別バージョンの実行環境に応じてそれぞれ異なるサブモジュールを登録しておくものが存在する。
【０００４】
そのため、実行時にメインモジュールと、そのようなサブモジュールのうち当該実行環境に対応したものを組み合わせて実行することでアプリケーションを正常に実行させるものが提案されている（特許文献１参照）。
【０００５】
またそのような実行環境の中には、実行時にアプリケーションが問い合わせを行い実行環境の情報を取得して、当該アプリケーションが利用するサブモジュールを特定するものがある。それにより問い合わせを行ったアプリケーションに当該特定されたサブモジュールを利用させることによってアプリケーションを正常に実行させるものが提案されている（特許文献２参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１１−２８２６６４号公報
【特許文献２】特開２０１０−１４０１１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、これらの実行環境においては、どのサブモジュールを使用するか決定されるのは実行時である。またはアプリケーションが問い合わせを行ったその時点である。その時点で初めてサブモジュールの決定などが行われるため、そのための時間を余分に消費し、結果として実行速度が低下するという課題がある。
【課題を解決するための手段】
【０００８】
上記の課題を解決するために、本発明に係る実行環境を備えた画像形成装置は、  
アプリケーションを実行することができる実行環境（２０１）を備えた画像形成装置（１０３）であって、
当該実行環境（２０１）は
アプリケーションをネットワーク（１０１）あるいは外部記憶装置（１３１）から取得する取得手段（２１１）と、
当該取得したアプリケーションをインストール先のフォルダにインストールするインストール手段（２１２）と、
当該インストールされたアプリケーションを実行する実行手段（２１３）と、
当該アプリケーションにより利用されるサブモジュールの、当該実行環境（２０１）上で実行される場合に本来の意図通りの動作をすることが分かっている第一のバージョンを保持する保持手段（２１４）と、
を備えており、
当該インストール手段（２１２）は当該取得したアプリケーションをインストールする際に、
当該アプリケーションがインストールされた時に当該フォルダ中に置かれる中に当該サブモジュールが含まれているかを判定する第一の判定ステップ（Ｓ４０３）と
当該第一の判定ステップにて当該サブモジュールが含まれていると判定された際には当該サブモジュールのバージョンを確認する第一の確認ステップ（Ｓ４０４）と
当該第一の確認ステップにより当該サブモジュールが当該実行手段（２１３）上で実行される場合に本来の意図通りの動作と違う動作をすることが分かっている第二のバージョンと一致するかどうかを判定する第二の判定ステップ（Ｓ４０５）と、
当該第二の判定ステップにおいて当該サブモジュールのバージョンが当該第二のバージョンと一致すると判定された場合には、当該サブモジュールを当該第一のバージョンの複製と置き換える第一の置換ステップ（Ｓ４０６）と
を含むように構成されており、
さらに当該実行環境（２０１）は、
当該実行環境（２０１）がその別のバージョンから更新されて現在のバージョンが当該画像形成装置（１０３）上に配備された後初めて起動されたことを検知する検知手段（２１５）と、
既にインストールされている一つまたは複数のアプリケーションを更新する更新手段（２１６）と、
を備えており、
当該更新手段（２１６）が、当該検知手段により当該実行環境（２０１）が更新された後初めて起動されたことを検知した場合には、
それらインストールされている当該一つまたは複数のアプリケーションのインストール先の当該フォルダを検索する検索ステップ（Ｓ６０３）と、
当該検索ステップにより当該サブモジュールが当該フォルダ内に置かれていると判定する第三の判定ステップ（Ｓ６０４）と、
当該第三の判定ステップにより当該サブモジュールが置かれている場合には、当該サブモジュールのバージョンを確認する第二の確認ステップ（Ｓ６０５）と
当該第二の確認ステップにより当該サブモジュールのバージョンが当該第二のバージョンと一致するかどうかを判定する第四の判定ステップ（Ｓ６０６）と、
当該第四の判定ステップにおいて当該サブモジュールのバージョンが当該第二のバージョンと一致する場合には、当該フォルダ内の当該サブモジュールを当該第一のバージョンと置き換える第二の置換ステップ（Ｓ６０７）と
を含むように構成されていることを特徴とする。
【発明の効果】
【０００９】
本発明に係る実行環境を備えた画像形成装置によれば、当該実行環境が当該サブモジュールを置き換えるのは、アプリケーションが当該実行環境にインストールされる時、もしくは、当該実行環境が現在のバージョンが配備された後初めて起動された時のみである。置き換えが終わった後は、当該アプリケーションは当該フォルダに置かれている当該サブモジュールをそのまま利用して動作するため、特に実行時に余分な処理を挟む必要がない。これにより、当該実行環境で本来の意図通りの動作を行う当該サブモジュールを当該アプリケーションに利用させる際に実行速度の低下を招くことなく実行できるという効果が得られる。
【図面の簡単な説明】
【００１０】
【図１】本発明の画像形成装置（１０３）とそれが接続されるネットワーク（１０１）および情報処理装置（１０２）の構成を表す図である。
【図２】本発明の実行環境（２０１）のモジュール構成を表す図である。
【図３】本発明の実行環境（２０１）にてアプリケーションをインストールし実行する手順を表した図である。
【図４】本発明のインストール手段（２１２）がアプリケーションをインストールする手順を表した図である。
【図５】本発明の実行環境（２０１）にて実行環境（２０１）が起動された時にアプリケーションを実行する手順を表した図である。
【図６】本発明の更新手段（２１６）がインストール済みのアプリケーションを更新する手順を表した図である。
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための形態について図面を用いて説明する。
【００１２】
図１は本発明の画像形成装置および接続されるネットワークを表した図である。
【００１３】
１０１はネットワークである。１０２は情報処理装置である。情報処理装置（１０２）は例えばパーソナルコンピュータのような情報処理を行う機能を備えた装置である。１０３は本発明の画像形成装置である。
【００１４】
１１１はコントローラである。１１２はエンジンである。コントローラ（１１１）およびエンジン（１１２）は画像形成装置（１０３）を構成している。コントローラ（１１１）は情報処理機能を備えている。エンジン（１１２）は画像のスキャンおよびプリントを行う機能を備えている。
【００１５】
１２１は中央処理装置（以下ＣＰＵ）である。１２２はデータバスである。１２３は読み出し専用メモリ（以下ＲＯＭ）である。１２４は読み書き可能メモリ（以下ＲＡＭ）である。１２５は二次記憶インターフェースである。１２６は二次記憶装置である。１２７はネットワークインターフェース（以下ＮＩＣ）である。コントローラ（１１１）はＮＩＣ（１２７）を通じてネットワーク（１０１）と接続され通信を行う。
【００１６】
１２８は外部入力インターフェース（以下ＨＩＤ  Ｉ／Ｆ）である。１２９は外部入力装置（以下ＨＩＤ）である。外部入力装置は例えば表示パネルおよび入力ボタンを一体にした操作パネルのようなものが考えられる。１３０は外部記憶インターフェースである。１３１は外部記憶接続装置である。ここで外部記憶装置とは、例えば汎用デジタルバスにより接続され着脱可能なフラッシュメモリのような装置が考えられる。１３２はエンジンインターフェースである。
【００１７】
コントローラ（１１１）はＣＰＵ（１２１）によりＲＯＭ（１２３）またはＲＡＭ（１２４）に保持されているプログラムを実行することができる。またコントローラ（１１１）はプログラムを実行することで、エンジンインターフェース（１３２）を通じてエンジン（１１２）の状態を取得したり、制御したりすることができる。
【００１８】
図２は本発明のコントローラ（１１１）上で動作する実行環境の構成を模式的に表したものである。
【００１９】
２０１は実行環境である。２１１はアプリケーションをネットワーク（１０１）または外部記憶装置（１３１）から取得することができる取得手段である。２１２は当該取得手段（２１１）によって取得されたアプリケーションをインストールするインストール手段である。
【００２０】
２１３はインストール手段（２１２）によってインストールされたアプリケーションを実行する実行手段である。２１４は二次記憶装置（１２６）上に当該アプリケーションが利用するサブモジュールの、本実行環境（２０１）で本来の意図通りの動作をするバージョンを保持する保持手段である。２１５は実行環境（２０１）が別のバージョンから更新されて現在のバージョンが画像形成装置（１０３）上のコントローラ（１１１）上に配備された後初めて起動されたことを検知する検知手段である。
【００２１】
２１６は当該検知手段（２１５）により実行環境（２０１）が更新されたことを検知した時に、当該実行環境（２０１）上にインストールされた一つまたは複数のアプリケーションを更新する更新手段である。
【００２２】
図３は本発明の実行環境（２０１）がユーザーによるアプリケーションのインストールの指示を受けてアプリケーションをインストールし、実行の指示を受けてインストールされたアプリケーションを実行するまでの手順を表したものである。
【００２３】
当該実行環境（２０１）はステップＳ３０１から処理を開始する。
【００２４】
ステップＳ３０２ではユーザーがＨＩＤ（１２８）もしくはネットワーク（１０１）経由で別の情報処理装置（１０２）から当該画像形成装置（１０３）にアクセスする。そしてユーザーは当該画像形成装置（１０３）の当該コントローラ（１１１）上で動作する当該実行環境（２０１）に対してアプリケーションのインストールの指示を行う。
【００２５】
すると当該実行環境（２０１）はステップＳ３０３にて取得手段（２１１）を用いて指示されたアプリケーションを取得する。
【００２６】
そしてステップＳ３０４にて当該取得されたアプリケーションを、インストール手段（２１２）を用いてインストールする。インストールが行われると、当該取得されたアプリケーションのメインモジュールおよびその抱えているサブモジュールが、二次記憶装置（１２６）上に置かれたフォルダ（以下、キャッシュフォルダ）に展開されて保持される。
【００２７】
インストールが完了すると、ステップＳ３０５にてユーザーがアプリケーションの開始を指示する。それによりステップＳ３０６にて当該実行環境（２０１）は実行手段（２１３）を用いてアプリケーションを実行する。ステップＳ３０７にて当該実行環境（２０１）は処理を完了する。
【００２８】
図４は本発明のインストール手段（２１２）がアプリケーションをインストールする時の処理手順をフローチャートで表したものである。
【００２９】
ステップＳ４０１から処理を開始する。
【００３０】
ステップＳ４０２ではインストール手段（２１２）はインストールすべきアプリケーションに含まれているサブモジュールを順番に取り出す。
【００３１】
続くステップＳ４０３ではインストール手段（２１２）は取得したサブモジュールが保持手段（２１４）に保持されているものと同一のモジュールであるかどうかを判定する。その結果同一であった場合には処理はステップＳ４０４へ進む。同一ではない場合にはステップＳ４０８へ進む。
【００３２】
ステップＳ４０４ではインストール手段（２１２）は当該サブモジュールのバージョンを確認する。
【００３３】
そしてステップＳ４０５にて、ステップＳ４０４にて確認した当該サブモジュールのバージョンは当該実行環境（２０１）の上で意図通りの動作をするバージョンであるかどうかを判定する。そうであれば処理はステップＳ４０７へ進む。そうでなければステップＳ４０６へ進む。
【００３４】
ステップＳ４０６では保持手段（２１４）から、当該実行環境（２０１）の上で意図通りの動作をするバージョンの当該サブモジュールを取得し、フォルダに置く。そして処理はステップＳ４０８へ進む。
【００３５】
ステップＳ４０７では、ステップＳ４０２で取り出した当該アプリケーションに含まれている当該サブモジュールをそのままフォルダに置く。そして処理はステップＳ４０８へ進む。
【００３６】
ステップＳ４０８ではアプリケーションに含まれるサブモジュールがこれで最後であるかを判定する。そうであれば処理はステップＳ４０９へ進む。そうでなければ処理はステップＳ４０２へ戻って続行される。ステップＳ４０９に到達するとインストール手段（２１２）はインストールする処理を終了する。
【００３７】
図５は本発明の実行環境（２０１）が当該画像形成装置（１０３）の当該コントローラ（１１１）上で起動された時にアプリケーションを実行するまでの処理を表したものである。
【００３８】
ステップＳ５０１で当該実行環境（２０１）は処理を開始する。
【００３９】
ステップＳ５０２にて当該実行環境（２０１）は検知手段（２１５）を用いて当該実行環境（２０１）が当該画像形成装置（１０３）の当該コントローラ（１１１）上で別のバージョンから書き換えられた後の初回起動であるかどうかを検知する。
【００４０】
検知の結果、ステップＳ５０３にて、初回起動であると判定された場合には処理はステップＳ５０４へ進む。そうでない場合には処理はステップＳ５０５へ進む。
【００４１】
ステップＳ５０４では当該実行環境（２０１）は更新手段を用いて、インストール済みの各アプリケーションを更新する。更新が完了したら処理はステップＳ５０５へ進む。
【００４２】
ステップＳ５０５では当該実行環境（２０１）は実行手段（２１３）を用いて、インストール済みの各アプリケーションのうち起動するよう指定されたものを実行する。そののち処理はステップＳ５０６へ進む。ステップＳ５０６へ進むと当該実行環境（２０１）は処理を完了する。
【００４３】
図６は本発明の更新手段（２１６）がインストール済みのアプリケーションを更新する処理を表したものである。
【００４４】
ステップＳ６０１にて更新手段（２１６）が処理を開始する。
【００４５】
ステップＳ６０２にて、更新手段（２１６）は当該実行環境（２０１）にインストールされているアプリケーションを順番に処理する。このために、まずは最初のアプリケーションに着目する。
【００４６】
ステップＳ６０３にて更新手段（２１６）は当該アプリケーションのキャッシュフォルダ上に当該実行環境（２０１）の保持手段（２１４）に置かれているサブモジュールと同一のものが存在するかを調べる。
【００４７】
そののち処理はステップＳ６０４へ進み、同一モジュールが存在するかどうかを判定する。存在していればステップＳ６０５へ進み、存在していなければステップＳ６０８へ進む。
【００４８】
ステップＳ６０５では更新手段（２１６）は当該サブモジュールが当該実行環境（２０１）上で意図通りの動作をするバージョンであるかどうかを確認する。
【００４９】
続くステップＳ６０６にて当該サブモジュールが意図通りの動作をするバージョンである場合にはステップＳ６０８へ進む。そうではない場合にはステップＳ６０７へ進む。
【００５０】
ステップＳ６０７では保持手段（２１４）から取り出した当該サブモジュールの、当該実行環境（２０１）上で意図通りの動作をするバージョンで、キャッシュフォルダ上にある当該サブモジュールを置き換える。そののち処理はステップＳ６０８へ進む。
【００５１】
ステップＳ６０８では更新手段（２１６）はインストールされているアプリケーションがまだ他にも存在するかどうかを判定する。存在しない場合には処理はステップＳ６０９へ進む。存在する場合にはステップＳ６０２へ戻って処理を続行する。
【００５２】
ステップＳ６０９にて更新手段（２１６）は処理を完了する。
【００５３】
ここまで見てきたように、本発明の実行環境（２０１）によれば、アプリケーションに含まれるサブモジュールが当該実行環境（２０１）で意図通りに動作しない場合に、当該サブモジュールを意図通りに動作するものと置き換えることができる。すなわち、アプリケーションが新たにインストールされる場合には、インストール時に当該サブモジュールを保持手段保持手段（２１４）に保持されている意図通りに動作するものと置き換える。またアプリケーションがすでにインストールされた当該実行環境（２０１）の別のバージョンから、当該実行環境（２０１）へ更新された場合には、キャッシュフォルダ上の当該サブモジュールを置き換える。
【００５４】
これらにより、それらアプリケーションは当該実行環境（２０１）上で意図通りに動作するサブモジュールとともに動作することとなる。これによりアプリケーションは当該実行環境（２０１）にて問題なく動作することができるようになる。加えて、本発明によれば、サブモジュールの置き換えは、インストール時もしくは、当該実行環境（２０１）が更新された場合の初回起動時に一度だけ実行される。この場合、アプリケーションが実際に実行される時にはフォルダ上に置かれているサブモジュールをそのまま利用するだけであるため、実行効率を維持したまま実行できるというメリットがある。
【符号の説明】
【００５５】
１０１  ネットワーク、１０２  情報処理装置、１０３  画像形成装置、
１１１  コントローラ、１１２  エンジン
【図１】
2017138747.tif 000003
【図２】
2017138747.tif 000004
【図３】
2017138747.tif 000005
【図４】
2017138747.tif 000006
【図５】
2017138747.tif 000007
【図６】
2017138747.tif 000008