説明

機器、情報処理方法、情報処理プログラム、及び記録媒体

【課題】2以上のプログラムが混在したプログラムに関する操作性を向上させること。
【解決手段】機器は、第一のプログラムのインストール要求に応じ、前記第一のプログラムの属性情報を第一の記憶手段に記憶する第一の管理手段と、第二のプログラムのインストール要求に応じ、前記第二のプログラムの属性情報を第二の記憶手段に記憶する第二の管理手段とを有し、前記第二の管理手段は、前記第一のプログラムと前記第二のプログラムとを含む第三のプログラムのインストール要求に応じ、当該第三のプログラムの属性情報と、当該第三のプログラムに含まれる前記第二のプログラムの属性情報とを前記第二の記憶手段に記憶し、当該第三のプログラムに含まれる前記第一のプログラムの属性情報を前記第一の記憶手段に記憶する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機器、情報処理方法、情報処理プログラム、及び記録媒体に関する。
【背景技術】
【0002】
従来、その出荷後にアプリケーションプログラム等をプラグインとして追加可能な画像形成装置が存在する。例えば、特許文献1に記載された画像形成装置には、C言語によって開発されたアプリケーション(以下、「Cアプリ」という。)と、Java(登録商標)言語によって開発されたアプリケーション(以下、「Jアプリ」という。)とをインストールすることができる。
【0003】
但し、Cアプリ用のプラットフォームとJアプリ用のプラットフォームとは異なる。具体的には、Jアプリ用のプラットフォームは、Cアプリ用のプラットフォーム上に、Java(登録商標)用のAPI(Application Program Interface)を備えたプラットフォーム(特許文献1におけるJSDKプラットフォーム)が存在する。
【0004】
JSDKプラットフォームは、Cアプリ用のプラットフォームに対して機種依存性が著しく低下されている。すなわち、JSDKプラットフォームが有するAPIは、機種に対して平滑化されている。したがって、アプリケーションの開発者からすると、開発対象のアプリケーションをJアプリとして作成する方が有利である。Jアプリは、機種ごとにソースコードを変える必要性が低く、開発コストを削減することができるからである。
【0005】
しかし、JSDKプラットフォームが提供しているAPIの機能範囲は、Cアプリ用のプラットフォームが提供しているAPIの機能範囲よりも狭い。すなわち、純粋なJアプリが実現可能な機能は、純粋なCアプリによって実現可能な機能よりも少ない。ここで、純粋なJアプリとは、JSDKプラットフォームにおいて動作するプログラムモジュールのみによって構成されるJアプリをいう。
【0006】
したがって、Jアプリのみでは実現できない機能に関しては、Cアプリとして実装する必要がある。その場合、一つのアプリケーションとして販売されるパッケージの中に、JアプリとしてのモジュールとCアプリとしてのモジュールとが混在することになる。
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、JアプリとCアプリとが混在したアプリケーションは、ユーザから見れば一つのアプリケーションであるにも拘わらず、斯かる構成のアプリケーションの存在が考慮されていない画像形成装置から見れば、二つのアプリケーションである。したがって、ユーザは、2回分のインストール作業を行わなければならない(インストールの実行指示を2回行わなければならない)という問題がある。
【0008】
本発明は、上記の点に鑑みてなされたものであって、2以上のプログラムが混在したプログラムに関する操作性を向上させることのできる機器、情報処理方法、情報処理プログラム、及び記録媒体の提供を目的とする。
【課題を解決するための手段】
【0009】
そこで上記課題を解決するため、機器は、第一のプログラムのインストール要求に応じ、前記第一のプログラムの属性情報を第一の記憶手段に記憶する第一の管理手段と、第二のプログラムのインストール要求に応じ、前記第二のプログラムの属性情報を第二の記憶手段に記憶する第二の管理手段とを有し、前記第二の管理手段は、前記第一のプログラムと前記第二のプログラムとを含む第三のプログラムのインストール要求に応じ、当該第三のプログラムの属性情報と、当該第三のプログラムに含まれる前記第二のプログラムの属性情報とを前記第二の記憶手段に記憶し、当該第三のプログラムに含まれる前記第一のプログラムの属性情報を前記第一の記憶手段に記憶する。
【発明の効果】
【0010】
2以上のプログラムが混在したプログラムに関する操作性を向上させることができる。
【図面の簡単な説明】
【0011】
【図1】本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。
【図2】本発明の実施の形態における画像形成装置のソフトウェア構成例を示す図である。
【図3】本実施の形態におけるSDKアプリのパッケージ形式を説明するための図である。
【図4】SDKアプリ属性ファイルの構成例を示す図である。
【図5】SDKアプリのライフサイクルの管理形態の概要を説明するための図である。
【図6】CSDK管理部及びJSDK管理部の関係を説明するための図である。
【図7】本実施の形態における混在アプリのパッケージ形式を説明するための図である。
【図8】混在アプリ属性ファイルの構成例を示す図である。
【図9】第一の実施の形態における混在アプリのインストール及びアンインストールの概要を説明するための図である。
【図10】第一の実施の形態における混在アプリのインストール処理の処理手順の一例を説明するための図である。
【図11】第一の実施の形態における混在アプリのインストール処理の処理手順の一例を説明するためのシーケンス図である。
【図12】第一の実施の形態における混在アプリのアンインストール処理の処理手順の一例を説明するための図である。
【図13】第一の実施の形態における混在アプリのアンインストール処理の処理手順の一例を説明するためのシーケンス図である。
【図14】第一の実施の形態における混在アプリのリモートインストール処理の処理手順の一例を説明するためのシーケンス図である。
【図15】第二の実施の形態における混在アプリのインストール及びアンインストールの概要を説明するための図である。
【発明を実施するための形態】
【0012】
以下、図面に基づいて本発明の実施の形態を説明する。図1は、本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。同図において、画像形成装置10は、コントローラ11、スキャナ12、プリンタ13、モデム14、操作パネル15、ネットワークインタフェース16、及びSDカードスロット17等のハードウェアを有する。
【0013】
コントローラ11は、CPU111、RAM112、ROM113、HDD114、及びNVRAM115等を有する。ROM113には、各種のプログラムやプログラムによって利用されるデータ等が記録されている。RAM112は、プログラムをロードするための記憶領域や、ロードされたプログラムのワーク領域等として用いられる。CPU111は、RAM112にロードされたプログラムを処理することにより、各種の機能を実現する。HDD114には、プログラムやプログラムが利用する各種のデータ等が記録される。NVRAM115には、各種の設定情報等が記録される。
【0014】
スキャナ12は、原稿より画像データを読み取るためのハードウェア(画像読取手段)である。プリンタ13は、印刷データを印刷用紙に印刷するためのハードウェア(印刷手段)である。モデム14は、電話回線に接続するためのハードウェアであり、FAX通信による画像データの送受信を実行するために用いられる。操作パネル15は、ユーザからの入力の受け付けを行うためのボタン等の入力手段や、液晶パネル等の表示手段等を備えたハードウェアである。ネットワークインタフェース16は、LAN等のネットワーク(有線又は無線の別は問わない。)に接続するためのハードウェアである。SDカードスロット17は、SDカード80に記録されたプログラムを読み取るために利用される。すなわち、画像形成装置10では、ROM113に記録されたプログラムだけでなく、SDカード80に記録されたプログラムもRAM112にロードされ、実行されうる。なお、他の記録媒体(例えば、CD−ROM又はUSB(Universal Serial Bus)メモリ等)によってSDカード80が代替されてもよい。すなわち、SDカード80の位置付けに相当する記録媒体の種類は、所定のものに限定されない。この場合、SDカードスロット17は、記録媒体の種類に応じたハードウェアによって代替されればよい。
【0015】
図2は、本発明の実施の形態における画像形成装置のソフトウェア構成例を示す図である。同図において、画像形成装置10は、標準アプリ151、CSDK管理部152、CSDKアプリ153、JSDKプラットフォーム155、JSDKアプリ156、VAS157、コントロールサービス158、及びOS159等を有する。
【0016】
OS159は、いわゆるOS(Operating System)である。画像形成装置10上の各ソフトウェアは、OS159上においてプロセス又はスレッドとして動作する。
【0017】
標準アプリ151は、画像形成装置10に標準的に(出荷時に予め)実装されているアプリケーションの集合である。同図では、スキャンアプリ1511、印刷アプリ1512、コピーアプリ1513、及びFAXアプリ1514が例示されている。スキャンアプリ1511は、スキャンジョブを実行する。印刷アプリ1512は印刷ジョブを実行する。コピーアプリ1513は、コピージョブを実行する。FAXアプリ1514は、FAXの送信ジョブ又は受信ジョブを実行する。
【0018】
コントロールサービス158は、各種のハードウェアリソース等を制御するための機能を上位アプリケーション等に対して提供したり、画像形成装置10の基盤的な機能等を実行したりするソフトウェアモジュール群である。
【0019】
VAS157(Virtual Application Service)は、コントロールサービス158のインタフェースをラッピングし、コントロールサービス158のバージョンアップに伴うインタフェースの相違点を吸収する。したがって、VAS157上で動作するプログラム(特に、CSDKアプリ153)に対しては、コントロールサービス158のパージョン間の互換性が保証される。
【0020】
CSDKアプリ153及びJSDKアプリ156は、それぞれ、SDKアプリの一種である。SDKアプリとは、画像形成装置10に対するプラグインとして、画像形成装置10の機能拡張を図るために開発されるアプリケーションをいう。すなわち、画像形成装置10は、SDKアプリ用の、公開された専用のAPI(Application Program Interface)を備える。一つは、VAS157によって提供されるC言語のAPIである。もう一つは、後述されるJSDKプラットフォーム155によって提供されるJava(登録商標)言語のAPIである。C言語のAPIを利用して作成されるSDKアプリを「CSDKアプリ153」という。Java(登録商標)言語のAPIを利用して作成されるSDKアプリを「JSDKアプリ156」という。なお、同図において、CSDKアプリ153は、一つのブロック(矩形)によって表現されているが、複数のCSDKアプリ153が一台の画像形成装置10にインストールされうる。
【0021】
CSDK管理部152は、CSDKアプリ153のライフサイクルを管理する。例えば、CSDK管理部152は、CSDKアプリ153のインストール処理(アップデート処理も含む)、起動処理、停止処理、及びアンインストール処理等を制御する。
【0022】
JSDKプラットフォーム155は、JSDKアプリ156の実行環境を提供する。すなわち、JSDKプラットフォーム155は、Java(登録商標)言語によるAPIをJSDKアプリ156に対して提供する。JSDKプラットフォーム155は、CSDKアプリ153の一つである。したがって、JSDKプラットフォーム155は、例えば、SDカード80等の記録媒体から、又はネットワークを介して画像形成装置10にインストールされる。JSDKプラットフォーム155は、OS159上で一つのプロセスとして起動される。
【0023】
JSDKプラットフォーム155は、また、JVM154及びJSDK管理部1551等を含む。
【0024】
JVM154は、いわゆるJava(登録商標)仮想マシン(Java(登録商標) Virtual Machine)であり、Java(登録商標)バイトコードによって定義された命令を解釈して実行する。
【0025】
JSDK管理部1551は、JSDKアプリ156のライフサイクルを管理する。例えば、JSDK管理部1551は、JSDKアプリ156のインストール処理(アップデート処理も含む)、起動処理、停止処理、及びアンインストール処理等を制御する。なお、JSDK管理部1551は、一つのJSDKアプリ156として実装されてもよい。
【0026】
図2において、一点鎖線Lによって囲まれる部分は、SDカード80等の記録媒体、又はネットワークを介してインストールされる部分である。一方、一点鎖線Lの外側の部分は、画像形成装置10の出荷時にROM113に記録される部分である。換言すれば、一点鎖線Lによって囲まれる部分は、ユーザの利用形態に応じた機能拡張のために追加される部分であるといえる。
【0027】
続いて、SDKアプリのパッケージ形式について説明する。パッケージ形式とは、流通時におけるファイル構造をいう。すなわち、パッケージ形式とは、SDカード80等の記録媒体に記録された状態におけるファイル構造、又はネットワークで転送される際のファイル構造をいう。
【0028】
図3は、本実施の形態におけるSDKアプリのパッケージ形式を説明するための図である。同図では、ファイル間の包含関係がツリー形式で表現されている。
【0029】
一つのSDKアプリ(CSDKアプリ153又はJSDKアプリ156)は、一つの書庫ファイル(SDK書庫ファイル)としてパッケージ化される。SDK書庫ファイルは、SDKアプリ属性ファイル及び実行形式ファイル等を含む。SDKアプリ属性ファイルは、SDKアプリの属性情報が記述されたテキスト形式(例えば、XML(eXtensible Markup Language)形式)のファイルである。実行形式ファイルは、SDKアプリの実行形式のファイルである。なお、一つのSDKアプリは、複数の実行形式ファイルによって構成されてもよい。また、CSDKアプリ153の実行形式ファイルと、JSDKアプリ156の実行形式ファイルとのファイル形式は異なる。前者は、ネイティブコードのファイルであり、後者は、Java(登録商標)のバイトコードのファイルである。
【0030】
なお、SDKアプリは、必ずしも書庫ファイル化されなくてもよい。例えば、SDKアプリの流通媒体となる記録媒体(例えば、SDカード等)において、SDKアプリを構成するファイルが通常の形態で記録されていてもよい。この際、当該記録媒体において、ディレクトリが形成され、ディレクトリ内に各ファイルが配置されてもよい。
【0031】
図4は、SDKアプリ属性ファイルの構成例を示す図である。SDKアプリ属性ファイルには、同図に示されるような属性項目に関する値が記述されている。
【0032】
アプリケーション名は、当該SDKアプリの名前である。アプリケーションIDは、当該SDKアプリの識別情報の一例である。バージョンは、当該SDKアプリのバージョンである。説明は、当該SDKアプリの機能説明等である。タイプは、当該SDKアプリがCSDKアプリ153であるかJSDKアプリ156であるかの種別である。例えば、CSDK管理部152は、アプリ管理画面510において操作対象とされたSDKアプリのタイプの値に基づいて、当該SDKアプリがCSDKアプリ153であるか又はJSDKアプリ156であるかを判定する。必要リソースは、当該SDKアプリが必要とするリソース量である。必要リソースは、例えば、RAM112の使用量、NVRAM115の使用量、及びHDD114の使用量等である。動作デフォルト値は、当該SDKアプリの動作時の各種パラメータの既定値である。インストール設定値は、インストール時における各種パラメータに対する設定値である。
【0033】
なお、SDKアプリ属性ファイルの構成は、CSDKアプリ153とJSDKアプリ156とで完全に一致していなくてもよい。また、CSDKアプリ153の書庫ファイルと、JSDKアプリ156の書庫ファイルとの形式(例えば、圧縮形式等)は、相互に異なっていてもよい。
【0034】
図2の説明及び図3の説明をふまえて、SDKアプリのライフサイクルの管理形態についてまとめると、図5に示されるようになる。
【0035】
図5は、SDKアプリのライフサイクルの管理形態の概要を説明するための図である。同図に示されるように、CSDKアプリ153に関するインストール、起動、停止、及びアンインストール等に関する要求は、CSDK管理部152が受け付ける。CSDK管理部152は、当該要求に応じた処理において、必要に応じてVAS157を介してコントロールサービス156を呼び出す。なお、CSDKアプリ153のインストールの際、CSDK管理部152は、当該CSDKアプリ153のSDK書庫ファイルより、SDKアプリ属性ファイルを取り出し、当該SDKアプリ属性ファイルの記述内容を、CSDK属性一覧記憶部161に記憶する。また、CSDK管理部152は、当該SDK書庫ファイルより、実行形式ファルを取り出し、当該実行形式ファイルを、CSDK記憶部162に記憶する。CSDK属性一覧記憶部161は、画像形成装置10にインストールされている各CSDKアプリ153の属性情報の一覧を記憶する記憶部である。CSDK記憶部162は、画像形成装置10にインストールされている各CSDKアプリ153の実行形式ファイルを記憶する記憶部である。
【0036】
一方、JSDKアプリ156に関するインストール、起動、停止、及びアンインストール等に関する要求は、JSDK管理部1551が受け付ける。JSDK管理部1551は、当該要求に応じた処理において、必要に応じてVAS157を介してコントロールサービス156を呼び出す。なお、JSDKアプリ156のインストールの際、JSDK管理部1551は、当該JSDKアプリ156のSDK書庫ファイルより、SDKアプリ属性ファイルを取り出し、当該SDKアプリ属性ファイルの記述内容を、JSDK属性一覧記憶部171に記憶する。また、JSDK管理部1551は、当該SDK書庫ファイルより、実行形式ファルを取り出し、当該実行形式ファイルを、JSDK記憶部172に記憶する。JSDK属性一覧記憶部171は、画像形成装置10にインストールされている各JSDKアプリ156の属性情報の一覧を記憶する記憶部である。JSDK記憶部172は、画像形成装置10にインストールされている各JSDKアプリ156の実行形式ファイルを記憶する記憶部である。
【0037】
なお、CSDK一覧記憶部161、CSDK記憶部162、JSDK一覧記憶部171、及びJSDK記憶部172は、例えば、HDD114又はNVRAM115等を用いて実現可能である。
【0038】
続いて、CSDK管理部152とJSDK管理部1551との関係について説明する。図6は、CSDK管理部及びJSDK管理部の関係を説明するための図である。
【0039】
同図に示されるように、CSDK管理部152は、各CSDKアプリ153と、JSDKプラットフォーム155とのライフサイクルを管理する。上記したように、JSDKプラットフォーム155もCSDKアプリ153の一つであるため、CSDK管理部152の管理下にある。各CSDKアプリ153及びJSDKプラットフォーム155は、それぞれ別個のプロセスとして起動される。
【0040】
一方、各JSDKアプリ156は、JSDK管理部1551によって、それぞれ別個のスレッドとしてJVM154上で起動される。
【0041】
このように、CSDKアプリ153とJSDKアプリ156とによってそれぞれ管理形態が異なるのは、それぞれのアプリケーションの開発言語が異なる点がその理由の一つとして挙げられる。例えば、CSDK管理部152によって、JSDKアプリ156の制御を直接行おうとすると、C言語のソースコードの中からJava(登録商標)言語によるインタフェースを呼び出さなければならず、高度なプログラミング技術が必要とされると共に、その処理内容が煩雑となるからである。また、CSDKアプリ153の方はプロセスとして実行され、JSDKアプリ156の方はスレッドとして実行されるといったように、両者の実行形態が異なる点を考慮しても、CSDKアプリ153用のアプリケーション管理機構とJSDKアプリ156用のアプリケーション管理機構とを別個に設けた方が、管理機構の単純化といった観点から有利である。
【0042】
但し、CSDKアプリ153及びJSDKアプリ156のインストール、アンインストール、起動、又は停止等をユーザに操作させるためのユーザインタフェースは、統合されている。具体的には、当該ユーザインタフェースを提供するアプリ管理画面510は、CSDK管理部152によって一元的に操作パネル15に表示される。SDKアプリに対する操作がインストールの場合、アプリ管理画面510には、例えば、SDカード80に記録されているSDKアプリ(CSDKアプリ153又はJSDKアプリ156)の一覧が表示される。ユーザは、当該一覧の中から、インストール対象とするSDKアプリを選択する。また、SDKアプリに対する操作がアンインストール、起動、又は停止の場合、アプリ管理画面510には、画像形成装置10にインストールされているSDKアプリの一覧が表示される。当該一覧情報は、CSDK属性情報記憶部及びJSDK属性情報記憶部に基づいて表示される。
【0043】
ユーザは、当該一覧の中から、アンインストール、起動、又は停止の対象とするSDKアプリを選択する。アプリ管理画面510においてCSDKアプリ153が操作対象とされた場合、CSDK管理部152が操作指示に応じた処理(インストール、アンインストール、起動、又は停止等)を実行する。一方、アプリ管理画面510においてJSDKアプリ156が操作対象とされた場合、CSDK管理部152は、操作指示をJSDK管理部1551に通知する。JSDK管理部1551は、CSDK管理部152からの通知に応じ、当該操作指示に応じた処理(インストール、アンインストール、起動、又は停止等)を実行する。
【0044】
なお、CSDK管理部152とJSDK管理部1551との間のやり取りは、例えば、HTTP(HyperText Transfer Protocol)やSOAP(Simple Object Access Protocol)等、開発言語の別を問わず簡便に利用できるプロトコルを用いるとよい。そうすることによって、C言語のソースコードの中からJava(登録商標)言語によるインタフェースを呼び出す必要がなくなり、処理内容の煩雑さが解消される。
【0045】
ところで、本実施の形態では、CSDKアプリ153及びJSDKアプリ156の双方を含む(双方によって構成される)アプリケーションプログラム(以下、「混在アプリ」という。)が、管理対象とされる。混在アプリは、外見上、一つのSDKアプリとして見える。具体的には、混在アプリは、SDKアプリ(CSDKアプリ153及びJSDKアプリ156)に類似したパッケージ形式を有する。
【0046】
図7は、本実施の形態における混在アプリのパッケージ形式を説明するための図である。同図においても、ファイル間の包含関係がツリー形式で表現されている。
【0047】
一つの混在アプリは、一つの書庫ファイル(混在アプリ書庫ファイル)としてパッケージ化される。混在アプリ書庫ファイルは、混在アプリ属性ファイル、CSDKアプリ書庫ファイル、及びJSDKアプリ書庫ファイル等を含む。混在アプリ属性ファイルは、混在アプリの属性情報が記述されたテキスト形式(例えば、XML形式)のファイルである。CSDK書庫ファイルは、混在アプリに属するCSDKアプリ153のSDKアプリ書庫ファイル(図3)である。JSDK書庫ファイルは、混在アプリに属するJSDKアプリ156のSDKアプリ書庫ファイル(図3)である。すなわち、混在アプリ書庫ファイル内には、当該混在アプリに属するSDKアプリのSDKアプリ書庫ファイルが入れ子状態で含まれている。なお、同図は、CSDKアプリ153及びJSDKアプリ156がそれぞれ一つずつ混在アプリに含まれている例に対応するが、CSDKアプリ153若しくはJSDKアプリ156のいずれか一方又は双方に関して、複数が混在アプリに含まれていてもよい。この場合、複数のCSDK書庫ファイル又は複数のJSDK書庫ファイルが混在アプリ書庫ファイルに含まれる。
【0048】
なお、混在アプリは、必ずしも書庫ファイル化されなくてもよい。例えば、混在アプリの流通媒体となる記録媒体(例えば、SDカード等)において、混在アプリを構成するファイルが通常の形態で記録されていてもよい。この際、当該記録媒体において、ディレクトリが形成され、ディレクトリ内に各ファイルが配置されてもよい。
【0049】
図8は、混在アプリ属性ファイルの構成例を示す図である。同図に示されるように、混在アプリ属性ファイルは、SDKアプリ属性ファイルに含まれる項目を含む。各項目の対象は、混在アプリである。例えば、アプリケーション名やアプリケーションIDは、混在アプリの名前又は識別子である。混在アプリは、CSDKアプリ153とJSDKアプリ156とを含む抽象的な存在として、又はCSDKアプリ153及びJSDKアプリ156の集合体として把握することができる。したがって、混在アプリのアプリケーション名及びアプリケーションID等は、当該抽象的な存在若しくは当該集合体に関する名前又は識別子である。なお、混在アプリのタイプはJSDKアプリ156とされる。後述されるように、CSDK管理部152に対して、混在アプリをJSDKアプリ156として認識させるためである。
【0050】
混在アプリ属性ファイルは、更に、子アプリごとに、子アプリ情報を含む。子アプリとは、混在アプリに含まれるCSDKアプリ153又はJSDKアプリ156のことをいう。すなわち、本実施の形態では、混在アプリと当該混在アプリに含まれるSDKアプリとの関係は、親子関係として把握される。子アプリ情報は、子アプリのタイプ、子アプリのアプリケーションID、及び子アプリのファイル名等を含む。子アプリのファイル名とは、混在アプリ書庫ファイル内における、CSDK書庫ファイル又はJSDK書庫ファイルのファイル名である。
【0051】
なお、混在アプリが形成される例としては、CSDKアプリ153とJSDKアプリ156との間に利用関係が有る場合が挙げられる。また、CSDKアプリ153及びJSDKアプリ156の間に直接的な利用関係が無くても、双方がインストールされないと、所定のサービスを提供できない場合も混在アプリが形成される一例として挙げられる。
【0052】
続いて、混在アプリのインストール及びアンインストールについて説明する。
図9は、第一の実施の形態における混在アプリのインストール及びアンインストールの概要を説明するための図である。
【0053】
同図に示されるように、JSDK管理部1551は、混在アプリに含まれるSDKアプリに関して、JSDKアプリ156のみならず、CSDKアプリ153についても、インストール処理及びアンインストール処理を制御する。具体的には、JSDK管理部1551は、混在アプリに含まれるJSDKアプリ156の属性情報及び実行形式をJSDK属性一覧記憶部171又はJSDK記憶部172に記憶するだけでなく、混在アプリに含まれるCSDKアプリ153の属性情報及び実行形式をCSDK属性一覧記憶部161又はCSDK記憶部162に記憶する。
【0054】
混在アプリに含まれるJSDKアプリ156及びCSDKアプリ153の双方に関してJSDK管理部1551がインストール処理又はアンインストール処理を制御することで、インストール又はアンインストールに関する指示の受け付け口をJSDKアプリ156に一本化することができる。具体的には、ユーザから見た場合、一つの混在アプリに関して一回分の操作指示を入力することで、当該混在アプリに含まれるCSDKアプリ153及びJSDKアプリ156の双方について、インストール又はアンインストールを実行可能とすることができる。すなわち、仮に、混在アプリに含まれるSDKアプリに関して、CSDKアプリ153のインストール又はアンインストールはCSDK管理部152が実行し、JSDKアプリ156のインストール又はアンインストールはJSDK管理部1551が実行するようにしたとする。この場合、ユーザは、CSDK管理部152とJSDK管理部1551とのそれぞれに対して、操作指示を入力する必要がある。本実施の形態の画像形成装置10では、そのような煩雑な操作からユーザを解放することができる。なお、一回分の操作指示とは、必ずしも、1ステップの入力操作を意味するものではない、複数の画面遷移を伴い、複数回の入力が要求される場合であっても、操作対象が一つの混在アプリに関する入力であれば、一回分に相当する。
【0055】
混在アプリのインストール及びアンインストールに関して、更に詳しく説明する。図10は、第一の実施の形態における混在アプリのインストール処理の処理手順の一例を説明するためのフローチャートである。また、図11は、第一の実施の形態における混在アプリのインストール処理の処理手順の一例を説明するためのシーケンス図である。図10及び図11に関して、同一ステップには同一符号が付されている。
【0056】
ステップS101において、JSDK管理部1551は、混在アプリのインストール要求を受け付ける。混在アプリのインストール要求は、SDKアプリと同様に、CSDK管理部152によって操作パネル15に表示されるアプリ管理画面510を介して入力される。すなわち、CSDK管理部152は、画像形成装置10にセットされているSDカード80に記録されている混在アプリ書庫ファイルに含まれている混在アプリ属性ファイルに記録されている混在アプリのアプリケーション名等を、インストール候補として、アプリ管理画面510に表示させる。ユーザは、アプリ管理画面510において混在アプリをインストール対象として選択する。すなわち、ユーザは、一つの混在アプリに関して一回分のインストール指示を入力する。CSDK管理部152は、選択された混在アプリのインストール要求をJSDK管理部1551に送信する。上述したように、混在アプリのタイプは、JSDKアプリ156を示す値とされている。したがって、CSDK管理部152から見て、混在アプリはJSDKアプリ156として見えるからである。当該インストール要求が、ステップS101における要求に相当する。
【0057】
続いて、JSDK管理部1551は、混在アプリの属性情報の登録処理を実行する(S102)。具体的には、JSDK管理部1551は、当該混在アプリの混在アプリ書庫ファイルを、例えば、HDD114における作業用の記憶領域(以下、「作業用フォルダ」という。)に解凍する。その結果、混在アプリ書庫ファイルに含まれている混在アプリ属性ファイル、CSDKアプリ書庫ファイル、及びJSDKアプリ書庫ファイル等が、作業用フォルダに展開される。JSDK管理部1551は、当該混在アプリ属性ファイルに含まれている属性情報を、JSDK属性一覧記憶部171に記憶する。すなわち、当該混在アプリの存在が、一つのJSDKアプリ156として画像形成装置10に登録される。
【0058】
続いて、JSDK管理部1551は、当該混在アプリの子アプリであるJSDKアプリ156のインストール処理を実行する(S103)。具体的には、JSDK管理部1551は、作業用フォルダに展開された混在アプリ属性ファイルの子アプリ情報を参照して、子アプリのタイプがJSDKアプリ156を示す子アプリのファイル名を特定する。JSDK管理部1551は、当該ファイル名に係るJSDK書庫ファイルを作業用フォルダに解凍する。その結果、当該JSDK書庫ファイルに含まれているSDKアプリ属性ファイル及び実行形式ファイルが、作業用フォルダに展開される。JSDK管理部1551は、当該SDKアプリ属性ファイルに含まれている属性情報を、JSDK属性一覧記憶部171に記憶する。JSDK管理部1551は、また、当該実行形式ファイルを、JSDK記憶部172に記憶する。この際、JSDK管理部1551は、JSDK属性一覧記憶部171に記憶された属性情報とJSDK記憶部172に記憶された実行形式ファイルとを関連付けておく。例えば、JSDK管理部1551は、JSDK属性一覧記憶部171の属性情報に対して、JSDK記憶部172における実行形式ファイルの位置情報(例えば、ファイルパス名)を付加する。なお、混在アプリに複数のJSDKアプリ156が含まれている場合、ステップS103は、JSDKアプリ156の数だけ実行される。
【0059】
続いて、JSDK管理部1551は、当該混在アプリの子アプリであるCSDKアプリ153のインストールの要否を判定する(S104)。具体的には、JSDK管理部1551は、当該CSDKアプリ153に関する属性情報が、CSDK属性一覧記憶部161に記憶されているか否かを判定する。より詳しくは、JSDK管理部1551は、作業用フォルダに展開された混在アプリ属性ファイルの子アプリ情報を参照して、子アプリのタイプがCSDKアプリ153を示す子アプリのファイル名を特定する。CSDK管理部152は、当該ファイル名に係るCSDK書庫ファイルを作業用フォルダに解凍する。その結果、当該CSDK書庫ファイルに含まれているSDKアプリ属性ファイル及び実行形式ファイルが、作業用フォルダに展開される。JSDK管理部1551は、当該SDK属性ファイルに含まれている、アプリケーション名、アプリケーションID、及びバージョンに係る属性情報が、CSDK属性一覧記憶部161に記憶されているか否かを判定する。すなわち、過去のインストール作業において、当該CSDKアプリ153が単独でインストールされている可能性がある。そこで、ステップS104では、当該CSDKアプリ153のインストールの有無が判定される。
【0060】
当該CSDKアプリ153のインストールが不要な場合、すなわち、当該CSDKアプリ153がインストールされている場合、JSDK管理部1551は、混在アプリのインストール処理を終了させる。
【0061】
一方、当該CSDKアプリ153のインストールが必要な場合、すなわち、当該CSDKアプリ153がインストールされていない場合、JSDK管理部1551は、当該CSDKアプリ153のインストールの可否を判定する(S105)。例えば、当該CSDKアプリ153のCSDK属性ファイルの必要リソースに指定されているリソース量分の空きの有無が確認される。また、CSDKアプリ153のインストール数が、上限に達していないか否かが確認される。
【0062】
当該CSDKアプリ153のインストールが可能な場合、JSDK管理部1551は、当該CSDKアプリ153のインストール処理を実行する(S106)。具体的には、JSDK管理部1551は、当該CSDKアプリ153のSDKアプリ属性ファイルに含まれている属性情報を、CSDK属性一覧記憶部161に記憶する。JSDK管理部1551は、また、当該CSDKアプリ153の実行形式ファイルを、CSDK記憶部162に記憶する。この際、JSDK管理部1551は、CSDK属性一覧記憶部161に記憶された属性情報とCSDK記憶部162に記憶された実行形式ファイルとを関連付けておく。例えば、JSDK管理部1551は、CSDK属性一覧記憶部161の属性情報に対して、CSDK記憶部162における実行形式ファイルの位置情報(例えば、ファイルパス名)を付加する。
【0063】
当該インストール処理に成功すると、JSDK管理部1551は、混在アプリのインストール処理を終了させる。この場合、ユーザは、画像形成装置10を再起動させる。インストール処理の結果を有効化するためである。
【0064】
一方、当該CSDKアプリ153のインストールが不可能な場合、又は当該CSDKアプリ153のインストール処理に失敗した場合、JSDK管理部1551は、例えば、操作パネル15にエラーメッセージを表示させて(S107)、混在アプリのインストール処理を終了させる。なお、混在アプリに複数のCSDKアプリ153が含まれている場合、ステップS104以降は、CSDKアプリ153の数だけ実行される。
【0065】
なお、混在アプリの子アプリとしてインストールされたCSDKアプリ153の起動及び停止は、CSDK管理部152によって実行される。例えば、CSDK管理部152は、画像形成装置10の起動時において、又はアプリ管理画面510を介して入力される起動指示に応じて、CSDK記憶部162に記憶されている実行形式ファイルを起動させる。
【0066】
また、混在アプリの子アプリとしてインストールされたJSDKアプリ156の起動及び停止は、JSDK管理部1551によって実行される。例えば、JSDK管理部1551は、画像形成装置10の起動時において、又はアプリ管理画面510を介して入力される起動指示に応じて、JSDK記憶部172に記憶されている実行形式ファイルを起動させる。
【0067】
続いて、混在アプリのアンインストール処理について説明する。図12は、第一の実施の形態における混在アプリのアンインストール処理の処理手順の一例を説明するための図である。また、図13は、第一の実施の形態における混在アプリのアンインストール処理の処理手順の一例を説明するためのシーケンス図である。図12及び図13に関して、同一ステップには同一符号が付されている。
【0068】
ステップS201において、JSDK管理部1551は、混在アプリのアンインストール要求を受け付ける。当該アンインストール要求は、次にように受け付けられる。
【0069】
CSDK管理部152は、CSDK属性一覧記憶部161又はJSDK属性一覧記憶部171が記憶する属性情報の一覧に基づいて、画像形成装置10にインストールされているCSDKアプリ153、JSDKアプリ156、及び混在アプリのアプリケーション名等の一覧を、操作対象候補としてアプリ管理画面510に表示させる。図10又は図11のステップS102において説明したように、混在アプリの属性情報もJSDK属性一覧記憶部171に記憶されるため、混在アプリのアプリケーション名等も操作対象候補として表示される。但し、CSDK管理部152は、混在アプリの子アプリであるCSDKアプリ153及びJSDKアプリ156は、操作対象候補から除外する。そうすることで、アンインストール時においても、ユーザには、混在アプリの存在のみを提示することができる。混在アプリの子アプリであるCSDKアプリ153及びJSDKアプリ156は、混在アプリの属性情報の子アプリ情報に基づいて特定可能である。すなわち、子アプリ情報に含まれているアプリケーション名及びアプリケーションIDに基づいて、混在アプリの子アプリであるCSDKアプリ153又はJSDKアプリ156を特定可能である。
【0070】
ステップS201では、このように表示された操作対象候補の一覧の中から、混在アプリが選択され、アンインストールが指示されることにより、JSDK管理部1551は、混在アプリのアンインストール要求を受け付ける。
【0071】
続いて、JSDK管理部1551は、当該混在アプリの子アプリであるJSDKアプリ156に関して、アンインストール処理を実行する(S202)。具体的には、JSDK管理部1551は、当該JSDKアプリ156に関して、属性情報をJSDK属性一覧記憶部171より削除し、当該属性情報に関連付けられている実行形式ファイルをJSDK記憶部172より削除する。なお、複数のJSDKアプリ156が当該混在アプリの子アプリである場合、ステップS103は、当該複数のJSDKアプリ156の数だけ実行される。
【0072】
続いて、JSDK管理部1551は、当該混在アプリの子アプリであるCSDKアプリ153に関して、アンインストールの要否を判定する(S203)。具体的には、JSDK管理部1551は、当該CSDKアプリ153に関する属性情報が、CSDK属性一覧記憶部161に記憶されているか否かを確認する。
【0073】
当該属性情報がCSDK属性一覧記憶部161に記憶されていない場合、すなわち、当該CSDKアプリ153がインストールされていない場合、JSDK管理部1551は、混在アプリのアンインストール処理を終了させる。
【0074】
一方、当該属性情報がCSDK属性一覧記憶部161に記憶されている場合、すなわち、当該CSDKアプリ153がインストールされている場合、JSDK管理部1551は、当該CSDKアプリ153のアンインストール処理を実行する(S204)。具体的には、JSDK管理部1551は、当該CSDKアプリ153に関して、属性情報をCSDK属性一覧記憶部161より削除し、当該属性情報に関連付けられている実行形式ファイルをCSDK記憶部162より削除する。当該CSDKアプリ153のアンインストール処理に失敗した場合、JSDK管理部1551は、例えば、エラーメッセージ等を操作パネル15に表示させ(S206)、混在アプリのアンインストール処理を終了させる。
【0075】
一方、当該アンインストール処理に成功した場合、JSDK管理部1551は、当該混在アプリの属性情報を、JSDK属性一覧記憶部171より削除する(S205)。
【0076】
なお、複数のCSDKアプリ153が当該混在アプリの子アプリである場合、ステップS203以降は、当該複数のCSDKアプリ153の数だけ実行される。
【0077】
ところで、混在アプリのインストール及びアンインストールに関する指示は、ネットワークを介して接続するPC(Personal Computer)等の情報処理装置において入力されてもよい。すなわち、操作パネル15の位置付けとして、斯かる情報処理装置が用いられてもよい。この場合のインストール処理(リモートインストール処理)の処理手順について説明する。
【0078】
図14は、第一の実施の形態における混在アプリのリモートインストール処理の処理手順の一例を説明するためのシーケンス図である。図14中、図11と同一ステップには同一ステップ番号を付し、その説明は省略する。
【0079】
図14では、ステップS101が、ステップS101aに置き換わっている。リモートインストールでは、情報処理装置からのインストール要求が、ネットワークを介し受信される。この場合、当該インストール要求と共に、混在アプリ書庫ファイルが、ネットワークを介して転送される。
【0080】
また、JSDK管理部1551は、インストール処理が完了すると、完了通知を情報処理装置に送信する(S107)。当該完了通知に応じ、情報処理装置は、再起動要求を画像形成装置10に送信する(S108)。当該再起動要求が受信されると、OS159は、画像形成装置10を再起動させる(S109)。すなわち、リモートインストールの場合、ユーザは、画像形成装置10の傍に居ないため、電源ボタンを操作することにより画像形成装置10の再起動を実行させることはできない。そこで、リモートインストールでは、ネットワークを介して、再起動の実行が指示される。
【0081】
なお、アンインストールに関しては、操作パネル15を介して行われる操作が、情報処理装置において行われる点を除いて、図12及び図13において説明した処理と同様の処理が実行される。
【0082】
上述したように、第一の実施の形態によれば、混在アプリのインストール及びアンインストールに関して、ユーザの操作負担を軽減させることができる。すなわち、ユーザは、混在アプリに含まれるCSDKアプリ153及びJSDKアプリ156ごとにインストール指示又はアンインストール指示を入力する必要はなく、混在アプリを一つのアプリケーションプログラムとして操作することができる。したがって、2以上のプログラムが混在したプログラムに関する操作性を向上させることができる。
【0083】
なお、第一の実施の形態において、CSDKアプリ153は、第一のプログラムの一例である。JSDKアプリ156は、第二のプログラムの一例である。混在アプリは、第三のプログラムの一例である。CSDK管理部152は、第一の管理手段の一例である。JSDK管理部1551は、第二の管理手段の一例である。CSDK属性一覧記憶部161は、第一の記憶手段の一例である。JSDK属性一覧記憶部171は、第二の記憶手段の一例である。操作パネル15は、表示手段の一例である。
【0084】
なお、本実施の形態では、第一のアプリケーションプログラムと第二のアプリケーションプログラムとの区別(又は種別)は、主に、プログラム言語の相違が基準とされていた。但し、第一のアプリケーションプログラムと第二のアプリケーションプログラムとの区別は、プログラム言語の相違に限定されない。例えば、プログラム言語が同じであっても、パッケージ形式の相違等に基づいて、ライフサイクルの管理形態が相互に異なる関係にあるアプリケーションプログラム同士であれば、第一のアプリケーションプログラムと第二のアプリケーションプログラムとの関係に相当しうる。
【0085】
また、本実施の形態では、画像形成装置10を機器の一例として説明したが、本実施の形態は、画像形成装置10以外の機器に適用されてもよい。この場合、当該機器は、プログラムをインストール可能であり、当該プログラムの制御によって各種のサービス又は機能を提供可能であればよい。
【0086】
次に、第二の実施の形態について説明する。図15は、第二の実施の形態における混在アプリのインストール及びアンインストールの概要を説明するための図である。
【0087】
第二の実施の形態において、JSDK管理部1551が混在アプリのインストール要求を受け付けるところまでは第一の実施の形態と同様である。したがって、第二の実施の形態においても、ユーザは、一つの混在アプリに関して、一回分のインストール指示を入力すればよい。
【0088】
JSDK管理部1551は、インストール要求に係る混在アプリ書庫ファイルに含まれているCSDK書庫ファイルを取得し(S301)、当該CSDK書庫ファイルを指定して、CSDKアプリ153のインストール要求をCSDK管理部152に送信する(S302)。
【0089】
CSDK管理部152は、当該CSDK書庫ファイルに含まれているSDK属性ファイルの属性情報と実行形式ファイルとを、CSDK属性一覧記憶部161又はCSDK記憶部162に記憶する(S303、S304)。
【0090】
JSDK管理部1551は、また、インストール要求に係る混在アプリ書庫ファイルに含まれているJSDK書庫ファイルを取得する(S305)。JSDK管理部1551は、当該JSDK書庫ファイルに含まれているSDK属性ファイルの属性情報と実行形式ファイルとを、JSDK属性一覧記憶部171又はJSDK記憶部172に記憶する(S306、S307)。
【0091】
上述したように、第二の実施の形態においても、混在アプリの操作に関するユーザの操作負担を軽減することができる。
【0092】
但し、第二の実施の形態では、混在アプリの存在を意識していない画像形成装置10(図5のケースのみ考慮されている画像形成装置10)に関して、JSDK管理部1551のみならず、CSDK管理部152についても改変を行う必要がある。すなわち、第二の実施の形態のCSDK管理部152は、JSDK管理部1551からインストール要求を受け付けるためのインタフェースを実装する必要がある。ここで、CSDK管理部152は、ROM113に記憶されている部分である(図2参照)。したがって、既に市場において流通又は利用されている画像形成装置10に関して、第二の実施の形態を適用するのは困難である。したがって、第二の実施の形態は、これから出荷される画像形成装置10に対して適用が容易な実施形態であるといえる。
【0093】
一方、第一の実施の形態では、JSDK管理部1551の改変は必要なものの、CSDK管理部152の改変は不要である。そして、JSDK管理部1551は、CSDKアプリ153の一つであるJSDKプラットフォーム155に含まれている部分である。すなわち、JSDK管理部1551は、は、アップデートが容易な部分である。したがって、既に市場において流通又は利用されている画像形成装置10に対して第一の実施の形態を適用する場合、JSDKプラットフォーム155が、JSDK管理部1551に関して混在アプリのインストール及びアンインストール機能が追加されたものにアップデートされればよい。このように、既存の画像形成装置10に関して、容易に適用可能である点に関しても、第一の実施の形態は優れている。
【0094】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【0095】
10 画像形成装置
11 コントローラ
12 スキャナ
13 プリンタ
14 モデム
15 操作パネル
16 ネットワークインタフェース
17 SDカードスロット
80 SDカード
111 CPU
112 RAM
113 ROM
114 HDD
115 NVRAM
151 標準アプリ
152 CSDK管理部
153 CSDKアプリ
154 JVM
155 JSDKプラットフォーム
156 JSDKアプリ
157 VAS
158 コントロールサービス
159 OS
161 CSDK属性一覧記憶部
162 CSDK記憶部
171 JSDK属性一覧記憶部
172 JSDK記憶部
1511 スキャンアプリ
1512 印刷アプリ
1513 コピーアプリ
1514 FAXアプリ
1551 JSDK管理部
【先行技術文献】
【特許文献】
【0096】
【特許文献1】特開2007−49677号公報

【特許請求の範囲】
【請求項1】
第一のプログラムのインストール要求に応じ、前記第一のプログラムの属性情報を第一の記憶手段に記憶する第一の管理手段と、
第二のプログラムのインストール要求に応じ、前記第二のプログラムの属性情報を第二の記憶手段に記憶する第二の管理手段とを有し、
前記第二の管理手段は、前記第一のプログラムと前記第二のプログラムとを含む第三のプログラムのインストール要求に応じ、当該第三のプログラムの属性情報と、当該第三のプログラムに含まれる前記第二のプログラムの属性情報とを前記第二の記憶手段に記憶し、当該第三のプログラムに含まれる前記第一のプログラムの属性情報を前記第一の記憶手段に記憶する機器。
【請求項2】
前記第三のプログラムの属性情報には、当該第三のプログラムに含まれる前記第一のプログラムの識別情報及び前記第二のプログラムの識別情報が含まれており、
前記第一の記憶手段が記憶する属性情報及び前記第二の記憶手段が記憶する属性情報に基づく、当該機器にインストールされているプログラムの一覧の表示に際し、前記第三のプログラムの属性情報に含まれている前記識別情報に係る前記第一のプログラム又は前記第二のプログラムを表示対象から除外する表示手段を有する請求項1記載の機器。
【請求項3】
前記第二の管理手段は、前記一覧の中から選択された前記第三のプログラムのアンインストール要求に応じ、当該第三のプログラムの属性情報に含まれている前記識別情報に係る前記第一のプログラムの属性情報を前記第一の記憶手段より削除し、当該第三のプログラムの属性情報と、当該属性情報に含まれている前記識別情報に係る前記第二のプログラムの属性情報とを前記第二の記憶手段より削除する請求項2記載の機器。
【請求項4】
前記第一のプログラムとしてインストールされるプログラムが、前記機器を前記第二の管理手段として機能させる請求項1乃至3いずれか一項記載の機器。
【請求項5】
第一のプログラムのインストール要求に応じ、前記第一のプログラムの属性情報を第一の記憶手段に記憶する第一の管理手順と、
第二のプログラムのインストール要求に応じ、前記第二のプログラムの属性情報を第二の記憶手段に記憶する第二の管理手順と、
前記第一のプログラムと前記第二のプログラムとを含む第三のプログラムのインストール要求に応じ、当該第三のプログラムの属性情報と、当該第三のプログラムに含まれる前記第二のプログラムの属性情報とを前記第二の記憶手段に記憶し、当該第三のプログラムに含まれる前記第一のプログラムの属性情報を前記第一の記憶手段に記憶する第三の管理手順とを機器が実行する情報処理方法。
【請求項6】
請求項5記載の情報処理方法を機器に実行させるための情報処理プログラム。
【請求項7】
請求項6記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2013−37511(P2013−37511A)
【公開日】平成25年2月21日(2013.2.21)
【国際特許分類】
【出願番号】特願2011−172699(P2011−172699)
【出願日】平成23年8月8日(2011.8.8)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】