JP2006244451A - リソース管理システムおよびリソース管理プログラム、並びにリソース管理方法 - Google Patents

リソース管理システムおよびリソース管理プログラム、並びにリソース管理方法 Download PDF

Info

Publication number
JP2006244451A
JP2006244451A JP2005244162A JP2005244162A JP2006244451A JP 2006244451 A JP2006244451 A JP 2006244451A JP 2005244162 A JP2005244162 A JP 2005244162A JP 2005244162 A JP2005244162 A JP 2005244162A JP 2006244451 A JP2006244451 A JP 2006244451A
Authority
JP
Japan
Prior art keywords
resource
upper limit
limit value
amount
function module
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.)
Withdrawn
Application number
JP2005244162A
Other languages
English (en)
Inventor
Shinya Taniguchi
真也 谷口
Akito Fukao
明人 深尾
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2005244162A priority Critical patent/JP2006244451A/ja
Priority to EP05257334A priority patent/EP1686455A3/en
Priority to US11/297,748 priority patent/US20060173871A1/en
Priority to KR1020050120756A priority patent/KR100750770B1/ko
Priority to TW094143559A priority patent/TW200634550A/zh
Publication of JP2006244451A publication Critical patent/JP2006244451A/ja
Withdrawn 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3457Performance evaluation by simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1218Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1229Printer resources management or printer maintenance, e.g. device status, power levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1284Local printer device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Abstract

【課題】 ソフトウェアの開発を容易にするとともに安定性の高いソフトウェアを開発するのに好適なリソース管理システムを提供する。
【解決手段】 ホスト端末100は、個別機能モジュール130がホスト端末100で使用するリソースの量を測定し、測定したリソースの量を、ネットワークプリンタで使用するリソースの量に換算し、個別機能モジュール130から上限値を取得し、換算したリソースの量および取得した上限値に基づいて、個別機能モジュール130が使用するリソースの量が上限に達したことを示すログ情報を生成する。また、各個別機能モジュール130ごとに、換算したリソースの量および取得した上限値に基づいて、その個別機能モジュール130が使用するメモリ量、並びに共通機能モジュール120がその個別機能モジュール130の実行に使用するメモリ量および起動するクラス数を制限する。
【選択図】 図2

Description

本発明は、リソースを管理するシステムおよびプログラム、並びに方法に係り、特に、ソフトウェアがその実行環境で使用するリソースの量をその実行環境への導入前に検証することにより、ソフトウェアの開発を容易にするとともに安定性の高いソフトウェアを開発するのに好適なリソース管理システムおよびリソース管理プログラム、並びにリソース管理方法に関する。
プリンタ等の組込機器には、組込用アプリケーションと呼ばれるソフトウェアを組み込んでその動作を制御している。しかしながら、組込用アプリケーションを作成するには、一般に専用の開発環境と専用のハードウェアを必要とするため、誰もが簡単に作成できるものではなかった。この問題を解決するために、特許文献1記載の情報処理装置が提案されている。
特許文献1記載の発明は、画像形成装置上で実行されるアプリケーションをPC上で実行できるエミュレータを有して構成されている。これにより、組込機器を用いなくても組込用アプリケーションを開発することができる。
また、プログラミング技術が未熟な人が作成する組込用アプリケーションは、予期せぬ動作を引き起こし、組込機器自体の動作が続行できなくなるという問題がある。この問題を解決するために、特許文献2記載のリソース管理システムが提案されている。
特許文献2記載の発明は、ソフトウェアが情報機器で実行するときに利用するリソースに対して動作可能な範囲を設定する制限設定部と、制限設定部で設定した動作可能な範囲内で動作していることを検証する動作範囲検証部とを有して構成されている。動作範囲検証部は、ソフトウェアからリソース利用要求があったときに、設定してある動作可能な範囲と要求されたリソースの量とを比較し、動作可能な範囲外のときにはそのソフトウェアの実行を中止させる。
特開2004−185595号公報 特開2004−94782号公報
特許文献1記載の発明では、組込用アプリケーションをPC上で仮想的に実行することができるため、組込用アプリケーションの動作をPC上である程度検証することができる。
しかしながら、組込用アプリケーションをPC上で実行した場合と、実際にその組込用アプリエーションを組込機器上で実行した場合とでは、その組込用アプリエーションがそれぞれの実行環境で使用するリソース(例えば、メモリ)の量が完全には一致しない。これは、組込用アプリケーションを実行する環境が異なることに起因する。例えば、組込用アプリケーションを実行するために、ライブラリを使用するが、このライブラリは、ハードウェア構成の違いからPC用と組込機器用とでそれぞれプログラム構造が異なる。そのため、同じ関数を使用する場合でも、PC上と組込機器上では、機能は同じであるがプログラム構造が異なるライブラリがリンクされてオブジェクトが生成される。それらオブジェクトは、プログラム構造が異なるので、当然に使用するリソースの量も完全には一致しない。したがって、PC上では適切に動作した組込用アプリケーションでも、実際に組込機器に組み込んだときに、使用するリソースの量が大きすぎるため、複数の組込用アプリケーションが組込機器上で起動した場合に、他の組込用アプリケーションと競合して動作が不安定となる可能性があった。特に、プリンタ等の組込機器は、PCと異なり使用可能なリソースの量が極端に少ないため、個々の組込用アプリケーションが使用するリソースの量を詳細に管理することは安定動作を実現する上で極めて重要である。
一方、特許文献2記載の発明にあっては、あくまで組込用アプリケーションを組込機器上で実行した場合に動作が不安定になるのを防止するものであり、組込用アプリケーションが使用するリソースの量を組込機器への導入前に検証することはできない。
このような問題は、組込用アプリケーションを組込機器上で実行する場合に限らず、特定の実行環境で実行させるソフトウェアを他の実行環境で開発するあらゆる場合についても同様に想定される。
そこで、本発明は、このような従来の技術の有する未解決の課題に着目してなされたものであって、ソフトウェアがその実行環境で使用するリソースの量をその実行環境への導入前に検証することにより、ソフトウェアの開発を容易にするとともに安定性の高いソフトウェアを開発するのに好適なリソース管理システムおよびリソース管理プログラム、並びにリソース管理方法を提供することを目的としている。
〔形態1〕 上記目的を達成するために、形態1のリソース管理システムは、
機能モジュールが使用するリソースを管理するリソース管理システムであって、
前記機能モジュールが第1実行環境で使用するリソースの量を測定するリソース測定手段と、第2実行環境でのリソースの上限値を取得するリソース上限値取得手段と、前記リソース上限値取得手段で取得したリソースの上限値を、前記第1実行環境でのリソースの上限値に換算するリソース換算手段と、前記リソース測定手段で測定したリソースの量および前記リソース換算手段で換算したリソースの上限値に基づいてリソースの制限に関する通知を行うリソース制限通知手段とを備えることを特徴とする。
このような構成であれば、リソース測定手段により、機能モジュールが第1実行環境で使用するリソースの量が測定される。また、リソース上限値取得手段により、第2実行環境でのリソースの上限値が取得され、リソース換算手段により、取得されたリソースの上限値が、第1実行環境でのリソースの上限値に換算される。そして、リソース制限通知手段により、測定されたリソースの量および換算されたリソースの上限値に基づいてリソースの制限に関する通知が行われる。
これにより、機能モジュールが第2実行環境で使用するリソースの量が、リソースの上限値に達するかを第2実行環境への導入前に検証することができる。したがって、従来に比して、ソフトウェアの開発を容易に行うことができるとともに安定性の高いソフトウェアを開発することができるという効果が得られる。
ここで、リソースとは、機能モジュールが使用可能な資源をいい、ハードウェア資源に限らず、ソフトウェア資源その他の資源が含まれる。以下、形態2および4のリソース管理システム、形態13、14および16のリソース管理プログラム、並びに形態25ないし28、30および31のリソース管理方法において同じである。
また、リソースの量としては、例えば、機能モジュールが使用するメモリ量、または起動可能な機能モジュールの数が含まれる。また、例えば、機能モジュールを利用するアプリケーションが確保するリソースの量(メモリ量、機能モジュール数)が含まれる。以下、形態2および4のリソース管理システム、形態13、14および16のリソース管理プログラム、並びに形態25ないし28、30および31のリソース管理方法において同じである。
また、リソースの換算方法としては、例えば、次の方法が考えられる。第1の方法(一定割合換算方法)は、測定したリソース量に対して一定の割合のリソース量を増加または減少して換算後のリソース量を求める。第2の方法(一定量換算方法)は、測定したリソース量に関わらず、そのリソース量から一定量を増加または減少して換算後のリソース量を求める。第3の方法(定数換算方法)は、測定したリソース量に関わらず、そのリソース量を定数に置き換えて換算後のリソース量を求める。第4の方法(混合型換算方法)は、第1〜第3の方法のなかからリソースの種類または測定したリソース量に基づいて選択し、選択した方法により換算後のリソース量を求める。換算方法の選択は、例えば、次のように閾値A、Bを設定して行うことができる。リソース量<Aのときは、定数換算方法を選択し、A<リソース量<Bのときは、一定量換算方法を選択し、B<リソース量のときは、一定割合換算方法を選択する。ただし、A<Bである。以下、形態2および4のリソース管理システム、形態13、14および16のリソース管理プログラム、並びに形態25ないし28、30および31のリソース管理方法において同じである。
また、リソースを測定することとしては、例えば、アプリケーションがリソースを確保する動作を捕捉し、新たに確保しようとしているリソース量を取得する動作が含まれる。以下、形態2および4のリソース管理システム、形態13、14および16のリソース管理プログラム、並びに形態25ないし28、30および31のリソース管理方法において同じである。
また、リソースの制限に関する通知としては、例えば、機能モジュールが使用するリソースの量が制限条件若しくは上限値に達したことを示す通知、機能モジュールが使用するリソースの量が制限されたことを示す通知、または機能モジュールが使用するリソースの量を制限すべきことを注意若しくは推奨する通知が含まれる。また、例えば、機能モジュールが使用するリソースの量が上限に達したことを示すメッセージを表示すること、機能モジュールが使用するリソースの量が上限に達したことを示すログ情報を生成することが含まれる。以下、形態2および4のリソース管理システム、形態13、14および16のリソース管理プログラム、並びに形態25ないし28、30および31のリソース管理方法において同じである。
また、リソースの制限条件としては、例えば、第2実行環境でのリソースの上限値を設定することができる。以下、形態2および4のリソース管理システム、形態13、14および16のリソース管理プログラム、並びに形態25ないし28、30および31のリソース管理方法において同じである。
また、リソース上限値取得手段は、リソースの上限値を取得するようになっていればどのような構成であってもよく、例えば、入力装置等からリソースの上限値を入力するようになっていてもよいし、外部の装置等からリソースの上限値を獲得または受信するようになっていてもよいし、記憶装置や記憶媒体等からリソースの上限値を読み出すようになっていてもよいし、機能モジュールその他のデータからリソースの上限値を抽出するようになっていてもよい。したがって、取得には、少なくとも入力、獲得、受信、読出および抽出が含まれる。以下、形態2および4のリソース管理システムにおいて同じである。
また、本システムは、単一の装置、端末その他の機器として実現するようにしてもよいし、複数の装置、端末その他の機器を通信可能に接続したネットワークシステムとして実現するようにしてもよい。後者の場合、各構成要素は、それぞれ通信可能に接続されていれば、複数の機器等のうちいずれに属していてもよい。以下、形態2および4のリソース管理システムにおいて同じである。
〔形態2〕 さらに、形態2のリソース管理システムは、
第1機能モジュールと、その実行に前記第1機能モジュールを必要とする複数の第2機能モジュールとがが使用するリソースを管理するリソース管理システムであって、
前記第2機能モジュールが第1実行環境で使用するリソースの量を測定するリソース測定手段と、第2実行環境でのリソースの上限値を取得するリソース上限値取得手段と、前記リソース上限値取得手段で取得したリソースの上限値を、前記第1実行環境でのリソースの上限値に換算するリソース換算手段と、前記リソース測定手段で測定したリソースの量および前記リソース換算手段で換算したリソースの上限値に基づいてリソースの制限に関する通知を行うリソース制限通知手段とを備えることを特徴とする。
このような構成であれば、リソース測定手段により、第2機能モジュールが第1実行環境で使用するリソースの量が測定される。また、リソース上限値取得手段により、第2実行環境でのリソースの上限値が取得され、リソース換算手段により、取得されたリソースの上限値が、第1実行環境でのリソースの上限値に換算される。そして、リソース制限通知手段により、測定されたリソースの量および換算されたリソースの上限値に基づいてリソースの制限に関する通知が行われる。
これにより、第2機能モジュールが第2実行環境で使用するリソースの量が、リソースの上限値に達するかを第2実行環境への導入前に検証することができる。したがって、従来に比して、ソフトウェアの開発を容易に行うことができるとともに安定性の高いソフトウェアを開発することができるという効果が得られる。
〔形態3〕 さらに、形態3のリソース管理システムは、形態2のリソース管理システムにおいて、
前記リソース測定手段は、前記第2機能モジュールが前記第1実行環境で使用するリソースの量、および前記第1機能モジュールが前記第1実行環境で当該第2機能モジュールの実行に使用するリソースの量を測定するようになっていることを特徴とする。
このような構成であれば、リソース測定手段により、第2機能モジュールが第1実行環境で使用するリソースの量、および第1機能モジュールが第1実行環境でその第2機能モジュールの実行に使用するリソースの量が測定される。
これにより、第1機能モジュールが第2実行環境で使用するリソースの量が、リソースの上限値に達するかを第2機能モジュール単位で検証することができるという効果が得られる。
〔形態4〕 さらに、形態4のリソース管理システムは、
第1機能モジュールと、その実行に前記第1機能モジュールを必要とする複数の第2機能モジュールとが使用するリソースを管理するリソース管理システムであって、
前記第1機能モジュールが前記第1実行環境で前記第2機能モジュールの実行に使用するリソースの量を測定するリソース測定手段と、第2実行環境でのリソースの上限値を取得するリソース上限値取得手段と、前記リソース上限値取得手段で取得したリソースの上限値を、前記第1実行環境でのリソースの上限値に換算するリソース換算手段と、前記リソース測定手段で測定したリソースの量および前記リソース換算手段で換算したリソースの上限値に基づいてリソースの制限に関する通知を行うリソース制限通知手段とを備えることを特徴とする。
このような構成であれば、リソース測定手段により、第1機能モジュールが第1実行環境で第2機能モジュールの実行に使用するリソースの量が測定される。また、リソース上限値取得手段により、第2実行環境でのリソースの上限値が取得され、リソース換算手段により、取得されたリソースの上限値が、第1実行環境でのリソースの上限値に換算される。そして、リソース制限通知手段により、測定されたリソースの量および換算されたリソースの上限値に基づいてリソースの制限に関する通知が行われる。
これにより、第1機能モジュールが第2実行環境で第2機能モジュールの実行に使用するリソースの量が、リソースの上限値に達するかを第2実行環境への導入前に検証することができる。したがって、従来に比して、ソフトウェアの開発を容易に行うことができるとともに安定性の高いソフトウェアを開発することができるという効果が得られる。
〔形態5〕 さらに、形態5のリソース管理システムは、形態2ないし4のいずれか1のリソース管理システムにおいて、
前記リソース測定手段で測定したリソースの量および前記リソース換算手段で換算したリソースの上限値に基づいて前記機能モジュールによるリソースの確保を禁止するリソース制限手段を備えることを特徴とする。
このような構成であれば、リソース制限手段により、測定されたリソースの量および換算されたリソースの上限値に基づいて機能モジュールによるリソースの確保が禁止される。
これにより、機能モジュールが上限を超えてリソースの量を使用するのを制限することができるという効果が得られる。
〔形態6〕 さらに、形態6のリソース管理システムは、形態1ないし5のいずれか1のリソース管理システムにおいて、
前記リソース換算手段は、前記第1実行環境で所定条件で使用されるリソースの量および前記第2実行環境で前記所定条件で使用されるリソースの量に基づき決定される換算率を登録したリソース換算テーブルに基づいて換算を行うようになっていることを特徴とする。
このような構成であれば、リソース換算手段により、リソース換算テーブルに基づいて換算が行われる。
これにより、第1実行環境および第2実行環境の間でリソースの量または上限値を比較的正確に換算することができるという効果が得られる。
ここで、所定条件としては、例えば、第1実行環境、第2実行環境どちらでも実行可能なテストプログラムを同一の環境下(リソースという意味でなく、他のプログラムとの同時実行等)で実行することが含まれる。以下、形態18のリソース管理プログラム、および形態33のリソース管理方法において同じである。
また、リソースの量に基づき決定される換算率とは、例えば、テストプログラムを実行した結果得られる2つの実行環境間でのリソース消費を比較して算出した比率をいう。すなわち、決定には算出が含まれる。以下、形態18のリソース管理プログラム、および形態33のリソース管理方法において同じである。
〔形態7〕 さらに、形態7のリソース管理システムは、形態6のリソース管理システムにおいて、
前記リソース換算テーブルは、リソースの種別ごとに前記換算率を登録したものであり、
前記リソース換算手段は、前記機能モジュールが使用するリソースの種別に応じて前記リソース換算テーブルから対応する前記換算率を取得し、取得した換算率に基づいて換算を行うようになっていることを特徴とする。
このような構成であれば、リソース換算手段により、機能モジュールが使用するリソースの種別に応じてリソース換算テーブルから対応する換算率が取得され、取得された換算率に基づいて換算が行われる。
これにより、機能モジュールが使用するリソースの種別に応じた換算を行うことができるので、第1実行環境および第2実行環境の間でリソースの量または上限値をさらに正確に換算することができるという効果が得られる。
ここで、リソースの種別としては、例えば、メモリ、ファイルシステム等のハードウェアの占有割合で定義できるリソースの場合には、そのハードウェアの種別が、スレッドやソケット等のOS(Operating System)に依存するソフトウェア的な概念の場合にはその概念の種別がそれぞれ含まれる。以下、形態19のリソース管理プログラム、および形態34のリソース管理方法において同じである。
また、リソース換算テーブルは、リソースの種別ごとに換算率を登録したものであればどのような構成であってもよいが、さらに具体的には、リソースの種別に基づいて換算方法を選択し、選択した換算方法によりリソースの種別ごとに換算率を算出し、算出した換算率を登録することもできる。換算方法としては、例えば、上記のように、一定割合換算方法、一定量換算方法、定数換算方法、混合型換算方法が考えられる。以下、形態19のリソース管理プログラム、および形態34のリソース管理方法において同じである。
〔形態8〕 さらに、形態8のリソース管理システムは、形態6および7のいずれか1のリソース管理システムにおいて、
前記リソース換算テーブルは、リソースの使用形態ごとに前記換算率を登録したものであり、
前記リソース換算手段は、前記機能モジュールが使用するリソースの形態に応じて前記リソース換算テーブルから対応する前記換算率を取得し、取得した換算率に基づいて換算を行うようになっていることを特徴とする。
このような構成であれば、リソース換算手段により、機能モジュールが使用するリソースの形態に応じてリソース換算テーブルから対応する換算率が取得され、取得された換算率に基づいて換算が行われる。
これにより、機能モジュールが使用するリソースの形態に応じた換算を行うことができるので、第1実行環境および第2実行環境の間でリソースの量または上限値をさらに正確に換算することができるという効果が得られる。
ここで、リソースの使用形態とは、同じ種別のリソースのなかで使用目的が異なるものをいう。具体的には、メモリの例でいえば、JAVA(登録商標)インタプリタで確保されるメモリやZipライブラリで確保されるメモリというふうに、使用形態が異なる場合があり、それぞれ換算率が異なっていますので、別々に取り扱う必要がある。以下、形態20のリソース管理プログラム、および形態35のリソース管理方法において同じである。
〔形態9〕 さらに、形態9のリソース管理システムは、形態6ないし8のいずれか1のリソース管理システムにおいて、
前記リソース換算テーブルは、複数のテストモジュールのそれぞれについて、前記第1実行環境および前記第2実行環境で当該テストモジュールが使用するリソースの量に基づいて前記換算率が決定され、前記各テストモジュールについて決定された前記換算率のうち最大値を登録したものであることを特徴とする。
これにより、リソース換算テーブルには、各テストモジュールについて決定された換算率のうち最大値が登録されているので、機能モジュールが使用するリソースの量を多めに見積もることができる。したがって、機能モジュールの動作を比較的確実に保証することができるという効果が得られる。
ここで、テストモジュールとは、第1実行環境および第2実行環境の両方で動作し、その実行によりリソースを消費するものをいう。以下、形態10のリソース管理システム、形態21および22のリソース管理プログラム、並びに形態36および37のリソース管理方法において同じである。
〔形態10〕 さらに、形態10のリソース管理システムは、形態6ないし8のいずれか1のリソース管理システムにおいて、
前記リソース換算テーブルは、複数のテストモジュールのそれぞれについて、前記第1実行環境および前記第2実行環境で当該テストモジュールが使用するリソースの量に基づいて前記換算率が決定され、前記各テストモジュールについて決定された前記換算率の平均値を登録したものであることを特徴とする。
これにより、リソース換算テーブルには、各テストモジュールについて決定された換算率のうち平均値が登録されているので、機能モジュールの動作をある程度の確実性をもって保証することができるとともに第2実行環境で使用されるリソースの量を抑制することができるという効果が得られる。
〔形態11〕 さらに、形態11のリソース管理システムは、形態1ないし10のいずれか1のリソース管理システムにおいて、
前記リソース制限通知手段は、前記機能モジュールが使用するリソースの量が上限に達したことを示すメッセージを表示するようになっていることを特徴とする。
このような構成であれば、リソース制限通知手段により、機能モジュールが使用するリソースの量が上限に達したことを示すメッセージが表示される。
これにより、メッセージを参照することにより機能モジュールが使用するリソースの量が上限に達したことを把握することができるという効果が得られる。
ここで、リソース制限通知手段は、メッセージを表示するようになっているが、他の形態としては、音声、画面のFlush、アイコンの表示、メール、電話、FAX等により通知を行うことが考えられる。以下、形態23のリソース管理プログラム、および形態38のリソース管理方法において同じである。
〔形態12〕 さらに、形態12のリソース管理システムは、形態1ないし10のいずれか1のリソース管理システムにおいて、
前記リソース制限通知手段は、前記機能モジュールが使用するリソースの量が上限に達したことを示すログ情報を生成するようになっていることを特徴とする。
このような構成であれば、リソース制限通知手段により、機能モジュールが使用するリソースの量が上限に達したことを示すログ情報が生成される。
これにより、ログ情報を参照することにより機能モジュールが使用するリソースの量が上限に達したことを把握することができるという効果が得られる。
〔形態13〕 一方、上記目的を達成するために、形態13のリソース管理プログラムは、
機能モジュールが使用するリソースを管理するリソース管理プログラムであって、
前記機能モジュールが第1実行環境で使用するリソースの量を測定するリソース測定ステップと、第2実行環境でのリソースの上限値を取得するリソース上限値取得ステップと、前記リソース上限値取得ステップで取得したリソースの上限値を、前記第1実行環境でのリソースの上限値に換算するリソース換算ステップと、前記リソース測定ステップで測定したリソースの量および前記リソース換算ステップで換算したリソースの上限値に基づいてリソースの制限に関する通知を行うリソース制限通知ステップとからなる処理をコンピュータに実行させるためのプログラムを含むことを特徴とする。
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、形態1のリソース管理システムと同等の作用および効果が得られる。
ここで、リソース上限値取得ステップは、リソースの上限値を取得すればどのような形態であってもよく、例えば、入力装置等からリソースの上限値を入力してもよいし、外部の装置等からリソースの上限値を獲得または受信してもよいし、記憶装置や記憶媒体等からリソースの上限値を読み出してもよいし、機能モジュールその他のデータからリソースの上限値を抽出してもよい。したがって、取得には、少なくとも入力、獲得、受信、読出および抽出が含まれる。以下、形態14および16のリソース管理プログラム、並びに形態25ないし28、30および31のリソース管理方法において同じである。
〔形態14〕 さらに、形態14のリソース管理プログラムは、
第1機能モジュールと、その実行に前記第1機能モジュールを必要とする複数の第2機能モジュールとが使用するリソースを管理するリソース管理プログラムであって、
前記第2機能モジュールが第1実行環境で使用するリソースの量を測定するリソース測定ステップと、第2実行環境でのリソースの上限値を取得するリソース上限値取得ステップと、前記リソース上限値取得ステップで取得したリソースの上限値を、前記第1実行環境でのリソースの上限値に換算するリソース換算ステップと、前記リソース測定ステップで測定したリソースの量および前記リソース換算ステップで換算したリソースの上限値に基づいてリソースの制限に関する通知を行うリソース制限通知ステップとからなる処理をコンピュータに実行させるためのプログラムを含むことを特徴とする。
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、形態2のリソース管理システムと同等の作用および効果が得られる。
〔形態15〕 さらに、形態15のリソース管理プログラムは、形態14のリソース管理プログラムにおいて、
前記リソース測定ステップは、前記第2機能モジュールが前記第1実行環境で使用するリソースの量、および前記第1機能モジュールが前記第1実行環境で当該第2機能モジュールの実行に使用するリソースの量を測定することを特徴とする。
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、形態3のリソース管理システムと同等の作用および効果が得られる。
〔形態16〕 さらに、形態16のリソース管理プログラムは、
第1機能モジュールと、その実行に前記第1機能モジュールを必要とする複数の第2機能モジュールとが使用するリソースを管理するリソース管理プログラムであって、
前記第1機能モジュールが前記第1実行環境で前記第2機能モジュールの実行に使用するリソースの量を測定するリソース測定ステップと、第2実行環境でのリソースの上限値を取得するリソース上限値取得ステップと、前記リソース上限値取得ステップで取得したリソースの上限値を、前記第1実行環境でのリソースの上限値に換算するリソース換算ステップと、前記リソース測定ステップで測定したリソースの量および前記リソース換算ステップで換算したリソースの上限値に基づいてリソースの制限に関する通知を行うリソース制限通知ステップとからなる処理をコンピュータに実行させるためのプログラムを含むことを特徴とする。
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、形態4のリソース管理システムと同等の作用および効果が得られる。
〔形態17〕 さらに、形態17のリソース管理プログラムは、形態14ないし16のいずれか1のリソース管理プログラムにおいて、
前記リソース測定ステップで測定したリソースの量および前記リソース換算ステップで換算したリソースの上限値に基づいて前記機能モジュールによるリソースの確保を禁止するリソース制限ステップからなる処理をコンピュータに実行させるためのプログラムを含むことを特徴とする。
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、形態5のリソース管理システムと同等の作用および効果が得られる。
〔形態18〕 さらに、形態18のリソース管理プログラムは、形態13ないし17のいずれか1のリソース管理プログラムにおいて、
前記リソース換算ステップは、前記第1実行環境で所定条件で使用されるリソースの量および前記第2実行環境で前記所定条件で使用されるリソースの量に基づき決定される換算率を登録したリソース換算テーブルに基づいて換算を行うことを特徴とする。
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、形態6のリソース管理システムと同等の作用および効果が得られる。
〔形態19〕 さらに、形態19のリソース管理プログラムは、形態18のリソース管理プログラムにおいて、
前記リソース換算テーブルは、リソースの種別ごとに前記換算率を登録したものであり、
前記リソース換算ステップは、前記機能モジュールが使用するリソースの種別に応じて前記リソース換算テーブルから対応する前記換算率を取得し、取得した換算率に基づいて換算を行うことを特徴とする。
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、形態7のリソース管理システムと同等の作用および効果が得られる。
〔形態20〕 さらに、形態20のリソース管理プログラムは、形態18および19のいずれか1のリソース管理プログラムにおいて、
前記リソース換算テーブルは、リソースの使用形態ごとに前記換算率を登録したものであり、
前記リソース換算ステップは、前記機能モジュールが使用するリソースの形態に応じて前記リソース換算テーブルから対応する前記換算率を取得し、取得した換算率に基づいて換算を行うことを特徴とする。
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、形態8のリソース管理システムと同等の作用および効果が得られる。
〔形態21〕 さらに、形態21のリソース管理プログラムは、形態18ないし20のいずれか1のリソース管理プログラムにおいて、
前記リソース換算テーブルは、複数のテストモジュールのそれぞれについて、前記第1実行環境および前記第2実行環境で当該テストモジュールが使用するリソースの量に基づいて前記換算率が決定され、前記各テストモジュールについて決定された前記換算率のうち最大値を登録したものであることを特徴とする。
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、形態9のリソース管理システムと同等の作用および効果が得られる。
〔形態22〕 さらに、形態22のリソース管理プログラムは、形態18ないし20のいずれか1のリソース管理プログラムにおいて、
前記リソース換算テーブルは、複数のテストモジュールのそれぞれについて、前記第1実行環境および前記第2実行環境で当該テストモジュールが使用するリソースの量に基づいて前記換算率が決定され、前記各テストモジュールについて決定された前記換算率の平均値を登録したものであることを特徴とする。
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、形態10のリソース管理システムと同等の作用および効果が得られる。
〔形態23〕 さらに、形態23のリソース管理プログラムは、形態13ないし22のいずれか1のリソース管理プログラムにおいて、
前記リソース制限通知ステップは、前記機能モジュールが使用するリソースの量が上限に達したことを示すメッセージを表示することを特徴とする。
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、形態11のリソース管理システムと同等の作用および効果が得られる。
〔形態24〕 さらに、形態24のリソース管理プログラムは、形態13ないし22のいずれか1のリソース管理プログラムにおいて、
前記リソース制限通知ステップは、前記機能モジュールが使用するリソースの量が上限に達したことを示すログ情報を生成することを特徴とする。
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、形態12のリソース管理システムと同等の作用および効果が得られる。
〔形態25〕 一方、上記目的を達成するために、形態25のリソース管理方法は、
機能モジュールが使用するリソースを管理するリソース管理方法であって、
前記機能モジュールが第1実行環境で使用するリソースの量を測定するリソース測定ステップと、第2実行環境でのリソースの上限値を取得するリソース上限値取得ステップと、前記リソース上限値取得ステップで取得したリソースの上限値を、前記第1実行環境でのリソースの上限値に換算するリソース換算ステップと、前記リソース測定ステップで測定したリソースの量および前記リソース換算ステップで換算したリソースの上限値に基づいてリソースの制限に関する通知を行うリソース制限通知ステップとを含むことを特徴とする。
これにより、形態1のリソース管理システムと同等の効果が得られる。
〔形態26〕 さらに、形態26のリソース管理方法は、
機能モジュールが使用するリソースを管理するリソース管理方法であって、
演算手段が、前記機能モジュールが第1実行環境で使用するリソースの量を測定するリソース測定ステップと、
前記演算手段が、第2実行環境でのリソースの上限値を取得するリソース上限値取得ステップと、
前記演算手段が、前記リソース上限値取得ステップで取得したリソースの上限値を、前記第1実行環境でのリソースの上限値に換算するリソース換算ステップと、
前記演算手段が、前記リソース測定ステップで測定したリソースの量および前記リソース換算ステップで換算したリソースの上限値に基づいてリソースの制限に関する通知を行うリソース制限通知ステップとを含むことを特徴とする。
これにより、形態1のリソース管理システムと同等の効果が得られる。
〔形態27〕 さらに、形態27のリソース管理方法は、
第1機能モジュールと、その実行に前記第1機能モジュールを必要とする複数の第2機能モジュールとが使用するリソースを管理するリソース管理方法であって、
前記第2機能モジュールが第1実行環境で使用するリソースの量を測定するリソース測定ステップと、第2実行環境でのリソースの上限値を取得するリソース上限値取得ステップと、前記リソース上限値取得ステップで取得したリソースの上限値を、前記第1実行環境でのリソースの上限値に換算するリソース換算ステップと、前記リソース測定ステップで測定したリソースの量および前記リソース換算ステップで換算したリソースの上限値に基づいてリソースの制限に関する通知を行うリソース制限通知ステップとを含むことを特徴とする。
これにより、形態2のリソース管理システムと同等の効果が得られる。
〔形態28〕 さらに、形態28のリソース管理方法は、
第1機能モジュールと、その実行に前記第1機能モジュールを必要とする複数の第2機能モジュールとが使用するリソースを管理するリソース管理方法であって、
演算手段が、前記第2機能モジュールが第1実行環境で使用するリソースの量を測定するリソース測定ステップと、
前記演算手段が、第2実行環境でのリソースの上限値を取得するリソース上限値取得ステップと、
前記演算手段が、前記リソース上限値取得ステップで取得したリソースの上限値を、前記第1実行環境でのリソースの上限値に換算するリソース換算ステップと、
前記演算手段が、前記リソース測定ステップで測定したリソースの量および前記リソース換算ステップで換算したリソースの上限値に基づいてリソースの制限に関する通知を行うリソース制限通知ステップとを含むことを特徴とする。
これにより、形態2のリソース管理システムと同等の効果が得られる。
〔形態29〕 さらに、形態29のリソース管理方法は、形態27および28のいずれか1のリソース管理方法において、
前記リソース測定ステップは、前記第2機能モジュールが前記第1実行環境で使用するリソースの量、および前記第1機能モジュールが前記第1実行環境で当該第2機能モジュールの実行に使用するリソースの量を測定することを特徴とする。
これにより、形態3のリソース管理システムと同等の効果が得られる。
〔形態30〕 さらに、形態30のリソース管理方法は、
第1機能モジュールと、その実行に前記第1機能モジュールを必要とする複数の第2機能モジュールとが使用するリソースを管理するリソース管理方法であって、
前記第1機能モジュールが前記第1実行環境で前記第2機能モジュールの実行に使用するリソースの量を測定するリソース測定ステップと、第2実行環境でのリソースの上限値を取得するリソース上限値取得ステップと、前記リソース上限値取得ステップで取得したリソースの上限値を、前記第1実行環境でのリソースの上限値に換算するリソース換算ステップと、前記リソース測定ステップで測定したリソースの量および前記リソース換算ステップで換算したリソースの上限値に基づいてリソースの制限に関する通知を行うリソース制限通知ステップとを含むことを特徴とする。
これにより、形態4のリソース管理システムと同等の効果が得られる。
〔形態31〕 さらに、形態31のリソース管理方法は、
第1機能モジュールと、その実行に前記第1機能モジュールを必要とする複数の第2機能モジュールとが使用するリソースを管理するリソース管理方法であって、
演算手段が、前記第1機能モジュールが前記第1実行環境で前記第2機能モジュールの実行に使用するリソースの量を測定するリソース測定ステップと、
前記演算手段が、第2実行環境でのリソースの上限値を取得するリソース上限値取得ステップと、
前記演算手段が、前記リソース上限値取得ステップで取得したリソースの上限値を、前記第1実行環境でのリソースの上限値に換算するリソース換算ステップと、
前記演算手段が、前記リソース測定ステップで測定したリソースの量および前記リソース換算ステップで換算したリソースの上限値に基づいてリソースの制限に関する通知を行うリソース制限通知ステップとを含むことを特徴とする。
これにより、形態4のリソース管理システムと同等の効果が得られる。
〔形態32〕 さらに、形態32のリソース管理方法は、形態27ないし31のいずれか1のリソース管理方法において、
前記リソース測定ステップで測定したリソースの量および前記リソース換算ステップで換算したリソースの上限値に基づいて前記機能モジュールによるリソースの確保を禁止するリソース制限ステップを含むことを特徴とする。
これにより、形態5のリソース管理システムと同等の効果が得られる。
〔形態33〕 さらに、形態33のリソース管理方法は、形態25ないし32のいずれか1のリソース管理方法において、
前記リソース換算ステップは、前記第1実行環境で所定条件で使用されるリソースの量および前記第2実行環境で前記所定条件で使用されるリソースの量に基づき決定される換算率を登録したリソース換算テーブルに基づいて換算を行うことを特徴とする。
これにより、形態6のリソース管理システムと同等の効果が得られる。
〔形態34〕 さらに、形態34のリソース管理方法は、形態33のリソース管理方法において、
前記リソース換算テーブルは、リソースの種別ごとに前記換算率を登録したものであり、
前記リソース換算ステップは、前記機能モジュールが使用するリソースの種別に応じて前記リソース換算テーブルから対応する前記換算率を取得し、取得した換算率に基づいて換算を行うことを特徴とする。
これにより、形態7のリソース管理システムと同等の効果が得られる。
〔形態35〕 さらに、形態35のリソース管理方法は、形態33および34のいずれか1のリソース管理方法において、
前記リソース換算テーブルは、リソースの使用形態ごとに前記換算率を登録したものであり、
前記リソース換算ステップは、前記機能モジュールが使用するリソースの形態に応じて前記リソース換算テーブルから対応する前記換算率を取得し、取得した換算率に基づいて換算を行うことを特徴とする。
これにより、形態8のリソース管理システムと同等の効果が得られる。
〔形態36〕 さらに、形態36のリソース管理方法は、形態33ないし35のいずれか1のリソース管理方法において、
前記リソース換算テーブルは、複数のテストモジュールのそれぞれについて、前記第1実行環境および前記第2実行環境で当該テストモジュールが使用するリソースの量に基づいて前記換算率が決定され、前記各テストモジュールについて決定された前記換算率のうち最大値を登録したものであることを特徴とする。
これにより、形態9のリソース管理システムと同等の効果が得られる。
〔形態37〕 さらに、形態37のリソース管理方法は、形態33ないし35のいずれか1のリソース管理方法において、
前記リソース換算テーブルは、複数のテストモジュールのそれぞれについて、前記第1実行環境および前記第2実行環境で当該テストモジュールが使用するリソースの量に基づいて前記換算率が決定され、前記各テストモジュールについて決定された前記換算率の平均値を登録したものであることを特徴とする。
これにより、形態10のリソース管理システムと同等の効果が得られる。
〔形態38〕 さらに、形態38のリソース管理方法は、形態25ないし37のいずれか1のリソース管理方法において、
前記リソース制限通知ステップは、前記機能モジュールが使用するリソースの量が上限に達したことを示すメッセージを表示することを特徴とする。
これにより、形態11のリソース管理システムと同等の効果が得られる。
〔形態39〕 さらに、形態39のリソース管理方法は、形態25ないし37のいずれか1のリソース管理方法において、
前記リソース制限通知ステップは、前記機能モジュールが使用するリソースの量が上限に達したことを示すログ情報を生成することを特徴とする。
これにより、形態12のリソース管理システムと同等の効果が得られる。
以下、本発明の第1の実施の形態を図面を参照しながら説明する。図1ないし図20は、本発明に係るリソース管理システムおよび、並びにの第1の実施の形態を示す図である。
本実施の形態は、本発明に係るリソース管理システムおよび、並びにを、図2に示すように、ホスト端末100上のJAVA(登録商標)アプリケーションの実行環境において、ネットワークプリンタの動作を制御するためのJAVA(登録商標)クラスセットをエミュレーションする場合について適用したものである。
まず、本発明を適用するホスト端末100の機能概要を説明する。
図1は、JAVA(登録商標)ソフトウェアの構成を示す図である。
JAVA(登録商標)アプリケーションの実行環境では、JAVA(登録商標)クラスセットの実行を制御するJAVA(登録商標)クラスおよびJVM(Java(登録商標) Virtual Machine)からなる共通機能モジュールをOS上で実行し、JAVA(登録商標)クラスセットである個別機能モジュールを共通機能モジュール上で実行する。ここで、JAVA(登録商標)ソフトウェアは、共通機能モジュールおよび個別機能モジュールから構成される。
共通機能モジュールは、図1に示すように、複数の個別機能モジュールを実行可能となっている。図1の例では、共通機能モジュールa上で2つの個別機能モジュールb,cが実行されている場合を示している。ここで、個別機能モジュールbが使用するリソースの量をx1、共通機能モジュールaが個別機能モジュールbの実行に使用するリソースの量をx2、個別機能モジュールbが使用可能なリソースの上限値をXmaxとした場合、本実施の形態では、x1+x2≦Xmaxとなるようにリソースの量を制限する。
図2は、ホスト端末100の機能概要を示す機能ブロック図である。
ホスト端末100は、図2に示すように、OS110と、共通機能モジュール120と、複数の個別機能モジュール130とを有して構成されている。
OS110は、JAVA(登録商標)ソフトウェアが使用するリソースの量を測定するリソース測定部10と、JAVA(登録商標)ソフトウェア全体が使用するリソースの量を制限するリソース制限部12とを有して構成されている。
リソース制限部12は、リソース測定部10で測定したリソースの量が、JAVA(登録商標)ソフトウェアに割り当てられた所定の上限値未満となるように、JAVA(登録商標)ソフトウェアが使用するリソースを制限する。
共通機能モジュール120は、個別機能モジュール130の実行を管理する個別機能モジュール管理部14と、個別機能モジュール管理部14および個別機能モジュール130が使用するリソースの量を測定するリソース測定部16と、ホスト端末100で所定条件で使用されるリソースの量およびネットワークプリンタで同所定条件で使用されるリソースの量に基づき決定される換算率を登録したリソース換算テーブル22と、リソースの量を換算するリソース換算部24とを有して構成されている。
リソース測定部16は、各個別機能モジュール130ごとに、その個別機能モジュール130が使用するリソースの量、および個別機能モジュール管理部14がその個別機能モジュール130の実行に使用するリソースの量を測定する。
リソース換算部24は、リソース換算テーブル22に基づいて、リソース測定部16で測定したリソースの量を、ネットワークプリンタで使用するリソースの量に換算する。
共通機能モジュール120は、さらに、個別機能モジュール130がネットワークプリンタでのリソースの上限値を取得する上限値取得部18と、個別機能モジュール管理部14および個別機能モジュール130が使用するリソースの量を制限するリソース制限部20と、ログ情報を生成するログ情報生成部26とを有して構成されている。
リソース制限部20は、リソース換算部24で換算したリソースの量が、上限値取得部18で取得した上限値未満となるように、個別機能モジュール130が使用するリソースの量、および個別機能モジュール管理部14がその個別機能モジュール130の実行に使用するリソースの量を制限する。
ログ情報生成部26は、リソース換算部24で換算したリソースの量が、上限値取得部18で取得した上限値以上であると判定したときは、個別機能モジュール130が使用するリソースの量が上限に達したことを示すログ情報を生成する。
次に、ホスト端末100の構成を詳細に説明する。
図3は、ホスト端末100のハードウェア構成を示すブロック図である。
ホスト端末100は、図3に示すように、制御プログラムに基づいて演算およびシステム全体を制御するCPU30と、所定領域にあらかじめCPU30の制御プログラム等を格納しているROM32と、ROM32等から読み出したデータやCPU30の演算過程で必要な演算結果を格納するためのRAM34と、外部装置に対してデータの入出力を媒介するI/F38とで構成されており、これらは、データを転送するための信号線であるバス39で相互にかつデータ授受可能に接続されている。
I/F38には、外部装置として、ヒューマンインターフェースとしてデータの入力が可能なキーボードやマウス等からなる入力装置40と、データやテーブル等をファイルとして格納する記憶装置42と、画像信号に基づいて画面を表示する表示装置44と、ネットワーク199に接続するための信号線とが接続されている。
次に、記憶装置42のデータ構造を詳細に説明する。
記憶装置42は、共通機能モジュール120および複数の個別機能モジュール130を記憶している。
個別機能モジュール130は、ネットワークプリンタでのリソースの上限値を格納したリソース制限情報を含んで構成されている。
図4は、リソース制限情報400のデータ構造を示す図である。
リソース制限情報400は、図4に示すように、個別機能モジュール130および共通機能モジュール120がその個別機能モジュール130の実行に使用可能なメモリ(RAM34)の上限値を格納したフィールド402と、個別機能モジュール130および共通機能モジュール120がその個別機能モジュール130の実行に起動可能なクラス数を格納したフィールド404とを含んで構成されている。
個別機能モジュール130は、さらに、個別機能モジュール130に関するモジュール情報を含んで構成されている。
図5は、モジュール情報420のデータ構造を示す図である。
モジュール情報420は、図5に示すように、個別機能モジュール130が使用するリソースの量を制限する対象(以下、リソース管理対象という。)とするか否かを格納したフィールド422と、個別機能モジュール130が実行可能なネットワークプリンタの機種を格納したフィールド424と、電子署名情報を格納したフィールド426とを含んで構成されている。
図5の例では、フィールド422には「有効」が格納されている。これは、個別機能モジュール130をリソース管理対象として管理することを示している。さらに、フィールド424には「TypeA」が、フィールド426には「X社」がそれぞれ格納されている。これは、個別機能モジュール130が実行可能な機種が「TypeA」であり、X社の電子署名を受けていることを示している。
記憶装置42は、さらに、共通機能モジュール120の実行環境を示す実行環境情報を登録した実行環境情報登録テーブルを記憶している。
図6は、実行環境情報登録テーブル440のデータ構造を示す図である。
実行環境情報登録テーブル440は、図6に示すように、個別機能モジュール130の起動可能な個数の上限値を登録したフィールド442と、実行すべき個別機能モジュール130の名称を登録したフィールド444と、削除すべき個別機能モジュール130の名称を登録したフィールド446と、エミュレーションするネットワークプリンタの機種を登録したフィールド448と、対応可能な電子署名情報を登録したフィールド450とを含んで構成されている。
図6の例では、フィールド442には「5」が、フィールド444には「個別機能モジュールb,d」が、フィールド446には「個別機能モジュールc」がそれぞれ登録されている。これは、個別機能モジュール130を最大5個まで起動することができ、共通機能モジュール120の起動時に、個別機能モジュールb,dを実行し、個別機能モジュールcを削除すべきことを示している。さらに、フィールド448には「TypeA」が、フィールド450には「X社」がそれぞれ登録されている。これは、エミュレーションするネットワークプリンタの機種が「TypeA」であり、X社の電子署名情報を含む個別機能モジュール130を実行できることを示している。
記憶装置42は、さらに、リソース換算テーブル22を記憶している。
図7は、リソース換算テーブル22のデータ構造を示す図である。
リソース換算テーブル22には、図7に示すように、リソースの種別または使用形態ごとに1つのレコードが登録されている。各レコードは、リソースの名称を登録するフィールド502と、換算率を登録するフィールド504とを含んで構成されている。
図7の例では、第1段目のレコードには、リソースの名称として「メモリ 使用形態A」が、換算率として「1」がそれぞれ登録されている。これは、個別機能モジュール130がメモリを使用形態Aで使用する場合は、個別機能モジュール130がホスト端末100で使用するメモリ量に換算率「1」を乗算することにより、ネットワークプリンタで使用するメモリ量への換算を行うことを示している。同様に、個別機能モジュール130がメモリを使用形態B,Cで使用する場合は、使用形態B,Cに対応する換算率を採用する。
メモリの使用形態A〜Cは、共通機能モジュール120および個別機能モジュール130が使用する関数やライブラリによって決定される。例えば、整数型の変数を扱うライブラリ等を使用する場合は使用形態Aとなり、ダブル型の変数を扱うライブラリ等を使用する場合は使用形態Bとなる。
また、第4段目のレコードには、リソースの名称として「クラス数」が、換算率として「1」がそれぞれ登録されている。これは、個別機能モジュール130がホスト端末100で起動するクラス数に換算率「1」を乗算することにより、ネットワークプリンタで起動するクラス数への換算を行うことを示している。
なお、リソース換算テーブル22には、複数のテストモジュールのそれぞれについて、ホスト端末100およびネットワークプリンタでそのテストモジュールが使用するリソースの量に基づいて換算率を決定し、各テストモジュールについて決定された換算率のうち最大値が登録されている。リソース換算テーブル22の生成については、後段の実施の形態で詳述する。
記憶装置42は、さらに、リソース管理対象となる各個別機能モジュール130ごとに、その個別機能モジュール130が使用するリソースの量を管理するリソース管理テーブルを記憶している。リソース管理テーブルは、個別機能モジュール130がリソース管理対象である場合にその起動に伴って生成される。
図8は、リソース管理テーブル460のデータ構造を示す図である。
リソース管理テーブル460には、図8に示すように、リソースの種別ごとに1つのレコードが登録されている。各レコードは、リソースの名称を登録するフィールド462と、個別機能モジュール130がネットワークプリンタでのリソースの上限値を登録するフィールド464と、個別機能モジュール130がホスト端末100で現在使用しているリソースの量を登録するフィールド466と、フィールド466の値を、ネットワークプリンタで使用するリソースの量に換算した値を登録するフィールド468とを含んで登録されている。
図8の例では、第1段目のレコードには、リソースの名称として「メモリ」が、上限値として「1000000」が、現在値としてメモリの使用形態A〜Cごとに「200000」、「100000」および「150000」が、換算値として「650000」がそれぞれ登録されている。これは、個別機能モジュール130がネットワークプリンタでのメモリ量の上限値が1000000[byte]であり、現在メモリを、使用形態Aで200000[byte]、使用形態Bで100000[byte]、使用形態Cで150000[byte]使用していることを示している。さらに、ネットワークプリンタで使用するメモリ量に換算した値(以下、換算メモリ量という。)が650000[byte]であることを示している。換算メモリ量は、図7のリソース換算テーブル22を参照し、200000×1+100000×1.5+150000×2=650000として算出することができる。
また、第2段目のレコードには、リソースの名称として「クラス数」が、上限値として「100」が、現在値として「20」が、換算値として「20」がそれぞれ登録されている。これは、個別機能モジュール130がネットワークプリンタで起動可能なクラス数の上限値が100個であり、現在クラスを20個起動していることを示している。さらに、ネットワークプリンタで起動するクラス数に換算した値(以下、換算クラス数という。)が20個であることを示している。換算クラス数は、図7のリソース換算テーブル22を参照し、20×1=20として算出することができる。
記憶装置42は、さらに、個別機能モジュール130が受信するイベントを処理するイベントリスナを登録するイベントリスナテーブル480を記憶している。
図9は、イベントリスナテーブル480のデータ構造を示す図である。
イベントリスナテーブル480には、図9に示すように、個別機能モジュール130が登録するイベントリスナごとにレコードが登録される。各レコードは、イベントリスナの名称を登録するフィールド482を含んで登録されている。
図3に戻り、CPU30は、マイクロプロセッシングユニット等からなり、ROM32の所定領域に格納されている所定のプログラムを起動させ、そのプログラムに従って、図10、図14、図15および図17のフローチャートに示す個別機能モジュール制御処理、クラス読込処理、イベントリスナ制御処理およびインスタンス削除処理を共通機能モジュール120の処理としてそれぞれ時分割で実行する。
初めに、個別機能モジュール制御処理を図10を参照しながら詳細に説明する。
図10は、個別機能モジュール制御処理を示すフローチャートである。
個別機能モジュール制御処理は、個別機能モジュール130の削除および実行を制御する処理であって、CPU30において実行されると、図10に示すように、まず、ステップS100に移行する。
ステップS100では、実行すべき個別機能モジュール130の名称および削除すべき個別機能モジュール130の名称を実行環境情報登録テーブル440から取得し、ステップS102に移行して、削除すべき個別機能モジュール130が存在するか否かを判定し、削除すべき個別機能モジュール130が存在すると判定したとき(Yes)は、ステップS104に移行する。
ステップS104では、取得した名称に基づいて該当の個別機能モジュール130を記憶装置42から削除し、ステップS106に移行して、該当の個別機能モジュール130に含まれるモジュール情報420に基づいて、該当の個別機能モジュール130がリソース管理対象であるか否かを判定し、該当の個別機能モジュール130がリソース管理対象であると判定したとき(Yes)は、ステップS108に移行する。
ステップS108では、該当の個別機能モジュール130に対応するリソース管理テーブル460を記憶装置42から削除し、ステップS110に移行して、現在起動中のモジュール数を示す変数の値から「1」を減算し、ステップS102に移行する。
一方、ステップS106で、該当の個別機能モジュール130がリソース管理対象でないと判定したとき(No)は、ステップS102に移行する。
一方、ステップS102で、削除すべき個別機能モジュール130が存在しないと判定したとき(No)は、ステップS112に移行して、実行すべき個別機能モジュール130が存在するか否かを判定し、実行すべき個別機能モジュール130が存在すると判定したとき(Yes)は、ステップS114に移行する。
ステップS114では、現在起動中のモジュール数を示す変数の値が所定の上限値未満であるか否かを判定し、所定の上限値未満であると判定したとき(Yes)は、ステップS116に移行する。
ステップS116では、取得した名称に基づいて該当の個別機能モジュール130を記憶装置42から読み込み、ステップS118に移行して、読み込んだ個別機能モジュール130の実行可否を判定する実行可否判定処理を実行し、ステップS120に移行する。
ステップS120では、実行可否判定処理から個別機能モジュール130の実行を許可することを示す戻り値が返却されたか否かを判定し、実行を許可することを示す戻り値が返却されたと判定したとき(Yes)は、ステップS122に移行する。
ステップS122では、該当の個別機能モジュール130に含まれるモジュール情報420に基づいて、該当の個別機能モジュール130がリソース管理対象であるか否かを判定し、該当の個別機能モジュール130がリソース管理対象であると判定したとき(Yes)は、ステップS124に移行する。
ステップS124では、該当の個別機能モジュール130に対応するリソース管理テーブル460を生成し、該当の個別機能モジュール130に含まれるリソース制限情報400から上限値を取得し、取得した上限値を、生成したリソース管理テーブル460に登録し、ステップS126に移行して、現在起動中のモジュール数を示す変数の値に「1」を加算し、ステップS128に移行する。
ステップS128では、生成したリソース管理テーブル460のアドレスをリソース確保先の参照ポインタに設定し、ステップS130に移行して、該当の個別機能モジュール130を起動するモジュール起動処理を実行し、ステップS132に移行して、リソース確保先の参照ポインタをクリアし、ステップS112に移行する。
一方、ステップS122で、該当の個別機能モジュール130がリソース管理対象でないと判定したとき(No)は、ステップS134に移行して、ステップS130と同様のモジュール起動処理を実行し、ステップS112に移行する。
一方、ステップS120で、実行可否判定処理から個別機能モジュール130の実行を許可しないことを示す戻り値が返却されたと判定したとき(No)は、ステップS112に移行する。
一方、ステップS114で、現在起動中のモジュール数を示す変数の値が所定の上限値以上であると判定したとき(No)は、ステップS136に移行して、モジュール数が上限に達したことを示すログ情報を生成し、一連の処理を終了して元の処理に復帰させる。
一方、ステップS112で、実行すべき個別機能モジュール130が存在しないと判定したとき(No)は、一連の処理を終了して元の処理に復帰させる。
次に、ステップS118の実行可否判定処理を図11を参照しながら詳細に説明する。
図11は、実行可否判定処理を示すフローチャートである。
実行可否判定処理は、ステップS118において実行されると、図11に示すように、まず、ステップS200に移行する。
ステップS200では、個別機能モジュール130に含まれるモジュール情報420から機種情報を取得し、ステップS202に移行して、取得した機種情報と実行環境情報登録テーブル440の機種情報が一致しているか否かを判定し、それら機種情報が一致していると判定したとき(Yes)は、ステップS204に移行する。
ステップS204では、個別機能モジュール130に含まれるモジュール情報420から電子署名情報を取得し、ステップS206に移行して、実行環境情報登録テーブル440に基づいて、取得した電子署名情報が対応可能なものであるか否かを判定し、対応可能な電子署名情報であると判定したとき(Yes)は、ステップS208に移行する。
ステップS208では、個別機能モジュール130に含まれるモジュール情報420に基づいて、個別機能モジュール130がリソース管理対象であるか否かを判定し、リソース管理対象であると判定したとき(Yes)は、ステップS209に移行する。
ステップS209では、実行環境情報登録テーブル440に対応するリソース換算テーブル22が存在するか否かを判定し、対応のリソース換算テーブル22が存在すると判定したとき(Yes)は、ステップS210に移行して、対応のリソース換算テーブル22を記憶装置42から読み込み、ステップS211に移行する。
ステップS211では、個別機能モジュール130に含まれるリソース制限情報400から上限値を取得し、ステップS212に移行して、上限値の取得に成功したか否かを判定し、上限値の取得に成功したと判定したとき(Yes)は、ステップS214に移行する。
ステップS214では、取得した上限値が全メモリ残量未満であるか否かを判定し、全メモリ残量未満であると判定したとき(Yes)は、ステップS216に移行して、個別機能モジュール130の実行を許可することを示す戻り値を返却し、一連の処理を終了して元の処理に復帰させる。
一方、ステップS214で、取得した上限値が全メモリ残量以上であると判定したとき(No)は、ステップS217に移行して、上限値が全メモリ残量以上であることを示すログ情報を生成し、ステップS218に移行して、個別機能モジュール130の実行を許可しないことを示す戻り値を返却し、一連の処理を終了して元の処理に復帰させる。
一方、ステップS212で、上限値の取得に失敗したと判定したとき(No)、ステップS206で、対応可能な電子署名情報でないと判定したとき(No)、およびステップS202で、機種情報が一致しないと判定したとき(No)はいずれも、ステップS218に移行する。
一方、ステップS209で、実行環境情報登録テーブル440に対応するリソース換算テーブル22が存在しないと判定したとき(No)は、ステップS211に移行する。
一方、ステップS208で、個別機能モジュール130がリソース管理対象でないと判定したとき(No)は、ステップS216に移行する。
次に、ステップS130,S134のモジュール起動処理を図12を参照しながら詳細に説明する。
図12は、モジュール起動処理を示すフローチャートである。
モジュール起動処理は、ステップS130,S134において実行されると、図12に示すように、まず、ステップS300に移行する。
ステップS300では、個別機能モジュール130からクラスを読み込むべきクラス読込命令を出力し、ステップS302に移行して、クラスの読込に成功したか否かを判定し、クラスの読込に成功したと判定したとき(Yes)は、ステップS304に移行する。
ステップS304では、リソース確保先の参照ポインタが設定されているか否かを判定し、リソース確保先の参照ポインタが設定されていると判定したとき(Yes)は、ステップS305に移行して、読み込んだクラスの実行に必要なメモリ量を算出し、ステップS306に移行する。
ステップS306では、読み込んだクラスが使用するライブラリ等からメモリの使用形態を特定し、特定したメモリの使用形態に対応する換算率を、読み込んだリソース換算テーブル22から取得し、算出したメモリ量に、取得した換算率を乗算することにより、ネットワークプリンタで使用するメモリ量への換算を行う。
次いで、ステップS307に移行して、リソース確保先の参照ポインタが指し示すリソース管理テーブル460(以下、参照リソース管理テーブル460という。)の使用メモリ量に換算メモリ量を加算し、ステップS308に移行して、加算した合計のメモリ量が、参照リソース管理テーブル460の上限値未満であるか否かを判定し、上限値未満であると判定したとき(Yes)は、ステップS310に移行する。
ステップS310では、読み込んだクラスのインスタンスをメモリ上に生成し、ステップS312に移行して、リソース確保先の参照ポインタの値を示すリソース確保先参照情報を、生成したインスタンスに保存し、ステップS313に移行して、換算メモリ量を、生成したインスタンスに保存し、ステップS314に移行する。
ステップS314では、インスタンスの生成に成功したか否かを判定し、インスタンスの生成に成功したと判定したとき(Yes)は、ステップS316に移行して、読み込んだクラスの機能を呼び出すクラス機能呼出処理を実行し、ステップS318に移行して、個別機能モジュール130のイベントリスナを登録するイベントリスナ登録処理を実行し、一連の処理を終了して元の処理に復帰させる。
一方、ステップS308で、合計のメモリ量が上限値以上であると判定したとき(No)は、ステップS320に移行して、参照リソース管理テーブル460の使用メモリ量から換算メモリ量を減算し、ステップS321に移行する。
ステップS321では、個別機能モジュール130が使用するメモリ量が上限に達したことを示すログ情報を生成し、ステップS322に移行して、エラーを通知し、ステップS314に移行する。
一方、ステップS304で、リソース確保先の参照ポインタが設定されていないと判定したとき(No)は、ステップS324に移行して、読み込んだクラスのインスタンスをメモリ上に生成し、ステップS314に移行する。
一方、ステップS314で、インスタンスの生成に失敗したと判定したとき(No)、およびステップS302で、クラスの読込に失敗したと判定したとき(No)はいずれも、ステップS318に移行する。
次に、ステップS318のイベントリスナ登録処理を図13を参照しながら詳細に説明する。
図13は、イベントリスナ登録処理を示すフローチャートである。
イベントリスナ登録処理は、ステップS318において実行されると、図13に示すように、まず、ステップS400に移行する。
ステップS400では、個別機能モジュール130からイベントリスナクラスを読み込むべきクラス読込命令を出力し、ステップS402に移行して、イベントリスナクラスの読込に成功したか否かを判定し、イベントリスナクラスの読込に成功したと判定したとき(Yes)は、ステップS404に移行する。
ステップS404では、リソース確保先の参照ポインタが設定されているか否かを判定し、リソース確保先の参照ポインタが設定されていると判定したとき(Yes)は、ステップS405に移行して、読み込んだイベントリスナクラスの実行に必要なメモリ量を算出し、ステップS406に移行する。
ステップS406では、読み込んだイベントリスナクラスが使用するライブラリ等からメモリの使用形態を特定し、特定したメモリの使用形態に対応する換算率を、読み込んだリソース換算テーブル22から取得し、算出したメモリ量に、取得した換算率を乗算することにより、ネットワークプリンタで使用するメモリ量への換算を行う。
次いで、ステップS407に移行して、参照リソース管理テーブル460の使用メモリ量に換算メモリ量を加算し、ステップS408に移行して、加算した合計のメモリ量が、参照リソース管理テーブル460の上限値未満であるか否かを判定し、上限値未満であると判定したとき(Yes)は、ステップS410に移行する。
ステップS410では、読み込んだイベントリスナクラスのインスタンスをメモリ上に生成し、ステップS412に移行して、リソース確保先の参照ポインタの値を示すリソース確保先参照情報を、生成したインスタンスに保存し、ステップS413に移行して、換算メモリ量を、生成したインスタンスに保存し、ステップS414に移行する。
ステップS414では、インスタンスの生成に成功したか否かを判定し、インスタンスの生成に成功したと判定したとき(Yes)は、ステップS416に移行して、生成したインスタンスのイベントリスナをイベントリスナ実行リストに登録し、一連の処理を終了して元の処理に復帰させる。
一方、ステップS408で、合計のメモリ量が上限値以上であると判定したとき(No)は、ステップS418に移行して、参照リソース管理テーブル460の使用メモリ量から換算メモリ量を減算し、ステップS419に移行する。
ステップS419では、個別機能モジュール130が使用するメモリ量が上限に達したことを示すログ情報を生成し、ステップS420に移行して、エラーを通知し、ステップS414に移行する。
一方、ステップS404で、リソース確保先の参照ポインタが設定されていないと判定したとき(No)は、ステップS422に移行して、読み込んだイベントリスナクラスのインスタンスをメモリ上に生成し、ステップS414に移行する。
一方、ステップS414で、インスタンスの生成に失敗したと判定したとき(No)、およびステップS402で、イベントリスナクラスの読込に失敗したと判定したとき(No)はいずれも、一連の処理を終了して元の処理に復帰させる。
次に、クラス読込処理を図14を参照しながら詳細に説明する。
図14は、クラス読込処理を示すフローチャートである。
クラス読込処理は、クラス読込命令に応じてクラスを読み込む処理であって、CPU30において実行されると、図14に示すように、まず、ステップS500に移行する。
ステップS500では、クラス読込命令を取得したか否かを判定し、クラス読込命令を取得したと判定したとき(Yes)は、ステップS502に移行するが、そうでないと判定したとき(No)は、クラス読込命令を取得するまでステップS500で待機する。
ステップS502では、クラス読込命令に係るクラスがキャッシュテーブルに登録されているか否かを判定し、キャッシュテーブルに登録されていないと判定したとき(No)は、ステップS504に移行する。
ステップS504では、クラス読込命令に係るクラスが属する個別機能モジュール130を特定し、ステップS506に移行して、特定した該当の個別機能モジュール130に含まれるモジュール情報420に基づいて、該当の個別機能モジュール130がリソース管理対象であるか否かを判定し、リソース管理対象であると判定したとき(Yes)は、ステップS508に移行する。
ステップS508では、該当の個別機能モジュール130に対応するリソース管理テーブル460のアドレスをリソース確保先の参照ポインタに設定し、ステップS509に移行する。
ステップS509では、クラス数に対応する換算率を、読み込んだリソース換算テーブル22から取得し、クラス読込命令に係るクラスの数「1」に、取得した換算率を乗算することにより、ネットワークプリンタで起動するクラス数への換算を行う。
次いで、ステップS510に移行して、参照リソース管理テーブル460の起動クラス数に換算クラス数を加算し、ステップS512に移行して、加算した合計のクラス数が、参照リソース管理テーブル460の上限値未満であるか否かを判定し、上限値未満であると判定したとき(Yes)は、ステップS514に移行する。
ステップS514では、クラス読込命令に係るクラスを個別機能モジュール130から読み込み、ステップS516に移行して、読み込んだクラスをキャッシュテーブルに登録し、ステップS517に移行する。
ステップS517では、換算クラス数を、読み込んだクラスに保存し、ステップS518に移行して、リソース確保先の参照ポインタをクリアし、一連の処理を終了して元の処理に復帰させる。
一方、ステップS512で、合計のクラス数が上限値以上であると判定したとき(No)は、ステップS520に移行して、参照リソース管理テーブル460の起動クラス数から換算クラス数を減算し、ステップS521に移行する。
ステップS521では、個別機能モジュール130が起動するクラス数が上限に達したことを示すログ情報を生成し、ステップS522に移行して、エラーを通知し、ステップS518に移行する。
一方、ステップS506で、該当の個別機能モジュール130がリソース管理対象でないと判定したとき(No)は、ステップS524に移行して、クラス読込命令に係るクラスを個別機能モジュール130から読み込み、ステップS526に移行して、読み込んだクラスをキャッシュテーブルに登録し、一連の処理を終了して元の処理に復帰させる。
一方、ステップS502で、クラス読込命令に係るクラスがキャッシュテーブルに登録されていると判定したとき(Yes)は、一連の処理を終了して元の処理に復帰させる。
次に、イベントリスナ制御処理を図15を参照しながら詳細に説明する。
図15は、イベントリスナ制御処理を示すフローチャートである。
イベントリスナ制御処理は、イベントリスナの実行を制御する処理であって、CPU30において実行されると、図15に示すように、まず、ステップS600に移行する。
ステップS600では、イベントリスナ実行リストを取得し、ステップS602に移行して、取得したイベントリスナ実行リストに基づいて、実行すべきイベントリスナが存在するか否かを判定し、実行すべきイベントリスナが存在すると判定したとき(Yes)は、ステップS604に移行する。
ステップS604では、該当のイベントリスナの生成元となった個別機能モジュール130を特定し、ステップS606に移行して、特定した該当の個別機能モジュール130に含まれるモジュール情報420に基づいて、該当の個別機能モジュール130がリソース管理対象であるか否かを判定し、リソース管理対象であると判定したとき(Yes)は、ステップS608に移行する。
ステップS608では、該当の個別機能モジュール130に対応するリソース管理テーブル460のアドレスをリソース確保先の参照ポインタに設定し、ステップS610に移行して、該当のイベントリスナを実行するイベントリスナ実行処理を実行し、ステップS612に移行して、リソース確保先の参照ポインタをクリアし、ステップS614に移行する。
ステップS614では、該当のイベントリスナをイベントリスナ実行リストから削除し、ステップS602に移行する。
一方、ステップS606で、該当の個別機能モジュール130がリソース管理対象でないと判定したとき(No)は、ステップS616に移行して、該当のイベントリスナを実行し、ステップS614に移行する。
一方、ステップS602で、実行すべきイベントリスナが存在しないと判定したとき(No)は、一連の処理を終了して元の処理に復帰させる。
次に、ステップS610のイベントリスナ実行処理を図16を参照しながら詳細に説明する。
図16は、イベントリスナ実行処理を示すフローチャートである。
イベントリスナ実行処理は、ステップS610において実行されると、図16に示すように、まず、ステップS700に移行する。
ステップS700では、イベントリスナに含まれる命令リストの先頭にプログラムポインタを移動し、ステップS702に移行して、プログラムポインタが指し示すアドレスに実行すべき命令が存在するか否かを判定し、実行すべき命令が存在すると判定したとき(Yes)は、ステップS703に移行して、命令の実行に必要なメモリ量を算出し、ステップS740に移行する。
ステップS704では、命令の実行に使用するライブラリ等からメモリの使用形態を特定し、特定したメモリの使用形態に対応する換算率を、読み込んだリソース換算テーブル22から取得し、算出したメモリ量に、取得した換算率を乗算することにより、ネットワークプリンタで使用するメモリ量への換算を行う。
次いで、ステップS705に移行して、参照リソース管理テーブル460の使用メモリ量に換算メモリ量を加算し、ステップS706に移行して、加算した合計のメモリ量が、参照リソース管理テーブル460の上限値未満であるか否かを判定し、上限値未満であると判定したとき(Yes)は、ステップS708に移行する。
ステップS708では、メモリを確保し、ステップS710に移行して、プログラムポインタが指し示すアドレスの命令を実行し、ステップS712に移行して、イベントリスナに含まれる命令リストの次にプログラムポインタを移動し、ステップS713に移行して、所定の待機時間だけ処理を待機し、ステップS702に移行する。この待機時間の決定については、後段の実施の形態で詳述する。
一方、ステップS706で、合計のメモリ量が上限値以上であると判定したとき(No)は、ステップS714に移行して、参照リソース管理テーブル460の使用メモリ量から換算メモリ量を減算し、ステップS715に移行する。
ステップS715では、個別機能モジュール130が使用するメモリ量が上限に達したことを示すログ情報を生成し、ステップS716に移行して、エラーを通知し、ステップS712に移行する。
一方、ステップS702で、実行すべき命令が存在しないと判定したとき(No)は、一連の処理を終了して元の処理に復帰させる。
次に、インスタンス削除処理を図17を参照しながら詳細に説明する。
図17は、インスタンス削除処理を示すフローチャートである。
インスタンス削除処理は、インスタンスを削除する処理であって、CPU30において実行されると、図17に示すように、まず、ステップS800に移行する。
ステップS800では、削除すべきインスタンスを登録したインスタンス削除リストを取得し、ステップS802に移行して、取得したインスタンス削除リストに基づいて、削除すべきインスタンスが存在するか否かを判定し、削除すべきインスタンスが存在すると判定したとき(Yes)は、ステップS804に移行する。
ステップS804では、該当のインスタンスからリソース確保先参照情報を取得し、ステップS805に移行して、リソース確保先参照情報の取得に成功したか否かを判定し、リソース確保先参照情報の取得に成功したと判定したとき(Yes)は、ステップS806に移行する。
ステップS806では、取得したリソース確保先参照情報に基づいてリソース確保先の参照ポインタを設定し、ステップS808に移行して、該当のインスタンスを削除し、ステップS810に移行して、該当のインスタンスの実行に必要なメモリ量を参照リソース管理テーブル460の使用メモリ量から減算し、ステップS812に移行する。
ステップS812では、リソース確保先の参照ポインタをクリアし、ステップS814に移行して、該当のインスタンスをインスタンス削除リストから削除し、ステップS802に移行する。
一方、ステップS805で、リソース確保先参照情報の取得に失敗したと判定したとき(No)は、ステップS816に移行して、該当のインスタンスを削除し、ステップS814に移行する。
一方、ステップS802で、削除すべきインスタンスが存在しないと判定したとき(No)は、一連の処理を終了して元の処理に復帰させる。
次に、本実施の形態の動作を説明する。
初めに、リソース管理対象となる個別機能モジュール130を実行する場合を説明する。
ホスト端末100では、共通機能モジュール120の実行により個別機能モジュール制御処理が実行される。個別機能モジュール制御処理では、ステップS102〜S110を経て、削除すべき個別機能モジュール130が存在する場合は、その個別機能モジュール130が削除される。次いで、ステップS114を経て、現在起動中のモジュール数が所定の上限値未満であると判定されると、ステップS116,S118を経て、該当の個別機能モジュール130が読み込まれ、読み込まれた個別機能モジュール130の実行可否が判定される。実行可否判定処理では、個別機能モジュール130について、一致する機種情報および対応可能な電子署名情報を有し、かつ、使用可能なメモリ量の上限値が全メモリ残量未満である場合に実行が許可される。
個別機能モジュール130の実行が許可されると、ステップS124〜S128を経て、リソース管理テーブル460が生成され、現在起動中のモジュール数が「1」加算され、個別機能モジュール130が起動する。モジュール起動処理では、ステップS509,S510,S305〜S307を経て、個別機能モジュール130の起動クラス数および使用メモリ量が、ネットワークプリンタでの起動クラス数および使用メモリ量に換算されて加算される。このとき、起動クラス数および使用メモリ量のいずれかが上限値以上となると、ステップS521,S522またはステップS321,S322を経て、個別機能モジュール130の起動クラス数または使用メモリ量が上限に達したことを示すログ情報が生成されるとともにエラーが通知され、クラスの読込またはインスタンスの生成が中止される。
これに対し、起動クラス数および使用メモリ量のいずれも上限値未満である場合は、ステップS514,S310,S318を経て、個別機能モジュール130のクラスが読み込まれ、読み込まれたクラスのインスタンスが生成され、個別機能モジュール130のイベントリスナが登録される。イベントリスナ登録処理では、ステップS509,S510,S405〜S407を経て、個別機能モジュール130の起動クラス数および使用メモリ量が、ネットワークプリンタでの起動クラス数および使用メモリ量に換算されて加算される。このとき、起動クラス数および使用メモリ量のいずれかが上限値以上となると、ステップS521,S522またはステップS419,S420を経て、個別機能モジュール130の起動クラス数または使用メモリ量が上限に達したことを示すログ情報が生成されるとともにエラーが通知され、イベントリスナクラスの読込またはインスタンスの生成が中止される。
これに対し、起動クラス数および使用メモリ量のいずれも上限値未満である場合は、ステップS514,S410,S416を経て、イベントリスナクラスが読み込まれ、イベントリスナクラスのインスタンスが生成され、生成されたインスタンスのイベントリスナがイベントリスナ実行リストに登録される。
一方、ホスト端末100では、共通機能モジュール120の実行によりイベントリスナ制御処理が実行される。イベントリスナ制御処理では、ステップS703〜S705を経て、実行すべきイベントリスナの生成元となった個別機能モジュール130の使用メモリ量が、ネットワークプリンタでの使用メモリ量に換算されて加算される。このとき、使用メモリ量が上限値以上となると、ステップS715,S716を経て、個別機能モジュール130が使用するメモリ量が上限に達したことを示すログ情報が生成されるとともにエラーが通知され、イベントリスナの実行が中止される。
これに対し、使用メモリ量が上限値未満である場合は、ステップS710を経て、イベントリスナに含まれる命令が実行される。
一方、ホスト端末100では、共通機能モジュール120の実行によりインスタンス削除処理が実行される。インスタンス削除処理では、削除すべきインスタンスが存在する場合は、ステップS808,S810を経て、そのインスタンスが削除され、そのイベントリスナの生成元となった個別機能モジュール130の使用メモリ量が減算される。
図18は、エラーが発生した場合のログファイルの内容を示す図である。
エラーが発生した場合、ログファイルには、図18に示すように、個別機能モジュール130が起動および停止したことを示すログ情報のほか、個別機能モジュール130の起動クラス数または使用メモリ量が上限に達したことを示すログ情報が記録される。
図19は、エラーが発生しない場合のログファイルの内容を示す図である。
これに対し、エラーが発生しない場合、ログファイルには、図19に示すように、個別機能モジュール130が起動および停止したことを示すログ情報のみが記録される。
次に、リソース管理対象でない個別機能モジュール130を実行する場合を説明する。
ホスト端末100では、個別機能モジュール制御処理が実行されると、ステップS116,S118を経て、該当の個別機能モジュール130が読み込まれ、読み込まれた個別機能モジュール130の実行可否が判定される。
個別機能モジュール130の実行が許可されると、ステップS134を経て、個別機能モジュール130が起動する。モジュール起動処理では、ステップS524,S324,S318を経て、個別機能モジュール130のクラスが読み込まれ、読み込まれたクラスのインスタンスが生成され、個別機能モジュール130のイベントリスナが登録される。イベントリスナ登録処理では、ステップS524,S422,S416を経て、イベントリスナクラスが読み込まれ、イベントリスナクラスのインスタンスが生成され、生成されたインスタンスのイベントリスナがイベントリスナ実行リストに登録される。
一方、ホスト端末100では、イベントリスナ制御処理が実行されると、ステップS616を経て、実行すべきイベントリスナに含まれる命令が実行される。
一方、ホスト端末100では、インスタンス削除処理が実行されると、削除すべきインスタンスが存在する場合は、ステップS816を経て、そのインスタンスが削除される。
図20は、リソース管理対象となる個別機能モジュールb,cを並列に実行した場合を示すタイムチャートである。
図20において、実線は、個別機能モジュールbのスレッド、および共通機能モジュール120のスレッドのうち個別機能モジュールbの実行に用いられるものを示している。また、一点鎖線は、個別機能モジュールcのスレッド、および共通機能モジュール120のスレッドのうち個別機能モジュールcの実行に用いられるものを示している。
個別機能モジュールbが実行されると、共通機能モジュール120のAMスレッド(起動処理部)が実行され、個別機能モジュールbが起動してそのスレッドが実行される。また、共通機能モジュール120のAMスレッドが実行され、個別機能モジュールbのイベントリスナが生成される。そして、個別機能モジュールbに対応するイベントが発生すると、共通機能モジュール120のAMスレッド(イベント処理部)が実行され、個別機能モジュールbのクラスが読み込まれ、読み込まれたインスタンスが生成される。個別機能モジュールbが不要となった場合は、共通機能モジュール120のインスタンス削除スレッドが実行され、個別機能モジュールbのインスタンスが削除される。この一連の処理において、共通機能モジュール120および個別機能モジュールbのスレッドの実行に伴って増減する起動クラス数および使用メモリ量は、個別機能モジュールbが使用するリソースの量として管理され、個別機能モジュールbに設定された所定の上限値未満となるように制限される。
この動作は、個別機能モジュールcについても同様である。ただし、その一連の処理において、共通機能モジュール120および個別機能モジュールcのスレッドの実行に伴って増減する起動クラス数および使用メモリ量は、個別機能モジュールcが使用するリソースの量として管理され、個別機能モジュールcに設定された所定の上限値未満となるように制限される。
このようにして、本実施の形態では、個別機能モジュール130がホスト端末100で使用するリソースの量を測定し、測定したリソースの量を、ネットワークプリンタで使用するリソースの量に換算し、個別機能モジュール130から上限値を取得し、換算したリソースの量および取得した上限値に基づいて、個別機能モジュール130が使用するリソースの量が上限に達したことを示すログ情報を生成するようになっている。
これにより、個別機能モジュール130がネットワークプリンタで使用するリソースの量が、リソースの上限値に達するかをネットワークプリンタへの導入前に検証することができる。したがって、従来に比して、ソフトウェアの開発を容易に行うことができるとともに安定性の高いソフトウェアを開発することができる。
さらに、本実施の形態では、リソース管理対象となる各個別機能モジュール130ごとに、その個別機能モジュール130が使用するメモリ量、並びに共通機能モジュール120がその個別機能モジュール130の実行に使用するメモリ量および起動するクラス数を測定するようになっている。
これにより、共通機能モジュール120がネットワークプリンタで使用するリソースの量が、リソースの上限値に達するかを個別機能モジュール130単位で検証することができる。
さらに、本実施の形態では、換算したリソースの量および取得した上限値に基づいて個別機能モジュール130によるリソースの確保を禁止するようになっている。
これにより、個別機能モジュール130が上限値を超えてリソースの量を使用するのを制限することができる。
さらに、本実施の形態では、ホスト端末100で所定条件で使用されるリソースの量およびネットワークプリンタで同所定条件で使用されるリソースの量に基づき決定される換算率を登録したリソース換算テーブル22に基づいて換算を行うようになっている。
これにより、ホスト端末100およびネットワークプリンタの間でリソースの量を比較的正確に換算することができる。
さらに、本実施の形態では、共通機能モジュール120および個別機能モジュール130が使用するリソースの種別に応じてリソース換算テーブル22から対応する換算率を取得し、取得した換算率に基づいて換算を行うようになっている。
これにより、共通機能モジュール120および個別機能モジュール130が使用するリソースの種別に応じた換算を行うことができるので、ホスト端末100およびネットワークプリンタの間でリソースの量をさらに正確に換算することができる。
さらに、本実施の形態では、共通機能モジュール120および個別機能モジュール130が使用するリソースの形態に応じてリソース換算テーブル22から対応する換算率を取得し、取得した換算率に基づいて換算を行うようになっている。
これにより、共通機能モジュール120および個別機能モジュール130が使用するリソースの形態に応じた換算を行うことができるので、ホスト端末100およびネットワークプリンタの間でリソースの量をさらに正確に換算することができる。
さらに、本実施の形態では、リソース換算テーブル22は、複数のテストモジュールのそれぞれについて、ホスト端末100およびネットワークプリンタでそのテストモジュールが使用するリソースの量に基づいて換算率を決定し、各テストモジュールについて決定された換算率のうち最大値を登録した。
これにより、リソース換算テーブル22には、各テストモジュールについて決定された換算率のうち最大値が登録されているので、共通機能モジュール120および個別機能モジュール130が使用するリソースの量を多めに見積もることができる。したがって、個別機能モジュール130の動作を比較的確実に保証することができる。
次に、本発明の第2の実施の形態を図面を参照しながら説明する。図21ないし図24は、本発明に係るリソース管理システムおよび、並びにの第2の実施の形態を示す図である。
本実施の形態は、本発明に係るリソース管理システムおよび、並びにを、図21に示すように、ホスト端末100上のJAVA(登録商標)アプリケーションの実行環境において、ネットワークプリンタの動作を制御するためのJAVA(登録商標)クラスセットをエミュレーションする場合について適用したものであり、上記第1の実施の形態と異なるのは、リソースの上限値を換算する点にある。なお、以下、上記第1の実施の形態と異なる部分についてのみ説明し、上記第1の実施の形態と重複する部分については同一の符号を付して説明を省略する。
まず、本発明を適用するホスト端末100の機能概要を説明する。
図21は、ホスト端末100の機能概要を示す機能ブロック図である。
共通機能モジュール120は、図21に示すように、個別機能モジュール管理部14、リソース測定部16、上限値取得部18、リソース制限部20、リソース換算テーブル22およびログ情報生成部26のほか、リソースの量を換算するリソース換算部28を有して構成されている。
リソース換算部28は、リソース換算テーブル22に基づいて、上限値取得部18で取得したリソースの量を、ホスト端末100でのリソースの上限値に換算する。
リソース制限部20は、リソース測定部16で測定したリソースの量が、リソース換算部28で換算した上限値未満となるように、個別機能モジュール130が使用するリソースの量、および個別機能モジュール管理部14がその個別機能モジュール130の実行に使用するリソースの量を制限する。
ログ情報生成部26は、リソース測定部16で測定したリソースの量が、リソース換算部28で換算した上限値以上であると判定したときは、個別機能モジュール130が使用するリソースの量が上限に達したことを示すログ情報を生成する。
次に、ホスト端末100の構成を詳細に説明する。
記憶装置42は、図7のリソース換算テーブル22に代えて、図22のリソース換算テーブル22を記憶している。
図22は、リソース換算テーブル22のデータ構造を示す図である。
リソース換算テーブル22には、図22に示すように、リソースの種別または使用形態ごとに1つのレコードが登録されている。各レコードは、リソースの名称を登録するフィールド502と、換算率を登録するフィールド504とを含んで構成されている。
図22の例では、第1段目のレコードには、リソースの名称として「メモリ」が、換算率として「1」がそれぞれ登録されている。これは、個別機能モジュール130がネットワークプリンタでのメモリ量の上限値を換算率「1」で除算することにより、ホスト端末100でのメモリ量の上限値への換算を行うことを示している。
また、第2段目のレコードには、リソースの名称として「クラス数」が、換算率として「1」がそれぞれ登録されている。これは、個別機能モジュール130がネットワークプリンタで起動可能なクラス数の上限値を換算率「1」で除算することにより、ホスト端末100で起動可能なクラス数への換算を行うことを示している。
なお、リソース換算テーブル22には、複数のテストモジュールのそれぞれについて、ホスト端末100およびネットワークプリンタでそのテストモジュールが使用するリソースの量に基づいて換算率を決定し、各テストモジュールについて決定された換算率のうち最大値が登録されている。リソース換算テーブル22の生成については、後段の実施の形態で詳述する。
記憶装置42は、さらに、図8のリソース管理テーブル460に代えて、図23のリソース管理テーブル460を記憶している。
図23は、リソース管理テーブル460のデータ構造を示す図である。
リソース管理テーブル460には、図23に示すように、リソースの種別ごとに1つのレコードが登録されている。各レコードは、リソースの名称を登録するフィールド462と、個別機能モジュール130がネットワークプリンタでのリソースの上限値を登録するフィールド464と、フィールド464の値を、ホスト端末100でのリソースの上限値に換算した値を登録するフィールド470と、個別機能モジュール130がホスト端末100で現在使用しているリソースの量を登録するフィールド466とを含んで登録されている。
図23の例では、第1段目のレコードには、上限値として「1000000」が、換算値として「666666」がそれぞれ登録されている。これは、個別機能モジュール130がネットワークプリンタでのメモリ量の上限値が1000000[byte]であり、ホスト端末100でのメモリ量の上限値に換算した値(以下、換算メモリ上限値という。)が666666[byte]であることを示している。換算メモリ上限値は、図22のリソース換算テーブル22を参照し、1000000/1.5=666666として算出することができる。
また、第2段目のレコードには、上限値として「100」が、換算値として「20」がそれぞれ登録されている。これは、個別機能モジュール130がネットワークプリンタで起動可能なクラス数の上限値が100個であり、ホスト端末100で起動可能なクラス数の上限値に換算した値(以下、換算クラス上限値という。)が20個であることを示している。換算クラス上限値は、図22のリソース換算テーブル22を参照し、20/1=20として算出することができる。
次に、ホスト端末100で実行される処理を説明する。
CPU30は、図11の実行可否判定処理に代えて、図24のフローチャートに示す実行可否判定処理を実行する。
図24は、実行可否判定処理を示すフローチャートである。
実行可否判定処理は、ステップS118において実行されると、図24に示すように、まず、ステップS200〜S212を経てステップS213に移行する。
ステップS213では、取得した上限値に対応する換算率を、読み込んだリソース換算テーブル22から取得し、取得した上限値を、取得した換算率で除算することにより、ホスト端末100での上限値への換算を行う。
次いで、ステップS214に移行して、換算メモリ上限値が全メモリ残量未満であるか否かを判定し、全メモリ残量未満であると判定したとき(Yes)は、ステップS216に移行するが、そうでないと判定したとき(No)は、ステップS217に移行する。
なお、上記第1の実施の形態においては、ステップS306,S406,S509,S704の処理を設けたが、本実施の形態では、それらの処理が不要となる。
また、上記第1の実施の形態においては、ステップS313,S320,S418,S517,S520,S714の処理で換算メモリ量および換算クラス数を取り扱ったが、本実施の形態では、ホスト端末100での使用メモリ量および起動クラス数を取り扱う。
また、上記第1の実施の形態においては、ステップS308,S408,S512,S706でネットワークプリンタでの使用メモリ量および起動クラス数を取り扱ったが、本実施の形態では、換算メモリ上限値および換算メモリを取り扱う。
次に、本実施の形態の動作を説明する。
初めに、リソース管理対象となる個別機能モジュール130を実行する場合を説明する。
ホスト端末100では、共通機能モジュール120の実行により個別機能モジュール制御処理が実行される。個別機能モジュール制御処理では、ステップS102〜S110を経て、削除すべき個別機能モジュール130が存在する場合は、その個別機能モジュール130が削除される。次いで、ステップS114を経て、現在起動中のモジュール数が所定の上限値未満であると判定されると、ステップS116,S118を経て、該当の個別機能モジュール130が読み込まれ、読み込まれた個別機能モジュール130の実行可否が判定される。実行可否判定処理では、ステップS213を経て、リソース制限情報400から取得された上限値が、ホスト端末100での上限値に換算される。そして、個別機能モジュール130について、一致する機種情報および対応可能な電子署名情報を有し、かつ、換算メモリ上限値が全メモリ残量未満である場合に実行が許可される。
個別機能モジュール130の実行が許可されると、ステップS124〜S128を経て、リソース管理テーブル460が生成され、現在起動中のモジュール数が「1」加算され、個別機能モジュール130が起動する。モジュール起動処理では、ステップS510,S305,S307を経て、個別機能モジュール130の起動クラス数および使用メモリ量が加算される。このとき、起動クラス数および使用メモリ量のいずれかが換算上限値(換算クラス数または換算メモリ上限値をいう。以下、同様。)以上となると、ステップS521,S522またはステップS321,S322を経て、個別機能モジュール130の起動クラス数または使用メモリ量が上限に達したことを示すログ情報が生成されるとともにエラーが通知され、クラスの読込またはインスタンスの生成が中止される。
これに対し、起動クラス数および使用メモリ量のいずれも換算上限値未満である場合は、ステップS514,S310,S318を経て、個別機能モジュール130のクラスが読み込まれ、読み込まれたクラスのインスタンスが生成され、個別機能モジュール130のイベントリスナが登録される。イベントリスナ登録処理では、ステップS510,S405,S407を経て、個別機能モジュール130の起動クラス数および使用メモリ量が加算される。このとき、起動クラス数および使用メモリ量のいずれかが換算上限値以上となると、ステップS521,S522またはステップS419,S420を経て、個別機能モジュール130の起動クラス数または使用メモリ量が上限に達したことを示すログ情報が生成されるとともにエラーが通知され、イベントリスナクラスの読込またはインスタンスの生成が中止される。
これに対し、起動クラス数および使用メモリ量のいずれも換算上限値未満である場合は、ステップS514,S410,S416を経て、イベントリスナクラスが読み込まれ、イベントリスナクラスのインスタンスが生成され、生成されたインスタンスのイベントリスナがイベントリスナ実行リストに登録される。
一方、ホスト端末100では、共通機能モジュール120の実行によりイベントリスナ制御処理が実行される。イベントリスナ制御処理では、ステップS703,S705を経て、実行すべきイベントリスナの生成元となった個別機能モジュール130の使用メモリ量が加算される。このとき、使用メモリ量が換算上限値以上となると、ステップS715,S716を経て、個別機能モジュール130が使用するメモリ量が上限に達したことを示すログ情報が生成されるとともにエラーが通知され、イベントリスナの実行が中止される。
これに対し、使用メモリ量が換算上限値未満である場合は、ステップS710を経て、イベントリスナに含まれる命令が実行される。
このようにして、本実施の形態では、個別機能モジュール130がホスト端末100で使用するリソースの量を測定し、個別機能モジュール130から上限値を取得し、取得した上限値を、ホスト端末100でのリソースの上限値に換算し、測定したリソースの量および換算した上限値に基づいて、個別機能モジュール130が使用するリソースの量が上限に達したことを示すログ情報を生成するようになっている。
これにより、個別機能モジュール130がネットワークプリンタで使用するリソースの量が、リソースの上限値に達するかをネットワークプリンタへの導入前に検証することができる。したがって、従来に比して、ソフトウェアの開発を容易に行うことができるとともに安定性の高いソフトウェアを開発することができる。
上記第2の実施の形態において、リソース測定部16およびステップS305,S405,S703は、形態1ないし5のリソース測定手段に対応し、ステップS305,S405,S703は、形態13ないし17、25ないし32のリソース測定ステップに対応し、リソース換算部28およびステップS213は、形態1、2、4ないし8のリソース換算手段に対応している。また、ステップS213は、形態13、14、16ないし20、25ないし28、30ないし35のリソース換算ステップに対応し、上限値取得部18およびステップS211は、形態1、2または4のリソース上限値取得手段に対応し、ステップS211は、形態13、14、16、25ないし28、30または31のリソース上限値取得ステップに対応している。
また、上記第2の実施の形態において、ログ情報生成部26およびステップS321,S419,S521,S715は、形態1、2、4または12のリソース制限通知手段に対応し、ステップS321,S419,S521,S715は、形態13、14、16、24ないし28、30、31または39のリソース制限通知ステップに対応している。また、リソース制限部20およびステップS308,S408,S512,S706は、形態5のリソース制限手段に対応し、ステップS308,S408,S512,S706は、形態17または32のリソース制限ステップに対応し、共通機能モジュール120は、形態2ないし4、14ないし16、27ないし31の第1機能モジュールに対応している。
また、上記第2の実施の形態において、個別機能モジュール130は、形態2ないし4、14ないし16、27ないし31の第2機能モジュールに対応し、CPU30は、形態26、28または31の演算手段に対応している。
次に、本発明の第3の実施の形態を図面を参照しながら説明する。図25ないし図30は、本発明に係るリソース管理プログラムおよび、並びにの実施の形態を示す図である。
本実施の形態は、本発明に係るリソース管理プログラムおよび、並びにを、上記第1および第2の実施の形態で使用したリソース換算テーブル22を生成する場合について適用したものである。なお、以下、上記第1および第2の実施の形態と異なる部分についてのみ説明し、上記第1および第2の実施の形態と重複する部分については同一の符号を付して説明を省略する。
まず、ネットワークプリンタの構成を詳細に説明する。
ネットワークプリンタは、CPU、ROM、RAMおよびI/F等をバス接続した一般的なコンピュータと同一機能を有して構成されている。
I/Fには、外部装置として、ヒューマンインターフェースとしてデータの入力および表示が可能なタッチパネル等からなる操作パネルと、データやテーブル等をファイルとして格納する記憶装置と、印刷ヘッド、ヘッド駆動部その他の印刷に必要な機構からなるプリンタエンジンと、ネットワーク199に接続するための信号線とが接続されている。
記憶装置は、テストモジュールをネットワークプリンタで実行した実行結果を登録する実行結果登録テーブルを記憶している。
図25は、実行結果登録テーブル520のデータ構造を示す図である。
実行結果登録テーブル520には、図25に示すように、各テストモジュールごとに1つのレコードが登録される。各レコードは、テストモジュールの名称を登録するフィールド522と、テストモジュールがネットワークプリンタで使用するメモリ量を登録するフィールド524と、テストモジュールがネットワークプリンタで起動するクラス数を登録するフィールド526と、テストモジュールの処理時間を登録するフィールド528とを含んで登録されている。
図25の例では、第1段目のレコードには、テストモジュールの名称として「T1(メモリを使用形態Aでのみ使用)」が、メモリ量として「100」が、クラス数として「5]が、処理時間として「30」がそれぞれ登録されている。これは、テストモジュールT1がメモリを使用形態Aでのみ使用するものであり、その実行により、ネットワークプリンタでメモリ量を100[byte]使用し、かつ、クラスを30個起動することを示している。
CPUは、ROMの所定領域に格納されている所定のプログラムを起動させ、そのプログラムに従って、図26のフローチャートに示す使用リソース量測定処理を実行する。
図26は、使用リソース量測定処理を示すフローチャートである。
使用リソース量測定処理は、CPUにおいて実行されると、図26に示すように、まず、ステップS900に移行する。
ステップS900では、実行すべきテストモジュールを登録したテストモジュールリストを取得し、ステップS902に移行して、取得したテストモジュールリストに基づいてテストモジュールを実行し、ステップS904に移行する。
ステップS904では、実行したテストモジュールが使用するメモリ量および起動するクラス数を測定し、ステップS906に移行して、実行したテストモジュールの処理時間を測定し、ステップS908に移行して、測定した使用メモリ量、起動クラス数および測定時間をテストモジュールの名称と対応付けて実行結果登録テーブル520に登録し、ステップS910に移行する。
ステップS910では、取得したテストモジュールリストに基づいて、実行すべきテストモジュールが存在するか否かを判定し、実行すべきテストモジュールが存在すると判定したとき(Yes)は、ステップS902に移行するが、そうでないと判定したとき(No)は、一連の処理を終了して元の処理に復帰させる。
使用リソース量測定処理により得られた実行結果登録テーブル520は、ホスト端末100でリソース換算テーブル22を生成するのに使用される。
次に、ホスト端末100の構成を詳細に説明する。
CPU30は、ROM32の所定領域に格納されている所定のプログラムを起動させ、そのプログラムに従って、図27のフローチャートに示すリソース換算テーブル生成処理を実行する。
図27は、リソース換算テーブル生成処理を示すフローチャートである。
リソース換算テーブル生成処理は、リソース換算テーブル22を生成するとともにステップS713での待機時間を決定する処理であって、CPU30において実行されると、図27に示すように、まず、ステップS1000に移行する。
ステップS1000では、テストモジュールリストを取得し、ステップS1002に移行して、リソース換算テーブル22を初期化し、ステップS1004に移行して、待機時間を「0」に設定し、ステップS1006に移行する。
ステップS1006では、取得したテストモジュールリストに基づいてすべてのテストモジュールを実行する。ここで、テストモジュールは、個別機能モジュール130と同様に、図10ないし図17、および図24のフローチャートに示す処理により実行する。したがって、ステップS713で待機時間だけ処理を待機することにより処理時間が調整される。
次いで、ステップS1008に移行して、実行した各テストモジュールが使用するメモリ量および起動するクラス数を測定し、ステップS1010に移行して、実行した各テストモジュールの処理時間を測定し、ステップS1012に移行する。
ステップS1012では、各テストモジュールに対応する処理時間を実行結果登録テーブル520から読み出し、ステップS1014に移行して、読み出した処理時間の合計と、各テストモジュールについて測定した処理時間の合計とが一致しまたはその差分が所定閾値以下であるか否かを判定し、処理時間の合計が一致しないまたはその差分が所定閾値よりも大きいと判定したとき(No)は、ステップS1016に移行する。
ステップS1016では、読み出した処理時間の合計が、各テストモジュールについて測定した処理時間の合計よりも短いか否かを判定し、読み出した処理時間の合計の方が短いと判定したとき(Yes)は、ステップS1018に移行して、待機時間を「1」減算し、ステップS1006に移行する。
一方、ステップS1016で、各テストモジュールについて測定した処理時間の合計の方が短いと判定したとき(No)は、ステップS1020に移行して、待機時間を「1」加算し、ステップS1006に移行する。
一方、ステップS1014で、処理時間の合計が一致しまたはその差分が所定閾値以下であると判定したとき(Yes)は、ステップS1022に移行して、各テストモジュールに対応する使用メモリ量および起動クラス数を実行結果登録テーブル520から読み出し、ステップS1024に移行する。
ステップS1024では、各テストモジュールごとに、そのテストモジュールについて測定した使用メモリ量および起動クラス数と、読み出した使用メモリ量および起動クラス数のうちそのテストモジュールに対応するものとに基づいて換算率を算出し、ステップS1026に移行して、リソースの種別および使用形態ごとに、各テストモジュールについて算出した換算率のうち最大値をリソース換算テーブル22に登録し、一連の処理を終了して元の処理に復帰させる。
次に、本実施の形態の動作を説明する。
ネットワークプリンタでは、ステップS902〜S908を繰り返して経て、各テストモジュールが実行され、実行された各テストモジュールの使用メモリ量、起動クラス数および処理時間が測定され、測定された使用メモリ量、起動クラス数および処理時間が実行結果登録テーブル520に登録される。
次に、ネットワークプリンタで得られた実行結果登録テーブル520をホスト端末100に格納し、ホスト端末100でリソース換算テーブル生成処理を実行する。
ホスト端末100では、ステップS1006〜S1010を経て、各テストモジュールが実行され、実行された各テストモジュールの処理時間が測定される。そして、ステップS1012,S1014を経て、各テストモジュールに対応する処理時間が実行結果登録テーブル520から読み出され、読み出された処理時間の合計と、各テストモジュールについて測定された処理時間の合計とが一致するか否かが判定される。その結果、処理時間の合計が一致しないと判定されると、読み出された処理時間の合計の方が短い場合は、ステップS1018を経て、待機時間が減算されるが、各テストモジュールについて測定された処理時間の合計の方が短い場合は、ステップS1020を経て、待機時間が加算される。ステップS1006〜S1020の処理は、処理時間の合計が一致するまで繰り返し行われる。
図28は、ネットワークプリンタで3つのテストモジュールT1〜T3を実行した場合の実行結果を示す表である。
ネットワークプリンタでテストモジュールT1〜T3を実行した場合、テストモジュールT1〜T3の処理時間の合計は、図28に示すように、例えば、「120」となった。
図29は、待機時間を「0」に設定し、ホスト端末100で3つのテストモジュールT1〜T3を実行した場合の実行結果を示す表である。
待機時間を「0」に設定し、ホスト端末100でテストモジュールT1〜T3を実行した場合、テストモジュールT1〜T3の処理時間の合計は、図29に示すように、例えば、「80」となった。この場合、ネットワークプリンタでの処理時間の合計と、ホスト端末100での処理時間の合計とが一致しないので、待機時間が加算されて処理時間が調整される。
図30は、待機時間を「10」に設定し、ホスト端末100で3つのテストモジュールT1〜T3を実行した場合の実行結果を示す表である。
次に、待機時間を「10」に設定し、ホスト端末100でテストモジュールT1〜T3を実行した場合、テストモジュールT1〜T3の処理時間の合計は、図30に示すように、例えば、「120」となった。この場合、ネットワークプリンタでの処理時間の合計と、ホスト端末100での処理時間の合計とが一致するので、待機時間は、「10」として決定される。
このように待機時間が決定されると、ステップS1022,S1024を経て、各テストモジュールに対応する使用メモリ量および起動クラス数が実行結果登録テーブル520から読み出され、測定された使用メモリ量および起動クラス数、並びに読み出された使用メモリ量および起動クラス数に基づいて各テストモジュールごとに換算率が算出される。そして、ステップS1026を経て、各テストモジュールについて算出された換算率のうち最大値がリソース換算テーブル22に登録される。
このような処理により得られた待機時間およびリソース換算テーブル22は、上記第1および第2の実施の形態で使用することができる。
このようにして、本実施の形態では、テストモジュールがネットワークプリンタで使用するリソースの量を実行結果登録テーブル520から読み出し、テストモジュールがホスト端末100で使用するリソースの量を測定し、読み出したリソースの量および測定したリソースの量に基づいて換算率を算出し、算出した換算率に基づいてリソース換算テーブル22を生成するようになっている。
これにより、ホスト端末100およびネットワークプリンタでテストモジュールを実行させるだけでよいので、リソース換算テーブル22を容易に生成することができる。
さらに、本実施の形態では、ネットワークプリンタにおけるテストモジュールの処理時間を実行結果登録テーブル520から読み出し、ホスト端末100におけるテストモジュールの処理時間を測定し、読み出した処理時間および測定した処理時間に基づいてホスト端末100での待機時間を算出するようになっている。
これにより、個別機能モジュール130をホスト端末100で実行する場合に、得られた待機時間を実行中に設ければ、ホスト端末100およびネットワークプリンタで個別機能モジュール130の処理時間が等しくなるように調整することができる。
次に、本発明の第4の実施の形態を図面を参照しながら説明する。図31は、本発明に係るリソース管理方法および、並びにの実施の形態を示す図である。
本実施の形態は、本発明に係るリソース管理方法および、並びにを、上記第1および第2の実施の形態で生成したログ情報に基づいて個別機能モジュール130を認証する場合について適用したものである。なお、以下、上記第1および第2の実施の形態と異なる部分についてのみ説明し、上記第1および第2の実施の形態と重複する部分については同一の符号を付して説明を省略する。
まず、ホスト端末100の構成を詳細に説明する。
CPU30は、ROM32の所定領域に格納されている所定のプログラムを起動させ、そのプログラムに従って、図31のフローチャートに示すモジュール認証処理を実行する。
図31は、モジュール認証処理を示すフローチャートである。
モジュール認証処理は、CPU30において実行されると、図31に示すように、まず、ステップS1100に移行する。
ステップS1100では、記憶装置42のログファイルからログ情報を読み出し、ステップS1102に移行して、読み出したログ情報に基づいて、個別機能モジュール130の起動クラス数または使用メモリ量が上限に達したか否かを判定し、起動クラス数または使用メモリ量が上限に達していないと判定したとき(No)は、ステップS1104に移行する。
ステップS1104では、読み出したログ情報に基づいて、個別機能モジュール130がネットワークプリンタにインストール不可能である否かを判定し、個別機能モジュール130がインストール可能であると判定したとき(No)は、ステップS1106に移行する。
ステップS1106では、記憶装置42のログファイルに未処理のログ情報が存在するか否かを判定し、未処理のログ情報が存在しないと判定したとき(No)は、ステップS1108に移行して、個別機能モジュール130の実行ファイルを記憶装置42から読み出し、ステップS1110に移行する。
ステップS1110では、読み出した実行ファイルに電子署名情報を付加し、ステップS1112に移行して、電子署名情報を付加した実行ファイルを記憶装置42に保存し、一連の処理を終了して元の処理に復帰させる。
一方、ステップS1106で、未処理のログ情報が存在すると判定したとき(Yes)は、ステップS1100に移行する。
一方、ステップS1104で、個別機能モジュール130がインストール不可能であると判定したとき(Yes)、およびステップS1102で、起動クラス数または使用メモリ量が上限に達したと判定したとき(Yes)はいずれも、ステップS1114に移行して、個別機能モジュール130が認証不可能であることを示すメッセージを表示装置44に表示し、一連の処理を終了して元の処理に復帰させる。
次に、本実施の形態の動作を説明する。
ホスト端末100では、上記第1および第2の実施の形態においてログファイルが生成されると、ステップS1100〜S1106を繰り返しを経て、ログファイルからログ情報が順次読み出され、個別機能モジュール130の起動クラス数または使用メモリ量が上限に達したか否か、および個別機能モジュール130がネットワークプリンタにインストール不可能であるか否かが判定される。図19に示すログファイルのように、ログファイルに含まれるすべてのログ情報について、起動クラス数または使用メモリ量が上限に達せずかつインストール可能であると判定されると、ステップS1108〜S1112を経て、個別機能モジュール130の実行ファイルが読み出され、読み出された実行ファイルに電子署名情報が付加されて保存される。
これに対し、図18に示すログファイルのように、ログファイルに含まれるいずれかのログ情報について、起動クラス数または使用メモリ量が上限に達しまたはインストール不可能であると判定されると、ステップS1114を経て、認証不可能であることを示すメッセージが表示される。
このようにして、本実施の形態では、ログファイルからログ情報を読み出し、読み出したログ情報に基づいて個別機能モジュール130が使用するリソースの量が上限に達したか否かを判定し、リソースの量が上限に達していないと判定したときは、個別機能モジュール130の実行ファイルに電子認証情報を付加するようになっている。
これにより、使用するリソースの量が上限に達しない個別機能モジュール130に対してのみ電子署名情報が付加されるので、個別機能モジュール130の動作を比較的確実に保証することができる。
さらに、本実施の形態では、ログファイルからログ情報を読み出し、読み出したログ情報に基づいて個別機能モジュール130がネットワークプリンタにインストール不可能であるか否かを判定し、インストール可能であると判定したときは、個別機能モジュール130の実行ファイルに電子認証情報を付加するようになっている。
これにより、ネットワークプリンタにインストール可能である個別機能モジュール130に対してのみ電子署名情報が付加されるので、個別機能モジュール130の動作をさらに確実に保証することができる。
なお、上記第1および第2の実施の形態においては、リソース換算テーブル22は、各テストモジュールについて決定された換算率のうち最大値を登録して構成したが、これに限らず、各テストモジュールについて決定された換算率のうち平均値を登録して構成することもできる。
これにより、リソース換算テーブル22には、各テストモジュールについて決定された換算率のうち平均値が登録されているので、機能モジュールの動作をある程度の確実性をもって保証することができるとともにネットワークプリンタで使用されるリソースの量を抑制することができる。
また、上記第1および第2の実施の形態においては、個別機能モジュール130が使用するリソースの量が上限に達したことを示すログ情報を生成するように構成したが、これに限らず、個別機能モジュール130が使用するリソースの量が上限に達したことを示すメッセージを表示装置44に表示するように構成することもできる。
また、上記第1および第2の実施の形態においては、リソース換算テーブル22に換算率として「1」を登録した例を示したが、これに限らず、ホスト端末100とネットワークプリンタの仕様の差異によってはそれ以外の値を登録することもできる。
また、上記第1および第2の実施の形態においては、リソースの量として使用メモリ量および起動クラス数を制限するように構成したが、これに限らず、ソケット接続数、ファイル接続数、ファイル数、ファイル容量、クラスサイズ、ZIPメモリ容量、CPU利用量、ソケット通信量およびファイル読み書き量を制限するように構成することもできる。
また、上記第1ないし第4の実施の形態において、図10ないし図17、図24、図27および図31のフローチャートに示す処理を実行するにあたってはいずれも、ROM32にあらかじめ格納されている制御プログラムを実行する場合について説明したが、これに限らず、これらの手順を示したプログラムが記憶された記憶媒体から、そのプログラムをRAM34に読み込んで実行するようにしてもよい。
また、上記第3の実施の形態において、図26のフローチャートに示す処理を実行するにあたってはいずれも、ネットワークプリンタのROMにあらかじめ格納されている制御プログラムを実行する場合について説明したが、これに限らず、これらの手順を示したプログラムが記憶された記憶媒体から、そのプログラムをネットワークプリンタのRAMに読み込んで実行するようにしてもよい。
ここで、記憶媒体とは、RAM、ROM等の半導体記憶媒体、FD、HD等の磁気記憶型記憶媒体、CD、CDV、LD、DVD等の光学的読取方式記憶媒体、MO等の磁気記憶型/光学的読取方式記憶媒体であって、電子的、磁気的、光学的等の読み取り方法のいかんにかかわらず、コンピュータで読み取り可能な記憶媒体であれば、あらゆる記憶媒体を含むものである。
また、上記第1ないし第4の実施の形態においては、本発明に係るリソース管理システムおよびリソース管理プログラム、並びにリソース管理方法を、ホスト端末100上のJAVA(登録商標)アプリケーションの実行環境において、ネットワークプリンタの動作を制御するためのJAVA(登録商標)クラスセットをエミュレーションする場合について適用したが、これに限らず、本発明の主旨を逸脱しない範囲で他の場合にも適用可能である。ネットワークプリンタに代えて、例えば、プロジェクタ、電子ペーパ、ホームゲートウェイ、パソコン、PDA(Personal Digital Assistant)、ネットワークストレージ、オーディオ機器、携帯電話、PHS(登録商標)(Personal Handyphone System)、ウォッチ型PDA、STB(Set Top Box)、POS(Point Of Sale)端末、FAX機、電話(IP電話等も含む。)、その他のデバイスに適用することができる。
JAVA(登録商標)ソフトウェアの構成を示す図である。 ホスト端末100の機能概要を示す機能ブロック図である。 ホスト端末100のハードウェア構成を示すブロック図である。 リソース制限情報400のデータ構造を示す図である。 モジュール情報420のデータ構造を示す図である。 実行環境情報登録テーブル440のデータ構造を示す図である。 リソース換算テーブル22のデータ構造を示す図である。 リソース管理テーブル460のデータ構造を示す図である。 イベントリスナテーブル480のデータ構造を示す図である。 個別機能モジュール制御処理を示すフローチャートである。 実行可否判定処理を示すフローチャートである。 モジュール起動処理を示すフローチャートである。 イベントリスナ登録処理を示すフローチャートである。 クラス読込処理を示すフローチャートである。 イベントリスナ制御処理を示すフローチャートである。 イベントリスナ実行処理を示すフローチャートである。 インスタンス削除処理を示すフローチャートである。 エラーが発生した場合のログファイルの内容を示す図である。 エラーが発生しない場合のログファイルの内容を示す図である。 リソース管理対象となる個別機能モジュールb,cを並列に実行した場合を示すタイムチャートである。 ホスト端末100の機能概要を示す機能ブロック図である。 リソース換算テーブル22のデータ構造を示す図である。 リソース管理テーブル460のデータ構造を示す図である。 実行可否判定処理を示すフローチャートである。 実行結果登録テーブル520のデータ構造を示す図である。 使用リソース量測定処理を示すフローチャートである。 リソース換算テーブル生成処理を示すフローチャートである。 ネットワークプリンタで3つのテストモジュールT1〜T3を実行した場合の実行結果を示す表である。 待機時間を「0」に設定し、ホスト端末100で3つのテストモジュールT1〜T3を実行した場合の実行結果を示す表である。 待機時間を「10」に設定し、ホスト端末100で3つのテストモジュールT1〜T3を実行した場合の実行結果を示す表である。 モジュール認証処理を示すフローチャートである。
符号の説明
100…ホスト端末, 110…OS, 120…共通機能モジュール, 130…個別機能モジュール, 10,16…リソース測定部, 12,20…リソース制限部, 14…個別機能モジュール管理部, 18…上限値取得部, 22…リソース換算テーブル, 24,28…リソース換算部, 26…ログ情報生成部, 30…CPU, 32…ROM, 34…RAM, 38…I/F, 40…入力装置, 42…記憶装置, 44…表示装置, 400…リソース制限情報, 420…モジュール情報, 440…実行環境情報登録テーブル, 460…リソース管理テーブル, 480…イベントリスナテーブル, 520…実行結果登録テーブル, 199…ネットワーク

Claims (18)

  1. 機能モジュールが使用するリソースを管理するリソース管理システムであって、
    前記機能モジュールが第1実行環境で使用するリソースの量を測定するリソース測定手段と、第2実行環境でのリソースの上限値を取得するリソース上限値取得手段と、前記リソース上限値取得手段で取得したリソースの上限値を、前記第1実行環境でのリソースの上限値に換算するリソース換算手段と、前記リソース測定手段で測定したリソースの量および前記リソース換算手段で換算したリソースの上限値に基づいてリソースの制限に関する通知を行うリソース制限通知手段とを備えることを特徴とするリソース管理システム。
  2. 第1機能モジュールと、その実行に前記第1機能モジュールを必要とする複数の第2機能モジュールとがが使用するリソースを管理するリソース管理システムであって、
    前記第2機能モジュールが第1実行環境で使用するリソースの量を測定するリソース測定手段と、第2実行環境でのリソースの上限値を取得するリソース上限値取得手段と、前記リソース上限値取得手段で取得したリソースの上限値を、前記第1実行環境でのリソースの上限値に換算するリソース換算手段と、前記リソース測定手段で測定したリソースの量および前記リソース換算手段で換算したリソースの上限値に基づいてリソースの制限に関する通知を行うリソース制限通知手段とを備えることを特徴とするリソース管理システム。
  3. 請求項2において、
    前記リソース測定手段は、前記第2機能モジュールが前記第1実行環境で使用するリソースの量、および前記第1機能モジュールが前記第1実行環境で当該第2機能モジュールの実行に使用するリソースの量を測定するようになっていることを特徴とするリソース管理システム。
  4. 第1機能モジュールと、その実行に前記第1機能モジュールを必要とする複数の第2機能モジュールとが使用するリソースを管理するリソース管理システムであって、
    前記第1機能モジュールが前記第1実行環境で前記第2機能モジュールの実行に使用するリソースの量を測定するリソース測定手段と、第2実行環境でのリソースの上限値を取得するリソース上限値取得手段と、前記リソース上限値取得手段で取得したリソースの上限値を、前記第1実行環境でのリソースの上限値に換算するリソース換算手段と、前記リソース測定手段で測定したリソースの量および前記リソース換算手段で換算したリソースの上限値に基づいてリソースの制限に関する通知を行うリソース制限通知手段とを備えることを特徴とするリソース管理システム。
  5. 請求項2ないし4のいずれか1項において、
    前記リソース測定手段で測定したリソースの量および前記リソース換算手段で換算したリソースの上限値に基づいて前記機能モジュールによるリソースの確保を禁止するリソース制限手段を備えることを特徴とするリソース管理システム。
  6. 請求項1ないし5のいずれか1項において、
    前記リソース換算手段は、前記第1実行環境で所定条件で使用されるリソースの量および前記第2実行環境で前記所定条件で使用されるリソースの量に基づき決定される換算率を登録したリソース換算テーブルに基づいて換算を行うようになっていることを特徴とするリソース管理システム。
  7. 請求項6において、
    前記リソース換算テーブルは、リソースの種別ごとに前記換算率を登録したものであり、
    前記リソース換算手段は、前記機能モジュールが使用するリソースの種別に応じて前記リソース換算テーブルから対応する前記換算率を取得し、取得した換算率に基づいて換算を行うようになっていることを特徴とするリソース管理システム。
  8. 請求項6および7のいずれか1項において、
    前記リソース換算テーブルは、リソースの使用形態ごとに前記換算率を登録したものであり、
    前記リソース換算手段は、前記機能モジュールが使用するリソースの形態に応じて前記リソース換算テーブルから対応する前記換算率を取得し、取得した換算率に基づいて換算を行うようになっていることを特徴とするリソース管理システム。
  9. 請求項6ないし8のいずれか1項において、
    前記リソース換算テーブルは、複数のテストモジュールのそれぞれについて、前記第1実行環境および前記第2実行環境で当該テストモジュールが使用するリソースの量に基づいて前記換算率が決定され、前記各テストモジュールについて決定された前記換算率のうち最大値を登録したものであることを特徴とするリソース管理システム。
  10. 請求項6ないし8のいずれか1項において、
    前記リソース換算テーブルは、複数のテストモジュールのそれぞれについて、前記第1実行環境および前記第2実行環境で当該テストモジュールが使用するリソースの量に基づいて前記換算率が決定され、前記各テストモジュールについて決定された前記換算率の平均値を登録したものであることを特徴とするリソース管理システム。
  11. 請求項1ないし10のいずれか1項において、
    前記リソース制限通知手段は、前記機能モジュールが使用するリソースの量が上限に達したことを示すメッセージを表示するようになっていることを特徴とするリソース管理システム。
  12. 請求項1ないし10のいずれか1項において、
    前記リソース制限通知手段は、前記機能モジュールが使用するリソースの量が上限に達したことを示すログ情報を生成するようになっていることを特徴とするリソース管理システム。
  13. 機能モジュールが使用するリソースを管理するリソース管理プログラムであって、
    前記機能モジュールが第1実行環境で使用するリソースの量を測定するリソース測定ステップと、第2実行環境でのリソースの上限値を取得するリソース上限値取得ステップと、前記リソース上限値取得ステップで取得したリソースの上限値を、前記第1実行環境でのリソースの上限値に換算するリソース換算ステップと、前記リソース測定ステップで測定したリソースの量および前記リソース換算ステップで換算したリソースの上限値に基づいてリソースの制限に関する通知を行うリソース制限通知ステップとからなる処理をコンピュータに実行させるためのプログラムを含むことを特徴とするリソース管理プログラム。
  14. 第1機能モジュールと、その実行に前記第1機能モジュールを必要とする複数の第2機能モジュールとが使用するリソースを管理するリソース管理プログラムであって、
    前記第2機能モジュールが第1実行環境で使用するリソースの量を測定するリソース測定ステップと、第2実行環境でのリソースの上限値を取得するリソース上限値取得ステップと、前記リソース上限値取得ステップで取得したリソースの上限値を、前記第1実行環境でのリソースの上限値に換算するリソース換算ステップと、前記リソース測定ステップで測定したリソースの量および前記リソース換算ステップで換算したリソースの上限値に基づいてリソースの制限に関する通知を行うリソース制限通知ステップとからなる処理をコンピュータに実行させるためのプログラムを含むことを特徴とするリソース管理プログラム。
  15. 第1機能モジュールと、その実行に前記第1機能モジュールを必要とする複数の第2機能モジュールとが使用するリソースを管理するリソース管理プログラムであって、
    前記第1機能モジュールが前記第1実行環境で前記第2機能モジュールの実行に使用するリソースの量を測定するリソース測定ステップと、第2実行環境でのリソースの上限値を取得するリソース上限値取得ステップと、前記リソース上限値取得ステップで取得したリソースの上限値を、前記第1実行環境でのリソースの上限値に換算するリソース換算ステップと、前記リソース測定ステップで測定したリソースの量および前記リソース換算ステップで換算したリソースの上限値に基づいてリソースの制限に関する通知を行うリソース制限通知ステップとからなる処理をコンピュータに実行させるためのプログラムを含むことを特徴とするリソース管理プログラム。
  16. 機能モジュールが使用するリソースを管理するリソース管理方法であって、
    前記機能モジュールが第1実行環境で使用するリソースの量を測定するリソース測定ステップと、第2実行環境でのリソースの上限値を取得するリソース上限値取得ステップと、前記リソース上限値取得ステップで取得したリソースの上限値を、前記第1実行環境でのリソースの上限値に換算するリソース換算ステップと、前記リソース測定ステップで測定したリソースの量および前記リソース換算ステップで換算したリソースの上限値に基づいてリソースの制限に関する通知を行うリソース制限通知ステップとを含むことを特徴とするリソース管理方法。
  17. 第1機能モジュールと、その実行に前記第1機能モジュールを必要とする複数の第2機能モジュールとが使用するリソースを管理するリソース管理方法であって、
    前記第2機能モジュールが第1実行環境で使用するリソースの量を測定するリソース測定ステップと、第2実行環境でのリソースの上限値を取得するリソース上限値取得ステップと、前記リソース上限値取得ステップで取得したリソースの上限値を、前記第1実行環境でのリソースの上限値に換算するリソース換算ステップと、前記リソース測定ステップで測定したリソースの量および前記リソース換算ステップで換算したリソースの上限値に基づいてリソースの制限に関する通知を行うリソース制限通知ステップとを含むことを特徴とするリソース管理方法。
  18. 第1機能モジュールと、その実行に前記第1機能モジュールを必要とする複数の第2機能モジュールとが使用するリソースを管理するリソース管理方法であって、
    前記第1機能モジュールが前記第1実行環境で前記第2機能モジュールの実行に使用するリソースの量を測定するリソース測定ステップと、第2実行環境でのリソースの上限値を取得するリソース上限値取得ステップと、前記リソース上限値取得ステップで取得したリソースの上限値を、前記第1実行環境でのリソースの上限値に換算するリソース換算ステップと、前記リソース測定ステップで測定したリソースの量および前記リソース換算ステップで換算したリソースの上限値に基づいてリソースの制限に関する通知を行うリソース制限通知ステップとを含むことを特徴とするリソース管理方法。
JP2005244162A 2005-02-01 2005-08-25 リソース管理システムおよびリソース管理プログラム、並びにリソース管理方法 Withdrawn JP2006244451A (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2005244162A JP2006244451A (ja) 2005-02-01 2005-08-25 リソース管理システムおよびリソース管理プログラム、並びにリソース管理方法
EP05257334A EP1686455A3 (en) 2005-02-01 2005-11-29 Resource managing system, resource managing program and resource managing method
US11/297,748 US20060173871A1 (en) 2005-02-01 2005-12-08 Resource managing system, resource managing program and resource managing method
KR1020050120756A KR100750770B1 (ko) 2005-02-01 2005-12-09 리소스 관리 시스템, 리소스 관리 방법 및 리소스 관리프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
TW094143559A TW200634550A (en) 2005-02-01 2005-12-09 Resource managing system, recording medium recording resource managing program and resource managing method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2005024983 2005-02-01
JP2005244162A JP2006244451A (ja) 2005-02-01 2005-08-25 リソース管理システムおよびリソース管理プログラム、並びにリソース管理方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2005340171A Division JP2006244457A (ja) 2005-02-01 2005-11-25 リソース管理システムおよびリソース管理プログラム、並びにリソース管理方法

Publications (1)

Publication Number Publication Date
JP2006244451A true JP2006244451A (ja) 2006-09-14

Family

ID=36228638

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005244162A Withdrawn JP2006244451A (ja) 2005-02-01 2005-08-25 リソース管理システムおよびリソース管理プログラム、並びにリソース管理方法

Country Status (5)

Country Link
US (1) US20060173871A1 (ja)
EP (1) EP1686455A3 (ja)
JP (1) JP2006244451A (ja)
KR (1) KR100750770B1 (ja)
TW (1) TW200634550A (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7665063B1 (en) 2004-05-26 2010-02-16 Pegasystems, Inc. Integration of declarative rule-based processing with procedural programming
US8335704B2 (en) 2005-01-28 2012-12-18 Pegasystems Inc. Methods and apparatus for work management and routing
JP4207938B2 (ja) * 2005-02-01 2009-01-14 セイコーエプソン株式会社 ソフトウェア認証システム、ソフトウェア認証プログラム、およびソフトウェア認証方法
US8924335B1 (en) 2006-03-30 2014-12-30 Pegasystems Inc. Rule-based user interface conformance methods
US8146079B2 (en) * 2006-07-26 2012-03-27 Hewlett-Packard Development Company, L.P. Systems and methods for controlling resource usage by a driver domain on behalf of a virtual machine
US8782671B2 (en) * 2006-07-26 2014-07-15 Hewlett-Packard Development Company, L. P. Systems and methods for flexibly controlling resource usage by a driver domain on behalf of a virtual machine
US8250525B2 (en) 2007-03-02 2012-08-21 Pegasystems Inc. Proactive performance management for multi-user enterprise software systems
US8843435B1 (en) 2009-03-12 2014-09-23 Pegasystems Inc. Techniques for dynamic data processing
US8468492B1 (en) 2009-03-30 2013-06-18 Pegasystems, Inc. System and method for creation and modification of software applications
CN103119587A (zh) * 2010-09-17 2013-05-22 甲骨文国际公司 基于上下文与继承性选择资源的方法与装置
US8880487B1 (en) 2011-02-18 2014-11-04 Pegasystems Inc. Systems and methods for distributed rules processing
US9195936B1 (en) 2011-12-30 2015-11-24 Pegasystems Inc. System and method for updating or modifying an application without manual coding
US10469396B2 (en) 2014-10-10 2019-11-05 Pegasystems, Inc. Event processing with enhanced throughput
US10698599B2 (en) 2016-06-03 2020-06-30 Pegasystems, Inc. Connecting graphical shapes using gestures
US10698647B2 (en) 2016-07-11 2020-06-30 Pegasystems Inc. Selective sharing for collaborative application usage
US11048488B2 (en) 2018-08-14 2021-06-29 Pegasystems, Inc. Software code optimizer and method
US11567945B1 (en) 2020-08-27 2023-01-31 Pegasystems Inc. Customized digital content generation systems and methods

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2002201C (en) * 1988-12-06 1999-04-27 John Charles Goettelmann Translation technique
US5488713A (en) * 1989-12-27 1996-01-30 Digital Equipment Corporation Computer simulation technique for predicting program performance
DE69534796T2 (de) * 1994-12-01 2006-10-12 Sharp K.K. Kommunikationseinrichtung
CA2185829C (en) * 1995-09-27 2007-09-25 Vadlamannati Venkateswar Two-dimensional modulation for line screen printing
US5845106A (en) * 1996-01-26 1998-12-01 Advanced Micro Devices, Inc. Method for simulating cache operation
US6101542A (en) * 1996-07-19 2000-08-08 Hitachi, Ltd. Service management method and connection oriented network system using such management method
JP2000514584A (ja) * 1996-10-25 2000-10-31 シュルンベルジェ システーム 高級プログラミング言語を用いたマイクロコントローラ
US6148401A (en) * 1997-02-05 2000-11-14 At&T Corp. System and method for providing assurance to a host that a piece of software possesses a particular property
US5915085A (en) * 1997-02-28 1999-06-22 International Business Machines Corporation Multiple resource or security contexts in a multithreaded application
US6105137A (en) * 1998-07-02 2000-08-15 Intel Corporation Method and apparatus for integrity verification, authentication, and secure linkage of software modules
US6405327B1 (en) * 1998-08-19 2002-06-11 Unisys Corporation Apparatus for and method of automatic monitoring of computer performance
US6581206B2 (en) * 1999-11-12 2003-06-17 Sun Microsystems, Inc. Computer program language subset validation
US20050100943A1 (en) * 2000-04-11 2005-05-12 Hideki Kambara Method of producing probe arrays for biological materials using fine particles
US6772106B1 (en) * 1999-08-20 2004-08-03 Hewlett-Packard Development Company, L.P. Retargetable computer design system
US6973417B1 (en) * 1999-11-05 2005-12-06 Metrowerks Corporation Method and system for simulating execution of a target program in a simulated target system
JP2002215423A (ja) * 2001-01-22 2002-08-02 Hitachi Ltd ソフトウェアモデル作成方法
US20020120660A1 (en) * 2001-02-28 2002-08-29 Hay Russell C. Method and apparatus for associating virtual server identifiers with processes
DE10118267A1 (de) * 2001-04-12 2002-10-24 Bosch Gmbh Robert Verfahren zur Authentifizierung eines Anwenders bei einem Zugang zu einem softwarebasierten System über ein Zugangsmedium
US6804691B2 (en) * 2002-03-21 2004-10-12 Hewlett-Packard Development Company, L.P. Method for optimization of memory usage for a computer program
JP2004185595A (ja) 2002-07-26 2004-07-02 Ricoh Co Ltd 情報処理装置およびそのプログラム
JP2004094782A (ja) 2002-09-03 2004-03-25 Ricoh Co Ltd リソース管理システム、プログラムおよび記録媒体
US20040167859A1 (en) * 2003-02-14 2004-08-26 Richard Mirabella Software license management system configurable for post-use payment business models
US7352152B2 (en) * 2003-04-04 2008-04-01 Fujifilm Corporation Portable electronic appliance with a battery having a wireless tag containing battery information
US20040226015A1 (en) * 2003-05-09 2004-11-11 Leonard Ozgur C. Multi-level computing resource scheduling control for operating system partitions
US20040267868A1 (en) * 2003-06-26 2004-12-30 International Business Machines Corporation Method for monitoring print jobs in a data processing network
JP4561275B2 (ja) * 2004-09-22 2010-10-13 富士ゼロックス株式会社 印刷システムとその制御方法

Also Published As

Publication number Publication date
US20060173871A1 (en) 2006-08-03
TW200634550A (en) 2006-10-01
KR20060088470A (ko) 2006-08-04
EP1686455A3 (en) 2008-04-16
KR100750770B1 (ko) 2007-08-20
EP1686455A2 (en) 2006-08-02

Similar Documents

Publication Publication Date Title
JP2006244451A (ja) リソース管理システムおよびリソース管理プログラム、並びにリソース管理方法
JP4232767B2 (ja) ソフトウェア認証システムおよびソフトウェア認証プログラム、並びにソフトウェア認証方法
US10042905B2 (en) Information processing apparatus, information processing system, and data conversion method
KR100679529B1 (ko) 리소스 관리 시스템, 프린터, 프린터용 네트워크 카드 및리소스 관리 프로그램을 기록한 컴퓨터 판독 가능한기록매체, 및 리소스 관리 방법
JP4207938B2 (ja) ソフトウェア認証システム、ソフトウェア認証プログラム、およびソフトウェア認証方法
JP2005050061A (ja) プッシュ型インストールシステム、情報処理装置、プッシュ型インストール方法およびプログラム
JP2008083800A (ja) サーバ装置、クライアント装置、サーバベースコンピューティングシステムおよびプログラム
US9250838B2 (en) Terminal device, output system, and output method
CN109726020B (zh) 系统对接方法、系统对接设备、存储介质及装置
CN101515982B (zh) 图像形成装置和信息处理方法
CN102693101A (zh) 信息处理装置
JP2018156129A (ja) 情報処理システム、情報処理装置及び情報処理方法
JP2009177828A (ja) 複合機、ユーザインタフェース提供装置、及びユーザインタフェース提供方法
CN111324645B (zh) 区块链的数据处理方法及装置
JP2010134705A (ja) 機器、ログ記録制御方法、及びプログラム
JP2006244457A (ja) リソース管理システムおよびリソース管理プログラム、並びにリソース管理方法
JP2006244456A (ja) リソース管理システム、リソース換算テーブル生成システム、ソフトウェア認証システム、リソース管理プログラム、リソース換算テーブル生成プログラムおよびソフトウェア認証プログラム、並びにリソース管理方法、リソース換算テーブル生成方法およびソフトウェア認証方法
JP2006293980A (ja) ソフトウェア認証システムおよびソフトウェア認証プログラム、並びにソフトウェア認証方法
CN112138397A (zh) 一种触发器管理方法、装置、计算机设备和存储介质
CN100367182C (zh) 资源管理系统、资源换算表生成系统以及软件认证系统
CN112506590A (zh) 接口调用方法、装置及电子设备
CN115858652A (zh) 一种数据转换方法、装置、计算机设备及存储介质
CN116243931A (zh) 数据的处理方法、装置、设备及介质
JP2007279976A (ja) 印刷システム
JP2009199334A (ja) 情報処理装置、画像形成装置および情報処理方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080624

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20080724