JP2017084420A - 機器、情報処理システム、情報処理方法、及びプログラム - Google Patents

機器、情報処理システム、情報処理方法、及びプログラム Download PDF

Info

Publication number
JP2017084420A
JP2017084420A JP2017020890A JP2017020890A JP2017084420A JP 2017084420 A JP2017084420 A JP 2017084420A JP 2017020890 A JP2017020890 A JP 2017020890A JP 2017020890 A JP2017020890 A JP 2017020890A JP 2017084420 A JP2017084420 A JP 2017084420A
Authority
JP
Japan
Prior art keywords
program
application
installation
sdk
authority
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017020890A
Other languages
English (en)
Other versions
JP6330933B2 (ja
Inventor
英樹 大橋
Hideki Ohashi
英樹 大橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2017020890A priority Critical patent/JP6330933B2/ja
Publication of JP2017084420A publication Critical patent/JP2017084420A/ja
Application granted granted Critical
Publication of JP6330933B2 publication Critical patent/JP6330933B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】プログラム間の依存関係に基づく不都合の発生を低減させること。
【解決手段】機器は、インストール対象の第一のプログラムに対応付けられているデータに基づいて特定される、前記第一のプログラムが依存する第二のプログラムがインストール済みであるかを判定する判定部と、前記第二のプログラムがインストール済みではない場合に、前記第一のプログラムのインストールについて異常に対応付いた処理を実行するインストール部とを有し、前記インストール部は、前記データにおいて、前記第二のプログラムがインストール済みであることが必須であることが示されている場合に、前記第一のプログラムのインストールを実行しない。
【選択図】図5

Description

本発明は、機器、情報処理システム、情報処理方法、及びプログラムに関する。
従来、例えば、複合機又は融合機と呼ばれる機器において、公開されたAPI(Application Program Interface)を有し、当該APIを用いて開発されたアプリケーション(以下、「SDK(Software Development Kit:ソフトウェア開発キット)アプリ」という。)の実行環境を提供するアプリケーションプラットフォーム(以下、「SDKプラットフォーム」という。)を備えた機器が有る(例えば、特許文献1)。
SDKプラットフォームにおいては、標準のアプリケーション(以下、「標準アプリ」という。)が実現する機能と同様の機能をSDKアプリによって実現可能とするためのAPIが公開される。したがって、例えば、標準アプリとは異なる操作画面によって、標準アプリと同様の機能を利用したい(つまり、操作画面だけ標準アプリとは異なるものを使いたい)といったニーズにも応えることができる。
他方において、SDKプラットフォームでは、標準アプリが提供する機能と同様の機能を提供するAPIを公開するために、標準アプリと同様の実装が別途行われる必要が有る。そのため、SDKプラットフォームと標準アプリとの間で類似した実装が重複し、機器全体の開発作業や保守作業等において、非効率性が認められる。
そこで、本願発明者は、標準アプリの実装を、SDKプラットフォームから利用可能とする仕組みについて検討を行っている。
しかしながら、実装されている標準アプリの種類は、機種ごとに異なりうる。例えば、モデムを有していない機器には、FAXアプリはインストールされていない。このような状況において、仮に、FAXアプリの実装をSDKプラットフォーム経由で利用するSDKアプリのインストール処理自体が正常に行われてしまうと、ユーザは、当該SDKアプリの利用時になって、当該SDKアプリが正常に動作しないことに気付くことになる。
本発明は、上記の点に鑑みてなされたものであって、プログラム間の依存関係に基づく不都合の発生を低減させることを目的とする。
そこで上記課題を解決するため、機器は、インストール対象の第一のプログラムに対応付けられているデータに基づいて特定される、前記第一のプログラムが依存する第二のプログラムがインストール済みであるかを判定する判定部と、前記第二のプログラムがインストール済みではない場合に、前記第一のプログラムのインストールについて異常に対応付いた処理を実行するインストール部とを有し、前記インストール部は、前記データにおいて、前記第二のプログラムがインストール済みであることが必須であることが示されている場合に、前記第一のプログラムのインストールを実行しない。
プログラム間の依存関係に基づく不都合の発生を低減させること。
本発明の実施の形態におけるインストールシステムの構成例を示す図である。 本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。 本発明の実施の形態における画像形成装置のソフトウェア構成例を示す図である。 スキャンアプリとScanToFAXアプリとの関係の一例を説明するための図である。 本発明の実施の形態におけるSDKプラットフォームの機能構成例を示す図である。 SDKアプリの利用環境の構築処理の処理手順の一例を説明するためのフローチャートである。 インストール処理の処理手順の一例を説明するためのフローチャートである。 インストール依存情報の一例を示す図である。 インストールの失敗を通知する警告画面の表示例を示す図である。 依存先の標準アプリのインストールを促す警告画面の表示例を示す図である 利用権限設定処理の処理手順の一例を説明するためのフローチャートである。 権限依存情報の一例を示す図である。 問い合わせ画面の表示例を示す図である。
以下、図面に基づいて本発明の実施の形態を説明する。図1は、第一の実施の形態におけるインストールシステムの構成例を示す図である。図1に示されるインストールシステム1において、画像形成装置10とプログラム管理装置20とは、例えば、LAN(Local Area Network)又はインターネット等のネットワークを介して通信可能に接続されている。
画像形成装置10は、印刷、スキャン、コピー、及びFAX送受信等のうちの2以上の機能を一台の筐体によって実現する複合機である。但し、いずれか一つの機能を有する機器が画像形成装置10として用いられてもよい。
プログラム管理装置20は、画像形成装置10にインストールされるプログラムを格納した1以上のファイル(以下、「インストールファイル」という。)を記憶する。プログラム管理装置20は、いずれかのインストールファイルのダウンロード要求に応じ、当該インストールファイルを返信する。なお、インストールファイルは、例えば、書庫ファイルの形式を有していてもよい。インストールファイルの中には、画像形成装置10にインストールされるプログラム(後述される「SDKアプリ」)や、当該プログラムの属性情報等が記述されたファイル(以下、「アプリ属性ファイル」という。)等が格納されている。
なお、プログラム管理装置20は、複数のコンピュータによって構成されていてもよい。
図2は、本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。図2において、画像形成装置10は、コントローラ11、スキャナ12、プリンタ13、モデム14、操作パネル15、ネットワークインタフェース16、及びSDカードスロット17等のハードウェアを有する。
コントローラ11は、CPU111、RAM112、ROM113、HDD114、及びNVRAM115等を有する。ROM113には、各種のプログラムやプログラムによって利用されるデータ等が記憶されている。RAM112は、プログラムをロードするための記憶領域や、ロードされたプログラムのワーク領域等として用いられる。CPU111は、RAM112にロードされたプログラムを処理することにより、各種の機能を実現する。HDD114には、プログラムやプログラムが利用する各種のデータ等が記憶される。NVRAM115には、各種の設定情報等が記憶される。
スキャナ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は、記録媒体の種類に応じたハードウェアによって代替されればよい。
図3は、本発明の実施の形態における画像形成装置のソフトウェア構成例を示す図である。図3において、画像形成装置10は、標準アプリ121、SDKアプリ122、SDKプラットフォーム123、コントロールサービス124、及びOS125等を有する。
標準アプリ121は、画像形成装置10に標準的に(出荷時に予め)実装されているアプリケーションプログラムの集合である。同図では、スキャンアプリ1211、印刷アプリ1212、コピーアプリ1213、及びFAXアプリ1214が例示されている。スキャンアプリ1211は、スキャナ12等を利用したスキャンジョブを実行する。印刷アプリ1212は、プリンタ13等を利用した印刷ジョブを実行する。コピーアプリ1213は、スキャナ12及びプリンタ13等を利用したコピージョブを実行する。FAXアプリ1214は、モデム14等を利用したFAXの送信ジョブ又は受信ジョブを実行する。なお、スキャナ12、プリンタ13、及びモデム14等は、画像形成装置10に固有のハードウェアの一例である。
なお、インストールされている標準アプリ121の種類は、画像形成装置10の機種に応じて異なりうる。例えば、モデム14を有していない機種の場合、FAXアプリ1214は、インストールされていない。
コントロールサービス124は、各種のハードウェアリソース等を制御するための機能を上位アプリケーション等に対して提供するソフトウェアモジュール群であり、例えば、ネットワーク通信に関する機能、スキャナ12の制御機能、プリンタ13の制御機能、メモリ(RAM112、ROM113、及びNVRAM115等)の管理機能等を有する。
SDKアプリ122は、画像形成装置10の出荷後において、画像形成装置10の機能拡張を図るために追加的にインストールされるアプリケーションプログラム(又はプラグインともいう。)である。同図では、SDKアプリ122の一例として、ScanToFAXアプリ1221が例示されている。ScanToFAXアプリ1221は、原稿からの画像データのスキャンと、当該画像データのFAX送信とを、画像形成装置10に実行させるSDKアプリ122である。
SDKプラットフォーム123は、SDKアプリ122を開発するためのAPI(Application Program Interface)を備えると共に、SDKアプリ122の実行環境を提供する。APIの形態は、例えば、関数であってもよいし、オブジェクト指向のクラス及びクラスのメソッド等であってもよい。以下、SDKプラットフォーム123が提供するAPIを、「SDKAPI」という。例えば、SDKプラットフォーム123は、スキャン機能に関するSDKAPI、印刷機能に関するSDKAPI、FAX機能に関するSDKAPI等をSDKアプリ122に提供する。SDKAPIは公開されており、サードベンダ等によってもSDKアプリ122は開発されうる。なお、SDKプラットフォーム123は、Java(登録商標)VM(Virtual Machine)を含んでいてもよい。この場合、SDKアプリ122は、Java(登録商標)言語によって実装される。
OS125は、いわゆるOS(Operating System)である。画像形成装置10上の各ソフトウェアは、OS125上においてプロセス又はスレッドとして動作する。
続いて、スキャンアプリ1211とScanToFAXアプリ1221との関係について説明する。図4は、スキャンアプリとScanToFAXアプリとの関係の一例を説明するための図である。
図4において、スキャンアプリ1211は、スキャンAPI1211aを有する。スキャンAPI1211aは、スキャンアプリ1211の機能を、他のプログラムから利用可能とするための、HTTP(HyperText Transfer Protocol)ベースのAPI(以下、「WebAPI」という。)である。スキャンAPI1211aがWebAPIであることにより、スキャンAPI1211aを利用する他のプログラムについて、プログラミング言語(開発言語)に関する制約を緩和することができる。例えば、スキャンアプリ1211がC言語によって実装されている場合であっても、Java(登録商標)言語で実装されているプログラムから、スキャンAPI1211aを容易に呼び出すことができる。また、ネットワークを介してスキャンAPI1211aを呼び出すこともできる。
ScanToFAXアプリ1221が、画像形成装置10に原稿のスキャンを実行させるべく、スキャン機能に関するSDKAPIを呼び出すと、SDKプラットフォーム123は、当該SDKAPIに対応するスキャンAPI1211aを、HTTP経由で呼び出す。すなわち、SDKプラットフォーム123において、スキャンAPI1211aに対応するSDKAPIは、SDKAPIをラッピングしたAPIに相当する。したがって、スキャン機能に関するSDKAPIの実装は、実質的に、スキャンアプリ1211の実装と共通化されている。その結果、SDKプラットフォーム123において、スキャンアプリ1211と同様の実装を行う必要性を低減させることができる。また、スキャンアプリ1211の機能強化は、自動的にSDKAPIに反映されることになる。
なお、ScanToFAXアプリ1221が、スキャンAPI1211aを直接呼び出す形態が採用されてもよい。但し、SDKAPIを経由することで、SDKプラットフォーム123において、ScanToFAXアプリ1221の状態を容易に把握することができる。
また、スキャンAPI1211aは、必ずしもWebAPIでなくてもよい。例えば、プログラミング言語への依存が許容されるのであれば、スキャンAPI1211aは、特定のプログラミング言語に依存したAPIであってもよい。
また、印刷アプリ1212、コピーアプリ1213、及びFAXアプリ1214等、他の標準アプリ121についても、コピーアプリ1213と同様に、当該アプリケーションに固有の機能に関するAPIが公開されてもよい。例えば、図4では、便宜上、スキャンアプリ1211とScanToFAXアプリ1221との関係のみが示されているが、ScanToFAXアプリ1221は、FAXアプリ1214に関しても、図4と同様の関係を有してもよい。すなわち、ScanToFAXアプリ1221は、スキャンされた画像データのFAX送信に関して、SDKAPIを介してFAXアプリ1214を呼び出してもよい。その結果、スキャンされた画像データをFAX送信するジョブが実現される。
上記より明らかなように、ScanToFAXアプリ1221は、SDKAPI(SDKプラットフォーム123)を介して、スキャンアプリ1211及びFAXアプリ1214を利用する、又はスキャンアプリ1211及びFAXアプリ1214に依存している。したがって、仮に、スキャンアプリ1211又はFAXアプリ1214がインストールされていない機種の画像形成装置10にScanToFAXアプリ1221がインストールされた場合、ScanToFAXアプリ1221は、正常な処理を当該画像形成装置10に実行させることができない。また、或るユーザに対して、スキャンアプリ1211及びFAXアプリ1214のうちの少なくともいずれか一方の利用権限が付与されていない場合に、当該ユーザに対して、ScanToFAXアプリ1221の利用権限が付与されたとしても、当該ユーザは、ScanToFAXアプリ1221を正常に利用することはできない。ScanToFAXアプリ1221が、SDKAPI経由でスキャンアプリ1211又はFAXアプリ1214を呼び出そうとしたときに、画像形成装置10は、スキャンアプリ1211又はFAXアプリ1214の利用権限が無いことを理由に、処理を中止させてしまうからである。
続いて、SDKプラットフォーム123の機能構成例について説明する。図5は、本発明の実施の形態におけるSDKプラットフォームの機能構成例を示す図である。図5において、SDKプラットフォーム123は、インストールファイル取得部1231、インストール依存情報取得部1232、インストール条件判定部1233、インストール部1234、権限依存情報取得部1235、権限付与条件判定部1236、及び権限付与部1237等を有する。これら各部は、画像形成装置10にインストールされたプログラムが、CPU111に実行させる処理により実現される。
インストールファイル取得部1231は、インストール対象のSDKアプリ122を格納するインストールファイルを、プログラム管理装置20より取得する。インストール依存情報取得部1232は、インストールファイルに格納されているアプリ属性ファイルに記録されているデータより、インストール対象のSDKアプリ122が依存する標準アプリ121を示すと共に、各標準アプリ121の事前インストールが必須であるか否かを示す情報(以下、「インストール依存情報」という。)を取得する。インストール条件判定部1233は、インストール対象のSDKアプリ122のインストールが許可されるための条件(以下、「インストール条件」という。)が満たされているか否かを判定する。インストール部1234は、インストール対象のSDKアプリ122のインストールを実行する。
権限依存情報取得部1235は、利用権限の付与対象のSDKアプリ122に対応するアプリ属性ファイルに記録されていたデータより、当該SDKアプリ122が依存する標準アプリ121を示すと共に、各標準アプリ121の利用権限の付与が事前に必須であるか否かを示す情報(以下、「権限依存情報」という。)を取得する。権限付与条件判定部1236は、SDKアプリ122の利用権限の付与が許可されるための条件(以下、「権限付与条件」という。)が満たされているか否かを判定する。権限付与部1237は、SDKアプリ122の利用権限を所定のユーザに付与するための処理を実行する。
以下、画像形成装置10が実行する処理手順について説明する。図6は、SDKアプリの利用環境の構築処理の処理手順の一例を説明するためのフローチャートである。
例えば、ユーザによって、或るSDKアプリ122のインストール指示が操作パネル15又はネットワークを介して入力されると、SDKプラットフォーム123は、当該SDKアプリ122のインストール処理を実行する(S11)。当該SDKアプリ122のインストールに失敗した場合、図6の以降の処理は実行されない。
インストールに成功した場合、SDKプラットフォーム123は、当該SDKアプリ122に関して、インストール時に利用権限の設定を行うか否かを判定する(S12)。当該判定は、例えば、全てのSDKアプリ122に対する共通の設定情報に基づいて行われてもよいし、SDKアプリ122ごとに個別の設定情報に基づいて行われてもよい。前者の場合、インストール時に利用権限の設定を行うか否かを示す設定情報は、例えば、HDD114に記憶されていてもよい。後者の場合、インストール時に利用権限の設定を行うか否かを示す設定情報は、例えば、インストール対象のSDKアプリ122のアプリ属性ファイルに記述されていてもよい。
インストール時に利用権限の設定を行う場合(S12でYES)、SDKプラットフォーム123は、インストールされたSDKアプリ122について、利用権限の設定処理を実行する(S13)。利用権限の設定とは、当該SDKアプリ122に対する利用権限を、各ユーザに付与するか否かの設定をいう。利用権限の設定は、ユーザごとに行われてもよいし、複数のユーザの集合ごとのグループ単位でおこなわれてもよい。または、全ユーザに対して共通に行われてもよい。
続いて、図6のステップS11の詳細について説明する。図7は、インストール処理の処理手順の一例を説明するためのフローチャートである。
ステップS101において、インストールファイル取得部1231は、インストール対象のSDKアプリ122(以下、「対象SDKアプリ」という。)を含むインストールファイルを、プログラム管理装置20より取得(ダウンロード)する。例えば、インストールファイル取得部1231は、インストールファイルの識別情報が指定された取得要求を、プログラム管理装置20に送信する。プログラム管理装置20は、当該識別情報に係るインストールファイルを返信する。なお、インストールファイルは、SDカード80より取得されてもよい。すなわち、インストールファイルは、SDカード80等の記憶媒体によって流通してもよい。
続いて、インストールファイル取得部1231は、取得されたインストールファイルに含まれているアプリ属性ファイルより、インストール依存情報を取得する(S102)。
図8は、インストール依存情報の一例を示す図である。図8では、アプリ属性ファイルがXML(eXtensible Markup Language)形式で記述されている例が示されている。また、図8では、アプリ属性ファイルの記述内容のうち、インストール依存情報に関する記述のみが抜粋されている。
<depend>タグで囲まれたdepend要素の値は、対象SDKアプリにとって依存先となる標準アプリ121の識別情報である。「Scanner」は、スキャンアプリ1211の識別情報である。「FAX」は、FAXアプリ1214の識別情報である。したがって、図8より、対象SDKアプリは、スキャンアプリ1211及びFAXアプリ1214に依存していることが分かる。
インストール依存情報を構成するdepend要素は、install属性を含む。install属性の値は、当該depend要素に係る標準アプリ121との関係における、対象SDKアプリのインストール条件を示す。具体的には、「forced」は、当該depend要素に係る標準アプリ121が事前にインストールされていることが必須である(強制される)ことを示す。すなわち、「forced」は、当該標準アプリ121がインストールされている場合に限って、対象SDKアプリのインストールが許可されることを示す。一方、「unforced」は、当該depend要素に係る標準アプリ121が事前にインストールされていることが必須でない(強制されない)ことを示す。なお、install属性が指定されない状態は、install属性の値が「unforced」である状態と同義である。また、いずれの標準アプリ121にも依存しないSDKアプリ122のアプリ属性ファイルには、depend要素は含まれていない。
続いて、インストール条件判定部1233は、対象SDKアプリがいずれかの標準アプリ121に依存するか否かを判定する(S103)。すなわち、対象SDKアプリのアプリ属性ファイルからインストール依存情報(depend要素)が取得されたか否かが判定される。
対象SDKアプリが、いずれの標準アプリ121にも依存しない場合(S103でNO)、インストール部1234は、対象SDKアプリのインストール処理を実行する(S109)。インストール処理では、対象SDKアプリのアプリ属性ファイルも、例えば、HDD114に記憶される。但し、アプリ属性ファイルがそのままの状態で記憶されなくてもよい。アプリ属性ファイルの内容が、別の形式に整形されて記憶されてもよい。以下、インストール処理によって記憶されたアプリ属性ファイルの内容を、「アプリ属性データ」という。なお、インストール処理に成功すると、図7の処理は正常終了し、図6のステップS12に進む。
一方、対象SDKアプリが、いずれかの標準アプリ121に依存する場合(S103でYES)、インストール条件判定部1233は、依存先の全ての標準アプリ121が画像形成装置10にインストール済みであるか否かを判定する(S104)。対象SDKアプリの依存先の全ての標準アプリ121とは、対象SDKアプリのアプリ属性ファイルのdepend要素に識別情報が指定されている全ての標準アプリ121をいう。ステップS104における判定は、例えば、NVRAM115又はHDD114に記憶されている、インストールされている標準アプリ121の一覧情報と、各depend要素の値とを照合することにより行われる。
依存先の全ての標準アプリ121がインストール済みである場合(S104でYES)、ステップS109が実行される。依存先の標準アプリ121のうちのいずれかがインストールされていない場合(S104でNO)、ステップS105以降において、異常に対応付いた処理(異常系の処理)の一例が実行される。具体的には、インストールされていない依存先の標準アプリ121(以下、「未インストール依存先アプリ」という。)が一つずつ処理対象とされて、順番にステップS105以降が実行される。
ステップS105において、インストール条件判定部1233は、処理対象の未インストール依存先アプリの事前インストールは必須であるか否かを判定する。当該判定は、当該未インストール依存先アプリに対応するdepend要素のinstall属性の値が、「forced」であるか否かによって行われる。
当該インストールが必須である場合、すなわち、当該install属性の値が「forced」である場合(S105でYES)、インストール条件判定部1233は、インストール条件が満たされないため、インストールは失敗であると判定する(S106)。この場合、図7の処理は、異常終了し、図6のステップS12以降は実行されない。なお、ステップS106において、インストール部1234は、図9に示されるような警告画面を、例えば、操作パネル15に表示させてもよい。
図9は、インストールの失敗を通知する警告画面の表示例を示す図である。図9の警告画面510は、ScanToFAXアプリ1221が対象SDKアプリであって、スキャンアプリ1211が画像形成装置10にインストールされていない状態に対応する。したがって、警告画面510は、スキャンアプリ1211がインストールされていないため、ScanToFAXアプリ1221をインストールできないことを示す警告メッセージを含む。
一方、当該インストールが必須でない場合(S105でNO)、インストール部1234は、依存先の標準アプリ121がインストールされていないことを示す警告画面を、例えば、操作パネル15に表示させる(S107)。
図10は、依存先の標準アプリのインストールを促す警告画面の表示例を示す図である。図10の警告画面520は、ScanToFAXアプリ1221が対象SDKアプリであって、FAXアプリ1214が画像形成装置10にインストールされていない状態に対応する。したがって、警告画面520は、FAXアプリ1214のインストールを促す警告メッセージを含む。
ユーザによって、確認ボタン521が押下されると、インストール条件判定部1233は、他の全ての未インストール依存先アプリについて、ステップS105以降を実行する(S108)。全ての未インストール依存先についてステップS105以降が順番に実行される過程において、ステップS106が実行されて異常終了しなかった場合(S108でNO)、インストール部1234は、対象SDKアプリのインストール処理を実行する(S109)。インストール処理に成功すると、図7の処理は正常終了し、図6のステップS12に進む。
続いて、図6のステップS13の詳細について説明する。図11は、利用権限設定処理の処理手順の一例を説明するためのフローチャートである。
ステップS201において、権限依存情報取得部1235は、利用権限の設定対象のSDKアプリ(以下、「対象SDKアプリ」とい。)に関してHDD114等に記憶されているアプリ属性データより、権限依存情報を取得する(S201)。
図12は、権限依存情報の一例を示す図である。図12では、アプリ属性データがXML(eXtensible Markup Language)形式で記述されている例が示されている。また、図12では、アプリ属性データのうち、権限依存情報に関する記述のみが抜粋されている。
depend要素及び当該要素の値の意味は、図8に示したインストール依存情報と同じである。権限依存情報を構成するdepend要素は、available属性を含む。available属性の値は、当該depend要素に係る標準アプリ121との関係における、対象SDKアプリに関する権限付与条件を示す。権限付与条件とは、利用権限の付与が許可されるための条件をいう。具体的には、「forced」は、当該depend要素に係る標準アプリ121について事前に利用権限が付与されていることが必須である(強制される)ことを示す。すなわち、「forced」は、当該標準アプリ121の利用権限が付与されている場合に限って、対象SDKアプリの利用権限の付与が許可されることを示す。一方、「unforced」は、当該depend要素に係る標準アプリ121について事前に利用権限が付与されていることが必須でない(強制されない)ことを示す。なお、available属性が指定されない状態は、available属性の値が「unforced」の状態と同義である。また、いずれの標準アプリ121に依存しないSDKアプリ122のアプリ属性データには、depend要素は含まれていない。
なお、権限依存情報は、図8において示したインストール依存情報と統合されてもよい。すなわち、対象SDKアプリによる標準アプリ121への依存関係の影響は、インストール及び利用権限の設定のいずれにおいても同じである。したがって、一つのdepend要素に対して、install属性及びavailable属性の双方が記述されてもよい。
続いて、権限付与条件判定部1236は、対象SDKアプリがいずれかの標準アプリ121に依存するか否かを判定する(S202)。すなわち、対象SDKアプリのアプリ属性データから権限依存情報(depend要素)が取得されたか否かが判定される。
対象SDKアプリが、いずれの標準アプリ121にも依存しない場合(S202でNO)、権限付与部1237は、対象SDKアプリの利用権限の付与処理を実行する(S210)。利用権限の付与処理では、利用権限の付与対象とされているユーザ(以下、「対象ユーザ」という。)に対して、対象SDKアプリの利用権限が付与されたこと(対象SDKアプリの利用が許可されること)を示す権限設定情報が、HDD114又はNVRAM115に記憶される。利用権限の付与対象とされるユーザは、例えば、ステップS201の前において、予め選択される。上述したように、利用権限の付与対象とされるユーザは、特定のユーザであってもよいし、特定のグループに属する複数のユーザであってもよいし、全ユーザであってもよい。なお、利用権限の付与処理に成功すると、図11の処理は正常終了する。
一方、対象SDKアプリが、いずれかの標準アプリ121に依存する場合(S202でYES)、権限付与条件判定部1236は、依存先の全ての標準アプリ121の利用権限が、対象ユーザに対して付与済みであるか否かを判定する(S203)。対象SDKアプリの依存先の全ての標準アプリ121とは、対象SDKアプリのアプリ属性データのdepend要素に識別情報が指定されている全ての標準アプリ121をいう。ステップS203における判定は、例えば、NVRAM115又はHDD114に記憶されている権限設定情報を参照することにより行われる。
依存先の全ての標準アプリ121の利用権限が、対象ユーザに付与済みである場合(S203でYES)、ステップS210が実行される。
依存先の標準アプリ121のうちのいずれかの利用権限が、対象ユーザに付与されていない場合(S203でNO)、ステップS204以降において、異常系の処理の一例が実行される。具体的には、利用権限が付与されていない依存先の標準アプリ121(以下、「権限未付与依存先アプリ」という。)が一つずつ処理対象とされて、順番にステップS204以降が実行される。
ステップS204において、権限付与条件判定部1236は、処理対象の権限未付与依存先アプリに関して事前の利用権限の付与は必須であるか否かを判定する。当該判定は、当該権限未付与依存先アプリに対応するdepend要素のavailable属性の値が、「forced」であるか否かによって行われる。
当該利用権限の付与が必須である場合、すなわち、当該available属性の値が「forced」である場合(S204でYES)、権限付与条件判定部1236は、処理対象の権限未付与依存先アプリの利用権限の付与の是非を問い合わせる問い合わせ画面を、例えば、操作パネル15に表示させる(S205)。
図13は、問い合わせ画面の表示例を示す図である。図13の問い合わせ画面530は、ScanToFAXアプリ1221が対象SDKアプリであって、スキャンアプリ1211の利用権限が対象ユーザに付与されていない状態に対応する。
操作者は、利用権限を付与するか否かに応じて、はいボタン531又はいいえボタン532を押下する。
はいボタン531が押下されると、権限付与部1237は、処理対象の権限未付与依存先アプリに関して、対象ユーザへの利用権限の付与処理を実行する。いいえボタン532が押下された場合、当該利用権限の付与処理は実行されない。
続いて、権限付与条件判定部1236は、処理対象の権限未付与依存先アプリの利用権限が付与されたか否かを判定する(S206)。当該権限未付与依存先アプリの利用権限が付与されない場合(S206でNO)、権限付与条件判定部1236は、権限付与条件が満たされないため、利用権限の設定は失敗であると判定する(S207)。この場合、図11の処理は、異常終了する。当該権限未付与依存先アプリの利用権限が付与された場合(S206でYES)、ステップS209に進む。
一方、当該利用権限の付与が必須でない場合(S204でNO)、権限付与部1237は、依存先の標準アプリ121の利用権限が付与されていないことを示す警告メッセージを含む警告画面を、例えば、操作パネル15に表示させる(S208)。
続いて、権限付与条件判定部1236は、他の全ての権限未付与依存先アプリについて、ステップS204以降を実行する(S209)。全ての権限未付与依存先アプリについてステップS204以降が順番に実行される過程において、ステップS207が実行されて異常終了しなかった場合(S209でNO)、権限付与部1237は、対象SDKアプリの利用権限の付与処理を実行する(S210)。
上述したように、本実施の形態によれば、いずれかの標準アプリ121に依存するSDKアプリ122のインストールや利用権限の設定に関して、依存先の標準アプリ121のインストール状況や、利用権限の設定状況等に応じて、異常系の処理を実行させることができる。例えば、異常系の処理として、処理を中止したり、ユーザに対して警告又は問い合わせ等を行ったりすることができる。
その結果、正常に利用できない状態をユーザが知らずに、SDKアプリ122が正常にインストールされてしまったり、利用権限が正常に設定されてしまったりするのを回避することができる。その結果、プログラム間の依存関係に基づく不都合の発生を低減させることができる。
また、本実施の形態では、SDKプラットフォーム123が、一元的に上記の処理を行うため、SDKアプリ122ごとに、上記のような異常系の処理を実装する必要性を低減することができる。
なお、本実施の形態では、SDKアプリ122が標準アプリ121に依存する例について説明したが、或るSDKアプリ122が、他のSDKアプリ122に依存する場合について、本実施の形態が適用されてもよい。
また、本実施の形態は、プロジェクタ、デジタルカメラ、テレビ会議システム等、画像形成装置10以外の機器又はシステムに適用されてもよい。
ところで、本実施の形態では、depend要素のinstall属性において、依存先の事前インストールが必須であるか否かが設定可能とされている。換言すれば、依存先の事前インストールは、固定的に強制されていない。これは、インストール順序が拘束されることによる不都合を回避するためである。例えば、ユーザが、正常に動作をしないことを承知の上で、とりあえずSDKアプリ122をインストールし、その後に、標準アプリ121をインストールしようとする場合も考えられるからである(理由1)。
また、依存先のSDKアプリ122がインストールされている場合にのみインストールが許可されるとすると、相互に依存し合う2つ以上のSDKアプリ122のインストールが不可能となってしまう場合が有る(理由2)。
更に、一部の機能に限って、標準アプリ121又は他のSDKアプリ122に依存するSDKアプリ122の場合、依存先の標準アプリ121又は他のSDKアプリ122がインストールされていない場合でも、当該一部の機能以外の機能を実行することが可能な場合に対応するためのである(理由3)。
そして、特に、理由2及び理由3に関しては、SDKアプリ122の開発者であれば、事情を予測可能であると考えられる。したがって、本実施の形態では、当該開発者によって作成される可能性の高いアプリ属性ファイルにおいて、事前インストールが必須であるか否かが設定可能とされているのである。
depend要素のavailable属性において、依存先の事前の利用権限の付与が強制されるか否かが設定可能とされているのも、上記と同様の理由による。
なお、本実施の形態において、インストール条件判定部1233又は権限付与条件判定部1236は、判定部の一例である。プログラム管理装置20は、記憶装置の一例である。アプリ属性ファイルに格納されているデータは、第一のプログラムに対応付けられているデータの一例である。
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
1 インストールシステム
10 画像形成装置
11 コントローラ
12 スキャナ
13 プリンタ
14 モデム
15 操作パネル
16 ネットワークインタフェース
17 SDカードスロット
20 プログラム管理装置
80 SDカード
111 CPU
112 RAM
113 ROM
114 HDD
115 NVRAM
121 標準アプリ121
122 SDKアプリ
123 SDKプラットフォーム
124 コントロールサービス
125 OS
1211 スキャンアプリ
1212 印刷アプリ
1213 コピーアプリ
1214 FAXアプリ
1221 ScanToFAXアプリ
1231 インストールファイル取得部
1232 インストール依存情報取得部
1233 インストール条件判定部
1234 インストール部
1235 権限依存情報取得部
1236 権限付与条件判定部
1237 権限付与部
特開2005−269619号公報 特開2003−202930号公報

Claims (8)

  1. インストール対象の第一のプログラムに対応付けられているデータに基づいて特定される、前記第一のプログラムが依存する第二のプログラムがインストール済みであるかを判定する判定部と、
    前記第二のプログラムがインストール済みではない場合に、前記第一のプログラムのインストールについて異常に対応付いた処理を実行するインストール部とを有し、
    前記インストール部は、前記データにおいて、前記第二のプログラムがインストール済みであることが必須であることが示されている場合に、前記第一のプログラムのインストールを実行しない、
    ことを特徴とする機器。
  2. 前記インストール部は、前記データにおいて、前記第二のプログラムがインストール済みであることが必須であることが示されている場合に、前記第二のプログラムがインストールされていないことを示す情報を出力し、前記第一のプログラムのインストールを実行しない、
    ことを特徴とする請求項1記載の機器。
  3. 前記インストール部は、前記第二のプログラムがインストール済みである場合に、前記第二のプログラムに対する利用権限が所定のユーザに付与されていないと、前記所定のユーザへの前記利用権限の付与をするか否かを操作者に問い合わせる、
    ことを特徴とする請求項1又は2記載の機器。
  4. 前記インストール部は、前記操作者によって前記利用権限を付与しないことが指示されると、前記第一のプログラムに対する利用権限を、前記所定のユーザに付与しない、
    ことを特徴とする請求項3記載の機器。
  5. 前記インストール部は、前記データにおいて、前記第二のプログラムがインストール済みであることが必須でないことが示されている場合に、前記第二のプログラムがインストールされていないことを示す情報を出力し、前記第一のプログラムのインストールを実行する、
    ことを特徴とする請求項1乃至4いずれか一項記載の機器。
  6. 請求項1乃至5いずれか一項記載の機器と、前記機器にネットワークを介して接続し、前記第一のプログラムを記憶する記憶装置とを有する情報処理システム。
  7. インストール対象の第一のプログラムに対応付けられているデータに基づいて特定される、前記第一のプログラムが依存する第二のプログラムがインストール済みであるかを判定する判定手順と、
    前記第二のプログラムがインストール済みでない場合に、前記第一のプログラムのインストールについて異常に対応付いた処理を実行するインストール手順とを機器が実行し、
    前記インストール手順は、前記データにおいて、前記第二のプログラムがインストール済みであることが必須であることが示されている場合に、前記第一のプログラムのインストールを実行しない、
    ことを特徴とする情報処理方法。
  8. インストール対象の第一のプログラムに対応付けられているデータに基づいて特定される、前記第一のプログラムが依存する第二のプログラムがインストール済みであるかを判定する判定手順と、
    前記第二のプログラムがインストール済みでない場合に、前記第一のプログラムのインストールについて異常に対応付いた処理を実行するインストール手順とを機器に実行させ、
    前記インストール手順は、前記データにおいて、前記第二のプログラムがインストール済みであることが必須であることが示されている場合に、前記第一のプログラムのインストールを実行しない、
    ことを特徴とするプログラム。
JP2017020890A 2017-02-08 2017-02-08 機器、情報処理システム、情報処理方法、及びプログラム Active JP6330933B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017020890A JP6330933B2 (ja) 2017-02-08 2017-02-08 機器、情報処理システム、情報処理方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017020890A JP6330933B2 (ja) 2017-02-08 2017-02-08 機器、情報処理システム、情報処理方法、及びプログラム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2013041705A Division JP6089794B2 (ja) 2013-03-04 2013-03-04 機器、情報処理システム、情報処理方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2017084420A true JP2017084420A (ja) 2017-05-18
JP6330933B2 JP6330933B2 (ja) 2018-05-30

Family

ID=58713007

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017020890A Active JP6330933B2 (ja) 2017-02-08 2017-02-08 機器、情報処理システム、情報処理方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP6330933B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7508803B2 (ja) 2020-02-17 2024-07-02 富士フイルムビジネスイノベーション株式会社 情報処理装置およびプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004127280A (ja) * 2002-09-13 2004-04-22 Ricoh Co Ltd 画像形成装置およびアプリ起動制御方法
JP2010033421A (ja) * 2008-07-30 2010-02-12 Canon Inc 統合インストーラ

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004127280A (ja) * 2002-09-13 2004-04-22 Ricoh Co Ltd 画像形成装置およびアプリ起動制御方法
JP2010033421A (ja) * 2008-07-30 2010-02-12 Canon Inc 統合インストーラ

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
UNISYS ABSUITE導入・構成ガイド リリース2.0, vol. 第1版, JPN6017042945, July 2012 (2012-07-01), JP, pages 2 - 27, ISSN: 0003678114 *
蒲生睦男, さすが!と言わせる PLAGGER徹底攻略術, vol. 第1版, JPN6017042944, 2 February 2009 (2009-02-02), pages 220, ISSN: 0003678113 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7508803B2 (ja) 2020-02-17 2024-07-02 富士フイルムビジネスイノベーション株式会社 情報処理装置およびプログラム

Also Published As

Publication number Publication date
JP6330933B2 (ja) 2018-05-30

Similar Documents

Publication Publication Date Title
US8305591B2 (en) Image forming apparatus and methods used in the image forming apparatus
US9307108B2 (en) Information processing system and information processing method
US9274776B2 (en) Product, method, and apparatus for installing a second program based on a call from a first program
US9274775B2 (en) Apparatus, control method, and storage medium to instruct a framework to stop a target application based on a usage amount of a resource and a type of the target application
US8429727B2 (en) Authentication control apparatus and authentication control method
US10664212B2 (en) Image forming apparatus, control method for image forming apparatus, and storage medium for controlling storage of a print job
US11140291B2 (en) Information processing apparatus, control method thereof, and storage medium
US9612818B2 (en) Information processing apparatus, program management method for information processing apparatus, and non-transitory computer-readable storage medium
US20130042232A1 (en) Device, information processing method, and computer-readable storage medium
US8839250B2 (en) Image forming apparatus, storage medium, and program system determination
US9250840B2 (en) Image forming apparatus capable of executing applications, image forming method, and recording medium
US10996998B2 (en) Information processing apparatus and control method thereof
JP7069969B2 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
JP6330933B2 (ja) 機器、情報処理システム、情報処理方法、及びプログラム
JP5293462B2 (ja) 電子機器、情報処理方法、及び情報処理プログラム
JP5793872B2 (ja) 画像形成装置、プログラム管理方法、プログラム管理プログラム、及び記録媒体
JP6089794B2 (ja) 機器、情報処理システム、情報処理方法、及びプログラム
JP6961412B2 (ja) 画像形成装置、画像形成装置の制御方法、およびプログラム
US20170244846A1 (en) Information processing apparatus, information processing method, and non-transitory computer readable medium
JP7119433B2 (ja) 機器、情報処理システム、情報処理方法及びプログラム
US20240146855A1 (en) Control method of information processing apparatus and information processing system
JP2016062350A (ja) 画像形成装置、情報処理方法及びプログラム
JP2017220013A (ja) 機器管理装置、機器管理システム及び機器管理プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170208

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171025

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171114

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180112

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180327

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180409

R151 Written notification of patent or utility model registration

Ref document number: 6330933

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151