JP7069969B2 - 情報処理装置、情報処理方法及び情報処理プログラム - Google Patents

情報処理装置、情報処理方法及び情報処理プログラム Download PDF

Info

Publication number
JP7069969B2
JP7069969B2 JP2018066203A JP2018066203A JP7069969B2 JP 7069969 B2 JP7069969 B2 JP 7069969B2 JP 2018066203 A JP2018066203 A JP 2018066203A JP 2018066203 A JP2018066203 A JP 2018066203A JP 7069969 B2 JP7069969 B2 JP 7069969B2
Authority
JP
Japan
Prior art keywords
program
application
installation
information processing
execution environment
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.)
Active
Application number
JP2018066203A
Other languages
English (en)
Other versions
JP2019175399A (ja
Inventor
英樹 大橋
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 JP2018066203A priority Critical patent/JP7069969B2/ja
Priority to EP19160578.1A priority patent/EP3547109B1/en
Priority to US16/299,268 priority patent/US11016747B2/en
Publication of JP2019175399A publication Critical patent/JP2019175399A/ja
Application granted granted Critical
Publication of JP7069969B2 publication Critical patent/JP7069969B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/62Uninstallation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/305Authentication, i.e. establishing the identity or authorisation of security principals by remotely controlling device operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44536Selecting among different versions
    • G06F9/44542Retargetable
    • G06F9/44547Fat binaries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Description

本発明は、情報処理装置、情報処理方法及び情報処理プログラムに関する。
画像形成装置や携帯端末等の組み込み機器(以下、単に「機器」という。)の中には、出荷前に工場で組み込まれるアプリケーションの他に、出荷後にユーザの使用目的に合わせて追加的にインストールされるアプリケーション(以下、「追加アプリ」という。)をインストール可能なものが有る。
追加アプリについては、追加アプリのインストール先の機器におけるプログラム実行環境(例えば、OS(Operating System)等。以下「プラットフォーム」という。)が予定している形式で作成される必要が有る。例えば、追加アプリは、当該追加アプリのライフサイクル(インストール、起動、停止、アンインストール等)をインストール先のプラットフォームが管理可能とするためのメソッドを備えると共に、斯かる管理を可能とするためのファイル構成を有している必要が有る。
しかしながら、機器に対して第2のプラットフォームを追加し、当該第2のプラットフォーム上で動作するアプリケーションを機器にインストールしたいといった要望が有る。第2のプラットフォームの一例としてWebコンテナが挙げられ、第2のプラットフォーム上で動作するアプリケーションの一例としてサーブレット等のWebアプリが挙げられる。
この場合、機器は、2以上のプラットフォームを有することになる。プラットフォームごとにアプリケーションのインストール方法等が異なるため、ユーザは、新たに機器にインストールするアプリがいずれのプラットフォームに対応するのかを意識して、当該プラットフォームに応じた操作を行う必要が有る。
本発明は、上記の点に鑑みてなされたものであって、複数のプログラム実行環境が混在する場合のプログラムの管理を簡便化することを目的とする。
そこで上記課題を解決するため、本発明は、第1のプログラム実行環境と第2のプログラム実行環境とを有する情報処理装置であって、前記第1のプログラム実行環境に対応した第1のプログラムのインストールを制御する第1の制御部と、前記第1のプログラムからの要求に応じて、前記第2のプログラム実行環境に対応した第2のプログラムのインストールを制御する第2の制御部と、を有し、前記第1の制御部によって前記第1のプログラムがインストールされた場合、インストールされた前記第1のプログラムは、前記第2の制御部から前記第2のプログラム実行環境においてインストール済みのプログラムを示す一覧情報を取得し、前記一覧情報に基づいて前記第2の制御部に対して前記第2のプログラムのインストールを要求する。
複数のプログラム実行環境が混在する場合のプログラムの管理を簡便化することができる。
本発明の実施の形態における画像形成装置10のハードウェア構成例を示す図である。 本発明の実施の形態における画像形成装置10の機能構成例を示す図である。 Webアプリ60とSDKアプリ40との親子関係を説明するための図である。 Webアプリ60のインストール処理の処理手順の一例を説明するためのシーケンス図である。 Webアプリ60のインストール後の画像形成装置10の機能構成例を示す図である。 Webアプリ60のアンインストール処理の処理手順の第1の例を説明するためのシーケンス図である。 Webアプリ60のアンインストール処理の処理手順の第2の例を説明するためのシーケンス図である。 複数の子アプリの共通機能が実装される親アプリの例を示す図である。
以下、図面に基づいて本発明の実施の形態を説明する。図1は、本発明の実施の形態における画像形成装置10のハードウェア構成例を示す図である。図1において、画像形成装置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は、記録媒体の種類に応じたハードウェアによって代替されればよい。
図2は、本発明の実施の形態における画像形成装置10の機能構成例を示す図である。図2において、画像形成装置10は、アプリプラットフォーム20、1以上の組み込みアプリ30、1以上のSDKアプリ40、及びWebコンテナアプリ50等を有する。これら各部は、画像形成装置10にインストールされた1以上のプログラムが、CPU111に実行させる処理により実現される。画像形成装置10は、また、関連情報記憶部70を利用する。関連情報記憶部70は、例えば、HDD114、又は画像形成装置10にネットワークを介して接続可能な記憶装置等を用いて実現可能である。
アプリプラットフォーム20は、組み込みアプリ30やSDKアプリ40を管理すると共に、組み込みアプリ30やSDKアプリ40のプラットフォームとして機能する。本実施の形態において、プラットフォームとは、アプリケーションプログラム(以下「アプリ」という。)の管理や、当該アプリの実行環境として機能するソフトウェアをいう。アプリの管理とは、例えば、インストール、起動、停止、アンインストール等である。アプリの実行環境とは、アプリを制御するためのAPI(Application Program Interface)及び当該APIの実装を含むソフトウェアをいう。なお、Android(登録商標)等のOS(Operating System)等がアプリプラットフォーム20とされてもよい。
図2において、アプリプラットフォーム20は、SDKインストール制御部21を含む。SDKインストール制御部21は、アプリプラットフォーム20に対するSDKアプリ40のインストール及びアンインストールを制御する。
組み込みアプリ30は、画像形成装置10の出荷前に工場で組み込まれるアプリである。SDKアプリ40は、画像形成装置10の出荷後にユーザの使用目的に合わせて追加的にインストールされるアプリである。例えば、SDKアプリ40は、SDKアプリ40の開発用のSDK( Software Development Kit)を利用して作成されてもよい。
なお、SDKアプリ40は、アプリプラットフォーム20が予定している形式で作成される。例えば、SDKアプリ40は、当該SDKアプリ40のライフサイクル(インストール、起動、停止、アンインストール等)をインストール先のプラットフォームが管理可能とするためのメソッドを備えると共に、斯かる管理を可能とするためのファイル構成を有する。
Webコンテナアプリ50は、例えば、Tomcat(登録商標)等のように、一般的なWebコンテナとして機能するアプリケーションプログラムである。すなわち、Webコンテナアプリ50は、サーブレット等のWebアプリ60に対するプラットフォームとして機能する。Webコンテナアプリ50は、HTTP(S)ポートを開き、外部からのHTTP(HyperText Transfer Protocol)リクエストのURL(Uniform Resource Locator)に応じ、当該URLに対応するWebアプリ60に当該HTTPリクエストの内容を通知する。
図2において、Webコンテナアプリ50は、Webインストール制御部51を含む。Webインストール制御部51は、Webアプリ60のインストール及びアンインストールを制御する。なお、Webインストール制御部51の機能(Webアプリ60のインストール及びアンインストールの制御等)は、外部からAPIを介して呼びだし可能である。
なお、Webコンテナアプリ50は、組み込みアプリ30として作成されてもよいし、SDKアプリ40として作成されてもよい。すなわち、本実施の形態においてWebコンテナアプリ50は、アプリプラットフォーム20によって管理されるアプリの一つである。但し、Webコンテナアプリ50は、アプリプラットフォーム20の管理外のアプリであってもよい。
Webアプリ60は、サーブレット等のWebアプリケーションである。Webアプリ60は、Webコンテナから通知されるリクエストの内容に応じた処理を実行する。なお、Webアプリ60は、アプリプラットフォーム20とは直接的には関係を有さない。すなわち、Webアプリ60は、アプリプラットフォーム20の管理下にはない。Webアプリ60は、アプリプラットフォーム20が予定している形式を有さないからである。
ところで、図2において、Webアプリ60を示す矩形は、破線によって示されている。当該破線は、Webアプリ60がまだ画像形成装置10にインストールされていない状態を示す。
上記のように、本実施の形態の画像形成装置10は、アプリプラットフォーム20とWebコンテナアプリ50といった2つのプラットフォームを有する。この状態において、ユーザがWebアプリ60をインストールしたい場合、ユーザは、SDKアプリ40とは異なった方法で(すなわち、Webコンテナアプリ50に従った方法で)当該Webアプリ60をインストールする必要がある。斯かる煩雑さを解消するために、本実施の形態では、Webアプリ60がSDKアプリ40に対して関連付けられる。本実施の形態において、斯かる関連付けをWebアプリ60とSDKアプリ40との親子関係という。
図3は、Webアプリ60とSDKアプリ40との親子関係を説明するための図である。図3に示されるように、Webアプリ60とSDKアプリ40との親子関係において、SDKアプリ40が親(親アプリ)であり、Webアプリ60が子(子アプリ)である。図3において、SDKアプリ40aは、Webアプリ60a、60b及び60cの3つのWebアプリ60の親アプリである例が示されている。
親アプリとしてのSDKアプリ40aは、当該SDKアプリ40aに固有の機能を有していなくてもよく、当該SDKアプリ40aのインストールに伴って、子アプリとしてのWebアプリ60をインストールし、当該SDKアプリ40aのアンインストールに伴って、子アプリとしてのWebアプリ60をアンインストールする機能を有していればよい。その結果、ユーザは、親アプリを、SDKアプリ40に従った方法(すなわち、アプリプラットフォーム20に従った方法)でインストール又はアンインストールすることで、当該親アプリに関連付けられているWebアプリ60のインストール又はアンインストールを行うことができる。
なお、図3では、1つのSDKアプリ40aに対して3つのWebアプリ60が子アプリとして関連付いている例が示されているが、親アプリと子アプリとの関係は、1対1でもよいし、1対多でもよい。
図2における関連情報記憶部70には、Webコンテナアプリ50に対してインストールされたWebアプリ60に関する親子関係を示す情報が記憶される。
以下、画像形成装置10において実行される処理手順について説明する。図4は、Webアプリ60のインストール処理の処理手順の一例を説明するためのシーケンス図である。
ステップS101において、ユーザは、画像形成装置10の操作パネル15を介して、インストール対象のWebアプリ60に対応するSDKアプリ40a(親アプリ)を選択して、インストール指示を入力する。なお、当該親アプリのインストールパッケージ(書庫ファイル)は、例えば、画像形成装置10に挿入されたSDカード80等の外部記録媒体に記憶されていてもいし、画像形成装置10とネットワークを介して接続されるコンピュータに記憶されていてもよい。
当該指示に応じ、アプリプラットフォーム20のSDKインストール制御部21は、選択された親アプリのインストールパッケージを取得し、当該インストールパッケージを用いて当該親アプリのインストールを行う(S102)。その結果、親アプリのインストールパッケージに含まれているファイル群が、アプリプラットフォーム20が予定している(期待している)フォルダ構成で、例えば、HDD114に形成されているファイルシステムに展開される。但し、当該ファイル群の中には、当該親アプリの子アプリであるWebアプリ60のインストールパッケージ(書庫ファイル)が含まれている。
続いて、SDKインストール制御部21は、アプリプラットフォーム20上の各アプリに対して、新たなアプリ(当該親アプリ)のインストールを通知する。したがって、当該通知は、Webコンテナアプリ50にも通知される(S103)。なお、ステップS103における通知は、アプリプラットフォーム20によっては(すなわち、OS等によっては)、実行されなくてもよい。
続いて、SDKインストール制御部21は、画像形成装置10を再起動させる(S104)。画像形成装置10の再起動は、SDKインストール制御部21が自動的に行ってもよい。又は、SDKインストール制御部21が再起動を促すメッセージを操作パネル15に表示し、ユーザによる操作に応じて画像形成装置10が再起動されてもよい。
再起動が完了すると、アプリプラットフォーム20は、アプリプラットフォーム20上のアプリのうち、画像形成装置10の起動のイベントについてイベントハンドラを設定しているアプリに対して、画像形成装置10の起動の完了を通知する。したがって、親アプリが、インストールに応じて当該イベントハンドラを設定しておくことで、当該親アプリにも画像形成装置10の起動の完了が通知される(S105)。
親アプリは、画像形成装置10の起動の完了の通知を契機として、子アプリのインストールに関する処理を開始する。但し、親アプリが画像形成装置10の起動時にアプリプラットフォーム20によって自動的に起動される際には、インストール後の最初の親アプリの起動時が、当該処理の契機とされてもよい。又は、画像形成装置10の再起動後に、SDKインストール制御部21から親アプリに対してインストールの完了が通知される場合には、当該通知が当初処理の契機とされてもよい。又は、親アプリがインストール指示を受け付けるためのボタン等を操作パネル15に表示し、当該ボタン等に対する操作が当該処理の契機とされてもよい。
まず、親アプリは、Webコンテナアプリ50から、Webコンテナアプリ50上にインストールされているWebアプリ60の属性情報(Webアプリ60の識別情報(以下「WebアプリID」という。)や、バージョン情報等を含む情報)の一覧情報を取得し(S106、S107)、当該親アプリの子アプリのうち、インストールされていない子アプリの有無を判定する。すなわち、当該親アプリの子アプリのうち、当該一覧情報に含まれていないWebアプリIDに係る子アプリの有無が判定される。該当する子アプリが無い場合、ステップS111以降は実行されない。
一方、該当する子アプリ(以下、「対象子アプリ」という。)が1以上有る場合、対象子アプリごとに、ステップS111~S114が実行される。
ステップS111において、親アプリは、当該親アプリのインストール先のいずれかのフォルダに格納されている対象子アプリのインストールパッケージと、当該親アプリの識別情報である親アプリパッケージ名とを含むインストール要求を、Webコンテナアプリ50のWebインストール制御部51に入力する。
当該インストール要求に応じ、Webインストール制御部51は、対象子アプリのインストールパッケージを利用して、対象子アプリをWebコンテナアプリ50に対してインストール(deploy)する(S112)。続いて、Webインストール制御部51は、対象子アプリのWebアプリIDを、当該インストール要求に含まれている親アプリパッケージ名に関連付けて関連情報記憶部70に記憶する(S113)。続いて、Webインストール制御部51は、インストール結果を親アプリに対して応答する。当該インストール結果は、インストールの成否を示す情報である。
全ての対象子アプリについてステップS111~S114が実行されると、Webインストール制御部51は、Webコンテナアプリ50を再起動することで、当該各子アプリのインストールを有効化する(S115)。
その後、インストールされた子アプリは、例えば、ユーザによって入力されるリクエストに対し(S121)、レスポンスを返信できるようになる(S122)。なお、厳密には、当該リクエストは、Webコンテナアプリ50を介して当該子アプリに入力され、当該レスポンスは、Webコンテナアプリ50を介して返信される。
図4の処理手順が実行されることにより、図2に示した画像形成装置10の機能構成は、例えば、図5に示されるように変化する。
図5は、Webアプリ60のインストール後の画像形成装置10の機能構成例を示す図である。図5には、親アプリとしてのSDKアプリ40aが、アプリプラットフォーム20上にインストールされ、SDKアプリ40aの子アプリであるWebアプリ60a、60b及び60cがWebコンテナアプリ50上にインストールされた状態が示されている。
なお、親アプリと子アプリとの関係が1対1ではなく、1対N(N>1の整数)である場合、親アプリは、(N-1)個の他の親アプリ(便宜上、「兄弟アプリ」という。)をインストールすることで、結果的にN個の親アプリとN個の子アプリとがインストールされるようにしてもよい。この場合、N個のそれぞれの親アプリの名称を、N個のそれぞれのWebアプリ60の機能に対応した名称としてもよい。そうすることで、例えば、アプリプラットフォーム20に対して、インストールされているアプリの一覧の表示が要求された場合に、当該N個の親アプリが表示されるようになる。その結果、ユーザに対しては、当該N個の親アプリの存在によって、N個のWebアプリ60の存在を示すことができる。
なお、図4の処理手順によれば、親アプリによって子アプリのインストールが制御されるため、インストール処理を親アプリに応じて柔軟に変化させることができる。例えば、或る親アプリが、機種に応じてインストールの対象とする子アプリを変えたい場合、当該親アプリは、例えば、ステップS105に続いて、画像形成装置10の機種情報をアプリプラットフォーム20に照会してもよい。当該親アプリは、照会結果に応じて、インストール対象とする子アプリを変化させてもよい。また、親アプリは、ステップS107において取得されるWebアプリ60の一覧情報を参照して、子アプリとWebアプリIDが共通するWebアプリ60が既にインストール済みであっても、子アプリの方が既存のWebアプリ60よりもバージョンが新しい場合には、インストールを実行するようにしてもよい。
一方、親アプリではなく、Webコンテナアプリ50が、ステップS103におけるインストールの通知に応じて、インストール対象の親アプリに関連付いている子アプリのインストールを行ってもよい。この場合、各親アプリにインストール処理を実装する必要が無くなるという利点はあるが、インストール処理を親アプリに応じて柔軟に変化させることができるといった利点は失われる。
続いて、Webアプリ60のアンインストールについて説明する。図6は、Webアプリ60のアンインストール処理の処理手順の第1の例を説明するためのシーケンス図である。
例えば、アプリプラットフォーム20のSDKインストール制御部21が操作パネル15に表示しているアプリ一覧画面に表示されているSDKアプリ40群の中から、いずれかのWebアプリ60の親アプリであるSDKアプリ40がアンインストール対象として選択されて、アンインストール指示がユーザによって入力されると(S201)、SDKインストール制御部21は、アンインストールの準備要求を当該親アプリに入力する(S202)。当該親アプリは、当該準備要求に応じ、自らが確保しているリソース等を解放する。
続いて、親アプリは、Webコンテナアプリ50のWebインストール制御部51に対して、当該親アプリの親アプリパッケージ名を含むアンインストール要求を入力する(S203)。Webインストール制御部51は、当該アンインストール要求に応じ、当該アンインストール要求に含まれている親アプリパッケージ名に関連付けられて関連情報記憶部70に記憶されているWebアプリIDを取得し、当該WebアプリIDに係る子アプリをアンインストール(undeploy)する(S204)。この際、Webインストール制御部51は、当該WebアプリIDと当該WebアプリIDに関連付けられている親アプリパッケージ名とを関連情報記憶部70から削除する。
続いて、Webインストール制御部51は、子アプリのアンインストール結果を当該親アプリに対して応答する(S205)。当該アンインストール結果は、子アプリのアンインストールの成否を示す情報である。続いて、当該親アプリは、アンインストールの準備結果をSDKインストール制御部21に応答する(S206)。当該準備結果は、アンインストールの可否を示す情報である。例えば、子アプリのアンインストールに成功した場合、アンインストールが可能であることが応答され、子アプリのアンインストールに失敗した場合、アンインストールが不可であることが応答されてもよい。
親アプリからの応答が、アンインストールが可能であることを示す場合、SDKインストール制御部21は、当該親アプリをアンインストールする(S207)。その結果、当該親アプリを構成するファイル群が、HDD114から削除される。
又は、Webアプリ60のアンインストール処理は、図7に示される処理手順で実行されてもよい。図7は、Webアプリ60のアンインストール処理の処理手順の第2の例を説明するためのシーケンス図である。図7中、図6と同一ステップには同一ステップ番号を付し、その説明は適宜省略する。
ユーザからのアンインストール指示に応じ(S201)、SDKインストール制御部21は、親アプリをアンインストールする(S207)。
続いて、SDKインストール制御部21は、SDKアプリ40がアンインストールされたことを、アプリプラットフォーム20上の各アプリに通知する。当該通知には、アンインストールされたSDKアプリのパッケージ名(ここでは、親アプリパッケージ名)が含まれる。Webコンテナアプリ50もアプリプラットフォーム20上のアプリであるため、当該アンインストールが通知される(S211)。
Webコンテナアプリ50のWebインストール制御部51は、当該通知に含まれているパッケージ名に関連付けられて関連情報記憶部70に記憶されているWebアプリIDが有れば、当該WebアプリIDに係るWebアプリ60をアンインストール(undeploy)する(S204)。
なお、図5におけるSDKアプリ40aがアンインストールされた場合、画像形成装置10の機能構成は、図2に示した状態に戻る。
なお、各親アプリの実装内容は類似する可能性が高い。したがって、アプリプラットフォーム20の提供者等が、親アプリの雛型としてのソースコードを公開することで、サードベンダ等による親アプリの開発作業の負担の軽減が図られてもよい。
また、複数の子アプリが関連付く親アプリには、当該複数の子アプリに共通する機能又は子アプリ間で重複する機能(以下、「共通機能」という。)が実装されてもよい。図8は、複数の子アプリの共通機能が実装される親アプリの例を示す図である。各子アプリは、例えば、アプリ間通信等によって当該共通機能を呼び出せばよい。親アプリに共通機能が実装されることで、重複するソースコードを減らすことができるとともに、メモリの使用量を削減することができる。
また、子アプリが1つであるか複数であるかを問わず、親アプリが、アプリプラットフォーム20のAPIに対する中継点として機能してもよい。すなわち、子アプリが親アプリとのアプリ間通信等を介して、アプリプラットフォーム20のAPIを間接的に呼び出せるようにしてもよい。より詳しくは、子アプリから親アプリへ処理をリクエストし、親アプリが自身の権限の範囲内で当該リクエストに応じた処理をアプリプラットフォーム20を利用して実行した後に、当該処理の結果を子アプリに返却するようにしてもよい。そうすることで、子アプリは、親アプリに許可されている権限の範囲内で、アプリプラットフォーム20の機能を利用することができる。例えば、Android(登録商標)の場合、ファイルシステムや特定のデバイスへのリソースにアクセスする場合に、アプリのManifestファイルに当該デバイスに関するPermission宣言が必要になる。Webアプリ60は、Webコンテナアプリ50上で動作するプログラムであるため、このような権限を自由に付与することができない。そこで、親アプリに必要な権限を持たせることで、当該権限の範囲での処理をWebアプリ60に実行させることができる。
また、親アプリが何らかの機能を有し、当該機能を操作パネル15に表示される画面を介して提供する場合に、子アプリは、当該親アプリに関する設定をネットワークを介して受け付けるアプリであってもよい。
上述したように、本実施の形態によれば、アプリプラットフォーム20及びWebコンテナアプリ50といった、複数のプログラム実行環境が混在する場合において、SDKアプリ40のインストール及びアンインストールによってWebアプリ60のインストールやアンインストールを実現することができる。すなわち、複数のプログラム実行環境が混在する場合のプログラムの管理を簡便化することができる。したがって、ユーザが、SDKアプリ40のインストール方法とは別に、Webアプリ60のインストール方法を学習する必要性を低減することができる。
なお、3つ以上のプログラム実行環境が混在する場合において、本実施の形態が適用されてもよい。例えば、第1のプログラム実行環境に対してインストールされるプログラムが、第2のプログラム実行環境に対応するプログラム及び第3のプログラム実行環境に対応するプログラムのインストール及びアンインストールを実行してもよい。
なお、上記は、画像形成装置10が情報処理装置の一例である例について説明したが、画像形成装置10の操作パネル15がスマートフォン又はタブレット端末等の情報処理装置によって実現される場合、当該情報処理装置に関して本実施の形態が適用されてもよい。又は、プロジェクタ、電子黒板、又はテレビ会議システム等の他の情報処理装置に関して本実施の形態が適用されてもよい。
なお、上記で説明した実施形態の各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP(digital signal processor)、FPGA(field programmable gate array)や従来の回路モジュール等のデバイスを含むものとする。
なお、本実施の形態において、画像形成装置10は、情報処理装置の一例である。アプリプラットフォーム20は、第1のプログラム実行環境の一例である。Webコンテナアプリ50は、第2のプログラム実行環境の一例である。SDKインストール制御部21は、第1の制御部の一例である。Webインストール制御部51は、第2の制御部の一例である。
以上、本発明の実施の形態について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
10 画像形成装置
11 コントローラ
12 スキャナ
13 プリンタ
14 モデム
15 操作パネル
16 ネットワークインタフェース
17 SDカードスロット
20 アプリプラットフォーム
21 SDKインストール制御部
30 組み込みアプリ
40 SDKアプリ
50 Webコンテナアプリ
51 Webインストール制御部
60 Webアプリ
70 関連情報記憶部
80 SDカード
111 CPU
112 RAM
113 ROM
114 HDD
115 NVRAM
特開2017-68655号公報

Claims (10)

  1. 第1のプログラム実行環境と第2のプログラム実行環境とを有する情報処理装置であって、
    前記第1のプログラム実行環境に対応した第1のプログラムのインストールを制御する第1の制御部と、
    前記第1のプログラムからの要求に応じて、前記第2のプログラム実行環境に対応した第2のプログラムのインストールを制御する第2の制御部と、
    を有し、
    前記第1の制御部によって前記第1のプログラムがインストールされた場合、インストールされた前記第1のプログラムは、前記第2の制御部から前記第2のプログラム実行環境においてインストール済みのプログラムを示す一覧情報を取得し、前記一覧情報に基づいて前記第2の制御部に対して前記第2のプログラムのインストールを要求する
    ことを特徴とする情報処理装置。
  2. 前記要求は、前記第1のプログラムを示す情報を含み、
    前記第2の制御部は、前記要求に応じてインストールした第2のプログラムを識別する情報と、前記第1のプログラムを示す情報とを関連付けて記憶部に記憶する、
    ことを特徴とする請求項1記載の情報処理装置。
  3. 前記第1のプログラムは、前記情報処理装置の機種情報に基づいて、インストール対象の第2のプログラムを判断する、
    ことを特徴とする請求項1記載の情報処理装置。
  4. 前記一覧情報は、前記第2のプログラム実行環境においてインストール済みのプログラムのバージョン情報を含み、
    前記第1のプログラムは、インストール対象の第2のプログラムのバージョンが前記一覧情報で示されるバージョンよりも新しい場合は、該第2のプログラムのインストールを要求する、
    ことを特徴とする請求項1記載の情報処理装置。
  5. 前記第2の制御部は、前記第1のプログラムのアンインストールに伴い、前記第1のプログラムからの要求に応じてインストールされた前記第2のプログラムをアンインストールし、
    前記第1の制御部は、前記第2の制御部によって前記第2のプログラムがアンインストールされてから、前記第1のプログラムをアンインストールする、
    ことを特徴とする請求項1記載の情報処理装置。
  6. 前記第1のプログラムは、前記一覧情報に基づいて、複数の第2のプログラムのうち前記第2のプログラム実行環境においてインストールされていない第2のプログラムのインストールを要求する、
    ことを特徴とする請求項1記載の情報処理装置。
  7. 前記第2の制御部は、前記第1のプログラムのアンインストールに伴い、前記第1のプログラムからの要求に応じてインストールされた前記第2のプログラムをアンインストールする、
    ことを特徴とする請求項1記載の情報処理装置。
  8. 前記第2の制御部は、前記第1のプログラムのインストールに伴って前記第1のプログラムから要求される前記第2のプログラムのインストールの要求に応じ、当該第2のプログラムのインストールを制御する、
    ことを特徴とする請求項1又は記載の情報処理装置。
  9. 第1のプログラム実行環境と第2のプログラム実行環境とを有する情報処理装置が、
    前記第1のプログラム実行環境に対応した第1のプログラムのインストールを制御する第1の制御手順と、
    前記第1のプログラムからの要求に応じて、前記第2のプログラム実行環境に対応した第2のプログラムのインストールを制御する第2の制御手順と、
    を実行し、
    前記第1の制御手順によって前記第1のプログラムがインストールされた場合、インストールされた前記第1のプログラムは、前記第2のプログラム実行環境においてインストール済みのプログラムを示す一覧情報を取得し、前記一覧情報に基づいて前記第2の制御手順に対して前記第2のプログラムのインストールを要求する
    ことを特徴とする情報処理方法。
  10. 第1のプログラム実行環境と第2のプログラム実行環境とを有する情報処理装置に、
    前記第1のプログラム実行環境に対応した第1のプログラムのインストールを制御する第1の制御手順と、
    前記第1のプログラムからの要求に応じて、前記第2のプログラム実行環境に対応した第2のプログラムのインストールを制御する第2の制御手順と、
    を実行させ
    前記第1の制御手順によって前記第1のプログラムがインストールされた場合、インストールされた前記第1のプログラムは、前記第2のプログラム実行環境においてインストール済みのプログラムを示す一覧情報を取得し、前記一覧情報に基づいて前記第2の制御手順に対して前記第2のプログラムのインストールを要求す
    ことを特徴とする情報処理プログラム。
JP2018066203A 2018-03-29 2018-03-29 情報処理装置、情報処理方法及び情報処理プログラム Active JP7069969B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2018066203A JP7069969B2 (ja) 2018-03-29 2018-03-29 情報処理装置、情報処理方法及び情報処理プログラム
EP19160578.1A EP3547109B1 (en) 2018-03-29 2019-03-04 Installing and uninstalling web applications on an image processing apparatus using a software development kit sdk
US16/299,268 US11016747B2 (en) 2018-03-29 2019-03-12 Information processing apparatus, method, and non-transitory recording medium storing instructions for executing an information processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018066203A JP7069969B2 (ja) 2018-03-29 2018-03-29 情報処理装置、情報処理方法及び情報処理プログラム

Publications (2)

Publication Number Publication Date
JP2019175399A JP2019175399A (ja) 2019-10-10
JP7069969B2 true JP7069969B2 (ja) 2022-05-18

Family

ID=65817720

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018066203A Active JP7069969B2 (ja) 2018-03-29 2018-03-29 情報処理装置、情報処理方法及び情報処理プログラム

Country Status (3)

Country Link
US (1) US11016747B2 (ja)
EP (1) EP3547109B1 (ja)
JP (1) JP7069969B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3709197A1 (en) 2019-03-13 2020-09-16 Ricoh Company, Ltd. Information processing system, server, carrier medium, and method for controlling assignment of license
JP2021170173A (ja) * 2020-04-14 2021-10-28 キヤノン株式会社 画像形成装置、その制御方法、及びプログラム
CN113392388B (zh) * 2021-05-19 2023-05-09 杭州宇泛智能科技有限公司 终端、云端校验自主定制服务的方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004334465A (ja) 2003-05-07 2004-11-25 Sony Corp 情報処理装置および方法、記録媒体、並びにプログラム
US20110061048A1 (en) 2009-09-09 2011-03-10 Ricoh Company, Ltd. Image forming device, installing method, and recording medium
JP2012064022A (ja) 2010-09-16 2012-03-29 Ricoh Co Ltd インストールプログラム、インストール方法、画像形成装置、及び記録媒体

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8432562B2 (en) * 2004-02-17 2013-04-30 Ricoh Company, Ltd. Image processing apparatus, method, program, and computer readable recording medium for controlling operation switching and displaying at occurrence of error conditions
JP5013742B2 (ja) 2005-12-15 2012-08-29 株式会社リコー 通信装置、情報処理システム、アプリケーション実行方法、アプリケーション実行プログラム及び記録媒体
US20130047150A1 (en) * 2006-08-29 2013-02-21 Adobe Systems Incorporated Software installation and process management support
US8136100B1 (en) * 2006-08-29 2012-03-13 Adobe Systems Incorporated Software installation and icon management support
US20140040877A1 (en) * 2007-06-08 2014-02-06 Adobe Systems Incorporated Application execution and installation environment
JP5441740B2 (ja) * 2009-03-23 2014-03-12 キヤノン株式会社 情報配信装置、情報配信装置の制御方法、及びコンピュータプログラム
US8490176B2 (en) * 2009-04-07 2013-07-16 Juniper Networks, Inc. System and method for controlling a mobile device
JP2011123842A (ja) 2009-12-14 2011-06-23 Ricoh Co Ltd 画像形成装置、機能追加方法、及びプログラム
JP2011170638A (ja) * 2010-02-18 2011-09-01 Ricoh Co Ltd プログラム管理システム、プログラム管理方法、クライアントおよびプログラム
US8782635B2 (en) * 2011-01-19 2014-07-15 International Business Machines Corporation Reconfiguration of computer system to allow application installation
KR20120118353A (ko) * 2011-04-18 2012-10-26 삼성전자주식회사 방송수신장치 및 서비스 설치 방법
KR101229752B1 (ko) * 2011-06-01 2013-02-05 엘지전자 주식회사 이동 단말기 및 이동 단말기의 제어 방법
JP5786535B2 (ja) * 2011-08-08 2015-09-30 株式会社リコー 機器、情報処理方法、情報処理プログラム、及び記録媒体
KR101850817B1 (ko) * 2011-11-17 2018-04-23 삼성전자주식회사 서로 다른 단말에 어플리케이션을 자동으로 설치하는 장치 및 방법
JP5991104B2 (ja) 2012-09-18 2016-09-14 株式会社リコー 情報処理装置、情報処理方法、及びプログラム
JP6089794B2 (ja) * 2013-03-04 2017-03-08 株式会社リコー 機器、情報処理システム、情報処理方法、及びプログラム
JP6070423B2 (ja) 2013-06-03 2017-02-01 株式会社リコー 情報処理装置、情報処理方法、及びプログラム
JP6205861B2 (ja) 2013-06-03 2017-10-04 株式会社リコー 情報処理システム、情報処理方法、及びプログラム
JP5713056B2 (ja) * 2013-06-24 2015-05-07 横河電機株式会社 プロセス制御装置及びシステム並びにその更新方法
US10157435B2 (en) * 2013-08-22 2018-12-18 Todd Bucciarelli System and method for monitoring electronic communications
JP6147139B2 (ja) 2013-08-23 2017-06-14 キヤノン株式会社 情報処理装置、その制御方法、及びコンピュータプログラム
JP6295558B2 (ja) 2013-09-13 2018-03-20 株式会社リコー 情報処理装置、情報処理システム、情報処理方法、及び情報処理プログラム
US20150281869A1 (en) 2014-03-31 2015-10-01 Google Inc. Native web-based application
JP6379699B2 (ja) 2014-06-05 2018-08-29 株式会社リコー 情報処理装置、情報処理システム、情報処理プログラム、および情報処理方法
WO2016008256A1 (zh) * 2014-07-15 2016-01-21 深圳市金立通信设备有限公司 一种为终端更新操作系统的方法、终端及系统
US9971883B2 (en) * 2014-11-20 2018-05-15 Ricoh Company, Ltd. Information processing device to install applications using installation screen associated with a user
WO2016137272A1 (ko) * 2015-02-27 2016-09-01 삼성전자 주식회사 복수의 운영체제가 설치된 디바이스를 제어하는 방법 및 디바이스
JP6493130B2 (ja) 2015-09-30 2019-04-03 富士通株式会社 情報処理装置、方法、及びプログラム
US9817648B2 (en) * 2016-01-15 2017-11-14 Google Inc. Application containers with dynamic sub-package loading
EP3620918B1 (en) * 2016-01-15 2023-12-27 Google LLC Identifiers across application instances
JP6658157B2 (ja) * 2016-03-17 2020-03-04 株式会社リコー 情報処理装置、システム、プログラム、処理方法
JP6128259B2 (ja) 2016-04-27 2017-05-17 株式会社リコー 情報処理システム及び情報処理方法
US10499209B2 (en) * 2016-07-15 2019-12-03 Facebook, Inc. Installation identification for family applications
CN107957911B (zh) * 2016-10-18 2019-07-05 腾讯科技(深圳)有限公司 组件调用的方法和装置、组件数据处理的方法和装置
JP6755583B2 (ja) 2016-10-20 2020-09-16 中西産業株式会社 ピボットヒンジ
US10466991B1 (en) * 2017-03-03 2019-11-05 Amazon Technologies, Inc. Computing instance software package installation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004334465A (ja) 2003-05-07 2004-11-25 Sony Corp 情報処理装置および方法、記録媒体、並びにプログラム
US20110061048A1 (en) 2009-09-09 2011-03-10 Ricoh Company, Ltd. Image forming device, installing method, and recording medium
JP2012064022A (ja) 2010-09-16 2012-03-29 Ricoh Co Ltd インストールプログラム、インストール方法、画像形成装置、及び記録媒体

Also Published As

Publication number Publication date
US20190303124A1 (en) 2019-10-03
EP3547109A1 (en) 2019-10-02
US11016747B2 (en) 2021-05-25
JP2019175399A (ja) 2019-10-10
EP3547109B1 (en) 2023-09-06

Similar Documents

Publication Publication Date Title
US10630857B2 (en) Electronic apparatus and method to update firmware of the electronic apparatus when adding a web application to the electronic apparatus
US9952849B2 (en) Apparatus, information processing system, method for processing information, and program
EP2919113B1 (en) Information processing system and information processing method
JP6547291B2 (ja) 情報処理システムおよび情報処理方法
JP6927276B2 (ja) 情報処理システム、情報処理装置、情報処理方法およびプログラム
JP6787115B2 (ja) 画像形成装置、機能追加方法、プログラム、
JP7069969B2 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
US8713561B2 (en) Device, information processing method, and computer-readable storage medium
US9612818B2 (en) Information processing apparatus, program management method for information processing apparatus, and non-transitory computer-readable storage medium
US11140291B2 (en) Information processing apparatus, control method thereof, and storage medium
US10089102B2 (en) Information processing apparatus, method, and program
JP2013191196A (ja) 情報処理装置、機器、情報処理システム、情報処理方法、及び情報処理プログラム
US20180316818A1 (en) System and method for installing application and recording medium
US9940334B2 (en) Image forming apparatus and control method thereof
JP7077857B2 (ja) 電子機器、情報処理システム、及び情報処理方法
JP7056269B2 (ja) 情報処理システム、機器、情報処理方法及び情報処理プログラム
JP2017167755A (ja) 情報処理システム、情報処理装置、情報処理方法、及びプログラム
JP7342443B2 (ja) 情報処理装置、方法、およびプログラム
JP6089794B2 (ja) 機器、情報処理システム、情報処理方法、及びプログラム
JP6728590B2 (ja) 機器、情報処理システム、情報処理方法、及びプログラム
JP6930579B2 (ja) 情報処理システム、情報処理装置、情報処理方法およびプログラム
US11785151B2 (en) Information processing apparatus, flow execution method, and non-transitory computer-readable storage medium for controlling executions of multiple functions
JP6330933B2 (ja) 機器、情報処理システム、情報処理方法、及びプログラム
JP2009099093A (ja) 管理プログラム、情報処理装置および情報処理システム
JP2021016183A (ja) 情報処理装置、データ処理方法、プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210118

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220307

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: 20220405

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220418

R151 Written notification of patent or utility model registration

Ref document number: 7069969

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151