JP2019070884A - 情報処理装置 - Google Patents
情報処理装置 Download PDFInfo
- Publication number
- JP2019070884A JP2019070884A JP2017195547A JP2017195547A JP2019070884A JP 2019070884 A JP2019070884 A JP 2019070884A JP 2017195547 A JP2017195547 A JP 2017195547A JP 2017195547 A JP2017195547 A JP 2017195547A JP 2019070884 A JP2019070884 A JP 2019070884A
- Authority
- JP
- Japan
- Prior art keywords
- bundle
- temporary
- executable file
- information processing
- processing apparatus
- 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.)
- Pending
Links
Landscapes
- Stored Programmes (AREA)
- Facsimiles In General (AREA)
Abstract
【課題】リソースの消費を抑えると同時に、ユーザの要望によって速やかに拡張プログラムが使用できるようにインストールする手段を提供する。【解決手段】インストールの一部の工程を先行して行うことによって、リソース消費を抑えつつ、拡張プログラムをユーザに使用可能なように見せる。ユーザが拡張プログラムを実際に使用する時に、残りのインストール工程を行い、拡張プログラムを実行する。【選択図】 図7
Description
本発明は、拡張プログラムを実行可能な情報処理装置に関するものである。
近年、情報処理装置の一例として、アプリケーションソフトウェアを機能拡張プログラムとして追加できる機能を備えた画像形成装置が普及している。機能拡張プログラム(以下、拡張プログラム)は工場出荷時だけでなく、設置後の運用段階でも追加することが可能である。追加された拡張プログラムは画像形成装置に最初から備わっているプログラム(以下、基本プログラム)と同じように画像形成装置の機能としてメニュー(以下、メインメニュー)に表示される。
また、ユーザが選択した拡張プログラムを外部サーバからダウンロードし、インストールすることで、画像形成装置の機能の拡張を可能とする技術が知られている(例えば、特許文献1)。
一方で、近年のMFP(Multi Function Peripheral)と呼ばれる画像形成装置は、基本的なコピー機能に加えて、スキャン機能、プリント機能、FAX送受信機能、電子メール送受信機能等を1台で有するようになっている。それぞれの機能を使うために、MFPに拡張プログラムを追加して、複数人で共用している。そのため、MFPの拡張プログラムは、一般的には、管理者がインストールして、一般ユーザが使うという運用が行われている。また、MFPは、一般的にメモリやストレージなどのリソースが豊富ではない。
ユーザが便利に拡張プログラムを使うため、管理者は事前に拡張プログラムをインストールしておきたい。しかし、事前に拡張プログラムをインストールしておくと、その拡張プログラムはユーザに使用されなくても、デバイスのリソース(メモリやストレージなど)を消費してしまう。
MFPのリソースには限りがあるので、使わない拡張プログラムのためにリソースをできるだけ消費したくない。一方で、ユーザの要望があったときには、速やかに拡張プログラムを使えるようにしておきたいという課題があった。
拡張プログラムを実行可能な情報処理装置(101)において、前記情報処理装置は前記拡張プログラムを管理する管理手段(510、530)を有し、
さらに、前記管理手段は、
拡張プログラムのインストール指示を受け取ったときに、指示のあった拡張プログラムが通常バンドルであるか仮バンドルであるかを判断するバンドルタイプ判別手段(S704)と、
前記バンドルタイプ判断手段によって通常バンドルであると判別した場合に、前記情報処理装置に通常バンドルとして登録する通常バンドル登録手段(S711〜S713)と、
前記バンドルタイプ判断手段によって仮バンドルであると判別した場合に、前記情報処理装置に仮バンドルとして登録する仮バンドル登録手段(S740)を有し、
さらに前記通常バンドル登録手段は、
前記インストール指示のあった拡張プログラムを実行するために必要なリソースが情報処理装置に存在するかを確認するリソース確認手段(S703)と、
前記インストール指示のあった拡張プログラムの実行ファイルを前記情報処理装置に配置する実行ファイル配置手段(S711)と、
前記実行ファイル配置手段によって配置された実行ファイルを、前記リソース確認手段によって確認したリソースを確保したうえで開始するバンドル開始手段(S712)と、
前記バンドル開始手段によって開始された実行ファイルをユーザが呼び出せるようにインターフェースに登録する通常バンドルインターフェース登録手段(S713)を有することを特徴とし、
さらに前記仮バンドル登録手段は、
前記リソース確認手段(S1105)と、
前記インストール指示のあった拡張プログラムをユーザが呼び出したときに、前記拡張プログラムの実行ファイルの配置やダウンロードを行うように仮バンドルの実行ファイルの状況を確認する実行ファイル状態確認手段(S1106、S1107)と、
前記拡張プログラムの実行ファイルの配置と開始を行うようにインターフェースに登録する仮バンドルインターフェース登録手段(S1108)を有することを特徴とし、
さらに前記管理手段は、
前記仮バンドルインターフェース登録手段によって登録された仮バンドルがユーザによって呼び出された場合に、呼び出された仮バンドルの実行ファイルを前記情報処理装置に配置(S1008)して、前記リソース確認手段によって確認したリソースを確保したうえで開始する(1009)こと
を特徴とする情報処理装置。
さらに、前記管理手段は、
拡張プログラムのインストール指示を受け取ったときに、指示のあった拡張プログラムが通常バンドルであるか仮バンドルであるかを判断するバンドルタイプ判別手段(S704)と、
前記バンドルタイプ判断手段によって通常バンドルであると判別した場合に、前記情報処理装置に通常バンドルとして登録する通常バンドル登録手段(S711〜S713)と、
前記バンドルタイプ判断手段によって仮バンドルであると判別した場合に、前記情報処理装置に仮バンドルとして登録する仮バンドル登録手段(S740)を有し、
さらに前記通常バンドル登録手段は、
前記インストール指示のあった拡張プログラムを実行するために必要なリソースが情報処理装置に存在するかを確認するリソース確認手段(S703)と、
前記インストール指示のあった拡張プログラムの実行ファイルを前記情報処理装置に配置する実行ファイル配置手段(S711)と、
前記実行ファイル配置手段によって配置された実行ファイルを、前記リソース確認手段によって確認したリソースを確保したうえで開始するバンドル開始手段(S712)と、
前記バンドル開始手段によって開始された実行ファイルをユーザが呼び出せるようにインターフェースに登録する通常バンドルインターフェース登録手段(S713)を有することを特徴とし、
さらに前記仮バンドル登録手段は、
前記リソース確認手段(S1105)と、
前記インストール指示のあった拡張プログラムをユーザが呼び出したときに、前記拡張プログラムの実行ファイルの配置やダウンロードを行うように仮バンドルの実行ファイルの状況を確認する実行ファイル状態確認手段(S1106、S1107)と、
前記拡張プログラムの実行ファイルの配置と開始を行うようにインターフェースに登録する仮バンドルインターフェース登録手段(S1108)を有することを特徴とし、
さらに前記管理手段は、
前記仮バンドルインターフェース登録手段によって登録された仮バンドルがユーザによって呼び出された場合に、呼び出された仮バンドルの実行ファイルを前記情報処理装置に配置(S1008)して、前記リソース確認手段によって確認したリソースを確保したうえで開始する(1009)こと
を特徴とする情報処理装置。
本発明によれば、拡張プログラムが実際にユーザに使用されるまでは、メインメニューにアイコンを表示しつつも、配置と開始をしないため、リソースの消費を抑えることができる。さらに、ユーザの要望があった時には、速やかに拡張プログラムを使うことができる。
以下、本発明を実施するための最良の形態について図面を用いて説明する。
(実施例1)
本実施例では、画像形成装置に拡張プログラムを追加する仕組みとしてOSGiフレームワークを用いるものとする。OSGiフレームワーク上のJava(登録商標)プログラムのことをOSGiバンドル(以下、バンドル)と呼び、本実施例では個々の拡張プログラムは独立したバンドルとして実現される。
(実施例1)
本実施例では、画像形成装置に拡張プログラムを追加する仕組みとしてOSGiフレームワークを用いるものとする。OSGiフレームワーク上のJava(登録商標)プログラムのことをOSGiバンドル(以下、バンドル)と呼び、本実施例では個々の拡張プログラムは独立したバンドルとして実現される。
画像形成装置に追加される拡張プログラムは、アプレットとサーブレットという二種類がある。アプレットは、画像形成装置上で動作するクライアントアプリケーションであり、画像形成装置の操作部上で使われる。アプレットは、メインメニュー上の拡張プログラムアイコン(以下、アプリボタン)経由で呼び出される。サーブレットは、画像形成装置上で動作するWebアプリケーションであり、画像形成装置にアクセスするウェブブラウザー上で使われる。サーブレットは、画像形成装置のウェブサーバーに登録されたサーブレットURLにウェブブラウザーでアクセスすることで呼び出される。ひとつの拡張プログラムがサーブレットとアプレットの両方を備えてもよい。
画像形成装置に拡張プログラムを追加することは、拡張プログラムのインストール(以下、インストール)と呼ぶ。通常の拡張プログラムのインストールは、次のような三つのステップで行う。バンドルの実行ファイル(Javaクラスファイル)の配置(以下、実行ファイル配置)、バンドルの開始(以下、バンドル開始)、バンドルのインターフェースの登録(以下、インターフェース登録)である。インターフェース登録とは、ユーザが拡張プログラムの使用のために、メインメニューにアプリボタンを登録する、或いは、ウェブサーバーにサーブレットURLを登録することである。
本実施例では、実行ファイル配置とバンドル開始をせずに、インターフェース登録のみを行うことができるようにする。以降、実行ファイル配置、バンドル開始、インターフェース登録の3つを行うことを通常インストール、インターフェース登録のみを行うことを仮インストールと呼称する。通常インストールと仮インストールのどちらを行うかは、バンドルの種類によって決まる。通常インストールを行うバンドルを通常バンドル、仮インストールを行うバンドルを仮バンドルと定義する。
図1は、本実施形態の画像処理システムのシステム構成の一例を示す図である。本システムは、LAN110を介して接続されるMFP101、管理者PC102とユーザPC103から構成される。MFP101は、スキャナ、プリンタを有する画像形成装置である。加えて、装置上で動作する基本プログラムおよび拡張プログラムを実行させるためのアプリケーションプラットホームを持つ。
管理者PC102は、MFPを管理する管理者用の端末で、LAN110を介してMFP101へアクセスし、MFP101へ拡張プログラムを追加したり、MFP101から拡張プログラムを削除したりする。ユーザPC103は、MFPを使用するユーザ用の端末で、LAN110を介してMFP101上でウェブサーバーのサービスとしてのサーブレットを使用する。
図2は、MFP101の構成を示すブロック図である。CPU211を含む制御部210は、MFP101全体の動作を制御する。CPU211は、ROM212やHDD214に記憶された制御プログラムを読み出して読取制御や送信制御などの各種制御処理をスレッドとして実行する。RAM213は、CPU211の主メモリ、ワークエリア等の一時記憶領域として用いられる。HDD214は、画像データや基本プログラム、拡張プログラムを含む各種プログラムを記憶する。上記のスレッドや記憶する領域(一時記憶領域を含めてる)などMFP101のリソース(以下、リソース)と呼ばれる。
操作部I/F215は、操作部219と制御部210とを接続する。操作部219には、タッチパネル機能を有する液晶表示部やキーボードなどが備えられている。プリンタI/F216は、プリンタ220と制御部210とを接続する。プリンタ220で印刷すべき画像データはプリンタI/F216を介して制御部210からプリンタ220に転送され、プリンタ220において記録媒体上に印刷される。スキャナI/F217は、スキャナ221と制御部210とを接続する。スキャナ221は、原稿上の画像を読み取って画像データを生成し、スキャナI/F217を介して制御部210に入力する。
ネットワークI/F218は、制御部210(MFP101)をLAN110に接続する。ネットワークI/F218は、LAN110上の他の装置との間で各種情報を送受信する。
図3は、管理者PC102とユーザPC103の構成を示すブロック図である。CPU311を含む制御部310は、全体の動作を制御する。CPU311は、ROM312やHDD314に記憶された制御プログラムを読み出して各種制御処理を実行する。RAM313は、CPU311の主メモリ、ワークエリア等の一時記憶領域として用いられる。HDD314は、各種プログラムを記憶する。
表示部I/F315は、表示部318と制御部310とを接続する。キーボードI/F316は、キーボード319と制御部310とを接続する。CPU311は、キーボード319を介したユーザからの指示を認識し、認識した指示に応じて表示部318に表示する画面を遷移させる。ネットワークI/F317は、制御部310(管理者PC102)をWAN120に接続する。ネットワークI/F317は、LAN110上の他の装置との間で各種情報を送受信する。
次に図4ではLAN110経由で拡張プログラムとして仮バンドルを使用する例を説明する。図4(a)は、管理者PC102を用いて仮バンドルをMFP101へ仮インストールする動作を示す。管理者PC102はLAN110を通してMFP101へアクセスする。管理者PC102は仮バンドル仮インストール指示とともに、仮バンドル550や仮バンドル560をMFP101へ送信する(S401)。
図4(b)は、ユーザPC103を用いてLAN110の経由でMFP101上の仮バンドルのサーブレットを使用する動作を示す。ユーザPC103はLAN110を通してMFP101へアクセスする。ユーザPC103は仮バンドルの使用指示とともに、仮バンドル560のサーブレットのURL661をMFP101のユーザーインターフェースへ送信する(S402)。
図5は、本実施例のMFP101におけるソフトウェア構成図である。HDD214に記憶されているプログラムを、CPU211がRAM213に読み出し、解析、実行することで、図7および図10〜図12のフローチャートの処理が実行される。拡張プログラム管理部510は、MFP101上で拡張プログラムを動作させるためのアプリケーションプラットホームである。
ユーザーインターフェース管理部520は、MFP101上で発生したユーザ操作の情報を分類して、処理を行う。メインメニュー管理部521は、メインメニューの管理を行う。メインメニューにアプリボタンを表示したり、押下されたアプリボタンに対応する拡張プログラムを呼び出したりする。サーブレットサービス管理部522は、MFP101に登録されたサーブレットURLの管理を行う。ネットワークからのサーブレットの使う要請に対してサーブレットを呼び出す。
仮バンドル管理部530は、仮バンドルの管理を行うアプリケーションであり、仮バンドルデータ管理部531、ライフサイクル処理部532、仮バンドル状態確認部533、実行ファイルダウンロード処理部534を持つ。仮バンドルデータ管理部531は、仮バンドルで扱うデータの管理を行う。仮バンドルデータ管理部531は、仮バンドル管理部530に登録した仮バンドルの情報と状態を紐づけ情報リスト800として保持する。
ライフサイクル処理部532は、仮バンドルのライフサイクルの変化(例えば、インストール、使用)を監視して、ライフサイクルの変化に応じた処理を行う。仮バンドル状態確認部533は、仮バンドルに関するMFP101の状態をチェックする。例えば、配置用実行ファイル563のダウンロード状態、MFP101の使用可能なリソースの状態、MFP101とインターネットの接続状態を監視する。実行ファイルダウンロード処理部534は、配置用実行ファイルを持ってない仮バンドルのために、配置用実行ファイルをダウンロードする。
通常バンドル540は、拡張プログラムとして通常インストールされた通常バンドルであり、マニフェストファイル541、アイコン画像542、配置済み実行ファイル543を持つ。マニフェストファイル541は、通常バンドル540のバンドル定義を記載したマニフェストファイルである。アイコン画像542は、アプリボタンに表示するアイコン画像である。配置済み実行ファイル543は、MFP101のHDD214の記憶領域に配置した実行ファイルである。CPU211で実行されることによって、配置済み実行ファイル543は、拡張プログラムとして動作する。
MFP101には、複数の仮バンドルを仮インストールすることができる。インストールした仮バンドルは、仮バンドルデータ管理部531が管理している紐づけ情報リスト800に登録して、管理される。仮バンドル550は、アプレットだけを持っている拡張プログラムとして仮インストールされた仮バンドルであり、マニフェストファイル551、アイコン画像552を持つ。マニフェストファイル551は、仮バンドル550のバンドル定義を記載したマニフェストファイルである。アイコン画像552は、アプリボタンに表示するアイコン画像である。
仮バンドル560は、サーブレットとアプレットの両方を備えている拡張プログラムとして仮インストールされた仮バンドルであり、マニフェストファイル561、アイコン画像562に加え、配置用実行ファイル563を持っている。配置用実行ファイル563は、実行ファイル配置に使用されるファイルである。
図6(a)は、本実施例における通常バンドル540のマニフェストファイル541の具体的な記述例である。Application−Id(611)はバンドルを一意に識別するためのIDを定義する項目である。Bundle−Name(612)はバンドルの名前を定義する項目である。Bundle−Type(613)はバンドルの種類を定義する項目で、613には「Normal」と定義されて、通常バンドルであることを示している。SpecVersion(614)はバンドルが使用するMFP101の機能を定義する項目である。ThreadUsage(615)はバンドルが使用するスレッドの数を定義する項目である。
FilespaceUsage(616)はバンドル自身のファイルサイズとバンドルが外部記憶として使用するHDD214のサイズを定義する項目である。MemoryUsage(617)はバンドルが使用するRAM213の量を定義する項目である。FiledescriptorUsage(618)はバンドルが使用するファイル記述子の個数を定義する項目である。SocketUsage(619)はバンドルが使用するソケット数を定義する項目である。
図6(b)と(c)は、本実施例における仮バンドルのマニフェストファイル551と561の具体的な記述例である。仮バンドルであるため、Bundle−Type663、653は「Lite」と定義されている。仮バンドル図6(b)は、AppPackagePath(640)に仮バンドルに対応する配置用実行ファイルを保存しているパス(例として、ネットワーク上のパスである)を定義している。
仮アプリバンドル560は、配置用実行ファイル563を持っているため、仮アプリバンドル560のマニフェストファイル図6(c)は、AppPackagePath(660)にパスを定義していない。また、仮アプリバンドル560は、サーブレット機能を持っているため、仮アプリバンドル560のマニフェストファイル図6(c)は、Servlet−URL(661)を定義している。
図9は、MFP101の操作部219に表示されるメインメニューの表示の一例である。図9(a)は工場出荷時のメインメニューの一例である。図9(a)に表示されているボタンは基本プログラムを呼び出すためのボタンである。ボタン901を押下すると、コピー機能が呼び出される(コピー画面に表示が切り替わる)。
図9(b)は拡張プログラムとして通常バンドル540、仮バンドル550、仮バンドル560をインストールした場合のメインメニューの一例である。図9(a)との違いはボタン902、ボタン903、ボタン904が追加されていることである。ボタン902は通常バンドル540を通常インストールしたことによって追加されたボタンであり、押下すると通常バンドル540が操作部219に呼び出される。
ボタン903は仮バンドル550をインストールしたことによって追加されたボタンである。ボタン904は仮バンドル560をインストールしたことによって追加されたボタンである。ボタン903またはボタン904を押下すると仮バンドルに対応した配置用実行ファイルが実行ファイルダウンロード処理部534によってダウンロードされ、実行ファイル配置、バンドル開始を行ったのちに呼び出される。
図9(b)で示したように、メインメニューにおいて、基本プログラムと拡張プログラム(通常バンドルと仮バンドル)のボタンは区別なしに表示される。各アプリボタンにはボタン名称とアイコン画像を表示する。アプリボタン902に表示されているのは、631で定義された仮バンドルの名称とアイコン画像552で定義されたアイコン画像である。
図7は、MFP101に拡張プログラムをインストールする処理を説明するフローチャートである。また図7は、図4のS401を処理するためのMFP101におけるフローチャートでもある。MFP101のHDD214に記憶されているプログラムを、CPU211がRAM213に読み出し、解析、実行することで、フローチャートの各ステップが実行される。
まず、拡張プログラム管理部510は、拡張プログラムのインストール指示を受け取る(ステップS701)と、インストール指示で受け取ったバンドルをHDD214に読み込む(ステップS702)。拡張プログラム管理部510は、受け取ったバンドルの中に格納されているマニフェストファイルを使って、バンドルがMFP101で使用可能か否かを確認する(ステップ703)。
ステップS703で、拡張プログラム管理部510はマニフェストファイルの中で記載されている項目をチェックする。例えば、SpecVersionに記載した機能をMFP101が持っていない場合、バンドルは使用できないと判断する。また、MemoryUsageに記載したメモリ使用量がMFP101で確保できない場合、バンドルは使用できないと判断する。このように、ステップS703で、バンドルが要求する機能やリソースをMFP101が提供できない場合、エラー画面を表示して処理を終了する(ステップS750)。マニフェストファイルが正常と判断すれば、次のステップS704へ処理を進める。
ステップS704で、拡張プログラム管理部510はマニフェストファイルに記載されたBundle−Typeをチェックして、仮バンドルか、通常バンドルかを判断する。通常バンドルと判断する場合、ステップS711へ処理を進める。ステップS711からのフローチャートは、通常バンドルの通常インストール過程である。拡張プログラム管理部510は、ステップS711で、通常バンドルの実行ファイルをHDD214に配置する。配置された実行ファイルの一例が、配置済み実行ファイル543である。
次にステップS712で、拡張プログラム管理部510はステップS703で確認した通常バンドルが要求するリソースを確保して、通常バンドルを開始する。ステップS713で、拡張プログラム管理部510は通常バンドルのインターフェースをユーザーインターフェース管理部520に登録する。具体的には、MFP101のメインメニュー(図9)にアプリアイコン画像542を登録する。最後に、ステップS741で、仮バンドル状態チェックイベントを発生させる。
ステップS704で、仮バンドルと判断すれば、拡張プログラム管理部510はステップS721へ処理を進める。ステップS721で、仮バンドル状態確認部533は、ステップS702でHDD214に読み込んだ仮バンドルの中で配置用実行ファイルが存在するかを確認する。配置用実行ファイルが存在すれば、ステップS722へ進み、仮バンドルデータ管理部531は、HDD214に配置用実行ファイルを保存する。
上記のステップS721で配置用実行ファイル563が存在しない場合、仮バンドルデータ管理部531は、ステップS731へ進み、マニフェストファイルのAppPackagePath(640)の値を確認する。この値が正しくない場合(存在しない、フォーマットエラーなど)、エラー画面を表示して処理を終了する(ステップS750)。この値が正しい場合、仮バンドルデータ管理部531は、ステップS732で、ダウンロードコマンドイベントを発生して、ステップS740へ処理を進める。
仮バンドルデータ管理部531は、ステップS740で、仮バンドルの情報(Application−Id、Servlet−URL、AppPackagePath)を紐づけ情報リスト800に登録する。
次に、ステップS741で、仮バンドル状態チェックイベントを発生して(発生したイベントは図11のフローチャートで処理される)処理を終了する。
図8に、登録した仮バンドルに関する紐づけ情報の一例を示す。紐づけ情報は、MFP101のHDD214に保持されている。紐づけ情報リスト800は、仮バンドルデータ管理部531で管理されている。紐づけ情報リスト800では、ステップS740で記入された情報とステップS1109で更新された状態を記録している。
具体的には、Application−Id(631/651)を仮バンドルID801に記入する。Servlet−URL(661)をサーブレット803に記入する。AppPackagePath(640/660)を実行ファイルパス804に記入する。アプリボタンIDをアプリボタンID802に記入する。配置用実行ファイル状態805にステップS1106或いはステップS1107で取得した状態を記入する。本体状態806にステップS1105で取得した状態を記入する。
配置用実行ファイル状態805に記入する値は、例えば「ダウンロード待ち」「ダウンロード中」「ダウンロード完了」「ダウンロードNG」である。本体状態806に記入できる値は、例えば「リソース不足」「リソース足」である。
図10は、ユーザがインターフェース経由で仮バンドルを使用する場合の仮バンドル管理部530の処理を説明するフローチャートである。アプレットの場合は、メインメニューから仮バンドルのアプリボタンを押下した場合であり、サーブレットの場合は、ブラウザーでサーブレットURLへアクセスした場合である。MFP101のHDD214に記憶されているプログラムを、CPU211がRAM213に読み出し、解析、実行することで、フローチャートの各ステップが実行される。
ライフサイクル処理部532はメインメニュー管理部521とサーブレットサービス管理部522に仮バンドル使用イベント通知受信を登録して(ステップS1001)、仮バンドルの使用イベント旨の通知を待ち受ける(ステップS1002)。通知には、仮バンドルに関する情報(アプリボタンID、或いは、サーブレットURL)が含まれている。
ステップS1002で通知受け取ると、仮バンドルデータ管理部531は、紐づけ情報リスト800から仮バンドル(当仮バンドル)を特定して(ステップS1003)、当仮バンドルの情報を取得する(ステップS1004)。
仮バンドルデータ管理部531はステップS1005で、当仮バンドルの配置用実行ファイル状態805を確認する。ダウンロード完了状態なら、ステップS1008へ処理を進める。ダウンロードNG状態なら、エラー画面を表示して処理を終了する(ステップS1007)。その他の状態なら、ステップS1006でダウンロードコマンドイベント発生して、ステップS1004へ戻る。
ステップS1008で、拡張プログラム管理部510は、配置用実行ファイルをHDD214に配置する。ステップS1009で、拡張プログラム管理部510は、配置されたバンドルを開始する。そして、ステップS1010で、拡張プログラム管理部510は、仮バンドル状態チェックイベントを発生させる。
次に、仮バンドルデータ管理部531は、ステップS1011で、配置用実行ファイル563を削除して、ステップS1012で、当仮バンドルに関する情報を紐づけ情報リスト800から削除して処理を終了する。
図11は、仮バンドル状態チェックイベントを受けて、仮バンドルの情報のチェックを行う処理を説明するフローチャートである。MFP101のHDD214に記憶されているプログラムを、CPU211がRAM213に読み出し、解析、実行することで、フローチャートの各ステップが実行される。
まず、ライフサイクル処理部532は、仮バンドル状態チェックイベントの通知を受信するよう、拡張プログラム管理部510と仮バンドルデータ管理部531に登録する(ステップS1101)。次にライフサイクル処理部532は、仮バンドル状態チェックイベントの発生通知を待ちうける(ステップS1102)。仮バンドル状態チェックイベントの発生通知を受信すると、ステップS1103へ処理を進める。
通知に、仮バンドルIDが含まれている場合、仮バンドルIDに対して仮バンドルの情報だけをチェックして更新する。含まれてなければ、紐づけ情報リスト800に登録されている全部の仮バンドルの情報をチェックして(以下、全チェック)更新する。
ステップS1103で仮バンドルデータ管理部531は、紐づけ情報リスト800に登録されている仮バンドルの存在を確認して、特定する。紐づけ情報リスト800に登録されている仮バンドルが存在しない、或いは、仮バンドルが特定できない場合、ステップS1102に戻って、仮バンドル状態チェックイベントの発生を待ちうける。紐づけ情報リスト800に登録されている仮バンドルが存在する場合、紐づけ情報リスト800から仮バンドル特定して(下記、当仮バンドル)、次のステップS1104へ処理を進める。
ステップS1104で仮バンドルデータ管理部531は、当仮バンドルの情報をマニフェストファイルおよび紐づけ情報リスト800から取得して、ステップS1105からステップS1109までで、当仮バンドルの状態を確認する。
仮バンドル状態確認部533はステップS1105で、MFP101のリソースの状態をチェックする。例えば、MemoryUsageに記載したメモリ使用量がMFP101で確保できない場合、バンドルはリソース不足と判断する。マニフェストファイルに定義された他のリソースも同様にチェックする。リソース不足の場合、ステップS1120へ処理を進める。リソースが足りれば、仮バンドル状態確認部533は、当仮バンドルの配置用実行ファイル状態805を確認する。ダウンロード完了状態なら、次のステップS1108へ処理を進める。それ以外の状態なら、次のステップS1107へ処理を進める。
ステップS1107で仮バンドル状態確認部533は当仮バンドルの配置用実行ファイルパス804に記載されたパスに繋がることを試して、繋がる場合、次のステップS1108へ処理を進める。繋がらない場合、ステップS1120へ処理を進める。
ステップS1108で、ライフサイクル処理部532は、仮バンドルのインターフェース(アイコン画像552/562、或いはサーブレット803)をユーザーインターフェース管理部520に登録する。具体的には、アイコン画像552/562をメインメニュー管理部521に登録して、登録したアプリボタンIDを当仮バンドルのアプリボタンID802に保存する。また、当仮バンドルはサーブレットをサポートしたら、当仮バンドルをサーブレットサービス管理部522に登録して、次のステップS1109へ処理を進める。メインメニュー管理部521は、登録されたアイコン画像552/562をアプリボタンとしてメインメニュー(図9(b))に示す。
ステップS1120で、ライフサイクル処理部532は、仮バンドルのインターフェースをユーザーインターフェース管理部520から削除して、次のステップS1109へ処理を進める。ステップS1109で仮バンドルデータ管理部531は、ステップS1105とステップS1107から取得した情報を当仮バンドルの状態(配置用実行ファイル状態805と本体状態806)に更新して、当仮バンドルの情報チェックを完了する。
ステップS1110で次の仮バンドルが存在する場合、仮バンドルデータ管理部531は、次の仮バンドルを指定して、ステップS1104へ処理を戻る。上記以外の場合、処理を終了する。
図12は、ステップS734やステップS1006で発生したダウンロードコマンドイベントを受けた後の動作を説明するフローチャートである。MFP101のHDD214に記憶されているプログラムを、CPU211がRAM213に読み出し、解析、実行することで、フローチャートの各ステップが実行される。
まず、実行ファイルダウンロード処理部534は、ステップS1201で、ダウンロードコマンドイベントの通知を受信するよう、ライフサイクル処理部532に登録する、次に、ダウンロードコマンドイベントの発生を待ちうける(ステップS1202)。ダウンロードコマンドイベントの通知を受信するとステップS1203へ処理を進める。通知には、仮バンドルIDが含まれている。
ステップS1203で、仮バンドルデータ管理部531は、紐づけ情報リスト800から仮バンドルIDが紐づけの実行ファイルパス804を取得して、実行ファイルダウンロード処理部534は、ダウンロード開始する(ステップS1204)。
ステップS1205で、実行ファイルダウンロード処理部534は、ダウンロードの状況(成功するか)を監視して、ダウンロード成功しないの場合、まず、ステップS1208で、実行ファイルダウンロード処理部534は、ダウンロードを中止する。次に、ステップS1207で仮バンドルデータ管理部531は配置用実行ファイル状態805にダウンロードNG(824)を記入する。ダウンロード成功すれば、まず、ステップS1206で、実行ファイルダウンロード処理部534は、配置用実行ファイルとしてダウンロードした実行ファイルを保存する。次に、ステップS1207で仮バンドルデータ管理部531は配置用実行ファイル状態805にダウンロード完了(823)を記入する。
最後に、ステップS1209で、実行ファイルダウンロード処理部534は、仮バンドル状態チェックイベントを発生して処理を終了する。
以上、第1の実施例において説明した手順により、拡張プログラムが実際にユーザに使用されるまでは、ユーザーインターフェース登録しつつも、配置と開始をしないため、リソースの消費を抑えることができる。さらに、ユーザの要望があった時には、速やかに拡張プログラムを使うことができる。
LAN 110
MFP 101
管理者PC 102
ユーザPC 103
MFP 101
管理者PC 102
ユーザPC 103
Claims (7)
- 拡張プログラムを実行可能な情報処理装置(101)において、前記情報処理装置は前記拡張プログラムを管理する管理手段(510、530)を有し、
さらに、前記管理手段は、
拡張プログラムのインストール指示を受け取ったときに、指示のあった拡張プログラムが通常バンドルであるか仮バンドルであるかを判断するバンドルタイプ判別手段(S704)と、
前記バンドルタイプ判断手段によって通常バンドルであると判別した場合に、前記情報処理装置に通常バンドルとして登録する通常バンドル登録手段(S711〜S713)と、
前記バンドルタイプ判断手段によって仮バンドルであると判別した場合に、前記情報処理装置に仮バンドルとして登録する仮バンドル登録手段(S740)を有し、
さらに前記通常バンドル登録手段は、
前記インストール指示のあった拡張プログラムを実行するために必要なリソースが情報処理装置に存在するかを確認するリソース確認手段(S703)と、
前記インストール指示のあった拡張プログラムの実行ファイルを前記情報処理装置に配置する実行ファイル配置手段(S711)と、
前記実行ファイル配置手段によって配置された実行ファイルを、前記リソース確認手段によって確認したリソースを確保したうえで開始するバンドル開始手段(S712)と、
前記バンドル開始手段によって開始された実行ファイルをユーザが呼び出せるようにインターフェースに登録する通常バンドルインターフェース登録手段(S713)を有することを特徴とし、
さらに前記仮バンドル登録手段は、
前記リソース確認手段(S1105)と、
前記インストール指示のあった拡張プログラムをユーザが呼び出したときに、前記拡張プログラムの実行ファイルの配置やダウンロードを行うように仮バンドルの実行ファイルの状況を確認する実行ファイル状態確認手段(S1106、S1107)と、
前記拡張プログラムの実行ファイルの配置と開始を行うようにインターフェースに登録する仮バンドルインターフェース登録手段(S1108)を有することを特徴とし、
さらに前記管理手段は、
前記仮バンドルインターフェース登録手段によって登録された仮バンドルがユーザによって呼び出された場合に、呼び出された仮バンドルの実行ファイルを前記情報処理装置に配置(S1008)して、前記リソース確認手段によって確認したリソースを確保したうえで開始する(1009)こと
を特徴とする情報処理装置。 - 請求項1に記載の情報処理装置において、前記バンドルタイプ判断手段は、
インストール指示のあった拡張プログラムに含まれるマニフェストファイルを読み込んで、定義されたバンドルタイプ(613、633、653)によって拡張プログラムが通常バンドルであるか仮バンドルであるかを判断することを特徴とする情報処理装置。 - 請求項1に記載の情報処理装置において、前記通常バンドルインターフェース登録手段と前記仮バンドルインターフェース登録手段は、
バンドルに含まれるアイコン画像をメインメニューへの登録するアプリボタン登録手段(S740、S1108)と、
サーブレットの持つバンドルをサーブレットサービス管理部に登録するサーブレット登録手段(S740、S1108)
を有することを特徴とする情報処理装置。 - 請求項1に記載の情報処理装置において、前記仮バンドル登録手段は、
前記バンドルタイプ判別手段によって仮バンドルであると判別した後に、仮バンドルが実行ファイルの持つかを判断する実行ファイル存在判別手段(S721)と、
前記実行ファイル存在判別手段によって実行ファイルを持つと判別した場合、前記情報処理装置に実行ファイルを保存する実行ファイル保存手段(S722)と、
前記実行ファイル存在判別手段によって仮バンドルが実行ファイルを持たないと判別した場合、前記実行ファイルのダウンロードコマンドを発生する実行ファイルダウンロードコマンド発生手段(S1204)
を有することを特徴とする情報処理装置。 - 請求項1に記載の情報処理装置において、前記管理手段は、
前記実行ファイルダウンロードコマンド発生手段によってダウンロードコマンドを受ける場合、前記実行ファイルをダウンロードする実行ファイルダウンロード手段(S1204)
を有することを特徴とする情報処理装置。 - 請求項1に記載の情報処理装置において、前記管理手段は、
前記実行ファイル存在判別手段によって仮バンドルが実行ファイルを持たないと判断する、かつ前記実行ファイル状態確認手段によって実行ファイルのダウンロードを行えないと判断する場合、
或いは、前記リソース確認手段によって前記仮バンドルの実行ファイル開始必要なリソースが確保できない場合、
前記仮バンドルインターフェース登録手段によって登録された仮バンドルを削除する仮バンドルインターフェース削除手段(S1120)
を有することを特徴とする情報処理装置。 - 請求項1に記載の情報処理装置において、前記管理手段は
前記仮バンドル登録手段によって登録した仮バンドルのアプリボタンID、サーブレット、配置用実行ファイル状態、本体状態と仮バンドルの紐づけ情報を保持する紐づけ情報保持手段(S740)と、
前記リソース確認手段と前記実行ファイル状態確認手段によって取得した情報を前記紐づけ情報に更新する紐づけ情報更新手段(S1109)と、
前記実行ファイルダウンロード手段によってダウンロードの状態を前記紐づけ情報に更新する紐づけ情報更新手段(S1207)と、
前記仮バンドルインターフェース登録手段によって登録された仮バンドルがユーザによって呼び出された場合に、呼び出された仮バンドルを特定する仮バンドル特定手段(S1003、S1103)と、
前記仮バンドル特定手段によって特定された仮バンドルの実行ファイルを前記情報処理装置に配置と開始する後に紐づけ情報を削除する仮バンドル紐づけ情報削除手段(S1012)
を有することを特徴とする情報処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017195547A JP2019070884A (ja) | 2017-10-06 | 2017-10-06 | 情報処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017195547A JP2019070884A (ja) | 2017-10-06 | 2017-10-06 | 情報処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019070884A true JP2019070884A (ja) | 2019-05-09 |
Family
ID=66440688
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017195547A Pending JP2019070884A (ja) | 2017-10-06 | 2017-10-06 | 情報処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2019070884A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020201417A (ja) * | 2019-06-11 | 2020-12-17 | 株式会社リコー | 画像形成装置 |
-
2017
- 2017-10-06 JP JP2017195547A patent/JP2019070884A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020201417A (ja) * | 2019-06-11 | 2020-12-17 | 株式会社リコー | 画像形成装置 |
JP7284934B2 (ja) | 2019-06-11 | 2023-06-01 | 株式会社リコー | 画像形成装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101643601B1 (ko) | 원격 어플리케이션 구성 관리 방법 및 장치 | |
JP4202272B2 (ja) | 電子メールを介して印刷する方法とシステム | |
US8438567B2 (en) | Information processing device and image processing apparatus | |
JP2013069077A (ja) | システム、情報処理装置およびその制御方法、画像形成装置およびその制御方法、並びにプログラム | |
JP2006202028A (ja) | プログラム管理システムとその制御方法、ならびに記憶媒体 | |
JP5732824B2 (ja) | 画像形成装置、情報処理システム、及び情報処理方法 | |
JP2014170515A (ja) | 機器、情報記録プログラム、及び情報記録方法 | |
JP2012064022A (ja) | インストールプログラム、インストール方法、画像形成装置、及び記録媒体 | |
JP2013191196A (ja) | 情報処理装置、機器、情報処理システム、情報処理方法、及び情報処理プログラム | |
JP2004185595A (ja) | 情報処理装置およびそのプログラム | |
JP5494208B2 (ja) | 画像形成装置及びその制御プログラム | |
JP2009253853A (ja) | 画像形成装置、情報処理方法、及びプログラム | |
US20090300478A1 (en) | Image forming apparatus, information processing method and program | |
JP4198551B2 (ja) | 画像形成装置およびプログラム実行方法 | |
JP6070423B2 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
JP3986721B2 (ja) | ソフトウェア・モジュール動的交換方法及びソフトウェア・モジュール動的交換プログラム記録媒体 | |
JP2019070884A (ja) | 情報処理装置 | |
JP2004185593A (ja) | 画像形成装置およびアプリケーション実行方法 | |
JP2009205262A (ja) | アプリケーションプログラムインストール装置、アプリケーションプログラムインストール方法、プログラム、および記録媒体 | |
CN112445436A (zh) | 信息处理装置和用于信息处理装置的方法 | |
EP3462363B1 (en) | Image forming apparatus and control method therefor | |
JP4976329B2 (ja) | 追加プログラムを実行可能な装置、障害解析支援方法、及び障害解析支援プログラム | |
EP3229453A1 (en) | Image forming device for serving a web service and method thereof | |
JP4542180B2 (ja) | 画像形成装置、プログラム、及び記録媒体 | |
JP2019087922A (ja) | 画像処理装置および画像処理装置の制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20191125 |