JP2016146045A - リソース管理装置およびリソース管理方法 - Google Patents

リソース管理装置およびリソース管理方法 Download PDF

Info

Publication number
JP2016146045A
JP2016146045A JP2015022346A JP2015022346A JP2016146045A JP 2016146045 A JP2016146045 A JP 2016146045A JP 2015022346 A JP2015022346 A JP 2015022346A JP 2015022346 A JP2015022346 A JP 2015022346A JP 2016146045 A JP2016146045 A JP 2016146045A
Authority
JP
Japan
Prior art keywords
resource
application
group
bundle
installation
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
Application number
JP2015022346A
Other languages
English (en)
Inventor
極 長谷川
Kiwamu Hasegawa
極 長谷川
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2015022346A priority Critical patent/JP2016146045A/ja
Priority to US15/006,302 priority patent/US9753775B2/en
Publication of JP2016146045A publication Critical patent/JP2016146045A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/62Uninstallation
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】グループに属するアプリケーションのインストールを管理する場合に、ユーザの環境に応じて、インストールを許可するリソース上限値を柔軟に変更する。
【解決手段】グループに属するアプリケーション110〜112がインストール、またはアンインストールされた際に、グループに属するアプリケーション110〜112が使用するリソース領域を確保するために、リソースサービス304は、管理者がアプリケーション110〜112をインストールするリクエストを行うと、リソース定義バンドル元データのリソース上限値にグループのリソース上限値を加算し、リソース定義バンドル307をインストールする。
【選択図】図3

Description

本発明は、例えば組込アプリケーション等が使用するリソースの使用量を動的に管理するリソース管理装置およびリソース管理方法に関わる。
従来、組込アプリケーション実行環境においては、アプリケーションが使用する一般的な情報機器資源であるところのリソースの総量に制限があることが一般的である。このために以下のようなことが一般的に行われている。すなわち各アプリケーションが使用するリソースの量について上限値を定める。加えて、アプリケーションインストール時の検査段階において、当該アプリケーションによるリソースの使用量がその上限値を超えないことをアプリケーション管理フレームワークが確認することによって、アプリケーションが安定稼働することを保証している。
従来技術として、情報機器内でアプリケーションが使用するリソース量を1回目の起動時に計測し、2回目以降の起動時にはその計測値を利用して起動するか否かを決定するリソース管理システムがある(例えば、特許文献1参照)。特許文献1によれば、或るアプリケーションの2回目以降の起動時に、計測値と情報機器内で起動されている他のアプリケーションの使用リソース量との総和が情報機器で使用可能なリソース領域を超えない場合は当該アプリケーションを起動し、超える場合は当該アプリケーションの起動を待機する。しかしながら、アプリケーションの使用リソースの上限値(すなわち最大値)による管理を行っていないため、実働中にアプリケーションの使用リソース量が情報機器で使用可能なリソース領域を超える場合があり得る。そのような場合に、アプリケーションを安定稼働させる保証ができない。
特開2009-20609号公報
使用リソースの上限値による管理においては、アプリケーション管理フレームワークは個々のアプリケーションについて使用量の上限値に相当するリソース領域を確保する。複数のアプリケーションが稼働中であれば、それらのリソース使用量が同時に上限に達することはないような場合でも、上限値の合計値に相当するリソースが確保される。このような場合には、実際のリソースの使用量は上限値の合計値よりも小さく、アプリケーションに割り当てられてはいるが使用されることのないリソース領域が生じる。そのため、ユーザが新たにアプリケーションをインストールしたい場合に、実際にはアプリケーションが必要なリソース量を確保できるにも関わらず、アプリケーション管理フレームワークはアプリケーションのインストールを許可できないことがある。このように、アプリケーションのリソース使用量を適切に管理することが困難であり、リソースの使用効率を低下させる原因となっていた。
本願発明は上記従来例に鑑みて成されたもので、アプリケーションをインストールする際のリソース管理をより柔軟におこなってリソースの利用効率を向上したリソース管理装置及びリソース管理方法を提供することを目的とする。
上記目的を達成するために本発明は以下の構成を有する。すなわち、グループ単位でアプリケーションのリソースを管理するためのリソース管理装置であって、
アプリケーションのインストールにより前記アプリケーションの宣言値に応じたリソースを前記アプリケーションのために確保するシステムに対して、グループに属するアプリケーションがインストールされた際には、リソース定義アプリケーションのリソースの宣言値に対し、インストールされた前記アプリケーションが属する前記グループのリソースの宣言値を加算する付け替え手段と、
前記付け替え手段による加算処理後、前記リソース定義アプリケーションを前記システムにインストールするインストール手段と
を有する。
本発明を用いれば、リソースサービスのリソース上限値を柔軟に変更できるようになる。
本発明の第一、第二の実施例の装置の全体の構成を示す図である。 本発明の第一、第二の実施例の画像形成装置(100)のハードウェア構成を示す図である。 本発明の第一、第二の実施例のアプリケーション実行環境の構成を示す図である。 本発明の第一、第二の実施例のアプリケーションを構成するファイルの内容を示す図である。 本発明の第一、第二の実施例のフラグメントバンドルを構成するファイルの内容を示す図である。 本発明の第一、第二の実施例のグループデータテーブルの内容を示す図である。 本発明の第一の実施例のリソースサービスの処理流れを示すフローチャートである。 本発明の第二の実施例のリソースサービスUIの画面の一例を示す図である。 本発明の第二の実施例のリソースサービスの処理流れを示すフローチャートである。 グループXの使用リソース領域を確保する時のイメージ図である。
以下、本発明を実施するための形態について図面を用いて説明する。本実施形態では、アプリケーションがリソース取得をリクエストする時にそのアプリケーションが使用リソースの上限値を超えるか否かを判定し、超えていなければリソースを確保する機能を持つリソースサービスを提供する。またリソースサービスは、アプリケーション単位ではなく、複数のアプリケーションを1つのグループとしてグループ単位でリソースを管理する。リソースサービスは、複数のアプリケーションを1つのグループとしてアプリケーション開発者が登録しておくことで、リソースの管理をグループ単位で行うようなグループ機能を持つ。例えば、リソース使用量が同時に上限に達しないアプリケーション同士を1つのグループとして開発者が登録しておくことで、リソースサービスはグループに属するアプリケーションが当該グループのリソース上限値を超えないように管理する。ここで、グループ単位のリソース管理も、アプリケーション管理フレームワークによるアプリケーション単位のリソース管理に則るために、グループが使用するリソースはリソースサービスの使用リソース上限値に含まれる。
ここでリソースサービスのリソース上限値はユーザの環境に柔軟に合わせて変更しなければならない。リソースサービスのリソース上限値を変更しなければならない要因として以下の3つの項目が挙げられる。
(1)ユーザが利用するグループ:ユーザが利用するアプリケーションの組み合わせによってグループのリソース上限値が変わる。
(2)ユーザが利用するリソースサービス非対応のアプリケーション:リソースサービス非対応アプリケーションの利用状況によって、情報機器内の空いているリソース領域が変わる。
(3)ユーザが利用する情報機器:ユーザが利用する情報機器によって、使用可能なリソース領域が変わる。
以上のような要因があるため、ユーザの環境に応じて、リソースサービスのリソース上限値は柔軟に変更しなければならない。
以下に説明する実施形態は、上述したようなリソースのアプリケーショングループ単位の管理を実現し、かつ柔軟で効率的なリソース管理を実現する装置、方法、プログラム等に関する。
[第一の実施形態]
<画像形成装置の構成>
図1に掲げるのは本発明の第一の実施形態の装置の全体の構成を示す図である。画像形成装置100は本実施形態に係る画像形成装置である。ネットワーク130は画像形成装置100と情報処理装置101を接続するネットワークである。情報処理装置101は画像形成装置100をネットワーク130経由で利用するために用いられる。
アプリケーション110は画像形成装置100上で動作するアプリケーションの一つの例であるアプリケーションAである。アプリケーション111は同様に画像形成装置100上で動作するアプリケーションのもう一つの例であるアプリケーションBである。さらにアプリケーション112は同様に画像形成装置100上で動作するアプリケーションのさらなる一つの例であるアプリケーションCである。画像形成装置100上では一つ、あるいは複数のアプリケーションを動作させることが可能である。ここではアプリケーションを三つ例示している。以後、「アプリケーション11n」という表現は、アプリケーションA110、アプリケーションB111、アプリケーションC112にて代表されるような一つまたは複数のアプリケーションを指す。一般利用者および管理者は画像形成装置100の基本機能、アプリケーション11n、および、画像形成装置100やアプリケーション11nを管理するためのリソース管理装置を利用することが可能である。利用に当たっては、画像形成装置100を直接操作、もしくはネットワーク130経由で情報処理装置101から操作することが可能である。
図2は画像形成装置100のハードウェア構成を図式化したものである。コア部200はプロセッサやメモリ等を有し、オペレーティングシステムやアプリケーション等のプログラムを実行し、本実施形態に係るリソース管理を実現する。ユーザーインターフェース部201は、タッチパネルやディスプレイ、キーボード等を有し、ユーザに対する情報を出力(表示)し、またユーザから操作等の入力を受け付ける。記憶装置202は、例えばハードディスクなどで構成され、プログラムやデータをファイルとして格納する。ネットワークインターフェース部203は、例えばLAN等のネットワーク130に接続するためのネットワークインターフェースである。スキャナー部204は、原稿画像をたとえば光学的に読み取って画像データを出力する。プリンター部205は、画像データに対応した画像を媒体上に形成する。フィニッシャー部206は、プリンター部で画像形成したシート媒体に、ソーティングやステープル、穿孔等の仕上げ処理を施す。
<画像形成装置のアプリケーション及びその実行環境>
図3は本実施形態における画像形成装置100の上でアプリケーション11nを実行するためのアプリケーション実行環境である。アプリケーション実行基盤301は、アプリケーションを実行するためにプログラムであり、例えばJava仮想マシン(JavaVM)等である。アプリケーション管理フレームワーク302はアプリケーション11nのインストールおよびアンインストール、実行と停止を管理するフレームワークであり、たとえばJava(登録商標)ベースのOSGi(OPEN Services Gateway initiative)フレームワークなどである。アプリケーション実行環境内へアプリケーション11nをインストールして実行するには、アプリケーション管理フレームワーク302を利用する。アプリケーション管理フレームワーク302の一般的な基本動作として、アプリケーション管理フレームワーク302は、管理者がアプリケーション11nをインストールするリクエストを行うことにより、インストール動作を行う。その際にアプリケーション管理フレームワーク302は、インストール対象のアプリケーションのアプリケーションリソース上限宣言ファイル402(図4A参照)を参照して、そこに宣言されているリソース上限値が現在のアプリケーション実行環境内のリソースの空き容量の中に納まるかどうかを判定する。そして、もしも納まらなければインストールを失敗させる。すなわち、たとえばアプリケーションのインストールを行うことなく処理を終了し、失敗した旨を管理者に通知する。サポートライブラリ303はアプリケーション11nが画像形成装置100のさまざまな機能を利用するためのサポートライブラリである。以降は本実施形態を実施するための特別な構成要素の説明である。
リソースサービス304はアプリケーション11nが使用するリソースを管理するためのプログラムである。リソースサービス304の基本的な動作には、アプリケーション11nが使用するリソースを管理する機能と、複数のアプリケーションをグループとして管理する機能がある。リソースサービス304はアプリケーションのひとつであるが、アプリケーション11nには含まれない。リソースサービス304は、他のアプリケーションに対して提供するAPIを実装し、リソースサービスを使用するアプリケーションはこれらのAPIを呼び出しリソースの取得や解放、使用をおこなう。リソースサービスにより確保されたリソースは、リソースオブジェクトとしてその要求元に返される。リソースサービスによる管理対象のリソースには、たとえばストレージのリソースとしてファイル、通信のリソースとしてソケット、コンピューティングリソースとしてスレッド等がある。もちろんこれら以外のリソースも管理対象に含まれる。リソースオブジェクトとは、上述したようなリソースの抽象化ということもでき、たとえば確保したリソースを示す情報を含む。リソースオブジェクトをアプリケーションに渡す(返す)ことは、要求されたリソースをアプリケーションに割り当て、引き渡すことに相当する。そのため、以下の説明ではリソースオブジェクトを返すことを単にリソースを返すと表現する。
まず、アプリケーション11nが使用するリソースを管理する機能について説明する。一般的なアプリケーションは、リソースを取得する際および解放する際に、アプリケーション実行基盤にリソース取得リクエスト、リソース解放リクエストをそれぞれ送る。対して、リソースサービス304対応のアプリケーション11nは、リソースを取得する際および使い終わって解放する際に、リソースサービス304に対してリソース取得リクエスト、リソース解放リクエストをそれぞれ送る。リソース取得リクエストを受けたリソースサービス304は、アプリケーション11nに設定されているリソースの使用量の上限値を参照する。その上で、リソース上限に達していなければリソースを確保してアプリケーション11nへ返す。上限を超えてしまう場合にはエラーを返す。
<グループ管理機能の概略>
次に、複数のアプリケーションをグループとして管理する機能について説明する。その前にまずバンドルおよびフラグメントバンドルについて説明する。バンドルとは、OSGiフレームワークの上で、Java(登録商標)の実行基盤であるJavaVMとは独立してインストールやアンインストール、起動或いは停止可能なプログラム部品(いわゆるプラグイン)である。フラグメントバンドルとは、OSGiフレームワークにおいては、その内容を他のバンドル(ホストバンドルと呼ぶ)により共有できるようなバンドルであり、アプリケーションと同様に、マニフェストヘッダー(図4Bのフラグメントバンドルリソース上限宣言ファイル)を持つJava(登録商標)アーカイブファイルとして提供される。フラグメントバンドルはアプリケーションと同様であるので、本実施形態ではフラグメントアプリケーションと呼ぶこともある。
次に、図4A、図4Bを参照してアプリケーションおよびフラグメントバンドルについてその構成を説明する。図4Aは本実施形態におけるアプリケーション11nを構成する代表的なファイルの内容について解説した図である。アプリケーション11nはいくつかの種類のファイルを抱えている。アプリケーション実行コードファイル400はアプリケーションの実行コード等を含むファイルである。アプリケーション固定データファイル401はアプリケーションが持っている固定データを収めたファイルである。アプリケーションリソース上限宣言ファイル402はアプリケーションの使用するリソースの上限値を宣言するためのファイルである。
さらにアプリケーションリソース上限宣言ファイル402はその内容として以下の記述を含んでいる。アプリケーションID410はアプリケーション11nのIDの値の記載である。グループID411はアプリケーション11nが属するグループを指定するグループIDの記載である。リソース上限値412はアプリケーション11nが使用するリソースの上限値の宣言であるところの、リソース上限値(あるいは宣言値)である。アプリケーション11nをアンインストールするまで、このリソース上限値を変更してもアプリケーション管理フレームワーク302が内部で管理しているリソース上限値に反映されない。リソース上限値413は、アプリケーション11nがリソースサービス304にリソースのリクエストを行って使用するリソース上限値である。リソースサービス304用のリソース上限値413は、アプリケーションがグループに属していない状態でリソースサービス304に管理される場合に記載してある。
図4Bはフラグメントバンドル306nを構成する代表的なファイルの内容について解説した図である。フラグメントバンドル306nも、基本的には図4Aに掲げたアプリケーション11nと同様の構成になっている。フラグメントバンドル実行コードファイル420は実行コード等を含むファイルである。フラグメントバンドル固定データファイル421は固定データを収めたファイルである。フラグメントバンドルリソース上限宣言ファイル422は、フラグメントバンドルが使用するリソースの上限を記述したファイルである。
フラグメントバンドルID430はフラグメントバンドルの識別情報を示している。またグループID431はこのフラグメントバンドル306nが宣言するグループのグループIDを示している。リソース上限値432はフラグメントバンドル306nに記載されているグループID431のグループが有効になった時に、そのグループに対して割り当てられるリソース使用量を宣言するリソース上限値を示している。アプリケーションID433はこのフラグメントバンドル306nが宣言するグループに属する一つまたは複数のアプリケーション11nのアプリケーションIDを示す。グループ情報434はグループID431について記載しているグループ情報である。
なおここではフラグメントバンドルという用語の示す概念には、アプリケーション管理フレームワーク302がOSGiフレームワークではないとしても、OSGiフレームワークのフラグメントバンドルに相当するソフトウェア部品を含む。
次にグループ管理機能の概略を説明する。アプリケーション管理フレームワーク302は、アプリケーションを1つ1つのアプリケーションとして管理する。対して、リソースサービス304は、フラグメントバンドル306nが持つ宣言ファイルに含まれたグループ情報434に基づき、複数のアプリケーションをグループとして管理する。リソースサービス304は、グループに所属するアプリケーション11nがインストールされた時か、あるいはリソースを取得する時に、グループのリソース上限値432を参照する。グループに所属するアプリケーション11nがアプリケーション管理フレーム302によってインストールされた際、リソースサービス304はそのグループのリソース上限値が現在のアプリケーション実行環境内のリソースの空き容量の中に納まるかどうかを判定する。もしも納まらなければ、リソースサービス304はグループに所属するアプリケーションをアンインストールさせる。また、グループに所属するアプリケーション11nがリソースを取得する際、リソースサービス304はアプリケーション11nに設定されているリソースの使用量の上限値を参照する。その上で、リソース上限に達していなければリソースを確保してアプリケーション11nへ返す。上限を超えてしまう場合にはエラーを返す。
グループ設定バンドル305はリソースサービス304に対して補完用モジュールとして動作するプログラムである。フラグメントバンドルのインストール、アンインストールにはホストバンドルが必要で、加えてフラグメントバンドルのインストール時、アンインストール時にはホストバンドルは停止状態でなければならない。従って、グループ設定バンドル305は、後に出てくるフラグメントバンドル306nをインストール、アンインストールするためにリソースサービス304に対して補完用モジュールとして動作する。また、グループ設定バンドル305はリソースサービス304がインストールされているフラグメントバンドル306nの情報を取得するためにも動作する。
フラグメントバンドル3061〜3063は、グループ設定バンドル305をホストバンドルとして動作するフラグメントバンドルである。開発者はあらかじめフラグメントバンドル306nにグループ情報434を記載する。グループ情報434にはグループID431、グループのリソース上限値432、グループに所属するアプリケーションID433がある。管理者が複数のアプリケーションを1つのグループとして利用したい場合、管理者はそのグループのフラグメントバンドル306nをインストールするリクエストを行う。複数のグループを利用する場合、ユーザはそのグループの分だけフラグメントバンドル306nをインストールするリクエストを行う。
リソースサービス304とグループ設定バンドル305、及びリソース定義バンドル307も基本的にはアプリケーションの一つであり、図4Aに掲げたアプリケーション11nと同様の構成になっている。したがってリソース定義バンドルをリソース定義アプリケーションと呼びかえることもできる。リソース定義バンドル307はリソースサービス304に対して補完用モジュールとして動作するバンドルである。リソース定義バンドル307をインストールする際に必要なリソース定義バンドル元データ308は、リソースサービス304の開発者があらかじめリソースサービス304の内部に保持させている。リソース定義バンドル元データ308には、たとえば或る時点におけるリソース定義バンドル307のリソース上限値などが含まれる。その初期値は、たとえばリソース定義バンドル307自身が消費するリソースの上限値である。
リソース定義バンドル307はグループに属するアプリケーション11nが使用するリソース領域を確保するためのバンドルである。アプリケーション管理フレームワーク302がグループに属するアプリケーション11nをインストール、あるいはアンインストールすると、リソースサービス304はそのアプリケーション11nのアプリケーションIDが所属アプリケーションID433として記載されたフラグメントバンドル306nのグループ情報434を参照する。そして、リソースサービス304は、アプリケーション11nが属するグループのリソース上限値432を、リソース定義バンドル元データのリソース上限値412に加算(増加した場合)、あるいは減算(減少した場合)する。その上で、リソース上限値412を変更したリソースサービス定義バンドルの元データに基づいてリソース定義バンドル307をインストールするリクエストをリソースサービス304が行う。リソース上限値412が変更されたリソースサービス定義バンドル307がインストールされることにより、リソース定義バンドル元データのリソース上限値412のリソースが確保される。すなわち、グループに属するアプリケーション11nが使用するリソース領域を確保することができる。
リソースサービスを区別する特徴は、他の不特定のアプリケーション11nに対してサービスを提供する共通のアプリケーションプログラミングインターフェース(以下「API」と略す)を提供する点である。また、リソースサービス304はアプリケーション管理フレームワーク302にグループ設定バンドル305を開始、停止するリクエストや、リソース定義バンドル307をインストール、アンインストールするリクエストを行う。リソース定義バンドル307をインストールするためのリソース定義バンドル元データ308は、リソースサービス304の内部データとして保持されている。リソースサービス304はアプリケーション管理フレームワーク302に、保持しているリソース定義バンドル元データ308をインストールするリクエストを行う。アプリケーション管理フレームワーク302はインストールを指示されるとリソース定義バンドル元データ308を使って、新しくリソース定義バンドル307をインストールする。
グループ設定バンドル305を区別する特徴は、グループ設定が記載されたファイルを保持するフラグメントバンドルを管理している点と、リソースサービス304の開始時とグループの設定時以外には開始されない点である。グループ設定バンドル305はフラグメントバンドル306nに対してホストバンドルとして動作しているため、フラグメントバンドル306nのインストール・アンインストールの前にグループ設定バンドル305を一度停止させる必要がある。フラグメントバンドル306nのインストール・アンインストールそのものはアプリケーション管理フレームワーク302により実施される。
リソース定義バンドル307をアプリケーション11nと区別する特徴は、フラグメントバンドル306nに宣言されたリソース上限値をリソース定義バンドルのアプリケーションリソース上限宣言ファイルに加算されている点である。
アプリケーション管理フレームワーク302はフラグメントバンドル306nをインストール指示された場合には、フラグメントバンドル306nのインストール動作を行う。インストール動作が完了すると、アプリケーション管理フレームワーク302はリソースサービス304にフラグメントバンドル306nのインストール完了通知を送信する。リソースサービス304はインストール完了通知を受信すると、アプリケーション管理フレームワーク302にグループ設定バンドル305を開始するリクエストを行う。グループ設定バンドル305が開始されたら、リソースサービス304はグループ設定バンドル305にフラグメントバンドル306nのグループ情報434を要求する。グループ設定バンドル305はインストールされているフラグメントバンドル306nのフラグメントバンドルリソース上限ファイル422を参照する。そして、そこに宣言されているグループID431、リソース上限値432、所属アプリケーション433をリソースサービスに渡す。リソースサービス304はこのグループ情報434を取得すると記憶装置202に記憶し、アプリケーション管理フレームワーク302にグループ設定バンドル305を停止するリクエストを行う。
<グループデータテーブルの例>
図5は本実施形態のリソースサービス304がアプリケーション11nのグループ管理を実施するために必要とするデータを保持するためのデータテーブルのうち、グループデータテーブルを模式的に表したものである。グループデータテーブル500は、リソースサービス304がグループ設定バンドル305から取得したフラグメントバンドルの情報を記憶装置202に記憶するグループデータテーブルである。
501はフラグメントバンドルID430の保持欄である。502はグループID431の保持欄である。503はリソースサービス304がフラグメントバンドル306nを最初に検出した時刻の保持欄である。リソースサービス304がフラグメントバンドル306nを最初に検出するのは、リソースサービス304がグループ情報434を取得した時刻である。504はインストールされて検出したフラグメントバンドル306nが削除されて消えていたことをリソースサービス304が検出した時刻の保持欄である。削除の検出は、記憶装置202に記憶していたグループID431を持つフラグメントバンドル306nがアンインストールされていることをリソースサービス304が検出した時刻である。505はそのフラグメントバンドル306nがグループとして管理する対象とするアプリケーションのアプリケーションID410の保持欄である。506は当該フラグメントバンドルが有効であるか否かを記録する有効化状態の保持欄である。この有効化状態の保持欄506には「有効」「無効」「アンインストール済」の三通りの状態が保持され得る。フラグメントバンドル306nがインストールされた後、リソースサービス304がグループ情報434を取得した時には、リソースサービス304は有効化状態506を「無効」に設定する。そして、管理対象アプリケーションID505に該当するいずれかのアプリケーション11nがインストールされると「有効」に設定する。管理対象アプリケーションID505に該当するアプリケーション11nが全てアンインストールされると、リソースサービス304は有効化状態505を「アンインストール済み」に設定する。507はリソースサービス304がグループ設定バンドル305から取得したリソース上限値432の保持欄である。リソースサービス304がアプリケーション11nからリソースのリクエストを受けた時、リソースサービス304はそのアプリケーション11nが使用しているリソース量がリソース上限値を超えていないか判定する。この際、リソースサービス304はグループデータテーブル500のリソース上限値507を参照する。そして、使用しているリソース量がリソース上限値507を超えていれば、リソースサービス304はアプリケーション11nにエラーを返す。510はある一つのフラグメントバンドル306nに関するグループデータテーブル500のエントリーである。
次にリソースサービス304がグループデータテーブル500を参照する例について説明する。アプリケーション管理フレームワーク302はアプリケーション11nをインストール指示された場合には、アプリケーション11nのインストール動作を行う。インストール動作が完了すると、アプリケーション管理フレームワーク302はリソースサービス304にアプリケーション11nのインストール完了通知を送信する。リソースサービス304はインストール完了通知を受信すると、インストールされたアプリケーション11nのアプリケーションリソース上限宣言ファイル402に記載されているアプリケーションID410とグループID411を参照する。参照したIDがグループデータテーブル500に記憶され、かつ有効化状態506が無効になっている場合、リソースサービス304はリソース定義バンドル元データ308のリソース上限値412を変更する。リソース上限値412の変更とは、リソースサービス304が参照したグループID411のリソース上限値507を、リソース定義バンドル元データ308のリソース上限値412に加算することである。リソース上限値412の変更後、リソース定義バンドル307がインストールされている場合、リソースサービス304はアプリケーション管理フレームワーク302にリソース定義バンドル307をアンインストールするリクエストを行う。リソース定義バンドル307がインストールされていない状態になった後、リソースサービス304はアプリケーション管理フレームワーク302にリソース定義バンドル307をインストールするリクエストを行う。アプリケーション管理フレームワーク302はリソース定義バンドル307のアプリケーションリソース上限宣言ファイル402を参照する。そして、そこに宣言されているリソース上限値412が、現在のアプリケーション実行環境内のリソースの空き容量の中に納まるかどうかを判定する。納まる場合にはインストールを完了する。インストールが完了するとアプリケーション管理フレームワーク302はリソースサービス304にリソース定義バンドル307のインストール完了通知を送信する。リソースサービス304はその通知を受信すると、参照したグループID411のグループデータテーブル500に記載されている有効化状態506を有効に変更する。
<リソース定義バンドルのインストールによるリソース領域の確保>
図9A、図9B、図9CはグループXに属するアプリケーションA110が使用するリソース領域をリソース定義バンドル307のインストールによって確保するイメージ図である。図9Aは管理者がフラグメントバンドルX3061をインストールするリクエストを行う時のイメージ図である。管理者がフラグメントバンドルをインストールする時には、画像形成性装置100の記憶装置202にアプリケーション管理フレームワーク302、リソースサービス304、グループ設定バンドル305はインストールされた状態である。また、フラグメントバンドルX3061はグループXのグループ情報434が記載されたフラグメントバンドルリソース上限宣言ファイル422を持っている。リソースサービス304は、リソース定義バンドル307のインストールに必要なリソース定義バンドル元データ308と、グループデータテーブル500を持つ。
管理者がグループXの情報をリソースサービス304に登録したい場合、まず図9Aに示すように、管理者がフラグメントバンドルX3061をインストールするリクエストをアプリケーション管理フレームワーク302に行う。フラグメントバンドルX3061がインストールされると、リソースサービス304はフラグメントバンドルのインストール完了通知を受信する。インストール完了通知の受信後、リソースサービス304はフラグメントバンドルX3061に記載されたグループXのグループ情報434を取得し、そのグループ情報434をグループデータテーブル500に記憶する。グループID431はグループID502に、リソース上限値4432はリソース上限値507に、所属アプリケーションIDは管理対象アプリケーションID504に複製される。この時にグループデータテーブル500の有効化状態606は無効になっている。リソースサービス304がグループデータテーブル500にグループ情報434を記憶することによって、リソースサービス304へのグループXの情報登録は完了する。
図9Bは、図9Aの後に管理者がグループXに属するアプリケーションA110のインストールリクエストを行い、アプリケーション管理フレームワーク302がアプリケーションA110をインストールした後のイメージ図である。図9AでフラグメントバンドルX3061がインストールされたため、グループ設定バンドル305はフラグメントバンドルX3061を持つ。
アプリケーション管理フレームワーク302がグループXに属するアプリケーションA110をインストールすると、リソースサービス304はアプリケーションのインストール完了通知を受信する。インストール完了通知の受信後、リソースサービス304はインストールされたアプリケーションA110が属するグループXの、グループデータテーブル500に登録されたリソース上限値507を参照する。そして、リソースサービス304は、参照したグループXのリソース上限値507を、リソース定義バンドル元データ308が持つアプリケーションリソース上限宣言ファイル402のリソース上限値412に加算する。リソース定義バンドル元データ308のリソース上限値412を変更すると、図9Cに示すようにリソース定義バンドル307のインストールを行う。
図9Cは、図9Bの後にリソースサービス304がリソース定義バンドル307のインストールリクエストを行い、アプリケーション管理フレームワーク302がリソース定義バンドル307をインストールする時のイメージ図である。リソースサービス304は、リソース定義バンドル元データ308に基づいてリソース定義バンドル307をインストールするリクエストをアプリケーション管理フレームワーク302に行う。そしてアプリケーション管理フレームワーク302はリソース定義バンドル307をインストールする。リソース定義バンドル307がインストールされることにより、グループXに属するアプリケーションの使用するリソース領域930が確保される。なお、図9CではアプリケーションA110のリソース領域が確保されているが、ここでアプリケーションAが確保しているリソース領域はアプリケーションのインストール処理に必要な最小限のリソース領域である。この後、管理者がグループXに属するアプリケーションB111をインストールする場合、グループXの使用リソース領域が確保されているので、アプリケーションB111もリソースを使用することができる。また、アプリケーション管理フレームワーク302がリソース定義バンドル307をインストールする際、記憶装置202に必要なリソース領域が確保できない場合、リソース定義バンドル307のインストールに失敗する。その場合は、リソースサービス304はアプリケーションA110のアンインストールリクエストをアプリケーション管理フレームワークに行い、エラー処理をする。
以上より、図9A、図9B、図9Cのイメージ図に示すように、グループのリソース上限値に対して柔軟に、グループに属するアプリケーションが使用するリソース領域を確保することができる。
<リソースサービスの処理の流れ>
図6Aは本実施形態におけるリソースサービス304が開始されてから停止するまでの処理の流れを模式的に表したフローチャートである。リソースサービスの処理と並行して、あるいはリソースサービスが停止しているときに、管理者は、各グループのフラグメントバンドルやアプリケーションのインストールやアンストールを例えばアプリケーション管理フレームワーク302に対して指図することができる。アプリケーション管理フレームワーク302により、これらのインストール或いはアンインストールが実行されると、その完了通知がリソースサービス304に出され、リソースサービスはその通知に応じた処理を図6Aで実行する。
その処理により、ここまでに述べた通りグループ設定バンドル305に対してグループ情報434を保持するフラグメントバンドル306nを追加でインストールすることでグループ情報434を追加認識させることが可能である。また、グループ情報434に記載されているアプリケーションをインストールすることで追加したグループを有効にすることが可能である。同様にグループ情報434に記載されているアプリケーションを全てアンインストールすることで、グループを無効にすることが可能である。そして、フラグメントバンドル306nをアンインストールすることでグループ情報434をリソースサービスの制御下より取り除くことも可能である。ここで説明する処理はグループが有効あるいは無効になっている場合に、改めてリソースサービス304が停止状態から開始される際に実行されるものである。
処理はS6001から開始する。処理のきっかけは例えば管理者がリソースサービス開始のリクエストをユーザーインターフェース部201等から入力したことである。
S6002でリソースサービス304はまずグループ情報434を更新する。ここで、前回のリソースサービス停止時から、リソース定義バンドル307のリソース上限値を更新する必要があるか否かを判定し、必要がある場合はリソース定義バンドル元データ308のリソース上限値412を変更する。S6002の処理の詳細は図6Bに示す。
S6003ではリソースサービス304は、アプリケーション管理フレームワーク302からフラグメントバンドル306nのインストール完了通知を受信したかを判定し、受信していればS6004へ進む。受信していなければS6005へ進む。
S6004ではリソースサービス304はフラグメントバンドルインストール時の処理を行う。詳細には、リソースサービス304はアプリケーション管理フレームワーク302にグループ設定バンドル305を開始するリクエストを行う。グループ設定バンドル305が開始されたら、リソースサービス304はグループ設定バンドル305にフラグメントバンドル306nのグループID431、リソース上限値432、所属アプリケーション433を要求する。グループ設定バンドル305はインストールされているフラグメントバンドル306nのフラグメントバンドルリソース上限ファイル422を参照する。そして、そこに宣言されているグループID431、リソース上限値432、所属アプリケーション433をリソースサービス304に渡す。リソースサービス304はその情報を取得すると記憶装置202に記憶する。記憶したグループID431がグループデータテーブル500に登録されていなければ、グループID431、リソース上限値432、所属アプリケーション433をグループデータテーブル500の該当する欄に登録し、有効化状態を「無効」としておく。そしてアプリケーション管理フレームワーク302にグループ設定バンドル305を停止するリクエストを行う。グループ設定バンドル305が再度停止状態になれば、フラグメントバンドルインストール時の処理は完了である。すなわち、フラグメントバンドル306nのインストールは、フラグメントバンドル306nに対応するグループのリソースの宣言値をリソースサービス304に対して引き渡すための手段として機能する。フラグメントバンドルインストール時の処理が完了したら処理はS6005へ進む。
S6005では、リソースサービス304はフラグメントバンドルのアンインストール完了通知を受信したかを判定し、受信していればS6006へ進む。受信していなければS6007へ進む。なお、フラグメントバンドル306nのグループ情報434に記載されているアプリケーション11nがインストールされている場合、管理者はそのフラグメントバンドル306nをアンインストールできない。このような場合にはアンインストール完了通知を受信することはない。
S6006ではフラグメントバンドルのアンインストール時の処理を行う。リソースサービス304はグループデータテーブル500から、アンインストールしたフラグメントバンドル306nのグループ情報434を取り除く。あるいは、有効化状態をアンインストール済に設定する。グループ情報434を取り除いたらフラグメントバンドルのアンインストール時の処理は完了である。フラグメントバンドルアンインストール時の処理が完了したら処理はS6007へ進む。
S6007ではリソースサービス304がアプリケーション11nのインストール完了通知を受信したかを判定し、受信していればS6008へ進む。受信していなければS6009へ進む。S6008では、リソースサービス304はアプリケーションインストール時の処理を行う。S6008の処理の詳細は図6Cに示す。インストール時の処理が完了したらS6009へ進む。
S6009ではリソースサービス304がアプリケーション11nのアンインストール完了通知を受信したかを判定し、受信していればS6010へ進む。受信していなければS6011へ進む。S6010では、リソースサービス304はアプリケーションのアンインストール時の処理を行う。S6010の処理の詳細は図6Dに示す。アンインストール時の処理が完了したらS6011へ進む。
S6011で、リソースサービス304がアプリケーション管理フレームワーク302によって停止されるかを判定し、停止されるのであればS6012へ進む。停止されないのであれば、S6003へ進む。S6012へ到達したらリソースサービス304の開始から停止までの処理は完了する。
<リソースサービスの処理まとめ>
以上より、管理者がリソースサービス開始のリクエストを行うと、アプリケーション管理フレームワーク302はリソースサービス304を開始し、リソースサービス304が図6Aのフローチャートの処理を実行する。そして、管理者がフラグメントバンドル306nのインストールのリクエストを行うと、アプリケーション管理フレームワーク302はフラグメントバンドル306nをインストールする。インストールが完了すると、アプリケーション管理フレームワーク302はリソースサービス304に対してインストール完了通知を発行する。S6003でリソースサービス304がインストール完了通知を受信したと判定すると、S6004へ進む。
管理者がフラグメントバンドル306nのアンインストールのリクエストを行うと、アプリケーション管理フレームワーク302はフラグメントバンドル306nをアンインストールする。アンインストールが完了すると、アプリケーション管理フレームワーク302はリソースサービス304に対してアンインストール完了通知を発行する。S6005で、リソースサービス304がアンインストール完了通知を受信したと判定すると、S6006へ進む。管理者がアプリケーション11nのインストールのリクエストを行うと、アプリケーション管理フレームワーク302はアプリケーション11nをインストールする。インストールが完了すると、アプリケーション管理フレームワーク302はリソースサービス304に対してインストール完了通知を発行する。S6007でリソースサービス304はインストール完了通知を受信したと判定すると、S6008へ進む。管理者がアプリケーション11nのアンインストールのリクエストを行うと、アプリケーション管理フレームワーク302はアプリケーション11nをアンインストールする。アンインストールが完了すると、アプリケーション管理フレームワーク302はリソースサービス304に対してインストール完了通知を発行する。S6009でリソースサービス304がアンインストール完了通知を受信したと判定すると、S6011へ進む。管理者がリソースサービス停止のリクエストを行うと、S6011でアプリケーション管理フレームワークがリソースサービスを停止して、図6Aのフローチャートの処理が完了する。停止しなければS6003からリソースサービスの処理を繰り返す。
図6Bは、S6002でリソースサービス304がグループ情報434を更新する処理の流れを模式的に表したフローチャートである。処理はS6101から開始する。
S6102でリソースサービス304はグループデータテーブル500のグループ情報434を更新する。図9A、図9B、図9Cを参照して説明したように、フラグメントバンドル306nのインストールにより、インストールしたフラグメントバンドル306nのグループ情報434はグループデータテーブル500に記憶される。ここではその処理を行う。そのためにリソースサービス304はグループ設定バンドル305の開始のリクエストをアプリケーション管理フレームワーク302に行う。アプリケーション管理フレームワーク302はグループ設定バンドル305を開始する。グループ設定バンドル305が開始されると、リソースサービス304はグループ設定バンドル305からグループ情報434を取得する。リソースサービス304はグループデータテーブル500の内容を、取得したグループ情報434を基に更新する。更新するとは、たとえば取得したグループ情報343の各項目を、グループデータテーブル500の対応する項目へと複製することで行う。これにより新たにインストールされたフラグメントバンドルがあっても、そのグループ情報がグループデータテーブル500に反映される。更新が完了したらS6103へ進む。
S6103でリソースサービス304は、更新したグループデータテーブル500に記載された管理対象アプリケーションID505に該当するアプリケーション11nがインストールされているか判定する。管理対象アプリケーションID505に該当するアプリケーションとはグループに属するアプリケーションである。この判定は例えば、インストール済みのアプリケーションについてそのIDを登録したテーブル等を参照するか、あるいはアプリケーション管理フレームワーク302に問い合わせることで行う。インストールされていればS6104へ進み、インストールされていなければS6112へ進む。S6104で、リソースサービス304は、該当するアプリケーション11nが属しているグループの有効化状態506を「有効」にする。S6105で、リソースサービス304は有効化状態506が有効になっているグループのリソース上限値507を合計し、その合計値とリソース定義バンドル元データ308のリソース上限値412が等しいかを判定する。等しくなければS6106へ進み、等しければS6112へ進む。S6106で、リソースサービス304はリソース定義バンドル元データ308のリソース上限値412を、有効化状態506が有効になっているグループのリソース上限値507の合計に記載し直す。リソース上限値412の変更後S6107へ進む。
S6107でリソースサービス304はリソース定義バンドル307がインストールされているかを判定する。インストールされていればS6108へ進み、インストールされていなければS6109へ進む。S6108で、リソースサービス304はリソース定義バンドル307をアンインストールするリクエストをアプリケーション管理フレームワーク302に行う。そして、アプリケーション管理フレームワークはリソース定義バンドルをアンインストールする。アンインストールが完了したら、S6109へ進む。
S6109で、リソースサービス304はリソース定義バンドル元データ308をインストールするリクエストをアプリケーション管理フレームワーク302に行う。アプリケーション管理フレームワーク302はリソース定義バンドル元データ308のリソース上限値412を参照して、その上限値が現在のアプリケーション実行環境内のリソースの空き容量の中に納まるかどうかを判定する。そして、もしも納まらなければインストールを失敗させる。納まっていれば、アプリケーション管理フレームワーク302はリソース定義バンドル元データ308を使って、リソース定義バンドル307をインストールする。リソースサービス304がインストールのリクエストを行った後、S6110へ進む。
S6110で、リソースサービス304はS6109でインストールリクエストしたリソース定義バンドル307がインストールされているかを判定する。インストールされていればS6112へ進み、インストールがされていなければS6111へ進む。S6111で、リソースサービス304は「有効になっているグループのリソース上限値が現在のアプリケーション実行環境内のリソースの空き容量の中に納まっていない」旨の警告を出す。この警告はユーザーインターフェース部201にメッセージとして出力されてもよい。警告を出したらS6112へ進む。S6112へ到達したら、リソースサービス304がグループ情報434を更新する処理は完了する。
以上より、管理者がリソースサービス開始のリクエストを行うと、アプリケーション管理フレームワーク302はリソースサービスを開始し、リソースサービス304が図6Bのフローチャートの処理を実行する。リソースサービス304はまずグループデータテーブル500の更新を行い、S6105で有効になっているグループのリソース上限値507の合計とリソース定義バンドル元データ308のリソース上限値412に不整合がないか判定する。不整合な個所が確認されたらS6106へ進む。そして、リソース上限値412に不整合がないリソース定義バンドル元データ308をアプリケーション管理フレームワーク302がインストールして図6Bのフローチャートの処理が完了する。
<アプリケーションがインストールされた場合の処理>
図6Cはアプリケーション11nのインストール完了通知を受信した後、S6008でリソースサービス304が行うアプリケーションインストール時の処理の流れを模式的に表したフローチャートである。なおアプリケーションのインストール時には、そのアプリケーションリソース上限宣言ファイル402に記述されたリソース上限値412が当該アプリケーションのために確保される。このリソース上限値412は、グループに属するアプリケーションについては、すべてのリソースについて0とした上で(あるいは予め0と宣言された上で)インストールされ、グループに属さないアプリケーションについては、宣言された値でインストールされる。
処理はS6201から開始する。S6202で、リソースサービス304は、インストールされたアプリケーション11nのアプリケーションリソース上限宣言ファイル402にグループID411が記載されているかを判定する。グループID412が記載されていればS6203へ進み、記載されていなければS6217へ進む。S6217で図6Cの処理は終了する。S6203で、リソースサービス304は、S6202で記載されていたと判定されたグループID412が、グループデータテーブル500のグループID502に記憶されているかを判定する。記憶されていればS6204へ進み、記憶されていなければS6211へ進む。S6204で、リソースサービス304は、S6202で記載されていたと判定されたグループID502に対応する有効化状態506が無効に設定されているかを判定する。無効になっていればS6205へ進み、有効になっていればS6217へ進んで処理を終了する。
S6205で、リソースサービス304は、リソース定義バンドル元データ308に含まれたリソース上限値412に、S6202で記載されていたと判定されたグループID502に対応するリソース上限値507を加算し、記載し直す。すなわち、グループ単位のリソースの宣言値を、リソース定義バンドルのリソースの宣言値として付け替える。そのグループが既に有効であれば改めてグループのリソースが確保されることはないので、グループのリソース宣言値の付け替えは、同じグループが重複しないように行われるものということもできる。「重複しないように」とは、すなわち、グループに属する1つのアプリケーションが先にインストールされており、その後、同グループに属する別のアプリケーションがインストールされた場合でも、当該グループが有効であればリソース宣言値を加算しないことということができる。リソース上限値412に記載した後、S6206へ進む。
S6206で、リソースサービス304はリソース定義バンドル307がインストールされているかを判定する。インストールされていればS6207へ進み、インストールされていなければS6208へ進む。S6207で、リソースサービス304はリソース定義バンドル307をアンインストールするリクエストをアプリケーション管理フレームワーク302に行う。そして、アプリケーション管理フレームワーク302はインストールされているリソース定義バンドル307をアンインストールする。アンインストールが終わるとS6208へ進む。S6208で、リソースサービス304は、リソース定義バンドル元データ308をインストールする(すなわちリソース定義バンドルをインストールする)リクエストをアプリケーション管理フレームワーク302に行う。
アプリケーション管理フレームワーク302はリソース定義バンドル元データ308のリソース上限値412を参照して、その上限値が現在のアプリケーション実行環境内のリソースの空き容量の中に納まるかどうかを判定する。そして、納まらなければインストールを失敗させる。納まっていれば、アプリケーション管理フレームワーク302はリソース定義バンドル元データ308を使って、リソース定義バンドル307をインストールする。リソース上限値にグループのリソース上限値を加算したリソース定義バンドルをインストールすることで、グループのリソース上限値507もアプリケーション管理フレームワーク302の管理に反映することが可能である。
リソースサービス304がリソース定義バンドル307のインストールのリクエストを行った後、処理はS6209へ進む。S6209で、リソースサービス304はS6208でインストールをリクエストしたリソース定義バンドル307がインストールされているかを判定する。インストールされていればS6210へ進み、インストールがされていなければS6214へ進む。S6210で、リソースサービス304はS6202で記載されていたと判定したグループID411の有効化状態506を「有効」に設定する。「有効」に設定した後、S6217へ進む。
インストールされたアプリケーションがグループに属するものであるにも関わらずそのグループがグループデータテーブル500に登録されていない場合には、S6211で、リソースサービス304は「グループ情報が記載されたフラグメントバンドルがインストトールされていない」旨の警告を出す。警告を出した後、S6212へ進む。S6212で、リソースサービス304は、S6007で受信が判定されたインストール完了通知に対応したアプリケーション11nがまだインストールされているかを判定する。インストールされていればS6213へ進み、インストールされていなければS6217へ進む。S6213で、リソースサービス304は、S6212でインストールされていると判定されたアプリケーション11nをアンインストールするリクエストをアプリケーション管理フレームワーク302に行う。アプリケーション管理フレームワーク302はS6213で指示されたアプリケーション11nをアンインストールする。リソースサービス304がアンインストールのリクエストを行うと、S6217へ進む。
リソース定義バンドルがインストールされなかった場合には、S6214で、リソースサービス304は「インストールしたアプリケーションが属するグループのリソース上限値が現在のアプリケーション実行環境内のリソースの空き容量の中に納まっていない」旨の警告を出す。警告を出した後、S6215へ進む。S6215で、リソースサービス304は、リソース定義バンドル元データ308のリソース上限値から、S6205で加算したリソース上限値507を減算し、記載し直す。記載が終わるとS6216へ進む。S6216で、リソースサービス304はリソース定義バンドル元データ308をインストールするリクエストをアプリケーション管理フレームワーク302に行う。アプリケーション管理フレームワーク302は、リソース定義バンドル元データ308を使って、リソース定義バンドル307をインストールする。リソース定義バンドル元データ308をグループのリソース上限値の加算前の値に戻してインストールし直すことで、確保されたリソースも上限値の加算前の値となり変更されない。リソースサービス304がリクエストを行った後、S6212へ進む。
S6212以降では、S6007で受信が判定されたインストール完了通知に対応したアプリケーション11nがまだインストールされているならば、それをアンインストールする。以上でS6008でリソースサービス304が行うアプリケーションインストール時の処理は完了する。
<図6Cまとめ>
この図6Cの処理の結果、インストール通知を受信したリソースサービス304は、インストールされたアプリケーションがグループに属するアプリケーションであり、当該グループのリソースを新たに確保する必要がある場合には、そのグループに対して定義されたリソースの上限値は、リソース定義バンドル307のリソースとして確保される。当該グループのフラグメントバンドルがインストールされていない場合、または、リソース定義バンドル307のリソース上限値(すなわちインストール済みのフラグメントバンドルに対応するグループのリソース上限値の合計値)の確保ができずにリソース定義バンドル307のインストールに失敗した場合には、当該アプリケーションはアンインストールされる。
<アプリケーションがアンインストールされた場合の処理>
図6Dはアプリケーション11nのアンインストール完了通知を受信した後、S6010でリソースサービス304が行うアプリケーションアンインストール時の処理の流れを模式的に表したフローチャートである。処理はS6301から開始する。
S6302で、リソースサービス304はアンインストールされたアプリケーション11nのアプリケーションID410がグループデータテーブル500の管理対象アプリケーションID505に記憶されているか判定する。テーブルに記憶されていればS6303へ進み、記憶されていなければS6310へ進む。S6303で、リソースサービス304はアンインストールされたアプリケーション11nと同じグループに属するアプリケーション11nがインストールされているか否かを判定する。インストールされていなければS6304へ進み、1つでもインストールされていればS6310へ進む。
S6304で、リソースサービス304は、アンインストールされたアプリケーションの管理対象アプリケーションID505の属するグループID502に対応するリソース上限値507を、リソース定義バンドル元データ308に含まれたリソース上限値412から減算し、リソース定義バンドル元データ308を記載し直す。その後、S6305へ進む。
S6305で、リソースサービス304はリソース定義バンドル307をアンインストールするリクエストをアプリケーション管理フレームワーク302に行う。そして、アプリケーション管理フレームワーク302はインストールされているリソース定義バンドル307をアンインストールする。アンインストールが終わるとS6306へ進む。
S6306で、リソースサービス304は、リソース定義バンドル元データ308をインストールする(すなわちリソース定義バンドルをインストールする)リクエストをアプリケーション管理フレームワーク302に行う。アプリケーション管理フレームワーク302はリソース定義バンドル元データ308を使って、リソース定義バンドル307をインストールする。リソース上限値にグループのリソース上限値を減算したリソース定義バンドルをインストールすることで、所属するアプリケーションがインストールされていないグループのリソースを解放することが可能である。リソースサービス304がリソース定義バンドル307のインストールのリクエストを行った後、処理はS6307へ進む。
S6307で、リソースサービス304はアンインストールされたアプリケーション11nが属するグループの有効化状態506を無効に設定する。設定した後、S6308へ進む。S6308で、リソースサービス304はグループデータテーブル500の全グループの有効化状態が無効になっているかを判定する。全て無効になっていればS6309へ進み、全て無効になっていなければS6310へ進む。S6309で、リソースサービス304はリソース定義バンドル307をアンインストールするリクエストをアプリケーション管理フレームワーク302に行う。そして、アプリケーション管理フレームワーク302はリソース定義バンドル307をアンインストールする。リソースサービス304がリクエストを行うと、S6310へ進む。S6310で図6Dの処理は終了となる。
<図6Dまとめ>
以上より、管理者がアプリケーション11nのアンインストールをリクエストすると、アプリケーション管理フレームワーク302はアプリケーション11nをアンインストールし、リソースサービス304にアンインストール完了通知を送信する。リソースサービス304はアンインストール完了通知を受信すると、アンインストールされたアプリケーション11nがグループとして管理されており、かつ、そのグループに属する他のアプリケーションがインストールされていなければ、リソース定義バンドル元データ308のリソース上限値412から、アンインストールしたアプリケーション11nが属するグループのリソース上限値507を減算してリソース定義バンドル307をインストールし直す。そして、そのグループの有効化状態506を無効に設定する。他のグループも全て有効化状態506が無効になっていれば、リソースのグループ管理の必要がなくなるため、リソース定義バンドルをアンインストールする。
以上、本発明の第一の実施形態では、グループに属するアプリケーション11nがインストールされたとき、そのグループのリソース上限値をリソース定義バンドル307のリソース上限値412に加算してリソース定義バンドル307をインストールし直すことにより、当該グループのリソース上限値の宣言が可能であり、上限値に相当するリソースを確保できる。グループに属するアプリケーション11nがアンインスールリクエストされたときも同様に、そのグループのリソース上限値はリソース定義バンドル307のリソース上限値412から減算してインストールし直すことにより宣言が可能であり、管理対象から外れたグループのリソース上限値に相当するリソースを解放できる。これにより、管理者がインストールするグループに属するアプリに対応して柔軟にリソース上限値を変更することができる。
たとえばグループに属するアプリケーション306nはリソースサービス304に対してリソース要求をする。それに対してリソースサービス304は、リソース定義バンドル307のインストール時に確保したリソースの中から、当該アプリケーション306nに対してリソースオブジェクトを返し、リソースを割り当てる。
本実施形態によれば、管理対象グループのためのリソースは、リソース定義バンドルのインストールにより確保される。リソース定義バンドルを、その目的専用のバンドルとすれば、グループのリソースを、リソースサービスを含めた他のアプリケーションの消費するリソースとは独立に管理することができる。
またリソースサービスが停止しても、インストール済みのグループ管理対象のアプリケーションは、リソース定義バンドルが稼働している間は、グループ単位でのリソース管理の対象であり続ける。
なお本実施形態ではフラグメントバンドルリソース上限宣言ファイル422にグループ情報434を記載し、フラグメントバンドルをインストールすることによりその情報を読み込んでいた。しかし、グループ情報434が記載されたファイルをPCのブラウザなどで設定し、送信することでグループ情報434の読み込みを行っても良い。
[第二の実施形態]
次に本発明の第二の実施形態について図を用いて解説を加える。第一の実施形態では、使用しないリソース上限値を反映させないために、フラグメントバンドル306nのインストール時ではなく、アプリケーション11nのインストール時に、リソース上限値412の変更を行う必要があった。そのため、リソース定義バンドル元データ308のインストールに失敗した際には、インストールしたアプリケーション11nをアンインストールする必要があった。しかしながら、リソースサービス304のユーザーインターフェース以下、リソースサービスUIから、グループ情報の設定とグループに属するアプリケーションのインストールを一連の流れで行うことで、そのようなアンインストールを不要とすることができる。本実施形態では、グループ情報の設定とグループに属するアプリケーションのインストールを行うリソース管理装置を示す。
本発明の第二の実施形態の装置の構成を示す図は図1に掲げるものと同様である。また本実施形態における画像形成装置100のハードウェア構成は図2に示したものと同様である。本実施形態におけるアプリケーション11nを実行するためのアプリケーション実行環境の構成は図3に示したものと同様である。本実施形態におけるアプリケーション11nを構成するファイルの内容、およびフラグメントバンドル306nを構成するファイルの内容は図4A、図4Bに示したものと同様である。
図7は情報処理装置101に表示されるリソースサービスUIの画面の一例を示したものである。ユーザはこのユーザーインターフェースを走査してアプリケーションをインストールすることができる。図7において、グループ情報ファイル701は設定するグループ情報が記載されたファイル名である。グループ情報ファイルにはグループID431、リソース上限値432、所属アプリケーションID433が記載されている。項目702はグループ情報ファイル701を指定するグループ情報ファイル指定項目である。アプリケーション元データ7031、7032は、グループ情報ファイルに記載されたグループに属するアプリケーションをインストールするためのアプリケーション元データ名である。項目7041、7042は、グループ情報ファイルに記載された所属アプリケーションID433のアプリケーション元データ703nを指定するためのアプリケーション元データ指定項目である。アプリケーション元データはたとえばそのアプリケーションのアプリケーションリソース上限宣言ファイルの内容を含む。項目追加ボタン705は、アプリケーション11nを3つ以上インストールする際に、アプリケーション元データ指定項目704nを追加するためのボタンである。インストール実行ボタン706は、指定したグループ情報ファイル701の記載に基づきアプリケーション11nをインストールするためのボタンである。
管理者が各指定項目702、704nを入力して、インストール実行ボタンを押すと、リソースサービス304はまず、グループ情報ファイルの記載を参照する。必要なグループ情報434が記載されていることを確認したら、グループ情報ファイルに記載されたリソース上限値432をリソース定義バンドル元データ308のリソース上限値412に加算する。そして、リソース定義バンドル307をインストールするリクエストをアプリケーション管理フレームワーク302に行う。リソース定義バンドル307がインストールされた場合は、アプリケーション元データ指定項目704nで指定されたアプリケーション11nをインストールするリクエストをアプリケーション管理フレームワーク302に行う。リソース定義バンドルのインストールに失敗した場合、アプリケーション元データ指定項目704nで指定されたアプリケーション11nのインストールを失敗させる。失敗させるとはたとえば、指定されたアプリケーションをインストールせず、失敗したことをユーザーインターフェースなどを介してユーザに通知することなどである。
<アプリケーションのインストール処理>
図8は管理者がインストール実行ボタンを押した後、リソースサービス304が行う処理の流れを模式的に表したフローチャートである。処理はS8001から開始する。S8002で、リソースサービス304はグループ情報ファイル指定項目702に指定されたグループ情報ファイルを参照し、S8003へ進む。S8003で、リソースサービス304はグループ情報ファイル701にグループ情報434が全て記載されているか判定する。記載されていればS6205へ進み、記載されていなければS8009へ進む。S8009で、リソースサービス304は「グループ情報フェイルが正しく記載されていない」旨の警告を出す。警告を出した後、S8012へ進む。S6205〜S6209と、S6214〜S6216は図6Cに該当する処理と同じ処理なため説明は省略する。S6209で、リソース定義バンドルがインストールされていればS8004へ進み、インストールされていなければS6214へ進む。
S8004で、リソースサービス304はS8002で読み込んだグループ情報ファイルに含まれたグループ情報434をグループデータテーブル500に記憶し、このグループの有効化状態を有効に設定する。設定をするとS8005へ進む。S8005でリソースサービス304はアプリケーション元データ指定項目704nにまだインストール処理を行っていないアプリケーション11nが指定されているか判定する。指定されていればS8006へ進んでインストール処理を行い、指定されていなければS8012へ進む。S8006で、リソースサービス304は指定されているアプリケーション元データ703nがグループ情報ファイル701に記載されているアプリケーションかを判定する。記載されていればS8007へ進み、記載されていなければS8010へ進む。S8007で、リソースサービス304は指定されたアプリケーション元データ703nをインストールするリクエストをアプリケーション管理フレームワーク302に行う。このとき、アプリケーション元データ703nに記述されたリソース上限値412は、グループに属するアプリケーションについては、すべてのリソースの上限値が0である。
アプリケーション管理フレームワーク302はアプリケーション元データ703nを使って、アプリケーション11nをインストールする。リソースサービス304がリクエストを行うとS8008へ進む。S8008で、リソースサービス304はS8007でインストールリクエストしたアプリケーション11nがインストールされているかを判定する。インストールされていればS8005へ進み、インストールされていなければS8010へ進む。
S8010で、リソースサービス304は「アプリケーション元データ指定項目で指定されたアプリケーションのインストールに失敗した」警告を出す。警告を出した後、S8005へ進む。
S6216でリソース定義バンドルをインストールするリクエストを行うと、S8011へ進む。S8011で、リソースサービス304はアプリケーション元データ指定項目704nで指定されたアプリケーション元データ703nのインストールを中止し、S8012へ進む。S8012に到達すると、図8のフローチャートの処理が完了する。なおS8011の段階では、アプリケーションのインストールのリクエストはまだおこなわれていない。そのため、S8011では何もしないか、あるいはS8010と同様に指定されたアプリケーションがインストールできなかった旨の警告をユーザーインターフェースなどから出力する。
以上より、管理者がインストール実行ボタンを押した後、リソースサービス304はまず入力されたグループ情報ファイル701を読み込む。ファイルの記載内容に不備や不足があった場合は警告を出し、なかった場合はリソース定義バンドル元データ308のリソース上限値412を変更し、インストールする。そしてリソース定義バンドル307がインストールできなければ、アプリケーション元データ703nのインストールを中止する。リソース定義バンドル307がインストールできれば、アプリケーション元データ指定項目704nに指定されたアプリケーション元データ703nをインストールする。指定されたアプリケーション元データ703nが全てインストールできれば、インストール実行ボタンを押した後のリソースサービス304が行う処理は完了する。
以上、本発明の第一の実施例では、アプリケーション11nをインストールする前にリソース上限値412を変更したリソース定義バンドル元データ308をインストールすることが可能である。これにより、リソース定義バンドルのインストールに失敗した場合は、アプリケーションのインストールを中止することができる。
なお、本実施形態ではリソースサービスはリソースサービスUIを情報処装置101に表示していたが、ユーザーインターフェース部201に表示しても良い。また、グループ情報ファイルはグループごとに予め所定の記憶領域に用意しておき、ユーザがインストールするアプリケーション元データを選択すると、リソースサービス304が、そこに記述されたグループIDを基にして、用意されたグループ情報ファイルから該当するグループ情報ファイルを選択するよう構成してもよい。さらに、ユーザが選択するのはインストールしようとするアプリケーションの名称やIDであり、その名称やIDに該当するアプリケーション元データを検索し、さらにその元データに含まれたグループIDに相当するグループ情報ファイルを検索するように構成してもよい。もちろんインストール時には検索されたファイルを使用する。また該当するグループ情報ファイルが見つからない場合には、それはグループに属していないので、そのインストールにはリソースサービス304は関知せずアプリケーション管理フレームワーク302により行われればよい。
また、図8の手順でアプリケーションのインストールを実行した場合でも、リソースサービス304は図6Aの処理を実行できる。図8でアプリケーションがインストールされていれば、図6CのS6204で「NO」と判定されるため、リソース定義バンドル307がひとつのアプリケーションのために重ねてインストールされることはない。
また、図7のユーザーインターフェースは、第1の実施形態に適用することもできる。第1の実施形態では、図7のようにグループとアプリケーションとを1画面で指示させてもよいし、何れかのみを指示させてそのインストール指示を受け付けてもよい。
[その他の実施例]
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路例えば、ASICによっても実現可能である。
100 画像形成装置、101 情報処理装置、130 ネットワーク、302 アプリケーション管理フレームワーク、304 リソースサービス、305 グループ設定バンドル、306 フラグメントバンドル、307 リソース定義バンドル、308 リソース定義バンドル元データ、402 アプリケーションリソース上限宣言ファイル、412 リソース上限値

Claims (13)

  1. グループ単位でアプリケーションのリソースを管理するためのリソース管理装置であって、
    アプリケーションのインストールにより前記アプリケーションの宣言値に応じたリソースを前記アプリケーションのために確保するシステムに対して、グループに属するアプリケーションがインストールされた際には、リソース定義アプリケーションのリソースの宣言値に対し、インストールされた前記アプリケーションが属する前記グループのリソースの宣言値を加算する付け替え手段と、
    前記付け替え手段による加算処理後、前記リソース定義アプリケーションを前記システムにインストールするインストール手段と、
    を有するリソース管理装置。
  2. 前記グループに属するアプリケーションが宣言するリソースの宣言値は0であることを特徴とする請求項1に記載のリソース管理装置。
  3. 前記システムに対してグループに属する全てのアプリケーションがアンインストールされた際には、前記付け替え手段は、前記グループのリソースの宣言値を、前記リソース定義アプリケーションのリソースの宣言値から差し引き、
    前記インストール手段は、前記リソース定義アプリケーションを再度インストールすることを特徴とする請求項1又は2に記載のリソース管理装置。
  4. グループと、該グループに属するアプリケーションと、前記グループのリソースの宣言値とを対応付けたグループ情報を保持するテーブルを更に有し、
    アプリケーションがインストールされると、前記付け替え手段は、前記アプリケーションに対応したグループのリソースの宣言値を前記テーブルから取得して前記リソース定義アプリケーションのリソースの宣言値に付け替え、前記インストール手段は前記リソース定義アプリケーションをインストールすることを特徴とする請求項1乃至3のいずれか一項に記載のリソース管理装置。
  5. 新たなアプリケーションのグループと、該グループに属するアプリケーションと、前記グループのリソースの宣言値とを含むグループ情報を前記テーブルに追加する追加手段を更に有することを特徴とする請求項4に記載のリソース管理装置。
  6. 前記追加手段は、前記グループ情報を保持するフラグメントアプリケーションが前記システムへインストールされると、前記フラグメントアプリケーションから前記グループ情報を取得して前記テーブルに追加することを特徴とする請求項5に記載のリソース管理装置。
  7. 前記インストール手段は、前記リソース定義アプリケーションが既にインストール済みの場合には、前記リソース定義アプリケーションをアンインストールした後に改めてインストールすることを特徴とする請求項1乃至6のいずれか一項に記載のリソース管理装置。
  8. 前記付け替え手段は、前記グループに属するアプリケーションが前記システムにインストールされた後で、前記グループのリソースの宣言値をリソース定義アプリケーションのリソースの宣言値に重複しないように付け替えて前記インストール手段により前記リソース定義アプリケーションのインストールを行い、
    前記リソース定義アプリケーションのインストールに失敗した場合には失敗した旨を出力し、前記アプリケーションをアンインストールすることを特徴とする請求項1乃至7のいずれか一項に記載のリソース管理装置。
  9. 前記付け替え手段は、前記グループに属するアプリケーションのインストールが指示されると、前記アプリケーションのインストールの前に、前記アプリケーションの属するグループのリソースの宣言値をリソース定義アプリケーションのリソースの宣言値に重複しないように付け替え、前記インストール手段は前記リソース定義アプリケーションのインストールを行い、
    前記リソース定義アプリケーションのインストールに失敗した場合には、前記アプリケーションのインストールを中止することを特徴とする請求項1乃至7のいずれか一項に記載のリソース管理装置。
  10. ユーザーインターフェースを提供するユーザーインターフェース手段を更に有し、
    前記ユーザーインターフェース手段により、前記グループと、該グループに属するアプリケーションとの少なくともいずれかのインストールが指示されることを特徴とする請求項1乃至9のいずれか一項に記載のリソース管理装置。
  11. 前記グループに属するアプリケーションからのリソースの要求に応じて、前記リソース定義アプリケーションのために確保されたリソースの中から、前記アプリケーションにリソースを割り当てる手段をさらに有することを特徴とする請求項1乃至10のいずれか一項に記載のリソース管理装置。
  12. 請求項1乃至11のいずれか一項に記載のリソース管理装置としてコンピュータを機能させるためのプログラム。
  13. グループ単位でアプリケーションのリソースを管理するためのリソース管理方法であって、
    アプリケーションのインストールにより前記アプリケーションの宣言値に応じたリソースを前記アプリケーションのために確保するシステムに対して、グループに属するアプリケーションがインストールされた際には、リソース定義アプリケーションのリソースの宣言値に対し、インストールされた前記アプリケーションが属する前記グループのリソースの宣言値を加算する付け替え工程と、
    前記付け替え工程による加算処理後、前記リソース定義アプリケーションを前記システムにインストールするインストール工程と
    を有するリソース管理方法。
JP2015022346A 2015-02-06 2015-02-06 リソース管理装置およびリソース管理方法 Pending JP2016146045A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015022346A JP2016146045A (ja) 2015-02-06 2015-02-06 リソース管理装置およびリソース管理方法
US15/006,302 US9753775B2 (en) 2015-02-06 2016-01-26 Resource management apparatus and resource management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015022346A JP2016146045A (ja) 2015-02-06 2015-02-06 リソース管理装置およびリソース管理方法

Publications (1)

Publication Number Publication Date
JP2016146045A true JP2016146045A (ja) 2016-08-12

Family

ID=56565427

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015022346A Pending JP2016146045A (ja) 2015-02-06 2015-02-06 リソース管理装置およびリソース管理方法

Country Status (2)

Country Link
US (1) US9753775B2 (ja)
JP (1) JP2016146045A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101747032B1 (ko) * 2016-04-21 2017-06-14 한국과학기술원 소프트웨어 정의 네트워킹 환경에서의 모듈형 제어 장치 및 그 동작 방법
CN108196965B (zh) * 2017-12-28 2020-07-28 维沃移动通信有限公司 一种数据处理方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5013999B2 (ja) 2007-07-10 2012-08-29 株式会社リコー 画像形成装置、プログラム制御方法、及び制御プログラム
WO2010050335A1 (ja) * 2008-10-27 2010-05-06 株式会社 日立製作所 リソース管理方法と組込み装置
JP6061633B2 (ja) * 2012-11-14 2017-01-18 キヤノン株式会社 デバイス装置、制御方法、およびそのプログラム。

Also Published As

Publication number Publication date
US20160232033A1 (en) 2016-08-11
US9753775B2 (en) 2017-09-05

Similar Documents

Publication Publication Date Title
JP7090657B2 (ja) アプリケーションをアップグレードするための方法、装置、デバイスならびに記憶媒体
EP3317762B1 (en) Methods and apparatus for software lifecycle management of a virtual computing environment
US7703091B1 (en) Methods and apparatus for installing agents in a managed network
JP5423401B2 (ja) 情報処理装置、情報処理システム、設定プログラム送信方法及びサーバ設定プログラム
US9513938B2 (en) Virtual appliance integration with cloud management software
US9116874B2 (en) Virtual machine test system, virtual machine test method
JP7069672B2 (ja) アプリケーションの更新方法およびプログラム
JP3688571B2 (ja) 情報処理装置
KR102524540B1 (ko) 멀티 클라우드 서비스 플랫폼 장치 및 방법
JP2014170515A (ja) 機器、情報記録プログラム、及び情報記録方法
GB2518894A (en) A method and a system for operating programs on a computer cluster
Chatley et al. MagicBeans: a platform for deploying plugin components
JP2016146045A (ja) リソース管理装置およびリソース管理方法
US9727381B2 (en) Image forming apparatus and resource management method
US10552148B2 (en) Building dynamic documentation based on installed services
US10545704B2 (en) Image forming apparatus and control method to update an application in an image forming apparatus
CN113220279A (zh) 一种代码索引管理方法、装置、设备及介质
JP2019164531A (ja) 情報処理システム、情報処理方法および情報処理プログラム
US9628335B2 (en) Building and transporting centrally modified software systems
US9311124B2 (en) Integrated deployment of centrally modified software systems
JP4870790B2 (ja) クラスタリングシステム
US10509647B1 (en) Building dynamic documentation based on installed services
JP2008191786A (ja) プログラム管理装置、プログラム管理方法及びプログラム
US10489123B1 (en) Selectively enabling requests to backend executable application programs from a user interface in a multi-tier computer architecture
US20210325785A1 (en) Development environment deployment for multiple developer types