(57)【特許請求の範囲】
【請求項１】
第一のプログラムのインストール要求に応じ、前記第一のプログラムの属性情報を第一の記憶手段に記憶する第一の管理手段と、
第二のプログラムのインストール要求に応じ、前記第二のプログラムの属性情報を第二の記憶手段に記憶する第二の管理手段とを有し、
前記第二の管理手段は、前記第一のプログラムと前記第二のプログラムとを含む第三のプログラムのインストール要求に応じ、当該第三のプログラムの属性情報と、当該第三のプログラムに含まれる前記第二のプログラムの属性情報とを前記第二の記憶手段に記憶し、当該第三のプログラムに含まれる前記第一のプログラムの属性情報を前記第一の記憶手段に記憶する機器。
【請求項２】
前記第三のプログラムの属性情報には、当該第三のプログラムに含まれる前記第一のプログラムの識別情報及び前記第二のプログラムの識別情報が含まれており、
前記第一の記憶手段が記憶する属性情報及び前記第二の記憶手段が記憶する属性情報に基づく、当該機器にインストールされているプログラムの一覧の表示に際し、前記第三のプログラムの属性情報に含まれている前記識別情報に係る前記第一のプログラム又は前記第二のプログラムを表示対象から除外する表示手段を有する請求項１記載の機器。
【請求項３】
前記第二の管理手段は、前記一覧の中から選択された前記第三のプログラムのアンインストール要求に応じ、当該第三のプログラムの属性情報に含まれている前記識別情報に係る前記第一のプログラムの属性情報を前記第一の記憶手段より削除し、当該第三のプログラムの属性情報と、当該属性情報に含まれている前記識別情報に係る前記第二のプログラムの属性情報とを前記第二の記憶手段より削除する請求項２記載の機器。
【請求項４】
前記第一のプログラムとしてインストールされるプログラムが、前記機器を前記第二の管理手段として機能させる請求項１乃至３いずれか一項記載の機器。
【請求項５】
第一のプログラムのインストール要求に応じ、前記第一のプログラムの属性情報を第一の記憶手段に記憶する第一の管理手順と、
第二のプログラムのインストール要求に応じ、前記第二のプログラムの属性情報を第二の記憶手段に記憶する第二の管理手順と、
前記第一のプログラムと前記第二のプログラムとを含む第三のプログラムのインストール要求に応じ、当該第三のプログラムの属性情報と、当該第三のプログラムに含まれる前記第二のプログラムの属性情報とを前記第二の記憶手段に記憶し、当該第三のプログラムに含まれる前記第一のプログラムの属性情報を前記第一の記憶手段に記憶する第三の管理手順とを機器が実行する情報処理方法。
【請求項６】
請求項５記載の情報処理方法を機器に実行させるための情報処理プログラム。
【請求項７】
請求項６記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機器、情報処理方法、情報処理プログラム、及び記録媒体に関する。
【背景技術】
【０００２】
従来、その出荷後にアプリケーションプログラム等をプラグインとして追加可能な画像形成装置が存在する。例えば、特許文献１に記載された画像形成装置には、Ｃ言語によって開発されたアプリケーション（以下、「Ｃアプリ」という。）と、Ｊａｖａ（登録商標）言語によって開発されたアプリケーション（以下、「Ｊアプリ」という。）とをインストールすることができる。
【０００３】
但し、Ｃアプリ用のプラットフォームとＪアプリ用のプラットフォームとは異なる。具体的には、Ｊアプリ用のプラットフォームは、Ｃアプリ用のプラットフォーム上に、Ｊａｖａ（登録商標）用のＡＰＩ（Application Program Interface）を備えたプラットフォーム（特許文献１におけるＪＳＤＫプラットフォーム）が存在する。
【０００４】
ＪＳＤＫプラットフォームは、Ｃアプリ用のプラットフォームに対して機種依存性が著しく低下されている。すなわち、ＪＳＤＫプラットフォームが有するＡＰＩは、機種に対して平滑化されている。したがって、アプリケーションの開発者からすると、開発対象のアプリケーションをＪアプリとして作成する方が有利である。Ｊアプリは、機種ごとにソースコードを変える必要性が低く、開発コストを削減することができるからである。
【０００５】
しかし、ＪＳＤＫプラットフォームが提供しているＡＰＩの機能範囲は、Ｃアプリ用のプラットフォームが提供しているＡＰＩの機能範囲よりも狭い。すなわち、純粋なＪアプリが実現可能な機能は、純粋なＣアプリによって実現可能な機能よりも少ない。ここで、純粋なＪアプリとは、ＪＳＤＫプラットフォームにおいて動作するプログラムモジュールのみによって構成されるＪアプリをいう。
【０００６】
したがって、Ｊアプリのみでは実現できない機能に関しては、Ｃアプリとして実装する必要がある。その場合、一つのアプリケーションとして販売されるパッケージの中に、ＪアプリとしてのモジュールとＣアプリとしてのモジュールとが混在することになる。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、ＪアプリとＣアプリとが混在したアプリケーションは、ユーザから見れば一つのアプリケーションであるにも拘わらず、斯かる構成のアプリケーションの存在が考慮されていない画像形成装置から見れば、二つのアプリケーションである。したがって、ユーザは、２回分のインストール作業を行わなければならない（インストールの実行指示を２回行わなければならない）という問題がある。
【０００８】
本発明は、上記の点に鑑みてなされたものであって、２以上のプログラムが混在したプログラムに関する操作性を向上させることのできる機器、情報処理方法、情報処理プログラム、及び記録媒体の提供を目的とする。
【課題を解決するための手段】
【０００９】
そこで上記課題を解決するため、機器は、第一のプログラムのインストール要求に応じ、前記第一のプログラムの属性情報を第一の記憶手段に記憶する第一の管理手段と、第二のプログラムのインストール要求に応じ、前記第二のプログラムの属性情報を第二の記憶手段に記憶する第二の管理手段とを有し、前記第二の管理手段は、前記第一のプログラムと前記第二のプログラムとを含む第三のプログラムのインストール要求に応じ、当該第三のプログラムの属性情報と、当該第三のプログラムに含まれる前記第二のプログラムの属性情報とを前記第二の記憶手段に記憶し、当該第三のプログラムに含まれる前記第一のプログラムの属性情報を前記第一の記憶手段に記憶する。
【発明の効果】
【００１０】
２以上のプログラムが混在したプログラムに関する操作性を向上させることができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。
【図２】本発明の実施の形態における画像形成装置のソフトウェア構成例を示す図である。
【図３】本実施の形態におけるＳＤＫアプリのパッケージ形式を説明するための図である。
【図４】ＳＤＫアプリ属性ファイルの構成例を示す図である。
【図５】ＳＤＫアプリのライフサイクルの管理形態の概要を説明するための図である。
【図６】ＣＳＤＫ管理部及びＪＳＤＫ管理部の関係を説明するための図である。
【図７】本実施の形態における混在アプリのパッケージ形式を説明するための図である。
【図８】混在アプリ属性ファイルの構成例を示す図である。
【図９】第一の実施の形態における混在アプリのインストール及びアンインストールの概要を説明するための図である。
【図１０】第一の実施の形態における混在アプリのインストール処理の処理手順の一例を説明するための図である。
【図１１】第一の実施の形態における混在アプリのインストール処理の処理手順の一例を説明するためのシーケンス図である。
【図１２】第一の実施の形態における混在アプリのアンインストール処理の処理手順の一例を説明するための図である。
【図１３】第一の実施の形態における混在アプリのアンインストール処理の処理手順の一例を説明するためのシーケンス図である。
【図１４】第一の実施の形態における混在アプリのリモートインストール処理の処理手順の一例を説明するためのシーケンス図である。
【図１５】第二の実施の形態における混在アプリのインストール及びアンインストールの概要を説明するための図である。
【発明を実施するための形態】
【００１２】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。同図において、画像形成装置１０は、コントローラ１１、スキャナ１２、プリンタ１３、モデム１４、操作パネル１５、ネットワークインタフェース１６、及びＳＤカードスロット１７等のハードウェアを有する。
【００１３】
コントローラ１１は、ＣＰＵ１１１、ＲＡＭ１１２、ＲＯＭ１１３、ＨＤＤ１１４、及びＮＶＲＡＭ１１５等を有する。ＲＯＭ１１３には、各種のプログラムやプログラムによって利用されるデータ等が記録されている。ＲＡＭ１１２は、プログラムをロードするための記憶領域や、ロードされたプログラムのワーク領域等として用いられる。ＣＰＵ１１１は、ＲＡＭ１１２にロードされたプログラムを処理することにより、各種の機能を実現する。ＨＤＤ１１４には、プログラムやプログラムが利用する各種のデータ等が記録される。ＮＶＲＡＭ１１５には、各種の設定情報等が記録される。
【００１４】
スキャナ１２は、原稿より画像データを読み取るためのハードウェア（画像読取手段）である。プリンタ１３は、印刷データを印刷用紙に印刷するためのハードウェア（印刷手段）である。モデム１４は、電話回線に接続するためのハードウェアであり、ＦＡＸ通信による画像データの送受信を実行するために用いられる。操作パネル１５は、ユーザからの入力の受け付けを行うためのボタン等の入力手段や、液晶パネル等の表示手段等を備えたハードウェアである。ネットワークインタフェース１６は、ＬＡＮ等のネットワーク（有線又は無線の別は問わない。）に接続するためのハードウェアである。ＳＤカードスロット１７は、ＳＤカード８０に記録されたプログラムを読み取るために利用される。すなわち、画像形成装置１０では、ＲＯＭ１１３に記録されたプログラムだけでなく、ＳＤカード８０に記録されたプログラムもＲＡＭ１１２にロードされ、実行されうる。なお、他の記録媒体（例えば、ＣＤ−ＲＯＭ又はＵＳＢ（Universal Serial Bus）メモリ等）によってＳＤカード８０が代替されてもよい。すなわち、ＳＤカード８０の位置付けに相当する記録媒体の種類は、所定のものに限定されない。この場合、ＳＤカードスロット１７は、記録媒体の種類に応じたハードウェアによって代替されればよい。
【００１５】
図２は、本発明の実施の形態における画像形成装置のソフトウェア構成例を示す図である。同図において、画像形成装置１０は、標準アプリ１５１、ＣＳＤＫ管理部１５２、ＣＳＤＫアプリ１５３、ＪＳＤＫプラットフォーム１５５、ＪＳＤＫアプリ１５６、ＶＡＳ１５７、コントロールサービス１５８、及びＯＳ１５９等を有する。
【００１６】
ＯＳ１５９は、いわゆるＯＳ（Operating System）である。画像形成装置１０上の各ソフトウェアは、ＯＳ１５９上においてプロセス又はスレッドとして動作する。
【００１７】
標準アプリ１５１は、画像形成装置１０に標準的に（出荷時に予め）実装されているアプリケーションの集合である。同図では、スキャンアプリ１５１１、印刷アプリ１５１２、コピーアプリ１５１３、及びＦＡＸアプリ１５１４が例示されている。スキャンアプリ１５１１は、スキャンジョブを実行する。印刷アプリ１５１２は印刷ジョブを実行する。コピーアプリ１５１３は、コピージョブを実行する。ＦＡＸアプリ１５１４は、ＦＡＸの送信ジョブ又は受信ジョブを実行する。
【００１８】
コントロールサービス１５８は、各種のハードウェアリソース等を制御するための機能を上位アプリケーション等に対して提供したり、画像形成装置１０の基盤的な機能等を実行したりするソフトウェアモジュール群である。
【００１９】
ＶＡＳ１５７（Virtual Application Service）は、コントロールサービス１５８のインタフェースをラッピングし、コントロールサービス１５８のバージョンアップに伴うインタフェースの相違点を吸収する。したがって、ＶＡＳ１５７上で動作するプログラム（特に、ＣＳＤＫアプリ１５３）に対しては、コントロールサービス１５８のパージョン間の互換性が保証される。
【００２０】
ＣＳＤＫアプリ１５３及びＪＳＤＫアプリ１５６は、それぞれ、ＳＤＫアプリの一種である。ＳＤＫアプリとは、画像形成装置１０に対するプラグインとして、画像形成装置１０の機能拡張を図るために開発されるアプリケーションをいう。すなわち、画像形成装置１０は、ＳＤＫアプリ用の、公開された専用のＡＰＩ（Application Program Interface）を備える。一つは、ＶＡＳ１５７によって提供されるＣ言語のＡＰＩである。もう一つは、後述されるＪＳＤＫプラットフォーム１５５によって提供されるＪａｖａ（登録商標）言語のＡＰＩである。Ｃ言語のＡＰＩを利用して作成されるＳＤＫアプリを「ＣＳＤＫアプリ１５３」という。Ｊａｖａ（登録商標）言語のＡＰＩを利用して作成されるＳＤＫアプリを「ＪＳＤＫアプリ１５６」という。なお、同図において、ＣＳＤＫアプリ１５３は、一つのブロック（矩形）によって表現されているが、複数のＣＳＤＫアプリ１５３が一台の画像形成装置１０にインストールされうる。
【００２１】
ＣＳＤＫ管理部１５２は、ＣＳＤＫアプリ１５３のライフサイクルを管理する。例えば、ＣＳＤＫ管理部１５２は、ＣＳＤＫアプリ１５３のインストール処理（アップデート処理も含む）、起動処理、停止処理、及びアンインストール処理等を制御する。
【００２２】
ＪＳＤＫプラットフォーム１５５は、ＪＳＤＫアプリ１５６の実行環境を提供する。すなわち、ＪＳＤＫプラットフォーム１５５は、Ｊａｖａ（登録商標）言語によるＡＰＩをＪＳＤＫアプリ１５６に対して提供する。ＪＳＤＫプラットフォーム１５５は、ＣＳＤＫアプリ１５３の一つである。したがって、ＪＳＤＫプラットフォーム１５５は、例えば、ＳＤカード８０等の記録媒体から、又はネットワークを介して画像形成装置１０にインストールされる。ＪＳＤＫプラットフォーム１５５は、ＯＳ１５９上で一つのプロセスとして起動される。
【００２３】
ＪＳＤＫプラットフォーム１５５は、また、ＪＶＭ１５４及びＪＳＤＫ管理部１５５１等を含む。
【００２４】
ＪＶＭ１５４は、いわゆるＪａｖａ（登録商標）仮想マシン（Java（登録商標） Virtual Machine）であり、Ｊａｖａ（登録商標）バイトコードによって定義された命令を解釈して実行する。
【００２５】
ＪＳＤＫ管理部１５５１は、ＪＳＤＫアプリ１５６のライフサイクルを管理する。例えば、ＪＳＤＫ管理部１５５１は、ＪＳＤＫアプリ１５６のインストール処理（アップデート処理も含む）、起動処理、停止処理、及びアンインストール処理等を制御する。なお、ＪＳＤＫ管理部１５５１は、一つのＪＳＤＫアプリ１５６として実装されてもよい。
【００２６】
図２において、一点鎖線Ｌによって囲まれる部分は、ＳＤカード８０等の記録媒体、又はネットワークを介してインストールされる部分である。一方、一点鎖線Ｌの外側の部分は、画像形成装置１０の出荷時にＲＯＭ１１３に記録される部分である。換言すれば、一点鎖線Ｌによって囲まれる部分は、ユーザの利用形態に応じた機能拡張のために追加される部分であるといえる。
【００２７】
続いて、ＳＤＫアプリのパッケージ形式について説明する。パッケージ形式とは、流通時におけるファイル構造をいう。すなわち、パッケージ形式とは、ＳＤカード８０等の記録媒体に記録された状態におけるファイル構造、又はネットワークで転送される際のファイル構造をいう。
【００２８】
図３は、本実施の形態におけるＳＤＫアプリのパッケージ形式を説明するための図である。同図では、ファイル間の包含関係がツリー形式で表現されている。
【００２９】
一つのＳＤＫアプリ（ＣＳＤＫアプリ１５３又はＪＳＤＫアプリ１５６）は、一つの書庫ファイル（ＳＤＫ書庫ファイル）としてパッケージ化される。ＳＤＫ書庫ファイルは、ＳＤＫアプリ属性ファイル及び実行形式ファイル等を含む。ＳＤＫアプリ属性ファイルは、ＳＤＫアプリの属性情報が記述されたテキスト形式（例えば、ＸＭＬ（eXtensible Markup Language）形式）のファイルである。実行形式ファイルは、ＳＤＫアプリの実行形式のファイルである。なお、一つのＳＤＫアプリは、複数の実行形式ファイルによって構成されてもよい。また、ＣＳＤＫアプリ１５３の実行形式ファイルと、ＪＳＤＫアプリ１５６の実行形式ファイルとのファイル形式は異なる。前者は、ネイティブコードのファイルであり、後者は、Ｊａｖａ（登録商標）のバイトコードのファイルである。
【００３０】
なお、ＳＤＫアプリは、必ずしも書庫ファイル化されなくてもよい。例えば、ＳＤＫアプリの流通媒体となる記録媒体（例えば、ＳＤカード等）において、ＳＤＫアプリを構成するファイルが通常の形態で記録されていてもよい。この際、当該記録媒体において、ディレクトリが形成され、ディレクトリ内に各ファイルが配置されてもよい。
【００３１】
図４は、ＳＤＫアプリ属性ファイルの構成例を示す図である。ＳＤＫアプリ属性ファイルには、同図に示されるような属性項目に関する値が記述されている。
【００３２】
アプリケーション名は、当該ＳＤＫアプリの名前である。アプリケーションＩＤは、当該ＳＤＫアプリの識別情報の一例である。バージョンは、当該ＳＤＫアプリのバージョンである。説明は、当該ＳＤＫアプリの機能説明等である。タイプは、当該ＳＤＫアプリがＣＳＤＫアプリ１５３であるかＪＳＤＫアプリ１５６であるかの種別である。例えば、ＣＳＤＫ管理部１５２は、アプリ管理画面５１０において操作対象とされたＳＤＫアプリのタイプの値に基づいて、当該ＳＤＫアプリがＣＳＤＫアプリ１５３であるか又はＪＳＤＫアプリ１５６であるかを判定する。必要リソースは、当該ＳＤＫアプリが必要とするリソース量である。必要リソースは、例えば、ＲＡＭ１１２の使用量、ＮＶＲＡＭ１１５の使用量、及びＨＤＤ１１４の使用量等である。動作デフォルト値は、当該ＳＤＫアプリの動作時の各種パラメータの既定値である。インストール設定値は、インストール時における各種パラメータに対する設定値である。
【００３３】
なお、ＳＤＫアプリ属性ファイルの構成は、ＣＳＤＫアプリ１５３とＪＳＤＫアプリ１５６とで完全に一致していなくてもよい。また、ＣＳＤＫアプリ１５３の書庫ファイルと、ＪＳＤＫアプリ１５６の書庫ファイルとの形式（例えば、圧縮形式等）は、相互に異なっていてもよい。
【００３４】
図２の説明及び図３の説明をふまえて、ＳＤＫアプリのライフサイクルの管理形態についてまとめると、図５に示されるようになる。
【００３５】
図５は、ＳＤＫアプリのライフサイクルの管理形態の概要を説明するための図である。同図に示されるように、ＣＳＤＫアプリ１５３に関するインストール、起動、停止、及びアンインストール等に関する要求は、ＣＳＤＫ管理部１５２が受け付ける。ＣＳＤＫ管理部１５２は、当該要求に応じた処理において、必要に応じてＶＡＳ１５７を介してコントロールサービス１５６を呼び出す。なお、ＣＳＤＫアプリ１５３のインストールの際、ＣＳＤＫ管理部１５２は、当該ＣＳＤＫアプリ１５３のＳＤＫ書庫ファイルより、ＳＤＫアプリ属性ファイルを取り出し、当該ＳＤＫアプリ属性ファイルの記述内容を、ＣＳＤＫ属性一覧記憶部１６１に記憶する。また、ＣＳＤＫ管理部１５２は、当該ＳＤＫ書庫ファイルより、実行形式ファルを取り出し、当該実行形式ファイルを、ＣＳＤＫ記憶部１６２に記憶する。ＣＳＤＫ属性一覧記憶部１６１は、画像形成装置１０にインストールされている各ＣＳＤＫアプリ１５３の属性情報の一覧を記憶する記憶部である。ＣＳＤＫ記憶部１６２は、画像形成装置１０にインストールされている各ＣＳＤＫアプリ１５３の実行形式ファイルを記憶する記憶部である。
【００３６】
一方、ＪＳＤＫアプリ１５６に関するインストール、起動、停止、及びアンインストール等に関する要求は、ＪＳＤＫ管理部１５５１が受け付ける。ＪＳＤＫ管理部１５５１は、当該要求に応じた処理において、必要に応じてＶＡＳ１５７を介してコントロールサービス１５６を呼び出す。なお、ＪＳＤＫアプリ１５６のインストールの際、ＪＳＤＫ管理部１５５１は、当該ＪＳＤＫアプリ１５６のＳＤＫ書庫ファイルより、ＳＤＫアプリ属性ファイルを取り出し、当該ＳＤＫアプリ属性ファイルの記述内容を、ＪＳＤＫ属性一覧記憶部１７１に記憶する。また、ＪＳＤＫ管理部１５５１は、当該ＳＤＫ書庫ファイルより、実行形式ファルを取り出し、当該実行形式ファイルを、ＪＳＤＫ記憶部１７２に記憶する。ＪＳＤＫ属性一覧記憶部１７１は、画像形成装置１０にインストールされている各ＪＳＤＫアプリ１５６の属性情報の一覧を記憶する記憶部である。ＪＳＤＫ記憶部１７２は、画像形成装置１０にインストールされている各ＪＳＤＫアプリ１５６の実行形式ファイルを記憶する記憶部である。
【００３７】
なお、ＣＳＤＫ一覧記憶部１６１、ＣＳＤＫ記憶部１６２、ＪＳＤＫ一覧記憶部１７１、及びＪＳＤＫ記憶部１７２は、例えば、ＨＤＤ１１４又はＮＶＲＡＭ１１５等を用いて実現可能である。
【００３８】
続いて、ＣＳＤＫ管理部１５２とＪＳＤＫ管理部１５５１との関係について説明する。図６は、ＣＳＤＫ管理部及びＪＳＤＫ管理部の関係を説明するための図である。
【００３９】
同図に示されるように、ＣＳＤＫ管理部１５２は、各ＣＳＤＫアプリ１５３と、ＪＳＤＫプラットフォーム１５５とのライフサイクルを管理する。上記したように、ＪＳＤＫプラットフォーム１５５もＣＳＤＫアプリ１５３の一つであるため、ＣＳＤＫ管理部１５２の管理下にある。各ＣＳＤＫアプリ１５３及びＪＳＤＫプラットフォーム１５５は、それぞれ別個のプロセスとして起動される。
【００４０】
一方、各ＪＳＤＫアプリ１５６は、ＪＳＤＫ管理部１５５１によって、それぞれ別個のスレッドとしてＪＶＭ１５４上で起動される。
【００４１】
このように、ＣＳＤＫアプリ１５３とＪＳＤＫアプリ１５６とによってそれぞれ管理形態が異なるのは、それぞれのアプリケーションの開発言語が異なる点がその理由の一つとして挙げられる。例えば、ＣＳＤＫ管理部１５２によって、ＪＳＤＫアプリ１５６の制御を直接行おうとすると、Ｃ言語のソースコードの中からＪａｖａ（登録商標）言語によるインタフェースを呼び出さなければならず、高度なプログラミング技術が必要とされると共に、その処理内容が煩雑となるからである。また、ＣＳＤＫアプリ１５３の方はプロセスとして実行され、ＪＳＤＫアプリ１５６の方はスレッドとして実行されるといったように、両者の実行形態が異なる点を考慮しても、ＣＳＤＫアプリ１５３用のアプリケーション管理機構とＪＳＤＫアプリ１５６用のアプリケーション管理機構とを別個に設けた方が、管理機構の単純化といった観点から有利である。
【００４２】
但し、ＣＳＤＫアプリ１５３及びＪＳＤＫアプリ１５６のインストール、アンインストール、起動、又は停止等をユーザに操作させるためのユーザインタフェースは、統合されている。具体的には、当該ユーザインタフェースを提供するアプリ管理画面５１０は、ＣＳＤＫ管理部１５２によって一元的に操作パネル１５に表示される。ＳＤＫアプリに対する操作がインストールの場合、アプリ管理画面５１０には、例えば、ＳＤカード８０に記録されているＳＤＫアプリ（ＣＳＤＫアプリ１５３又はＪＳＤＫアプリ１５６）の一覧が表示される。ユーザは、当該一覧の中から、インストール対象とするＳＤＫアプリを選択する。また、ＳＤＫアプリに対する操作がアンインストール、起動、又は停止の場合、アプリ管理画面５１０には、画像形成装置１０にインストールされているＳＤＫアプリの一覧が表示される。当該一覧情報は、ＣＳＤＫ属性情報記憶部及びＪＳＤＫ属性情報記憶部に基づいて表示される。
【００４３】
ユーザは、当該一覧の中から、アンインストール、起動、又は停止の対象とするＳＤＫアプリを選択する。アプリ管理画面５１０においてＣＳＤＫアプリ１５３が操作対象とされた場合、ＣＳＤＫ管理部１５２が操作指示に応じた処理（インストール、アンインストール、起動、又は停止等）を実行する。一方、アプリ管理画面５１０においてＪＳＤＫアプリ１５６が操作対象とされた場合、ＣＳＤＫ管理部１５２は、操作指示をＪＳＤＫ管理部１５５１に通知する。ＪＳＤＫ管理部１５５１は、ＣＳＤＫ管理部１５２からの通知に応じ、当該操作指示に応じた処理（インストール、アンインストール、起動、又は停止等）を実行する。
【００４４】
なお、ＣＳＤＫ管理部１５２とＪＳＤＫ管理部１５５１との間のやり取りは、例えば、ＨＴＴＰ（HyperText Transfer Protocol）やＳＯＡＰ（Simple Object Access Protocol）等、開発言語の別を問わず簡便に利用できるプロトコルを用いるとよい。そうすることによって、Ｃ言語のソースコードの中からＪａｖａ（登録商標）言語によるインタフェースを呼び出す必要がなくなり、処理内容の煩雑さが解消される。
【００４５】
ところで、本実施の形態では、ＣＳＤＫアプリ１５３及びＪＳＤＫアプリ１５６の双方を含む（双方によって構成される）アプリケーションプログラム（以下、「混在アプリ」という。）が、管理対象とされる。混在アプリは、外見上、一つのＳＤＫアプリとして見える。具体的には、混在アプリは、ＳＤＫアプリ（ＣＳＤＫアプリ１５３及びＪＳＤＫアプリ１５６）に類似したパッケージ形式を有する。
【００４６】
図７は、本実施の形態における混在アプリのパッケージ形式を説明するための図である。同図においても、ファイル間の包含関係がツリー形式で表現されている。
【００４７】
一つの混在アプリは、一つの書庫ファイル（混在アプリ書庫ファイル）としてパッケージ化される。混在アプリ書庫ファイルは、混在アプリ属性ファイル、ＣＳＤＫアプリ書庫ファイル、及びＪＳＤＫアプリ書庫ファイル等を含む。混在アプリ属性ファイルは、混在アプリの属性情報が記述されたテキスト形式（例えば、ＸＭＬ形式）のファイルである。ＣＳＤＫ書庫ファイルは、混在アプリに属するＣＳＤＫアプリ１５３のＳＤＫアプリ書庫ファイル（図３）である。ＪＳＤＫ書庫ファイルは、混在アプリに属するＪＳＤＫアプリ１５６のＳＤＫアプリ書庫ファイル（図３）である。すなわち、混在アプリ書庫ファイル内には、当該混在アプリに属するＳＤＫアプリのＳＤＫアプリ書庫ファイルが入れ子状態で含まれている。なお、同図は、ＣＳＤＫアプリ１５３及びＪＳＤＫアプリ１５６がそれぞれ一つずつ混在アプリに含まれている例に対応するが、ＣＳＤＫアプリ１５３若しくはＪＳＤＫアプリ１５６のいずれか一方又は双方に関して、複数が混在アプリに含まれていてもよい。この場合、複数のＣＳＤＫ書庫ファイル又は複数のＪＳＤＫ書庫ファイルが混在アプリ書庫ファイルに含まれる。
【００４８】
なお、混在アプリは、必ずしも書庫ファイル化されなくてもよい。例えば、混在アプリの流通媒体となる記録媒体（例えば、ＳＤカード等）において、混在アプリを構成するファイルが通常の形態で記録されていてもよい。この際、当該記録媒体において、ディレクトリが形成され、ディレクトリ内に各ファイルが配置されてもよい。
【００４９】
図８は、混在アプリ属性ファイルの構成例を示す図である。同図に示されるように、混在アプリ属性ファイルは、ＳＤＫアプリ属性ファイルに含まれる項目を含む。各項目の対象は、混在アプリである。例えば、アプリケーション名やアプリケーションＩＤは、混在アプリの名前又は識別子である。混在アプリは、ＣＳＤＫアプリ１５３とＪＳＤＫアプリ１５６とを含む抽象的な存在として、又はＣＳＤＫアプリ１５３及びＪＳＤＫアプリ１５６の集合体として把握することができる。したがって、混在アプリのアプリケーション名及びアプリケーションＩＤ等は、当該抽象的な存在若しくは当該集合体に関する名前又は識別子である。なお、混在アプリのタイプはＪＳＤＫアプリ１５６とされる。後述されるように、ＣＳＤＫ管理部１５２に対して、混在アプリをＪＳＤＫアプリ１５６として認識させるためである。
【００５０】
混在アプリ属性ファイルは、更に、子アプリごとに、子アプリ情報を含む。子アプリとは、混在アプリに含まれるＣＳＤＫアプリ１５３又はＪＳＤＫアプリ１５６のことをいう。すなわち、本実施の形態では、混在アプリと当該混在アプリに含まれるＳＤＫアプリとの関係は、親子関係として把握される。子アプリ情報は、子アプリのタイプ、子アプリのアプリケーションＩＤ、及び子アプリのファイル名等を含む。子アプリのファイル名とは、混在アプリ書庫ファイル内における、ＣＳＤＫ書庫ファイル又はＪＳＤＫ書庫ファイルのファイル名である。
【００５１】
なお、混在アプリが形成される例としては、ＣＳＤＫアプリ１５３とＪＳＤＫアプリ１５６との間に利用関係が有る場合が挙げられる。また、ＣＳＤＫアプリ１５３及びＪＳＤＫアプリ１５６の間に直接的な利用関係が無くても、双方がインストールされないと、所定のサービスを提供できない場合も混在アプリが形成される一例として挙げられる。
【００５２】
続いて、混在アプリのインストール及びアンインストールについて説明する。
図９は、第一の実施の形態における混在アプリのインストール及びアンインストールの概要を説明するための図である。
【００５３】
同図に示されるように、ＪＳＤＫ管理部１５５１は、混在アプリに含まれるＳＤＫアプリに関して、ＪＳＤＫアプリ１５６のみならず、ＣＳＤＫアプリ１５３についても、インストール処理及びアンインストール処理を制御する。具体的には、ＪＳＤＫ管理部１５５１は、混在アプリに含まれるＪＳＤＫアプリ１５６の属性情報及び実行形式をＪＳＤＫ属性一覧記憶部１７１又はＪＳＤＫ記憶部１７２に記憶するだけでなく、混在アプリに含まれるＣＳＤＫアプリ１５３の属性情報及び実行形式をＣＳＤＫ属性一覧記憶部１６１又はＣＳＤＫ記憶部１６２に記憶する。
【００５４】
混在アプリに含まれるＪＳＤＫアプリ１５６及びＣＳＤＫアプリ１５３の双方に関してＪＳＤＫ管理部１５５１がインストール処理又はアンインストール処理を制御することで、インストール又はアンインストールに関する指示の受け付け口をＪＳＤＫアプリ１５６に一本化することができる。具体的には、ユーザから見た場合、一つの混在アプリに関して一回分の操作指示を入力することで、当該混在アプリに含まれるＣＳＤＫアプリ１５３及びＪＳＤＫアプリ１５６の双方について、インストール又はアンインストールを実行可能とすることができる。すなわち、仮に、混在アプリに含まれるＳＤＫアプリに関して、ＣＳＤＫアプリ１５３のインストール又はアンインストールはＣＳＤＫ管理部１５２が実行し、ＪＳＤＫアプリ１５６のインストール又はアンインストールはＪＳＤＫ管理部１５５１が実行するようにしたとする。この場合、ユーザは、ＣＳＤＫ管理部１５２とＪＳＤＫ管理部１５５１とのそれぞれに対して、操作指示を入力する必要がある。本実施の形態の画像形成装置１０では、そのような煩雑な操作からユーザを解放することができる。なお、一回分の操作指示とは、必ずしも、１ステップの入力操作を意味するものではない、複数の画面遷移を伴い、複数回の入力が要求される場合であっても、操作対象が一つの混在アプリに関する入力であれば、一回分に相当する。
【００５５】
混在アプリのインストール及びアンインストールに関して、更に詳しく説明する。図１０は、第一の実施の形態における混在アプリのインストール処理の処理手順の一例を説明するためのフローチャートである。また、図１１は、第一の実施の形態における混在アプリのインストール処理の処理手順の一例を説明するためのシーケンス図である。図１０及び図１１に関して、同一ステップには同一符号が付されている。
【００５６】
ステップＳ１０１において、ＪＳＤＫ管理部１５５１は、混在アプリのインストール要求を受け付ける。混在アプリのインストール要求は、ＳＤＫアプリと同様に、ＣＳＤＫ管理部１５２によって操作パネル１５に表示されるアプリ管理画面５１０を介して入力される。すなわち、ＣＳＤＫ管理部１５２は、画像形成装置１０にセットされているＳＤカード８０に記録されている混在アプリ書庫ファイルに含まれている混在アプリ属性ファイルに記録されている混在アプリのアプリケーション名等を、インストール候補として、アプリ管理画面５１０に表示させる。ユーザは、アプリ管理画面５１０において混在アプリをインストール対象として選択する。すなわち、ユーザは、一つの混在アプリに関して一回分のインストール指示を入力する。ＣＳＤＫ管理部１５２は、選択された混在アプリのインストール要求をＪＳＤＫ管理部１５５１に送信する。上述したように、混在アプリのタイプは、ＪＳＤＫアプリ１５６を示す値とされている。したがって、ＣＳＤＫ管理部１５２から見て、混在アプリはＪＳＤＫアプリ１５６として見えるからである。当該インストール要求が、ステップＳ１０１における要求に相当する。
【００５７】
続いて、ＪＳＤＫ管理部１５５１は、混在アプリの属性情報の登録処理を実行する（Ｓ１０２）。具体的には、ＪＳＤＫ管理部１５５１は、当該混在アプリの混在アプリ書庫ファイルを、例えば、ＨＤＤ１１４における作業用の記憶領域（以下、「作業用フォルダ」という。）に解凍する。その結果、混在アプリ書庫ファイルに含まれている混在アプリ属性ファイル、ＣＳＤＫアプリ書庫ファイル、及びＪＳＤＫアプリ書庫ファイル等が、作業用フォルダに展開される。ＪＳＤＫ管理部１５５１は、当該混在アプリ属性ファイルに含まれている属性情報を、ＪＳＤＫ属性一覧記憶部１７１に記憶する。すなわち、当該混在アプリの存在が、一つのＪＳＤＫアプリ１５６として画像形成装置１０に登録される。
【００５８】
続いて、ＪＳＤＫ管理部１５５１は、当該混在アプリの子アプリであるＪＳＤＫアプリ１５６のインストール処理を実行する（Ｓ１０３）。具体的には、ＪＳＤＫ管理部１５５１は、作業用フォルダに展開された混在アプリ属性ファイルの子アプリ情報を参照して、子アプリのタイプがＪＳＤＫアプリ１５６を示す子アプリのファイル名を特定する。ＪＳＤＫ管理部１５５１は、当該ファイル名に係るＪＳＤＫ書庫ファイルを作業用フォルダに解凍する。その結果、当該ＪＳＤＫ書庫ファイルに含まれているＳＤＫアプリ属性ファイル及び実行形式ファイルが、作業用フォルダに展開される。ＪＳＤＫ管理部１５５１は、当該ＳＤＫアプリ属性ファイルに含まれている属性情報を、ＪＳＤＫ属性一覧記憶部１７１に記憶する。ＪＳＤＫ管理部１５５１は、また、当該実行形式ファイルを、ＪＳＤＫ記憶部１７２に記憶する。この際、ＪＳＤＫ管理部１５５１は、ＪＳＤＫ属性一覧記憶部１７１に記憶された属性情報とＪＳＤＫ記憶部１７２に記憶された実行形式ファイルとを関連付けておく。例えば、ＪＳＤＫ管理部１５５１は、ＪＳＤＫ属性一覧記憶部１７１の属性情報に対して、ＪＳＤＫ記憶部１７２における実行形式ファイルの位置情報（例えば、ファイルパス名）を付加する。なお、混在アプリに複数のＪＳＤＫアプリ１５６が含まれている場合、ステップＳ１０３は、ＪＳＤＫアプリ１５６の数だけ実行される。
【００５９】
続いて、ＪＳＤＫ管理部１５５１は、当該混在アプリの子アプリであるＣＳＤＫアプリ１５３のインストールの要否を判定する（Ｓ１０４）。具体的には、ＪＳＤＫ管理部１５５１は、当該ＣＳＤＫアプリ１５３に関する属性情報が、ＣＳＤＫ属性一覧記憶部１６１に記憶されているか否かを判定する。より詳しくは、ＪＳＤＫ管理部１５５１は、作業用フォルダに展開された混在アプリ属性ファイルの子アプリ情報を参照して、子アプリのタイプがＣＳＤＫアプリ１５３を示す子アプリのファイル名を特定する。ＣＳＤＫ管理部１５２は、当該ファイル名に係るＣＳＤＫ書庫ファイルを作業用フォルダに解凍する。その結果、当該ＣＳＤＫ書庫ファイルに含まれているＳＤＫアプリ属性ファイル及び実行形式ファイルが、作業用フォルダに展開される。ＪＳＤＫ管理部１５５１は、当該ＳＤＫ属性ファイルに含まれている、アプリケーション名、アプリケーションＩＤ、及びバージョンに係る属性情報が、ＣＳＤＫ属性一覧記憶部１６１に記憶されているか否かを判定する。すなわち、過去のインストール作業において、当該ＣＳＤＫアプリ１５３が単独でインストールされている可能性がある。そこで、ステップＳ１０４では、当該ＣＳＤＫアプリ１５３のインストールの有無が判定される。
【００６０】
当該ＣＳＤＫアプリ１５３のインストールが不要な場合、すなわち、当該ＣＳＤＫアプリ１５３がインストールされている場合、ＪＳＤＫ管理部１５５１は、混在アプリのインストール処理を終了させる。
【００６１】
一方、当該ＣＳＤＫアプリ１５３のインストールが必要な場合、すなわち、当該ＣＳＤＫアプリ１５３がインストールされていない場合、ＪＳＤＫ管理部１５５１は、当該ＣＳＤＫアプリ１５３のインストールの可否を判定する（Ｓ１０５）。例えば、当該ＣＳＤＫアプリ１５３のＣＳＤＫ属性ファイルの必要リソースに指定されているリソース量分の空きの有無が確認される。また、ＣＳＤＫアプリ１５３のインストール数が、上限に達していないか否かが確認される。
【００６２】
当該ＣＳＤＫアプリ１５３のインストールが可能な場合、ＪＳＤＫ管理部１５５１は、当該ＣＳＤＫアプリ１５３のインストール処理を実行する（Ｓ１０６）。具体的には、ＪＳＤＫ管理部１５５１は、当該ＣＳＤＫアプリ１５３のＳＤＫアプリ属性ファイルに含まれている属性情報を、ＣＳＤＫ属性一覧記憶部１６１に記憶する。ＪＳＤＫ管理部１５５１は、また、当該ＣＳＤＫアプリ１５３の実行形式ファイルを、ＣＳＤＫ記憶部１６２に記憶する。この際、ＪＳＤＫ管理部１５５１は、ＣＳＤＫ属性一覧記憶部１６１に記憶された属性情報とＣＳＤＫ記憶部１６２に記憶された実行形式ファイルとを関連付けておく。例えば、ＪＳＤＫ管理部１５５１は、ＣＳＤＫ属性一覧記憶部１６１の属性情報に対して、ＣＳＤＫ記憶部１６２における実行形式ファイルの位置情報（例えば、ファイルパス名）を付加する。
【００６３】
当該インストール処理に成功すると、ＪＳＤＫ管理部１５５１は、混在アプリのインストール処理を終了させる。この場合、ユーザは、画像形成装置１０を再起動させる。インストール処理の結果を有効化するためである。
【００６４】
一方、当該ＣＳＤＫアプリ１５３のインストールが不可能な場合、又は当該ＣＳＤＫアプリ１５３のインストール処理に失敗した場合、ＪＳＤＫ管理部１５５１は、例えば、操作パネル１５にエラーメッセージを表示させて（Ｓ１０７）、混在アプリのインストール処理を終了させる。なお、混在アプリに複数のＣＳＤＫアプリ１５３が含まれている場合、ステップＳ１０４以降は、ＣＳＤＫアプリ１５３の数だけ実行される。
【００６５】
なお、混在アプリの子アプリとしてインストールされたＣＳＤＫアプリ１５３の起動及び停止は、ＣＳＤＫ管理部１５２によって実行される。例えば、ＣＳＤＫ管理部１５２は、画像形成装置１０の起動時において、又はアプリ管理画面５１０を介して入力される起動指示に応じて、ＣＳＤＫ記憶部１６２に記憶されている実行形式ファイルを起動させる。
【００６６】
また、混在アプリの子アプリとしてインストールされたＪＳＤＫアプリ１５６の起動及び停止は、ＪＳＤＫ管理部１５５１によって実行される。例えば、ＪＳＤＫ管理部１５５１は、画像形成装置１０の起動時において、又はアプリ管理画面５１０を介して入力される起動指示に応じて、ＪＳＤＫ記憶部１７２に記憶されている実行形式ファイルを起動させる。
【００６７】
続いて、混在アプリのアンインストール処理について説明する。図１２は、第一の実施の形態における混在アプリのアンインストール処理の処理手順の一例を説明するための図である。また、図１３は、第一の実施の形態における混在アプリのアンインストール処理の処理手順の一例を説明するためのシーケンス図である。図１２及び図１３に関して、同一ステップには同一符号が付されている。
【００６８】
ステップＳ２０１において、ＪＳＤＫ管理部１５５１は、混在アプリのアンインストール要求を受け付ける。当該アンインストール要求は、次にように受け付けられる。
【００６９】
ＣＳＤＫ管理部１５２は、ＣＳＤＫ属性一覧記憶部１６１又はＪＳＤＫ属性一覧記憶部１７１が記憶する属性情報の一覧に基づいて、画像形成装置１０にインストールされているＣＳＤＫアプリ１５３、ＪＳＤＫアプリ１５６、及び混在アプリのアプリケーション名等の一覧を、操作対象候補としてアプリ管理画面５１０に表示させる。図１０又は図１１のステップＳ１０２において説明したように、混在アプリの属性情報もＪＳＤＫ属性一覧記憶部１７１に記憶されるため、混在アプリのアプリケーション名等も操作対象候補として表示される。但し、ＣＳＤＫ管理部１５２は、混在アプリの子アプリであるＣＳＤＫアプリ１５３及びＪＳＤＫアプリ１５６は、操作対象候補から除外する。そうすることで、アンインストール時においても、ユーザには、混在アプリの存在のみを提示することができる。混在アプリの子アプリであるＣＳＤＫアプリ１５３及びＪＳＤＫアプリ１５６は、混在アプリの属性情報の子アプリ情報に基づいて特定可能である。すなわち、子アプリ情報に含まれているアプリケーション名及びアプリケーションＩＤに基づいて、混在アプリの子アプリであるＣＳＤＫアプリ１５３又はＪＳＤＫアプリ１５６を特定可能である。
【００７０】
ステップＳ２０１では、このように表示された操作対象候補の一覧の中から、混在アプリが選択され、アンインストールが指示されることにより、ＪＳＤＫ管理部１５５１は、混在アプリのアンインストール要求を受け付ける。
【００７１】
続いて、ＪＳＤＫ管理部１５５１は、当該混在アプリの子アプリであるＪＳＤＫアプリ１５６に関して、アンインストール処理を実行する（Ｓ２０２）。具体的には、ＪＳＤＫ管理部１５５１は、当該ＪＳＤＫアプリ１５６に関して、属性情報をＪＳＤＫ属性一覧記憶部１７１より削除し、当該属性情報に関連付けられている実行形式ファイルをＪＳＤＫ記憶部１７２より削除する。なお、複数のＪＳＤＫアプリ１５６が当該混在アプリの子アプリである場合、ステップＳ１０３は、当該複数のＪＳＤＫアプリ１５６の数だけ実行される。
【００７２】
続いて、ＪＳＤＫ管理部１５５１は、当該混在アプリの子アプリであるＣＳＤＫアプリ１５３に関して、アンインストールの要否を判定する（Ｓ２０３）。具体的には、ＪＳＤＫ管理部１５５１は、当該ＣＳＤＫアプリ１５３に関する属性情報が、ＣＳＤＫ属性一覧記憶部１６１に記憶されているか否かを確認する。
【００７３】
当該属性情報がＣＳＤＫ属性一覧記憶部１６１に記憶されていない場合、すなわち、当該ＣＳＤＫアプリ１５３がインストールされていない場合、ＪＳＤＫ管理部１５５１は、混在アプリのアンインストール処理を終了させる。
【００７４】
一方、当該属性情報がＣＳＤＫ属性一覧記憶部１６１に記憶されている場合、すなわち、当該ＣＳＤＫアプリ１５３がインストールされている場合、ＪＳＤＫ管理部１５５１は、当該ＣＳＤＫアプリ１５３のアンインストール処理を実行する（Ｓ２０４）。具体的には、ＪＳＤＫ管理部１５５１は、当該ＣＳＤＫアプリ１５３に関して、属性情報をＣＳＤＫ属性一覧記憶部１６１より削除し、当該属性情報に関連付けられている実行形式ファイルをＣＳＤＫ記憶部１６２より削除する。当該ＣＳＤＫアプリ１５３のアンインストール処理に失敗した場合、ＪＳＤＫ管理部１５５１は、例えば、エラーメッセージ等を操作パネル１５に表示させ（Ｓ２０６）、混在アプリのアンインストール処理を終了させる。
【００７５】
一方、当該アンインストール処理に成功した場合、ＪＳＤＫ管理部１５５１は、当該混在アプリの属性情報を、ＪＳＤＫ属性一覧記憶部１７１より削除する（Ｓ２０５）。
【００７６】
なお、複数のＣＳＤＫアプリ１５３が当該混在アプリの子アプリである場合、ステップＳ２０３以降は、当該複数のＣＳＤＫアプリ１５３の数だけ実行される。
【００７７】
ところで、混在アプリのインストール及びアンインストールに関する指示は、ネットワークを介して接続するＰＣ（Personal Computer）等の情報処理装置において入力されてもよい。すなわち、操作パネル１５の位置付けとして、斯かる情報処理装置が用いられてもよい。この場合のインストール処理（リモートインストール処理）の処理手順について説明する。
【００７８】
図１４は、第一の実施の形態における混在アプリのリモートインストール処理の処理手順の一例を説明するためのシーケンス図である。図１４中、図１１と同一ステップには同一ステップ番号を付し、その説明は省略する。
【００７９】
図１４では、ステップＳ１０１が、ステップＳ１０１ａに置き換わっている。リモートインストールでは、情報処理装置からのインストール要求が、ネットワークを介し受信される。この場合、当該インストール要求と共に、混在アプリ書庫ファイルが、ネットワークを介して転送される。
【００８０】
また、ＪＳＤＫ管理部１５５１は、インストール処理が完了すると、完了通知を情報処理装置に送信する（Ｓ１０７）。当該完了通知に応じ、情報処理装置は、再起動要求を画像形成装置１０に送信する（Ｓ１０８）。当該再起動要求が受信されると、ＯＳ１５９は、画像形成装置１０を再起動させる（Ｓ１０９）。すなわち、リモートインストールの場合、ユーザは、画像形成装置１０の傍に居ないため、電源ボタンを操作することにより画像形成装置１０の再起動を実行させることはできない。そこで、リモートインストールでは、ネットワークを介して、再起動の実行が指示される。
【００８１】
なお、アンインストールに関しては、操作パネル１５を介して行われる操作が、情報処理装置において行われる点を除いて、図１２及び図１３において説明した処理と同様の処理が実行される。
【００８２】
上述したように、第一の実施の形態によれば、混在アプリのインストール及びアンインストールに関して、ユーザの操作負担を軽減させることができる。すなわち、ユーザは、混在アプリに含まれるＣＳＤＫアプリ１５３及びＪＳＤＫアプリ１５６ごとにインストール指示又はアンインストール指示を入力する必要はなく、混在アプリを一つのアプリケーションプログラムとして操作することができる。したがって、２以上のプログラムが混在したプログラムに関する操作性を向上させることができる。
【００８３】
なお、第一の実施の形態において、ＣＳＤＫアプリ１５３は、第一のプログラムの一例である。ＪＳＤＫアプリ１５６は、第二のプログラムの一例である。混在アプリは、第三のプログラムの一例である。ＣＳＤＫ管理部１５２は、第一の管理手段の一例である。ＪＳＤＫ管理部１５５１は、第二の管理手段の一例である。ＣＳＤＫ属性一覧記憶部１６１は、第一の記憶手段の一例である。ＪＳＤＫ属性一覧記憶部１７１は、第二の記憶手段の一例である。操作パネル１５は、表示手段の一例である。
【００８４】
なお、本実施の形態では、第一のアプリケーションプログラムと第二のアプリケーションプログラムとの区別（又は種別）は、主に、プログラム言語の相違が基準とされていた。但し、第一のアプリケーションプログラムと第二のアプリケーションプログラムとの区別は、プログラム言語の相違に限定されない。例えば、プログラム言語が同じであっても、パッケージ形式の相違等に基づいて、ライフサイクルの管理形態が相互に異なる関係にあるアプリケーションプログラム同士であれば、第一のアプリケーションプログラムと第二のアプリケーションプログラムとの関係に相当しうる。
【００８５】
また、本実施の形態では、画像形成装置１０を機器の一例として説明したが、本実施の形態は、画像形成装置１０以外の機器に適用されてもよい。この場合、当該機器は、プログラムをインストール可能であり、当該プログラムの制御によって各種のサービス又は機能を提供可能であればよい。
【００８６】
次に、第二の実施の形態について説明する。図１５は、第二の実施の形態における混在アプリのインストール及びアンインストールの概要を説明するための図である。
【００８７】
第二の実施の形態において、ＪＳＤＫ管理部１５５１が混在アプリのインストール要求を受け付けるところまでは第一の実施の形態と同様である。したがって、第二の実施の形態においても、ユーザは、一つの混在アプリに関して、一回分のインストール指示を入力すればよい。
【００８８】
ＪＳＤＫ管理部１５５１は、インストール要求に係る混在アプリ書庫ファイルに含まれているＣＳＤＫ書庫ファイルを取得し（Ｓ３０１）、当該ＣＳＤＫ書庫ファイルを指定して、ＣＳＤＫアプリ１５３のインストール要求をＣＳＤＫ管理部１５２に送信する（Ｓ３０２）。
【００８９】
ＣＳＤＫ管理部１５２は、当該ＣＳＤＫ書庫ファイルに含まれているＳＤＫ属性ファイルの属性情報と実行形式ファイルとを、ＣＳＤＫ属性一覧記憶部１６１又はＣＳＤＫ記憶部１６２に記憶する（Ｓ３０３、Ｓ３０４）。
【００９０】
ＪＳＤＫ管理部１５５１は、また、インストール要求に係る混在アプリ書庫ファイルに含まれているＪＳＤＫ書庫ファイルを取得する（Ｓ３０５）。ＪＳＤＫ管理部１５５１は、当該ＪＳＤＫ書庫ファイルに含まれているＳＤＫ属性ファイルの属性情報と実行形式ファイルとを、ＪＳＤＫ属性一覧記憶部１７１又はＪＳＤＫ記憶部１７２に記憶する（Ｓ３０６、Ｓ３０７）。
【００９１】
上述したように、第二の実施の形態においても、混在アプリの操作に関するユーザの操作負担を軽減することができる。
【００９２】
但し、第二の実施の形態では、混在アプリの存在を意識していない画像形成装置１０（図５のケースのみ考慮されている画像形成装置１０）に関して、ＪＳＤＫ管理部１５５１のみならず、ＣＳＤＫ管理部１５２についても改変を行う必要がある。すなわち、第二の実施の形態のＣＳＤＫ管理部１５２は、ＪＳＤＫ管理部１５５１からインストール要求を受け付けるためのインタフェースを実装する必要がある。ここで、ＣＳＤＫ管理部１５２は、ＲＯＭ１１３に記憶されている部分である（図２参照）。したがって、既に市場において流通又は利用されている画像形成装置１０に関して、第二の実施の形態を適用するのは困難である。したがって、第二の実施の形態は、これから出荷される画像形成装置１０に対して適用が容易な実施形態であるといえる。
【００９３】
一方、第一の実施の形態では、ＪＳＤＫ管理部１５５１の改変は必要なものの、ＣＳＤＫ管理部１５２の改変は不要である。そして、ＪＳＤＫ管理部１５５１は、ＣＳＤＫアプリ１５３の一つであるＪＳＤＫプラットフォーム１５５に含まれている部分である。すなわち、ＪＳＤＫ管理部１５５１は、は、アップデートが容易な部分である。したがって、既に市場において流通又は利用されている画像形成装置１０に対して第一の実施の形態を適用する場合、ＪＳＤＫプラットフォーム１５５が、ＪＳＤＫ管理部１５５１に関して混在アプリのインストール及びアンインストール機能が追加されたものにアップデートされればよい。このように、既存の画像形成装置１０に関して、容易に適用可能である点に関しても、第一の実施の形態は優れている。
【００９４】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００９５】
１０          画像形成装置
１１          コントローラ
１２          スキャナ
１３          プリンタ
１４          モデム
１５          操作パネル
１６          ネットワークインタフェース
１７          ＳＤカードスロット
８０          ＳＤカード
１１１        ＣＰＵ
１１２        ＲＡＭ
１１３        ＲＯＭ
１１４        ＨＤＤ
１１５        ＮＶＲＡＭ
１５１        標準アプリ
１５２        ＣＳＤＫ管理部
１５３        ＣＳＤＫアプリ
１５４        ＪＶＭ
１５５        ＪＳＤＫプラットフォーム
１５６        ＪＳＤＫアプリ
１５７        ＶＡＳ
１５８        コントロールサービス
１５９        ＯＳ
１６１        ＣＳＤＫ属性一覧記憶部
１６２        ＣＳＤＫ記憶部
１７１        ＪＳＤＫ属性一覧記憶部
１７２        ＪＳＤＫ記憶部
１５１１      スキャンアプリ
１５１２      印刷アプリ
１５１３      コピーアプリ
１５１４      ＦＡＸアプリ
１５５１      ＪＳＤＫ管理部
【先行技術文献】
【特許文献】
【００９６】
【特許文献１】特開２００７−４９６７７号公報
【図１】
0005786535.tif 000002
【図２】
0005786535.tif 000003
【図３】
0005786535.tif 000004
【図４】
0005786535.tif 000005
【図５】
0005786535.tif 000006
【図６】
0005786535.tif 000007
【図７】
0005786535.tif 000008
【図８】
0005786535.tif 000009
【図９】
0005786535.tif 000010
【図１０】
0005786535.tif 000011
【図１１】
0005786535.tif 000012
【図１２】
0005786535.tif 000013
【図１３】
0005786535.tif 000014
【図１４】
0005786535.tif 000015
【図１５】
0005786535.tif 000016