(57)【要約】【課題】プログラム間の依存関係に基づく不都合の発生を低減させること。【解決手段】機器は、インストール対象の第一のプログラムに対応付けられているデータに基づいて特定される、前記第一のプログラムが依存する第二のプログラムがインストール済みであるかを判定する判定部と、前記第二のプログラムがインストール済みでない場合に、前記第一のプログラムのインストールについて異常に対応付いた処理を実行するインストール部とを有する。【選択図】図５
2014170366.tif 000002
【特許請求の範囲】
【請求項１】
インストール対象の第一のプログラムに対応付けられているデータに基づいて特定される、前記第一のプログラムが依存する第二のプログラムがインストール済みであるかを判定する判定部と、
前記第二のプログラムがインストール済みではない場合に、前記第一のプログラムのインストールについて異常に対応付いた処理を実行するインストール部とを有する機器。
【請求項２】
前記インストール部は、前記データにおいて、前記第二のプログラムがインストール済みであることが必須でないことが示されている場合に、前記第二のプログラムがインストールされていないことを示す情報を出力し、前記第一のプログラムのインストールを実行する請求項１記載の機器。
【請求項３】
ユーザに対する利用権限の付与対象の第一のプログラムに対応付けられているデータに基づいて特定される、前記第一のプログラムが依存する第二のプログラムの利用権限が、所定のユーザに対して前記第二のプログラムの利用権限が付与済みであるかを判定する判定部と、
前記第二のプログラムの利用権限が付与済みでない場合に、前記第一のプログラムの利用権限の付与について異常に対応付いた処理を実行する権限付与部とを有する機器。
【請求項４】
前記権限付与部は、前記データにおいて、前記第二のプログラムの利用権限が付与されていることが必須でないことが示されている場合に、前記第二のプログラムの利用権限が付与されていないことを示す情報を出力し、前記第一のプログラムの利用権限を前記ユーザに付与する請求項３記載の機器。
【請求項５】
請求項１乃至４いずれか一項記載の機器と、前記機器にネットワークを介して接続し、前記第一のプログラムを記憶する記憶装置とを有する情報処理システム。
【請求項６】
インストール対象の第一のプログラムに対応付けられているデータに基づいて特定される、前記第一のプログラムが依存する第二のプログラムがインストール済みであるかを判定する判定手順と、
前記第二のプログラムがインストール済みでない場合に、前記第一のプログラムのインストールについて異常に対応付いた処理を実行するインストール手順とを機器が実行する情報処理方法。
【請求項７】
ユーザに対する利用権限の付与対象の第一のプログラムに対応付けられているデータに基づいて特定される、前記第一のプログラムが依存する第二のプログラムの利用権限が、所定のユーザに対して前記第二のプログラムの利用権限が付与済みであるかを判定する判定手順と、
前記第二のプログラムの利用権限が付与済みでない場合に、前記第一のプログラムの利用権限の付与について異常に対応付いた処理を実行する権限付与手順とを機器が実行する情報処理方法。
【請求項８】
インストール対象の第一のプログラムに対応付けられているデータに基づいて特定される、前記第一のプログラムが依存する第二のプログラムがインストール済みであるかを判定する判定手順と、
前記第二のプログラムがインストール済みでない場合に、前記第一のプログラムのインストールについて異常に対応付いた処理を実行するインストール手順とを機器に実行させるプログラム。
【請求項９】
ユーザに対する利用権限の付与対象の第一のプログラムに対応付けられているデータに基づいて特定される、前記第一のプログラムが依存する第二のプログラムの利用権限が、所定のユーザに対して前記第二のプログラムの利用権限が付与済みであるかを判定する判定手順と、
前記第二のプログラムの利用権限が付与済みでない場合に、前記第一のプログラムの利用権限の付与について異常に対応付いた処理を実行する権限付与手順とを機器に実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機器、情報処理システム、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、例えば、複合機又は融合機と呼ばれる機器において、公開されたＡＰＩ（Application Program Interface）を有し、当該ＡＰＩを用いて開発されたアプリケーション（以下、「ＳＤＫ（Software Development Kit：ソフトウェア開発キット）アプリ」という。）の実行環境を提供するアプリケーションプラットフォーム（以下、「ＳＤＫプラットフォーム」という。）を備えた機器が有る（例えば、特許文献１）。
【０００３】
ＳＤＫプラットフォームにおいては、標準のアプリケーション（以下、「標準アプリ」という。）が実現する機能と同様の機能をＳＤＫアプリによって実現可能とするためのＡＰＩが公開される。したがって、例えば、標準アプリとは異なる操作画面によって、標準アプリと同様の機能を利用したい（つまり、操作画面だけ標準アプリとは異なるものを使いたい）といったニーズにも応えることができる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
他方において、ＳＤＫプラットフォームでは、標準アプリが提供する機能と同様の機能を提供するＡＰＩを公開するために、標準アプリと同様の実装が別途行われる必要が有る。そのため、ＳＤＫプラットフォームと標準アプリとの間で類似した実装が重複し、機器全体の開発作業や保守作業等において、非効率性が認められる。
【０００５】
そこで、本願発明者は、標準アプリの実装を、ＳＤＫプラットフォームから利用可能とする仕組みについて検討を行っている。
【０００６】
しかしながら、実装されている標準アプリの種類は、機種ごとに異なりうる。例えば、モデムを有していない機器には、ＦＡＸアプリはインストールされていない。このような状況において、仮に、ＦＡＸアプリの実装をＳＤＫプラットフォーム経由で利用するＳＤＫアプリのインストール処理自体が正常に行われてしまうと、ユーザは、当該ＳＤＫアプリの利用時になって、当該ＳＤＫアプリが正常に動作しないことに気付くことになる。
【０００７】
本発明は、上記の点に鑑みてなされたものであって、プログラム間の依存関係に基づく不都合の発生を低減させることを目的とする。
【課題を解決するための手段】
【０００８】
そこで上記課題を解決するため、機器は、インストール対象の第一のプログラムに対応付けられているデータに基づいて特定される、前記第一のプログラムが依存する第二のプログラムがインストール済みであるかを判定する判定部と、前記第二のプログラムがインストール済みでない場合に、前記第一のプログラムのインストールについて異常に対応付いた処理を実行するインストール部とを有する。
【発明の効果】
【０００９】
プログラム間の依存関係に基づく不都合の発生を低減させること。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態におけるインストールシステムの構成例を示す図である。
【図２】本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。
【図３】本発明の実施の形態における画像形成装置のソフトウェア構成例を示す図である。
【図４】スキャンアプリとＳｃａｎＴｏＦＡＸアプリとの関係の一例を説明するための図である。
【図５】本発明の実施の形態におけるＳＤＫプラットフォームの機能構成例を示す図である。
【図６】ＳＤＫアプリの利用環境の構築処理の処理手順の一例を説明するためのフローチャートである。
【図７】インストール処理の処理手順の一例を説明するためのフローチャートである。
【図８】インストール依存情報の一例を示す図である。
【図９】インストールの失敗を通知する警告画面の表示例を示す図である。
【図１０】依存先の標準アプリのインストールを促す警告画面の表示例を示す図である
【図１１】利用権限設定処理の処理手順の一例を説明するためのフローチャートである。
【図１２】権限依存情報の一例を示す図である。
【図１３】問い合わせ画面の表示例を示す図である。
【発明を実施するための形態】
【００１１】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、第一の実施の形態におけるインストールシステムの構成例を示す図である。図１に示されるインストールシステム１において、画像形成装置１０とプログラム管理装置２０とは、例えば、ＬＡＮ（Local Area Network）又はインターネット等のネットワークを介して通信可能に接続されている。
【００１２】
画像形成装置１０は、印刷、スキャン、コピー、及びＦＡＸ送受信等のうちの２以上の機能を一台の筐体によって実現する複合機である。但し、いずれか一つの機能を有する機器が画像形成装置１０として用いられてもよい。
【００１３】
プログラム管理装置２０は、画像形成装置１０にインストールされるプログラムを格納した１以上のファイル（以下、「インストールファイル」という。）を記憶する。プログラム管理装置２０は、いずれかのインストールファイルのダウンロード要求に応じ、当該インストールファイルを返信する。なお、インストールファイルは、例えば、書庫ファイルの形式を有していてもよい。インストールファイルの中には、画像形成装置１０にインストールされるプログラム（後述される「ＳＤＫアプリ」）や、当該プログラムの属性情報等が記述されたファイル（以下、「アプリ属性ファイル」という。）等が格納されている。
【００１４】
なお、プログラム管理装置２０は、複数のコンピュータによって構成されていてもよい。
【００１５】
図２は、本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。図２において、画像形成装置１０は、コントローラ１１、スキャナ１２、プリンタ１３、モデム１４、操作パネル１５、ネットワークインタフェース１６、及びＳＤカードスロット１７等のハードウェアを有する。
【００１６】
コントローラ１１は、ＣＰＵ１１１、ＲＡＭ１１２、ＲＯＭ１１３、ＨＤＤ１１４、及びＮＶＲＡＭ１１５等を有する。ＲＯＭ１１３には、各種のプログラムやプログラムによって利用されるデータ等が記憶されている。ＲＡＭ１１２は、プログラムをロードするための記憶領域や、ロードされたプログラムのワーク領域等として用いられる。ＣＰＵ１１１は、ＲＡＭ１１２にロードされたプログラムを処理することにより、各種の機能を実現する。ＨＤＤ１１４には、プログラムやプログラムが利用する各種のデータ等が記憶される。ＮＶＲＡＭ１１５には、各種の設定情報等が記憶される。
【００１７】
スキャナ１２は、原稿より画像データを読み取るためのハードウェア（画像読取手段）である。プリンタ１３は、印刷データを印刷用紙に印刷するためのハードウェア（印刷手段）である。モデム１４は、電話回線に接続するためのハードウェアであり、ＦＡＸ通信による画像データの送受信を実行するために用いられる。操作パネル１５は、ユーザからの入力の受け付けを行うためのボタン等の入力手段や、液晶パネル等の表示手段等を備えたハードウェアである。液晶パネルは、タッチパネル機能を有していてもよい。この場合、当該液晶パネルは、入力手段の機能をも兼ねる。ネットワークインタフェース１６は、ＬＡＮ等のネットワーク（有線又は無線の別は問わない。）に接続するためのハードウェアである。ＳＤカードスロット１７は、ＳＤカード８０に記憶されたプログラムを読み取るために利用される。すなわち、画像形成装置１０では、ＲＯＭ１１３に記憶されたプログラムだけでなく、ＳＤカード８０に記憶されたプログラムもＲＡＭ１１２にロードされ、実行されうる。なお、他の記録媒体（例えば、ＣＤ−ＲＯＭ又はＵＳＢ（Universal Serial Bus）メモリ等）によってＳＤカード８０が代替されてもよい。すなわち、ＳＤカード８０の位置付けに相当する記録媒体の種類は、所定のものに限定されない。この場合、ＳＤカードスロット１７は、記録媒体の種類に応じたハードウェアによって代替されればよい。
【００１８】
図３は、本発明の実施の形態における画像形成装置のソフトウェア構成例を示す図である。図３において、画像形成装置１０は、標準アプリ１２１、ＳＤＫアプリ１２２、ＳＤＫプラットフォーム１２３、コントロールサービス１２４、及びＯＳ１２５等を有する。
【００１９】
標準アプリ１２１は、画像形成装置１０に標準的に（出荷時に予め）実装されているアプリケーションプログラムの集合である。同図では、スキャンアプリ１２１１、印刷アプリ１２１２、コピーアプリ１２１３、及びＦＡＸアプリ１２１４が例示されている。スキャンアプリ１２１１は、スキャナ１２等を利用したスキャンジョブを実行する。印刷アプリ１２１２は、プリンタ１３等を利用した印刷ジョブを実行する。コピーアプリ１２１３は、スキャナ１２及びプリンタ１３等を利用したコピージョブを実行する。ＦＡＸアプリ１２１４は、モデム１４等を利用したＦＡＸの送信ジョブ又は受信ジョブを実行する。なお、スキャナ１２、プリンタ１３、及びモデム１４等は、画像形成装置１０に固有のハードウェアの一例である。
【００２０】
なお、インストールされている標準アプリ１２１の種類は、画像形成装置１０の機種に応じて異なりうる。例えば、モデム１４を有していない機種の場合、ＦＡＸアプリ１２１４は、インストールされていない。
【００２１】
コントロールサービス１２４は、各種のハードウェアリソース等を制御するための機能を上位アプリケーション等に対して提供するソフトウェアモジュール群であり、例えば、ネットワーク通信に関する機能、スキャナ１２の制御機能、プリンタ１３の制御機能、メモリ（ＲＡＭ１１２、ＲＯＭ１１３、及びＮＶＲＡＭ１１５等）の管理機能等を有する。
【００２２】
ＳＤＫアプリ１２２は、画像形成装置１０の出荷後において、画像形成装置１０の機能拡張を図るために追加的にインストールされるアプリケーションプログラム（又はプラグインともいう。）である。同図では、ＳＤＫアプリ１２２の一例として、ＳｃａｎＴｏＦＡＸアプリ１２２１が例示されている。ＳｃａｎＴｏＦＡＸアプリ１２２１は、原稿からの画像データのスキャンと、当該画像データのＦＡＸ送信とを、画像形成装置１０に実行させるＳＤＫアプリ１２２である。
【００２３】
ＳＤＫプラットフォーム１２３は、ＳＤＫアプリ１２２を開発するためのＡＰＩ（Application Program Interface）を備えると共に、ＳＤＫアプリ１２２の実行環境を提供する。ＡＰＩの形態は、例えば、関数であってもよいし、オブジェクト指向のクラス及びクラスのメソッド等であってもよい。以下、ＳＤＫプラットフォーム１２３が提供するＡＰＩを、「ＳＤＫＡＰＩ」という。例えば、ＳＤＫプラットフォーム１２３は、スキャン機能に関するＳＤＫＡＰＩ、印刷機能に関するＳＤＫＡＰＩ、ＦＡＸ機能に関するＳＤＫＡＰＩ等をＳＤＫアプリ１２２に提供する。ＳＤＫＡＰＩは公開されており、サードベンダ等によってもＳＤＫアプリ１２２は開発されうる。なお、ＳＤＫプラットフォーム１２３は、Ｊａｖａ（登録商標）ＶＭ（Virtual Machine）を含んでいてもよい。この場合、ＳＤＫアプリ１２２は、Ｊａｖａ（登録商標）言語によって実装される。
【００２４】
ＯＳ１２５は、いわゆるＯＳ（Operating System）である。画像形成装置１０上の各ソフトウェアは、ＯＳ１２５上においてプロセス又はスレッドとして動作する。
【００２５】
続いて、スキャンアプリ１２１１とＳｃａｎＴｏＦＡＸアプリ１２２１との関係について説明する。図４は、スキャンアプリとＳｃａｎＴｏＦＡＸアプリとの関係の一例を説明するための図である。
【００２６】
図４において、スキャンアプリ１２１１は、スキャンＡＰＩ１２１１ａを有する。スキャンＡＰＩ１２１１ａは、スキャンアプリ１２１１の機能を、他のプログラムから利用可能とするための、ＨＴＴＰ（HyperText Transfer Protocol）ベースのＡＰＩ（以下、「ＷｅｂＡＰＩ」という。）である。スキャンＡＰＩ１２１１ａがＷｅｂＡＰＩであることにより、スキャンＡＰＩ１２１１ａを利用する他のプログラムについて、プログラミング言語（開発言語）に関する制約を緩和することができる。例えば、スキャンアプリ１２１１がＣ言語によって実装されている場合であっても、Ｊａｖａ（登録商標）言語で実装されているプログラムから、スキャンＡＰＩ１２１１ａを容易に呼び出すことができる。また、ネットワークを介してスキャンＡＰＩ１２１１ａを呼び出すこともできる。
【００２７】
ＳｃａｎＴｏＦＡＸアプリ１２２１が、画像形成装置１０に原稿のスキャンを実行させるべく、スキャン機能に関するＳＤＫＡＰＩを呼び出すと、ＳＤＫプラットフォーム１２３は、当該ＳＤＫＡＰＩに対応するスキャンＡＰＩ１２１１ａを、ＨＴＴＰ経由で呼び出す。すなわち、ＳＤＫプラットフォーム１２３において、スキャンＡＰＩ１２１１ａに対応するＳＤＫＡＰＩは、ＳＤＫＡＰＩをラッピングしたＡＰＩに相当する。したがって、スキャン機能に関するＳＤＫＡＰＩの実装は、実質的に、スキャンアプリ１２１１の実装と共通化されている。その結果、ＳＤＫプラットフォーム１２３において、スキャンアプリ１２１１と同様の実装を行う必要性を低減させることができる。また、スキャンアプリ１２１１の機能強化は、自動的にＳＤＫＡＰＩに反映されることになる。
【００２８】
なお、ＳｃａｎＴｏＦＡＸアプリ１２２１が、スキャンＡＰＩ１２１１ａを直接呼び出す形態が採用されてもよい。但し、ＳＤＫＡＰＩを経由することで、ＳＤＫプラットフォーム１２３において、ＳｃａｎＴｏＦＡＸアプリ１２２１の状態を容易に把握することができる。
【００２９】
また、スキャンＡＰＩ１２１１ａは、必ずしもＷｅｂＡＰＩでなくてもよい。例えば、プログラミング言語への依存が許容されるのであれば、スキャンＡＰＩ１２１１ａは、特定のプログラミング言語に依存したＡＰＩであってもよい。
【００３０】
また、印刷アプリ１２１２、コピーアプリ１２１３、及びＦＡＸアプリ１２１４等、他の標準アプリ１２１についても、コピーアプリ１２１３と同様に、当該アプリケーションに固有の機能に関するＡＰＩが公開されてもよい。例えば、図４では、便宜上、スキャンアプリ１２１１とＳｃａｎＴｏＦＡＸアプリ１２２１との関係のみが示されているが、ＳｃａｎＴｏＦＡＸアプリ１２２１は、ＦＡＸアプリ１２１４に関しても、図４と同様の関係を有してもよい。すなわち、ＳｃａｎＴｏＦＡＸアプリ１２２１は、スキャンされた画像データのＦＡＸ送信に関して、ＳＤＫＡＰＩを介してＦＡＸアプリ１２１４を呼び出してもよい。その結果、スキャンされた画像データをＦＡＸ送信するジョブが実現される。
【００３１】
上記より明らかなように、ＳｃａｎＴｏＦＡＸアプリ１２２１は、ＳＤＫＡＰＩ（ＳＤＫプラットフォーム１２３）を介して、スキャンアプリ１２１１及びＦＡＸアプリ１２１４を利用する、又はスキャンアプリ１２１１及びＦＡＸアプリ１２１４に依存している。したがって、仮に、スキャンアプリ１２１１又はＦＡＸアプリ１２１４がインストールされていない機種の画像形成装置１０にＳｃａｎＴｏＦＡＸアプリ１２２１がインストールされた場合、ＳｃａｎＴｏＦＡＸアプリ１２２１は、正常な処理を当該画像形成装置１０に実行させることができない。また、或るユーザに対して、スキャンアプリ１２１１及びＦＡＸアプリ１２１４のうちの少なくともいずれか一方の利用権限が付与されていない場合に、当該ユーザに対して、ＳｃａｎＴｏＦＡＸアプリ１２２１の利用権限が付与されたとしても、当該ユーザは、ＳｃａｎＴｏＦＡＸアプリ１２２１を正常に利用することはできない。ＳｃａｎＴｏＦＡＸアプリ１２２１が、ＳＤＫＡＰＩ経由でスキャンアプリ１２１１又はＦＡＸアプリ１２１４を呼び出そうとしたときに、画像形成装置１０は、スキャンアプリ１２１１又はＦＡＸアプリ１２１４の利用権限が無いことを理由に、処理を中止させてしまうからである。
【００３２】
続いて、ＳＤＫプラットフォーム１２３の機能構成例について説明する。図５は、本発明の実施の形態におけるＳＤＫプラットフォームの機能構成例を示す図である。図５において、ＳＤＫプラットフォーム１２３は、インストールファイル取得部１２３１、インストール依存情報取得部１２３２、インストール条件判定部１２３３、インストール部１２３４、権限依存情報取得部１２３５、権限付与条件判定部１２３６、及び権限付与部１２３７等を有する。これら各部は、画像形成装置１０にインストールされたプログラムが、ＣＰＵ１１１に実行させる処理により実現される。
【００３３】
インストールファイル取得部１２３１は、インストール対象のＳＤＫアプリ１２２を格納するインストールファイルを、プログラム管理装置２０より取得する。インストール依存情報取得部１２３２は、インストールファイルに格納されているアプリ属性ファイルに記録されているデータより、インストール対象のＳＤＫアプリ１２２が依存する標準アプリ１２１を示すと共に、各標準アプリ１２１の事前インストールが必須であるか否かを示す情報（以下、「インストール依存情報」という。）を取得する。インストール条件判定部１２３３は、インストール対象のＳＤＫアプリ１２２のインストールが許可されるための条件（以下、「インストール条件」という。）が満たされているか否かを判定する。インストール部１２３４は、インストール対象のＳＤＫアプリ１２２のインストールを実行する。
【００３４】
権限依存情報取得部１２３５は、利用権限の付与対象のＳＤＫアプリ１２２に対応するアプリ属性ファイルに記録されていたデータより、当該ＳＤＫアプリ１２２が依存する標準アプリ１２１を示すと共に、各標準アプリ１２１の利用権限の付与が事前に必須であるか否かを示す情報（以下、「権限依存情報」という。）を取得する。権限付与条件判定部１２３６は、ＳＤＫアプリ１２２の利用権限の付与が許可されるための条件（以下、「権限付与条件」という。）が満たされているか否かを判定する。権限付与部１２３７は、ＳＤＫアプリ１２２の利用権限を所定のユーザに付与するための処理を実行する。
【００３５】
以下、画像形成装置１０が実行する処理手順について説明する。図６は、ＳＤＫアプリの利用環境の構築処理の処理手順の一例を説明するためのフローチャートである。
【００３６】
例えば、ユーザによって、或るＳＤＫアプリ１２２のインストール指示が操作パネル１５又はネットワークを介して入力されると、ＳＤＫプラットフォーム１２３は、当該ＳＤＫアプリ１２２のインストール処理を実行する（Ｓ１１）。当該ＳＤＫアプリ１２２のインストールに失敗した場合、図６の以降の処理は実行されない。
【００３７】
インストールに成功した場合、ＳＤＫプラットフォーム１２３は、当該ＳＤＫアプリ１２２に関して、インストール時に利用権限の設定を行うか否かを判定する（Ｓ１２）。当該判定は、例えば、全てのＳＤＫアプリ１２２に対する共通の設定情報に基づいて行われてもよいし、ＳＤＫアプリ１２２ごとに個別の設定情報に基づいて行われてもよい。前者の場合、インストール時に利用権限の設定を行うか否かを示す設定情報は、例えば、ＨＤＤ１１４に記憶されていてもよい。後者の場合、インストール時に利用権限の設定を行うか否かを示す設定情報は、例えば、インストール対象のＳＤＫアプリ１２２のアプリ属性ファイルに記述されていてもよい。
【００３８】
インストール時に利用権限の設定を行う場合（Ｓ１２でＹＥＳ）、ＳＤＫプラットフォーム１２３は、インストールされたＳＤＫアプリ１２２について、利用権限の設定処理を実行する（Ｓ１３）。利用権限の設定とは、当該ＳＤＫアプリ１２２に対する利用権限を、各ユーザに付与するか否かの設定をいう。利用権限の設定は、ユーザごとに行われてもよいし、複数のユーザの集合ごとのグループ単位でおこなわれてもよい。または、全ユーザに対して共通に行われてもよい。
【００３９】
続いて、図６のステップＳ１１の詳細について説明する。図７は、インストール処理の処理手順の一例を説明するためのフローチャートである。
【００４０】
ステップＳ１０１において、インストールファイル取得部１２３１は、インストール対象のＳＤＫアプリ１２２（以下、「対象ＳＤＫアプリ」という。）を含むインストールファイルを、プログラム管理装置２０より取得（ダウンロード）する。例えば、インストールファイル取得部１２３１は、インストールファイルの識別情報が指定された取得要求を、プログラム管理装置２０に送信する。プログラム管理装置２０は、当該識別情報に係るインストールファイルを返信する。なお、インストールファイルは、ＳＤカード８０より取得されてもよい。すなわち、インストールファイルは、ＳＤカード８０等の記憶媒体によって流通してもよい。
【００４１】
続いて、インストールファイル取得部１２３１は、取得されたインストールファイルに含まれているアプリ属性ファイルより、インストール依存情報を取得する（Ｓ１０２）。
【００４２】
図８は、インストール依存情報の一例を示す図である。図８では、アプリ属性ファイルがＸＭＬ（eXtensible Markup Language）形式で記述されている例が示されている。また、図８では、アプリ属性ファイルの記述内容のうち、インストール依存情報に関する記述のみが抜粋されている。
【００４３】
＜ｄｅｐｅｎｄ＞タグで囲まれたｄｅｐｅｎｄ要素の値は、対象ＳＤＫアプリにとって依存先となる標準アプリ１２１の識別情報である。「Ｓｃａｎｎｅｒ」は、スキャンアプリ１２１１の識別情報である。「ＦＡＸ」は、ＦＡＸアプリ１２１４の識別情報である。したがって、図８より、対象ＳＤＫアプリは、スキャンアプリ１２１１及びＦＡＸアプリ１２１４に依存していることが分かる。
【００４４】
インストール依存情報を構成するｄｅｐｅｎｄ要素は、ｉｎｓｔａｌｌ属性を含む。ｉｎｓｔａｌｌ属性の値は、当該ｄｅｐｅｎｄ要素に係る標準アプリ１２１との関係における、対象ＳＤＫアプリのインストール条件を示す。具体的には、「ｆｏｒｃｅｄ」は、当該ｄｅｐｅｎｄ要素に係る標準アプリ１２１が事前にインストールされていることが必須である（強制される）ことを示す。すなわち、「ｆｏｒｃｅｄ」は、当該標準アプリ１２１がインストールされている場合に限って、対象ＳＤＫアプリのインストールが許可されることを示す。一方、「ｕｎｆｏｒｃｅｄ」は、当該ｄｅｐｅｎｄ要素に係る標準アプリ１２１が事前にインストールされていることが必須でない（強制されない）ことを示す。なお、ｉｎｓｔａｌｌ属性が指定されない状態は、ｉｎｓｔａｌｌ属性の値が「ｕｎｆｏｒｃｅｄ」である状態と同義である。また、いずれの標準アプリ１２１にも依存しないＳＤＫアプリ１２２のアプリ属性ファイルには、ｄｅｐｅｎｄ要素は含まれていない。
【００４５】
続いて、インストール条件判定部１２３３は、対象ＳＤＫアプリがいずれかの標準アプリ１２１に依存するか否かを判定する（Ｓ１０３）。すなわち、対象ＳＤＫアプリのアプリ属性ファイルからインストール依存情報（ｄｅｐｅｎｄ要素）が取得されたか否かが判定される。
【００４６】
対象ＳＤＫアプリが、いずれの標準アプリ１２１にも依存しない場合（Ｓ１０３でＮＯ）、インストール部１２３４は、対象ＳＤＫアプリのインストール処理を実行する（Ｓ１０９）。インストール処理では、対象ＳＤＫアプリのアプリ属性ファイルも、例えば、ＨＤＤ１１４に記憶される。但し、アプリ属性ファイルがそのままの状態で記憶されなくてもよい。アプリ属性ファイルの内容が、別の形式に整形されて記憶されてもよい。以下、インストール処理によって記憶されたアプリ属性ファイルの内容を、「アプリ属性データ」という。なお、インストール処理に成功すると、図７の処理は正常終了し、図６のステップＳ１２に進む。
【００４７】
一方、対象ＳＤＫアプリが、いずれかの標準アプリ１２１に依存する場合（Ｓ１０３でＹＥＳ）、インストール条件判定部１２３３は、依存先の全ての標準アプリ１２１が画像形成装置１０にインストール済みであるか否かを判定する（Ｓ１０４）。対象ＳＤＫアプリの依存先の全ての標準アプリ１２１とは、対象ＳＤＫアプリのアプリ属性ファイルのｄｅｐｅｎｄ要素に識別情報が指定されている全ての標準アプリ１２１をいう。ステップＳ１０４における判定は、例えば、ＮＶＲＡＭ１１５又はＨＤＤ１１４に記憶されている、インストールされている標準アプリ１２１の一覧情報と、各ｄｅｐｅｎｄ要素の値とを照合することにより行われる。
【００４８】
依存先の全ての標準アプリ１２１がインストール済みである場合（Ｓ１０４でＹＥＳ）、ステップＳ１０９が実行される。依存先の標準アプリ１２１のうちのいずれかがインストールされていない場合（Ｓ１０４でＮＯ）、ステップＳ１０５以降において、異常に対応付いた処理（異常系の処理）の一例が実行される。具体的には、インストールされていない依存先の標準アプリ１２１（以下、「未インストール依存先アプリ」という。）が一つずつ処理対象とされて、順番にステップＳ１０５以降が実行される。
【００４９】
ステップＳ１０５において、インストール条件判定部１２３３は、処理対象の未インストール依存先アプリの事前インストールは必須であるか否かを判定する。当該判定は、当該未インストール依存先アプリに対応するｄｅｐｅｎｄ要素のｉｎｓｔａｌｌ属性の値が、「ｆｏｒｃｅｄ」であるか否かによって行われる。
【００５０】
当該インストールが必須である場合、すなわち、当該ｉｎｓｔａｌｌ属性の値が「ｆｏｒｃｅｄ」である場合（Ｓ１０５でＹＥＳ）、インストール条件判定部１２３３は、インストール条件が満たされないため、インストールは失敗であると判定する（Ｓ１０６）。この場合、図７の処理は、異常終了し、図６のステップＳ１２以降は実行されない。なお、ステップＳ１０６において、インストール部１２３４は、図９に示されるような警告画面を、例えば、操作パネル１５に表示させてもよい。
【００５１】
図９は、インストールの失敗を通知する警告画面の表示例を示す図である。図９の警告画面５１０は、ＳｃａｎＴｏＦＡＸアプリ１２２１が対象ＳＤＫアプリであって、スキャンアプリ１２１１が画像形成装置１０にインストールされていない状態に対応する。したがって、警告画面５１０は、スキャンアプリ１２１１がインストールされていないため、ＳｃａｎＴｏＦＡＸアプリ１２２１をインストールできないことを示す警告メッセージを含む。
【００５２】
一方、当該インストールが必須でない場合（Ｓ１０５でＮＯ）、インストール部１２３４は、依存先の標準アプリ１２１がインストールされていないことを示す警告画面を、例えば、操作パネル１５に表示させる（Ｓ１０７）。
【００５３】
図１０は、依存先の標準アプリのインストールを促す警告画面の表示例を示す図である。図１０の警告画面５２０は、ＳｃａｎＴｏＦＡＸアプリ１２２１が対象ＳＤＫアプリであって、ＦＡＸアプリ１２１４が画像形成装置１０にインストールされていない状態に対応する。したがって、警告画面５２０は、ＦＡＸアプリ１２１４のインストールを促す警告メッセージを含む。
【００５４】
ユーザによって、確認ボタン５２１が押下されると、インストール条件判定部１２３３は、他の全ての未インストール依存先アプリについて、ステップＳ１０５以降を実行する（Ｓ１０８）。全ての未インストール依存先についてステップＳ１０５以降が順番に実行される過程において、ステップＳ１０６が実行されて異常終了しなかった場合（Ｓ１０８でＮＯ）、インストール部１２３４は、対象ＳＤＫアプリのインストール処理を実行する（Ｓ１０９）。インストール処理に成功すると、図７の処理は正常終了し、図６のステップＳ１２に進む。
【００５５】
続いて、図６のステップＳ１３の詳細について説明する。図１１は、利用権限設定処理の処理手順の一例を説明するためのフローチャートである。
【００５６】
ステップＳ２０１において、権限依存情報取得部１２３５は、利用権限の設定対象のＳＤＫアプリ（以下、「対象ＳＤＫアプリ」とい。）に関してＨＤＤ１１４等に記憶されているアプリ属性データより、権限依存情報を取得する（Ｓ２０１）。
【００５７】
図１２は、権限依存情報の一例を示す図である。図１２では、アプリ属性データがＸＭＬ（eXtensible Markup Language）形式で記述されている例が示されている。また、図１２では、アプリ属性データのうち、権限依存情報に関する記述のみが抜粋されている。
【００５８】
ｄｅｐｅｎｄ要素及び当該要素の値の意味は、図８に示したインストール依存情報と同じである。権限依存情報を構成するｄｅｐｅｎｄ要素は、ａｖａｉｌａｂｌｅ属性を含む。ａｖａｉｌａｂｌｅ属性の値は、当該ｄｅｐｅｎｄ要素に係る標準アプリ１２１との関係における、対象ＳＤＫアプリに関する権限付与条件を示す。権限付与条件とは、利用権限の付与が許可されるための条件をいう。具体的には、「ｆｏｒｃｅｄ」は、当該ｄｅｐｅｎｄ要素に係る標準アプリ１２１について事前に利用権限が付与されていることが必須である（強制される）ことを示す。すなわち、「ｆｏｒｃｅｄ」は、当該標準アプリ１２１の利用権限が付与されている場合に限って、対象ＳＤＫアプリの利用権限の付与が許可されることを示す。一方、「ｕｎｆｏｒｃｅｄ」は、当該ｄｅｐｅｎｄ要素に係る標準アプリ１２１について事前に利用権限が付与されていることが必須でない（強制されない）ことを示す。なお、ａｖａｉｌａｂｌｅ属性が指定されない状態は、ａｖａｉｌａｂｌｅ属性の値が「ｕｎｆｏｒｃｅｄ」の状態と同義である。また、いずれの標準アプリ１２１に依存しないＳＤＫアプリ１２２のアプリ属性データには、ｄｅｐｅｎｄ要素は含まれていない。
【００５９】
なお、権限依存情報は、図８において示したインストール依存情報と統合されてもよい。すなわち、対象ＳＤＫアプリによる標準アプリ１２１への依存関係の影響は、インストール及び利用権限の設定のいずれにおいても同じである。したがって、一つのｄｅｐｅｎｄ要素に対して、ｉｎｓｔａｌｌ属性及びａｖａｉｌａｂｌｅ属性の双方が記述されてもよい。
【００６０】
続いて、権限付与条件判定部１２３６は、対象ＳＤＫアプリがいずれかの標準アプリ１２１に依存するか否かを判定する（Ｓ２０２）。すなわち、対象ＳＤＫアプリのアプリ属性データから権限依存情報（ｄｅｐｅｎｄ要素）が取得されたか否かが判定される。
【００６１】
対象ＳＤＫアプリが、いずれの標準アプリ１２１にも依存しない場合（Ｓ２０２でＮＯ）、権限付与部１２３７は、対象ＳＤＫアプリの利用権限の付与処理を実行する（Ｓ２１０）。利用権限の付与処理では、利用権限の付与対象とされているユーザ（以下、「対象ユーザ」という。）に対して、対象ＳＤＫアプリの利用権限が付与されたこと（対象ＳＤＫアプリの利用が許可されること）を示す権限設定情報が、ＨＤＤ１１４又はＮＶＲＡＭ１１５に記憶される。利用権限の付与対象とされるユーザは、例えば、ステップＳ２０１の前において、予め選択される。上述したように、利用権限の付与対象とされるユーザは、特定のユーザであってもよいし、特定のグループに属する複数のユーザであってもよいし、全ユーザであってもよい。なお、利用権限の付与処理に成功すると、図１１の処理は正常終了する。
【００６２】
一方、対象ＳＤＫアプリが、いずれかの標準アプリ１２１に依存する場合（Ｓ２０２でＹＥＳ）、権限付与条件判定部１２３６は、依存先の全ての標準アプリ１２１の利用権限が、対象ユーザに対して付与済みであるか否かを判定する（Ｓ２０３）。対象ＳＤＫアプリの依存先の全ての標準アプリ１２１とは、対象ＳＤＫアプリのアプリ属性データのｄｅｐｅｎｄ要素に識別情報が指定されている全ての標準アプリ１２１をいう。ステップＳ２０３における判定は、例えば、ＮＶＲＡＭ１１５又はＨＤＤ１１４に記憶されている権限設定情報を参照することにより行われる。
【００６３】
依存先の全ての標準アプリ１２１の利用権限が、対象ユーザに付与済みである場合（Ｓ２０３でＹＥＳ）、ステップＳ２１０が実行される。
【００６４】
依存先の標準アプリ１２１のうちのいずれかの利用権限が、対象ユーザに付与されていない場合（Ｓ２０３でＮＯ）、ステップＳ２０４以降において、異常系の処理の一例が実行される。具体的には、利用権限が付与されていない依存先の標準アプリ１２１（以下、「権限未付与依存先アプリ」という。）が一つずつ処理対象とされて、順番にステップＳ２０４以降が実行される。
【００６５】
ステップＳ２０４において、権限付与条件判定部１２３６は、処理対象の権限未付与依存先アプリに関して事前の利用権限の付与は必須であるか否かを判定する。当該判定は、当該権限未付与依存先アプリに対応するｄｅｐｅｎｄ要素のａｖａｉｌａｂｌｅ属性の値が、「ｆｏｒｃｅｄ」であるか否かによって行われる。
【００６６】
当該利用権限の付与が必須である場合、すなわち、当該ａｖａｉｌａｂｌｅ属性の値が「ｆｏｒｃｅｄ」である場合（Ｓ２０４でＹＥＳ）、権限付与条件判定部１２３６は、処理対象の権限未付与依存先アプリの利用権限の付与の是非を問い合わせる問い合わせ画面を、例えば、操作パネル１５に表示させる（Ｓ２０５）。
【００６７】
図１３は、問い合わせ画面の表示例を示す図である。図１３の問い合わせ画面５３０は、ＳｃａｎＴｏＦＡＸアプリ１２２１が対象ＳＤＫアプリであって、スキャンアプリ１２１１の利用権限が対象ユーザに付与されていない状態に対応する。
【００６８】
操作者は、利用権限を付与するか否かに応じて、はいボタン５３１又はいいえボタン５３２を押下する。
【００６９】
はいボタン５３１が押下されると、権限付与部１２３７は、処理対象の権限未付与依存先アプリに関して、対象ユーザへの利用権限の付与処理を実行する。いいえボタン５３２が押下された場合、当該利用権限の付与処理は実行されない。
【００７０】
続いて、権限付与条件判定部１２３６は、処理対象の権限未付与依存先アプリの利用権限が付与されたか否かを判定する（Ｓ２０６）。当該権限未付与依存先アプリの利用権限が付与されない場合（Ｓ２０６でＮＯ）、権限付与条件判定部１２３６は、権限付与条件が満たされないため、利用権限の設定は失敗であると判定する（Ｓ２０７）。この場合、図１１の処理は、異常終了する。当該権限未付与依存先アプリの利用権限が付与された場合（Ｓ２０６でＹＥＳ）、ステップＳ２０９に進む。
【００７１】
一方、当該利用権限の付与が必須でない場合（Ｓ２０４でＮＯ）、権限付与部１２３７は、依存先の標準アプリ１２１の利用権限が付与されていないことを示す警告メッセージを含む警告画面を、例えば、操作パネル１５に表示させる（Ｓ２０８）。
【００７２】
続いて、権限付与条件判定部１２３６は、他の全ての権限未付与依存先アプリについて、ステップＳ２０４以降を実行する（Ｓ２０９）。全ての権限未付与依存先アプリについてステップＳ２０４以降が順番に実行される過程において、ステップＳ２０７が実行されて異常終了しなかった場合（Ｓ２０９でＮＯ）、権限付与部１２３７は、対象ＳＤＫアプリの利用権限の付与処理を実行する（Ｓ２１０）。
【００７３】
上述したように、本実施の形態によれば、いずれかの標準アプリ１２１に依存するＳＤＫアプリ１２２のインストールや利用権限の設定に関して、依存先の標準アプリ１２１のインストール状況や、利用権限の設定状況等に応じて、異常系の処理を実行させることができる。例えば、異常系の処理として、処理を中止したり、ユーザに対して警告又は問い合わせ等を行ったりすることができる。
【００７４】
その結果、正常に利用できない状態をユーザが知らずに、ＳＤＫアプリ１２２が正常にインストールされてしまったり、利用権限が正常に設定されてしまったりするのを回避することができる。その結果、プログラム間の依存関係に基づく不都合の発生を低減させることができる。
【００７５】
また、本実施の形態では、ＳＤＫプラットフォーム１２３が、一元的に上記の処理を行うため、ＳＤＫアプリ１２２ごとに、上記のような異常系の処理を実装する必要性を低減することができる。
【００７６】
なお、本実施の形態では、ＳＤＫアプリ１２２が標準アプリ１２１に依存する例について説明したが、或るＳＤＫアプリ１２２が、他のＳＤＫアプリ１２２に依存する場合について、本実施の形態が適用されてもよい。
【００７７】
また、本実施の形態は、プロジェクタ、デジタルカメラ、テレビ会議システム等、画像形成装置１０以外の機器又はシステムに適用されてもよい。
【００７８】
ところで、本実施の形態では、ｄｅｐｅｎｄ要素のｉｎｓｔａｌｌ属性において、依存先の事前インストールが必須であるか否かが設定可能とされている。換言すれば、依存先の事前インストールは、固定的に強制されていない。これは、インストール順序が拘束されることによる不都合を回避するためである。例えば、ユーザが、正常に動作をしないことを承知の上で、とりあえずＳＤＫアプリ１２２をインストールし、その後に、標準アプリ１２１をインストールしようとする場合も考えられるからである（理由１）。
【００７９】
また、依存先のＳＤＫアプリ１２２がインストールされている場合にのみインストールが許可されるとすると、相互に依存し合う２つ以上のＳＤＫアプリ１２２のインストールが不可能となってしまう場合が有る（理由２）。
【００８０】
更に、一部の機能に限って、標準アプリ１２１又は他のＳＤＫアプリ１２２に依存するＳＤＫアプリ１２２の場合、依存先の標準アプリ１２１又は他のＳＤＫアプリ１２２がインストールされていない場合でも、当該一部の機能以外の機能を実行することが可能な場合に対応するためのである（理由３）。
【００８１】
そして、特に、理由２及び理由３に関しては、ＳＤＫアプリ１２２の開発者であれば、事情を予測可能であると考えられる。したがって、本実施の形態では、当該開発者によって作成される可能性の高いアプリ属性ファイルにおいて、事前インストールが必須であるか否かが設定可能とされているのである。
【００８２】
ｄｅｐｅｎｄ要素のａｖａｉｌａｂｌｅ属性において、依存先の事前の利用権限の付与が強制されるか否かが設定可能とされているのも、上記と同様の理由による。
【００８３】
なお、本実施の形態において、インストール条件判定部１２３３又は権限付与条件判定部１２３６は、判定部の一例である。プログラム管理装置２０は、記憶装置の一例である。アプリ属性ファイルに格納されているデータは、第一のプログラムに対応付けられているデータの一例である。
【００８４】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００８５】
１            インストールシステム
１０          画像形成装置
１１          コントローラ
１２          スキャナ
１３          プリンタ
１４          モデム
１５          操作パネル
１６          ネットワークインタフェース
１７          ＳＤカードスロット
２０          プログラム管理装置
８０          ＳＤカード
１１１        ＣＰＵ
１１２        ＲＡＭ
１１３        ＲＯＭ
１１４        ＨＤＤ
１１５        ＮＶＲＡＭ
１２１        標準アプリ１２１
１２２        ＳＤＫアプリ
１２３        ＳＤＫプラットフォーム
１２４        コントロールサービス
１２５        ＯＳ
１２１１      スキャンアプリ
１２１２      印刷アプリ
１２１３      コピーアプリ
１２１４      ＦＡＸアプリ
１２２１      ＳｃａｎＴｏＦＡＸアプリ
１２３１      インストールファイル取得部
１２３２      インストール依存情報取得部
１２３３      インストール条件判定部
１２３４      インストール部
１２３５      権限依存情報取得部
１２３６      権限付与条件判定部
１２３７      権限付与部
【先行技術文献】
【特許文献】
【００８６】
【特許文献１】特開２００５−２６９６１９号公報
【特許文献２】特開２００３−２０２９３０号公報
【図１】
2014170366.tif 000003
【図２】
2014170366.tif 000004
【図３】
2014170366.tif 000005
【図４】
2014170366.tif 000006
【図５】
2014170366.tif 000007
【図６】
2014170366.tif 000008
【図７】
2014170366.tif 000009
【図８】
2014170366.tif 000010
【図９】
2014170366.tif 000011
【図１０】
2014170366.tif 000012
【図１１】
2014170366.tif 000013
【図１２】
2014170366.tif 000014
【図１３】
2014170366.tif 000015