JP2006293974A - ソフトウェア認証システムおよびソフトウェア認証プログラム、並びにソフトウェア認証方法 - Google Patents

ソフトウェア認証システムおよびソフトウェア認証プログラム、並びにソフトウェア認証方法 Download PDF

Info

Publication number
JP2006293974A
JP2006293974A JP2005249530A JP2005249530A JP2006293974A JP 2006293974 A JP2006293974 A JP 2006293974A JP 2005249530 A JP2005249530 A JP 2005249530A JP 2005249530 A JP2005249530 A JP 2005249530A JP 2006293974 A JP2006293974 A JP 2006293974A
Authority
JP
Japan
Prior art keywords
resource
log information
upper limit
amount
software
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2005249530A
Other languages
English (en)
Other versions
JP4232767B2 (ja
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 JP2005249530A priority Critical patent/JP4232767B2/ja
Priority to EP05257352A priority patent/EP1703370A3/en
Priority to US11/297,747 priority patent/US20060206929A1/en
Priority to KR1020050120757A priority patent/KR100751159B1/ko
Priority to CNB2005100229064A priority patent/CN100370411C/zh
Priority to TW094143557A priority patent/TW200634568A/zh
Publication of JP2006293974A publication Critical patent/JP2006293974A/ja
Application granted granted Critical
Publication of JP4232767B2 publication Critical patent/JP4232767B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3612Software analysis for verifying properties of programs by runtime analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units

Landscapes

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

Abstract

【課題】リソースの量に関して、その実行環境への導入前に検証できるようにする。
【解決手段】ホスト端末は、個別機能モジュールがホスト端末で使用するリソースの量を測定し、測定したリソースの量を、ネットワークプリンタで使用するリソースの量に換算し、個別機能モジュールから上限値を取得し、換算したリソースの量および取得した上限値に基づいて、個別機能モジュールが使用するリソースの量が上限に達したことを示すログ情報を生成する。そして、ログファイルからログ情報を読み出し(S900)、読み出したログ情報に基づいて個別機能モジュールが使用するリソースの量が上限に達したか否かを判定し(S902)、リソースの量が上限に達していないと判定したときは、個別機能モジュールの実行ファイルに電子署名情報を付加する(S910)。
【選択図】図18

Description

本発明は、ソフトウェアを認証するシステムおよびプログラム、並びに方法に係り、特に、ソフトウェアの動作をその実行環境への導入前に検証することにより、ソフトウェアの開発を容易にするとともに安定性の高いソフトウェアを開発するのに好適なソフトウェア認証システムおよびソフトウェア認証プログラム、並びにソフトウェア認証方法に関する。
プリンタ等の組込機器には、組込用アプリケーションと呼ばれるソフトウェアを組み込んでその動作を制御している。しかしながら、組込用アプリケーションを作成するには、一般に専用の開発環境と専用のハードウェアを必要とするため、誰もが簡単に作成できるものではなかった。この問題を解決するために、特許文献1記載の情報処理装置が提案されている。
特許文献1記載の発明は、画像形成装置上で実行されるアプリケーションをPC上で実行できるエミュレータを有して構成されている。これにより、組込機器を用いなくても組込用アプリケーションを開発することができる。
また、プログラミング技術が未熟な人が作成する組込用アプリケーションは、予期せぬ動作を引き起こし、組込機器自体の動作が続行できなくなるという問題がある。この問題を解決するために、特許文献2記載のリソース管理システムが提案されている。
特許文献2記載の発明は、ソフトウェアが情報機器で実行するときに利用するリソースに対して動作可能な範囲を設定する制限設定部と、制限設定部で設定した動作可能な範囲内で動作していることを検証する動作範囲検証部とを有して構成されている。動作範囲検証部は、ソフトウェアからリソース利用要求があったときに、設定してある動作可能な範囲と要求されたリソースの量とを比較し、動作可能な範囲外のときにはそのソフトウェアの実行を中止させる。
特開2004−185595号公報 特開2004−94782号公報
特許文献1記載の発明では、組込用アプリケーションをPC上で仮想的に実行することができるため、組込用アプリケーションの動作をPC上である程度検証することができる。
しかしながら、組込用アプリケーションをPC上で実行した場合と、実際にその組込用アプリエーションを組込機器上で実行した場合とでは、その組込用アプリエーションがそれぞれの実行環境で使用するリソース(例えば、メモリ)の量が完全には一致しない。これは、組込用アプリケーションを実行する環境が異なることに起因する。例えば、組込用アプリケーションを実行するために、ライブラリを使用するが、このライブラリは、ハードウェア構成の違いからPC用と組込機器用とでそれぞれプログラム構造が異なる。そのため、同じ関数を使用する場合でも、PC上と組込機器上では、機能は同じであるがプログラム構造が異なるライブラリがリンクされてオブジェクトが生成される。それらオブジェクトは、プログラム構造が異なるので、当然に使用するリソースの量も完全には一致しない。したがって、PC上では適切に動作した組込用アプリケーションでも、実際に組込機器に組み込んだときに、使用するリソースの量が大きすぎるため、複数の組込用アプリケーションが組込機器上で起動した場合に、他の組込用アプリケーションと競合して動作が不安定となる可能性があった。特に、プリンタ等の組込機器は、PCと異なり使用可能なリソースの量が極端に少ないため、個々の組込用アプリケーションが使用するリソースの量を詳細に管理することは安定動作を実現する上で極めて重要である。
また、組込用アプリケーション自体またはそれが取り扱うファイルについては、ファイル名やパス名に一定の制限がある。PCでは使用することができる長さや文字種も組込機器では使用することができない場合がある。したがって、PC上では適切に動作した組込用アプリケーションでも、実際に組込機器に組み込んだときに、ファイル名やパス名が適切でないため、動作に不具合が生じる可能性があった。
一方、特許文献2記載の発明にあっては、あくまで組込用アプリケーションを組込機器上で実行した場合に動作が不安定になるのを防止するものであり、組込用アプリケーションが使用するリソースの量、ファイル名やパス名等を組込機器への導入前に検証することはできない。
このような問題は、組込用アプリケーションを組込機器上で実行する場合に限らず、特定の実行環境で実行させるソフトウェアを他の実行環境で開発するあらゆる場合についても同様に想定される。
そこで、本発明は、このような従来の技術の有する未解決の課題に着目してなされたものであって、ソフトウェアの動作をその実行環境への導入前に検証することにより、ソフトウェアの開発を容易にするとともに安定性の高いソフトウェアを開発するのに好適なソフトウェア認証システムおよびソフトウェア認証プログラム、並びにソフトウェア認証方法を提供することを目的としている。
〔形態1〕 上記目的を達成するために、形態1のソフトウェア認証システムは、
機能モジュールが第1実行環境で使用するリソースの量を測定するリソース測定手段と、前記リソース測定手段で測定したリソースの量を、前記機能モジュールが第2実行環境で使用するリソースの量に換算するリソース換算手段と、リソースの制限条件を示すリソース制限情報を取得するリソース制限情報取得手段と、前記リソース換算手段で換算したリソースの量および前記リソース制限情報取得手段で取得したリソース制限情報に基づいて、前記機能モジュールが使用するリソースの量が上限に達したことを示すログ情報を生成するログ情報生成手段とを備えるリソース管理システムにより生成された前記ログ情報に基づいて前記機能モジュールを含むソフトウェアを認証するソフトウェア認証システムであって、
前記ログ情報を取得するログ情報取得手段と、前記ログ情報取得手段で取得したログ情報に基づいて前記機能モジュールが使用するリソースの量が上限に達していないかを判定する動作判定手段と、前記動作判定手段が上限に達していないと判定したときは、前記ソフトウェアに認証情報を付加するソフトウェア認証手段とを備えることを特徴とする。
このような構成であれば、リソース管理システムでは、リソース測定手段により、機能モジュールが第1実行環境で使用するリソースの量が測定され、リソース換算手段により、測定されたリソースの量が、機能モジュールが第2実行環境で使用するリソースの量に換算される。また、リソース制限情報取得手段により、リソース制限情報が取得される。そして、ログ情報生成手段により、換算されたリソースの量および取得されたリソース制限情報に基づいて、機能モジュールが使用するリソースの量が上限に達したことを示すログ情報が生成される。
本システムでは、ログ情報取得手段により、このように生成されたログ情報が取得され、動作判定手段により、取得されたログ情報に基づいて機能モジュールが使用するリソースの量が上限に達したか否かが判定される。その結果、上限に達していないと判定されると、ソフトウェア認証手段により、ソフトウェアに認証情報が付加される。
これにより、機能モジュールが使用するリソースの量が上限に達しないソフトウェアに対してのみ認証情報が付加されるので、ソフトウェアの動作を比較的確実に保証することができる。したがって、従来に比して、ソフトウェアの開発を容易に行うことができるとともに安定性の高いソフトウェアを開発することができるという効果が得られる。
ここで、リソースとは、機能モジュールが使用可能な資源をいい、ハードウェア資源に限らず、ソフトウェア資源その他の資源が含まれる。以下、形態2および3のソフトウェア認証システム、形態5ないし7のソフトウェア認証プログラム、並びに形態9ないし14のソフトウェア認証方法において同じである。
また、リソースの量としては、例えば、機能モジュールが使用するメモリ量、または起動可能な機能モジュールの数が含まれる。また、例えば、機能モジュールを利用するアプリケーションが確保するリソースの量(メモリ量、機能モジュール数)が含まれる。以下、形態2および3のソフトウェア認証システム、形態5ないし7のソフトウェア認証プログラム、並びに形態9ないし14のソフトウェア認証方法において同じである。
また、ログ情報取得手段は、ログ情報を取得するようになっていればどのような構成であってもよく、例えば、入力装置等からログ情報を入力するようになっていてもよいし、外部の装置等からログ情報を獲得または受信するようになっていてもよいし、記憶装置や記憶媒体等からログ情報を読み出すようになっていてもよいし、機能モジュールその他のデータからログ情報を抽出するようになっていてもよい。したがって、取得には、少なくとも入力、獲得、受信、読出および抽出が含まれる。以下、形態2および3のソフトウェア認証システムにおいて同じである。
また、リソースの換算方法としては、例えば、次の方法が考えられる。第1の方法(一定割合換算方法)は、測定したリソース量に対して一定の割合のリソース量を増加または減少して換算後のリソース量を求める。第2の方法(一定量換算方法)は、測定したリソース量に関わらず、そのリソース量から一定量を増加または減少して換算後のリソース量を求める。第3の方法(定数換算方法)は、測定したリソース量に関わらず、そのリソース量を定数に置き換えて換算後のリソース量を求める。第4の方法(混合型換算方法)は、第1〜第3の方法のなかからリソースの種類または測定したリソース量に基づいて選択し、選択した方法により換算後のリソース量を求める。換算方法の選択は、例えば、次のように閾値A、Bを設定して行うことができる。リソース量<Aのときは、定数換算方法を選択し、A<リソース量<Bのときは、一定量換算方法を選択し、B<リソース量のときは、一定割合換算方法を選択する。ただし、A<Bである。以下、形態2のソフトウェア認証システム、形態5および6のソフトウェア認証プログラム、並びに形態9ないし12のソフトウェア認証方法において同じである。
また、リソースの制限条件としては、例えば、第2実行環境でのリソースの上限値を設定することができる。以下、形態5のソフトウェア認証プログラム、並びに形態9および10のソフトウェア認証方法において同じである。
また、認証情報とは、第2実行環境でソフトウェアを実行するときに実行の可否を判定するために利用される情報であって、セキュリティの観点からは、他人が複製できず、実行の可否を判定できる情報であることが好ましい。また、情報の形式は任意のものを採用することができる。以下、形態2および3のソフトウェア認証システム、形態5ないし7のソフトウェア認証プログラム、並びに形態9ないし14のソフトウェア認証方法において同じである。
また、本システムは、単一の装置、端末その他の機器として実現するようにしてもよいし、複数の装置、端末その他の機器を通信可能に接続したネットワークシステムとして実現するようにしてもよい。後者の場合、各構成要素は、それぞれ通信可能に接続されていれば、複数の機器等のうちいずれに属していてもよい。以下、形態2および3のソフトウェア認証システムにおいて同じである。
また、リソース管理システムのより具体的な構成としては、次の2つの構成を提案することができる。
第1の構成は、第1機能モジュールと、その実行に前記第1機能モジュールを必要とする複数の第2機能モジュールとを含むソフトウェアが使用するリソースを管理するリソース管理システムであって、前記第2機能モジュールが第1実行環境で使用するリソースの量を測定するリソース測定手段と、前記リソース測定手段で測定したリソースの量を、前記第2機能モジュールが第2実行環境で使用するリソースの量に換算するリソース換算手段と、前記第2実行環境でのリソースの制限条件を示すリソース制限情報を取得するリソース制限情報取得手段と、前記リソース換算手段で換算したリソースの量および前記リソース制限情報取得手段で取得したリソース制限情報に基づいて、前記機能モジュールが使用するリソースの量が上限に達したことを示すログ情報を生成するログ情報生成手段とを備える。
第2の構成は、第1機能モジュールと、その実行に前記第1機能モジュールを必要とする複数の第2機能モジュールとを含むソフトウェアが使用するリソースを管理するリソース管理システムであって、前記第1機能モジュールが前記第1実行環境で前記第2機能モジュールの実行に使用するリソースの量を測定するリソース測定手段と、前記リソース測定手段で測定したリソースの量を、前記第2機能モジュールが第2実行環境で使用するリソースの量に換算するリソース換算手段と、前記第2実行環境でのリソースの制限条件を示すリソース制限情報を取得するリソース制限情報取得手段と、前記リソース換算手段で換算したリソースの量および前記リソース制限情報取得手段で取得したリソース制限情報に基づいて、前記機能モジュールが使用するリソースの量が上限に達したことを示すログ情報を生成するログ情報生成手段とを備える。以下、形態5のソフトウェア認証プログラム、並びに形態9および10のソフトウェア認証方法において同じである。
〔形態2〕 さらに、形態2のソフトウェア認証システムは、
機能モジュールが第1実行環境で使用するリソースの量を測定するリソース測定手段と、第2実行環境でのリソースの上限値を取得するリソース上限値取得手段と、前記リソース上限値取得手段で取得したリソースの上限値を、前記第1実行環境でのリソースの上限値に換算するリソース換算手段と、前記リソース測定手段で測定したリソースの量および前記リソース換算手段で換算したリソースの上限値に基づいて、前記機能モジュールが使用するリソースの量が上限に達したことを示すログ情報を生成するログ情報生成手段とを備えるリソース管理システムにより生成された前記ログ情報に基づいて前記機能モジュールを含むソフトウェアを認証するソフトウェア認証システムであって、
前記ログ情報を取得するログ情報取得手段と、前記ログ情報取得手段で取得したログ情報に基づいて前記機能モジュールが使用するリソースの量が上限に達していないかを判定する動作判定手段と、前記動作判定手段が上限に達していないと判定したときは、前記ソフトウェアに認証情報を付加するソフトウェア認証手段とを備えることを特徴とする。
このような構成であれば、リソース管理システムでは、リソース測定手段により、機能モジュールが第1実行環境で使用するリソースの量が測定される。また、リソース上限値取得手段により、第2実行環境でのリソースの上限値が取得され、リソース換算手段により、取得されたリソースの上限値が、第1実行環境でのリソースの上限値に換算される。そして、ログ情報生成手段により、測定されたリソースの量および換算されたリソースの上限値に基づいて、機能モジュールが使用するリソースの量が上限に達したことを示すログ情報が生成される。
本システムでは、ログ情報取得手段により、このように生成されたログ情報が取得され、動作判定手段により、取得されたログ情報に基づいて機能モジュールが使用するリソースの量が上限に達したか否かが判定される。その結果、上限に達していないと判定されると、ソフトウェア認証手段により、ソフトウェアに認証情報が付加される。
これにより、機能モジュールが使用するリソースの量が上限に達しないソフトウェアに対してのみ認証情報が付加されるので、ソフトウェアの動作を比較的確実に保証することができる。したがって、従来に比して、ソフトウェアの開発を容易に行うことができるとともに安定性の高いソフトウェアを開発することができるという効果が得られる。
ここで、リソース管理システムのより具体的な構成としては、次の2つの構成を提案することができる。
第1の構成は、第1機能モジュールと、その実行に前記第1機能モジュールを必要とする複数の第2機能モジュールとを含むソフトウェアが使用するリソースを管理するリソース管理システムであって、前記第2機能モジュールが第1実行環境で使用するリソースの量を測定するリソース測定手段と、第2実行環境でのリソースの上限値を取得するリソース上限値取得手段と、前記リソース上限値取得手段で取得したリソースの上限値を、前記第1実行環境でのリソースの上限値に換算するリソース換算手段と、前記リソース測定手段で測定したリソースの量および前記リソース換算手段で換算したリソースの上限値に基づいて、前記機能モジュールが使用するリソースの量が上限に達したことを示すログ情報を生成するログ情報生成手段とを備える。
第2の構成は、第1機能モジュールと、その実行に前記第1機能モジュールを必要とする複数の第2機能モジュールとを含むソフトウェアが使用するリソースを管理するリソース管理システムであって、前記第1機能モジュールが前記第1実行環境で前記第2機能モジュールの実行に使用するリソースの量を測定するリソース測定手段と、第2実行環境でのリソースの上限値を取得するリソース上限値取得手段と、前記リソース上限値取得手段で取得したリソースの上限値を、前記第1実行環境でのリソースの上限値に換算するリソース換算手段と、前記リソース測定手段で測定したリソースの量および前記リソース換算手段で換算したリソースの上限値に基づいて、前記機能モジュールが使用するリソースの量が上限に達したことを示すログ情報を生成するログ情報生成手段とを備える。以下、形態6のソフトウェア認証プログラム、並びに形態11および12のソフトウェア認証方法において同じである。
〔形態3〕 さらに、形態3のソフトウェア認証システムは、
第1実行環境とは異なる第2実行環境で機能モジュールが使用するリソースの使用状況を監視するリソース監視手段と、前記リソース監視手段の監視結果に基づいて前記リソース使用状況を示すログ情報を生成するログ情報生成手段とを備えるリソース管理システムにより生成された前記ログ情報に基づいて前記機能モジュールを含むソフトウェアを認証するソフトウェア認証システムであって、
前記ログ情報を取得するログ情報取得手段と、前記ログ情報取得手段で取得したログ情報に基づいて前記リソース使用状況が前記第1実行環境に適合するかを判定する動作判定手段と、前記動作判定手段が適合すると判定したときは、前記ソフトウェアに認証情報を付加するソフトウェア認証手段とを備えることを特徴とする。
このような構成であれば、リソース管理システムでは、リソース監視手段により、機能モジュールが第2実行環境で使用するリソースの使用状況が監視され、ログ情報生成手段により、その監視結果に基づいてリソース使用状況を示すログ情報が生成される。
本システムでは、ログ情報取得手段により、このように生成されたログ情報が取得され、動作判定手段により、取得されたログ情報に基づいてリソース使用状況が第1実行環境に適合するか否かが判定される。その結果、リソース使用状況が適合すると判定されると、ソフトウェア認証手段により、ソフトウェアに認証情報が付加される。
これにより、機能モジュールが使用するリソースの使用状況が第1実行環境に適合するソフトウェアに対してのみ認証情報が付加されるので、ソフトウェアの動作を比較的確実に保証することができる。したがって、従来に比して、ソフトウェアの開発を容易に行うことができるとともに安定性の高いソフトウェアを開発することができるという効果が得られる。
ここで、リソース使用状況としては、例えば、機能モジュール自体またはそれが取り扱うファイルについてのファイル名およびパス名の長さ、ファイル名およびパス名に使用される文字種が含まれる。以下、形態7のソフトウェア認証プログラム、並びに形態13および14のソフトウェア認証方法において同じである。
〔形態4〕 さらに、形態4のソフトウェア認証システムは、形態1ないし3のいずれか1のソフトウェア認証システムにおいて、
前記機能モジュールの実行に必要な実行ファイルを取得する実行ファイル取得手段と、前記実行ファイル取得手段で取得した実行ファイルに基づいて、前記機能モジュールを構成する命令または命令群が前記第1実行環境で実行可能な命令または命令群のみからなるかを判定する第2動作判定手段とを備え、
前記ソフトウェア認証手段は、前記第2動作判定手段が前記第1実行環境で実行可能な命令または命令群のみからなると判定したときは、前記ソフトウェアに前記認証情報を付加するようになっていることを特徴とする。
このような構成であれば、実行ファイル取得手段により、機能モジュールの実行に必要な実行ファイルが取得され、第2動作判定手段により、取得された実行ファイルに基づいて、機能モジュールを構成する命令または命令群が第1実行環境で実行可能な命令または命令群のみからなるか否かが判定される。その結果、第1実行環境で実行可能な命令または命令群のみからなると判定されると、ソフトウェア認証手段により、ソフトウェアに認証情報が付加される。
これにより、機能モジュールを構成する命令または命令群が第1実行環境で実行可能な命令または命令群のみからなるソフトウェアに対してのみ認証情報が付加されるので、ソフトウェアの動作をさらに確実に保証することができる。
〔形態5〕 一方、上記目的を達成するために、形態5のソフトウェア認証プログラムは、
機能モジュールが第1実行環境で使用するリソースの量を測定するリソース測定手段と、前記リソース測定手段で測定したリソースの量を、前記機能モジュールが第2実行環境で使用するリソースの量に換算するリソース換算手段と、リソースの制限条件を示すリソース制限情報を取得するリソース制限情報取得手段と、前記リソース換算手段で換算したリソースの量および前記リソース制限情報取得手段で取得したリソース制限情報に基づいて、前記機能モジュールが使用するリソースの量が上限に達したことを示すログ情報を生成するログ情報生成手段とを備えるリソース管理システムにより生成された前記ログ情報に基づいて前記機能モジュールを含むソフトウェアを認証するソフトウェア認証プログラムであって、
前記ログ情報を取得するログ情報取得ステップと、前記ログ情報取得ステップで取得したログ情報に基づいて前記機能モジュールが使用するリソースの量が上限に達していないかを判定する動作判定ステップと、前記動作判定ステップで上限に達していないと判定したときは、前記ソフトウェアに認証情報を付加するソフトウェア認証ステップとからなる処理をコンピュータに実行させるためのプログラムを含むことを特徴とする。
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、形態1のソフトウェア認証システムと同等の作用および効果が得られる。
ここで、ログ情報取得ステップは、ログ情報を取得すればどのような形態であってもよく、例えば、入力装置等からログ情報を入力してもよいし、外部の装置等からログ情報を獲得または受信してもよいし、記憶装置や記憶媒体等からログ情報を読み出してもよいし、機能モジュールその他のデータからログ情報を抽出してもよい。したがって、取得には、少なくとも入力、獲得、受信、読出および抽出が含まれる。以下、形態6および7のソフトウェア認証プログラム、並びに形態9ないし14のソフトウェア認証方法において同じである。
〔形態6〕 さらに、形態6のソフトウェア認証プログラムは、
機能モジュールが第1実行環境で使用するリソースの量を測定するリソース測定手段と、第2実行環境でのリソースの上限値を取得するリソース上限値取得手段と、前記リソース上限値取得手段で取得したリソースの上限値を、前記第1実行環境でのリソースの上限値に換算するリソース換算手段と、前記リソース測定手段で測定したリソースの量および前記リソース換算手段で換算したリソースの上限値に基づいて、前記機能モジュールが使用するリソースの量が上限に達したことを示すログ情報を生成するログ情報生成手段とを備えるリソース管理システムにより生成された前記ログ情報に基づいて前記機能モジュールを含むソフトウェアを認証するソフトウェア認証プログラムであって、
前記ログ情報を取得するログ情報取得ステップと、前記ログ情報取得ステップで取得したログ情報に基づいて前記機能モジュールが使用するリソースの量が上限に達していないかを判定する動作判定ステップと、前記動作判定ステップで上限に達していないと判定したときは、前記ソフトウェアに認証情報を付加するソフトウェア認証ステップとからなる処理をコンピュータに実行させるためのプログラムを含むことを特徴とする。
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、形態2のソフトウェア認証システムと同等の作用および効果が得られる。
〔形態7〕 さらに、形態7のソフトウェア認証プログラムは、
第1実行環境とは異なる第2実行環境で機能モジュールが使用するリソースの使用状況を監視するリソース監視手段と、前記リソース監視手段の監視結果に基づいて前記リソース使用状況を示すログ情報を生成するログ情報生成手段とを備えるリソース管理システムにより生成された前記ログ情報に基づいて前記機能モジュールを含むソフトウェアを認証するソフトウェア認証プログラムであって、
前記ログ情報を取得するログ情報取得ステップと、前記ログ情報取得ステップで取得したログ情報に基づいて前記リソース使用状況が前記第1実行環境に適合するかを判定する動作判定ステップと、前記動作判定ステップで適合すると判定したときは、前記ソフトウェアに認証情報を付加するソフトウェア認証ステップとからなる処理をコンピュータに実行させるためのプログラムを含むことを特徴とする。
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、形態3のソフトウェア認証システムと同等の作用および効果が得られる。
〔形態8〕 さらに、形態8のソフトウェア認証プログラムは、形態5ないし7のいずれか1のソフトウェア認証プログラムにおいて、
前記機能モジュールの実行に必要な実行ファイルを取得する実行ファイル取得ステップと、前記実行ファイル取得ステップで取得した実行ファイルに基づいて、前記機能モジュールを構成する命令または命令群が前記第1実行環境で実行可能な命令または命令群のみからなるかを判定する第2動作判定ステップとからなる処理をコンピュータに実行させるためのプログラムを含み、
前記ソフトウェア認証ステップは、前記第2動作判定ステップで前記第1実行環境で実行可能な命令または命令群のみからなると判定したときは、前記ソフトウェアに前記認証情報を付加することを特徴とする。
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、形態4のソフトウェア認証システムと同等の作用および効果が得られる。
〔形態9〕 一方、上記目的を達成するために、形態9のソフトウェア認証方法は、
機能モジュールが第1実行環境で使用するリソースの量を測定するリソース測定手段と、前記リソース測定手段で測定したリソースの量を、前記機能モジュールが第2実行環境で使用するリソースの量に換算するリソース換算手段と、リソースの制限条件を示すリソース制限情報を取得するリソース制限情報取得手段と、前記リソース換算手段で換算したリソースの量および前記リソース制限情報取得手段で取得したリソース制限情報に基づいて、前記機能モジュールが使用するリソースの量が上限に達したことを示すログ情報を生成するログ情報生成手段とを備えるリソース管理システムにより生成された前記ログ情報に基づいて前記機能モジュールを含むソフトウェアを認証するソフトウェア認証方法であって、
前記ログ情報を取得するログ情報取得ステップと、前記ログ情報取得ステップで取得したログ情報に基づいて前記機能モジュールが使用するリソースの量が上限に達していないかを判定する動作判定ステップと、前記動作判定ステップで上限に達していないと判定したときは、前記ソフトウェアに認証情報を付加するソフトウェア認証ステップとを含むことを特徴とする。
これにより、形態1のソフトウェア認証システムと同等の効果が得られる。
〔形態10〕 さらに、形態10のソフトウェア認証方法は、
機能モジュールが第1実行環境で使用するリソースの量を測定するリソース測定手段と、前記リソース測定手段で測定したリソースの量を、前記機能モジュールが第2実行環境で使用するリソースの量に換算するリソース換算手段と、リソースの制限条件を示すリソース制限情報を取得するリソース制限情報取得手段と、前記リソース換算手段で換算したリソースの量および前記リソース制限情報取得手段で取得したリソース制限情報に基づいて、前記機能モジュールが使用するリソースの量が上限に達したことを示すログ情報を生成するログ情報生成手段とを備えるリソース管理システムにより生成された前記ログ情報に基づいて前記機能モジュールを含むソフトウェアを認証するソフトウェア認証方法であって、
演算手段が、前記ログ情報を取得するログ情報取得ステップと、
前記演算手段が、前記ログ情報取得ステップで取得したログ情報に基づいて前記機能モジュールが使用するリソースの量が上限に達していないかを判定する動作判定ステップと、
前記動作判定ステップで上限に達していないと判定したときは、前記演算手段が、前記ソフトウェアに認証情報を付加するソフトウェア認証ステップとを含むことを特徴とする。
これにより、形態1のソフトウェア認証システムと同等の効果が得られる。
〔形態11〕 さらに、形態11のソフトウェア認証方法は、
機能モジュールが第1実行環境で使用するリソースの量を測定するリソース測定手段と、第2実行環境でのリソースの上限値を取得するリソース上限値取得手段と、前記リソース上限値取得手段で取得したリソースの上限値を、前記第1実行環境でのリソースの上限値に換算するリソース換算手段と、前記リソース測定手段で測定したリソースの量および前記リソース換算手段で換算したリソースの上限値に基づいて、前記機能モジュールが使用するリソースの量が上限に達したことを示すログ情報を生成するログ情報生成手段とを備えるリソース管理システムにより生成された前記ログ情報に基づいて前記機能モジュールを含むソフトウェアを認証するソフトウェア認証方法であって、
前記ログ情報を取得するログ情報取得ステップと、前記ログ情報取得ステップで取得したログ情報に基づいて前記機能モジュールが使用するリソースの量が上限に達していないかを判定する動作判定ステップと、前記動作判定ステップで上限に達していないと判定したときは、前記ソフトウェアに認証情報を付加するソフトウェア認証ステップとを含むことを特徴とする。
これにより、形態2のソフトウェア認証システムと同等の効果が得られる。
〔形態12〕 さらに、形態12のソフトウェア認証方法は、
機能モジュールが第1実行環境で使用するリソースの量を測定するリソース測定手段と、第2実行環境でのリソースの上限値を取得するリソース上限値取得手段と、前記リソース上限値取得手段で取得したリソースの上限値を、前記第1実行環境でのリソースの上限値に換算するリソース換算手段と、前記リソース測定手段で測定したリソースの量および前記リソース換算手段で換算したリソースの上限値に基づいて、前記機能モジュールが使用するリソースの量が上限に達したことを示すログ情報を生成するログ情報生成手段とを備えるリソース管理システムにより生成された前記ログ情報に基づいて前記機能モジュールを含むソフトウェアを認証するソフトウェア認証方法であって、
演算手段が、前記ログ情報を取得するログ情報取得ステップと、
前記演算手段が、前記ログ情報取得ステップで取得したログ情報に基づいて前記機能モジュールが使用するリソースの量が上限に達していないかを判定する動作判定ステップと、
前記動作判定ステップで上限に達していないと判定したときは、前記演算手段が、前記ソフトウェアに認証情報を付加するソフトウェア認証ステップとを含むことを特徴とする。
これにより、形態2のソフトウェア認証システムと同等の効果が得られる。
〔形態13〕 さらに、形態13のソフトウェア認証方法は、
第1実行環境とは異なる第2実行環境で機能モジュールが使用するリソースの使用状況を監視するリソース監視手段と、前記リソース監視手段の監視結果に基づいて前記リソース使用状況を示すログ情報を生成するログ情報生成手段とを備えるリソース管理システムにより生成された前記ログ情報に基づいて前記機能モジュールを含むソフトウェアを認証するソフトウェア認証方法であって、
前記ログ情報を取得するログ情報取得ステップと、前記ログ情報取得ステップで取得したログ情報に基づいて前記リソース使用状況が前記第1実行環境に適合するかを判定する動作判定ステップと、前記動作判定ステップで適合すると判定したときは、前記ソフトウェアに認証情報を付加するソフトウェア認証ステップとを含むことを特徴とする。
これにより、形態3のソフトウェア認証システムと同等の効果が得られる。
〔形態14〕 さらに、形態14のソフトウェア認証方法は、
第1実行環境とは異なる第2実行環境で機能モジュールが使用するリソースの使用状況を監視するリソース監視手段と、前記リソース監視手段の監視結果に基づいて前記リソース使用状況を示すログ情報を生成するログ情報生成手段とを備えるリソース管理システムにより生成された前記ログ情報に基づいて前記機能モジュールを含むソフトウェアを認証するソフトウェア認証方法であって、
演算手段が、前記ログ情報を取得するログ情報取得ステップと、
前記演算手段が、前記ログ情報取得ステップで取得したログ情報に基づいて前記リソース使用状況が前記第1実行環境に適合するかを判定する動作判定ステップと、
前記動作判定ステップで適合すると判定したときは、前記演算手段が、前記ソフトウェアに認証情報を付加するソフトウェア認証ステップとを含むことを特徴とする。
これにより、形態3のソフトウェア認証システムと同等の効果が得られる。
〔形態15〕 さらに、形態15のソフトウェア認証方法は、形態9ないし14のいずれか1のソフトウェア認証方法において、
前記機能モジュールの実行に必要な実行ファイルを取得する実行ファイル取得ステップと、前記実行ファイル取得ステップで取得した実行ファイルに基づいて、前記機能モジュールを構成する命令または命令群が前記第1実行環境で実行可能な命令または命令群のみからなるかを判定する第2動作判定ステップとを含み、
前記ソフトウェア認証ステップは、前記第2動作判定ステップで前記第1実行環境で実行可能な命令または命令群のみからなると判定したときは、前記ソフトウェアに前記認証情報を付加することを特徴とする。
これにより、形態4のソフトウェア認証システムと同等の効果が得られる。
以下、本発明の第1の実施の形態を図面を参照しながら説明する。図1ないし図21は、本発明に係るソフトウェア認証システムおよびソフトウェア認証プログラム、並びにソフトウェア認証方法の第1の実施の形態を示す図である。
本実施の形態は、本発明に係るソフトウェア認証システムおよびソフトウェア認証プログラム、並びにソフトウェア認証方法を、図2に示すように、ホスト端末100上のJAVA(登録商標)アプリケーションの実行環境において、ネットワークプリンタの動作を制御するためのJAVA(登録商標)クラスセットをエミュレーションする場合について適用したものである。
まず、本発明を適用するホスト端末100の機能概要を説明する。
図1は、JAVA(登録商標)ソフトウェアの構成を示す図である。
JAVA(登録商標)アプリケーションの実行環境では、JAVA(登録商標)クラスセットの実行を制御するJAVA(登録商標)クラスおよびJVM(Java(登録商標) Virtual Machine)からなる共通機能モジュールをOS(Operating System)上で実行し、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と、アプリケーション認証部140とを有して構成されている。
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が使用するリソースの量が上限に達したことを示すログ情報を生成する。
アプリケーション認証部140は、ログ情報生成部26が生成したログ情報を取得するログ情報取得部28と、ログ情報取得部28で取得したログ情報に基づいて個別機能モジュール130が使用するリソースの量が上限に達したか否かを判定する動作判定部30と、動作判定部30が上限に達していないと判定したときは、個別機能モジュール130に電子署名情報を付加するモジュール認証部32とを有して構成されている。
次に、ホスト端末100の構成を説明する。
図3は、ホスト端末100のハードウェア構成を示すブロック図である。
ホスト端末100は、図3に示すように、制御プログラムに基づいて演算およびシステム全体を制御するCPU50と、所定領域にあらかじめCPU50の制御プログラム等を格納しているROM52と、ROM52等から読み出したデータやCPU50の演算過程で必要な演算結果を格納するためのRAM54と、外部装置に対してデータの入出力を媒介するI/F58とで構成されており、これらは、データを転送するための信号線であるバス59で相互にかつデータ授受可能に接続されている。
I/F58には、外部装置として、ヒューマンインターフェースとしてデータの入力が可能なキーボードやマウス等からなる入力装置60と、データやテーブル等をファイルとして格納する記憶装置62と、画像信号に基づいて画面を表示する表示装置64と、ネットワーク199に接続するための信号線とが接続されている。
次に、記憶装置62のデータ構造を説明する。
記憶装置62は、共通機能モジュール120および複数の個別機能モジュール130を記憶している。
個別機能モジュール130は、ネットワークプリンタでのリソースの上限値を格納したリソース制限情報を含んで構成されている。
図4は、リソース制限情報400のデータ構造を示す図である。
リソース制限情報400は、図4に示すように、個別機能モジュール130および共通機能モジュール120がその個別機能モジュール130の実行に使用可能なメモリ(RAM54)の上限値を格納したフィールド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社の電子署名を受けていることを示している。
記憶装置62は、さらに、共通機能モジュール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を実行できることを示している。
記憶装置62は、さらに、リソース換算テーブル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およびネットワークプリンタでそのテストモジュールが使用するリソースの量に基づいて換算率を決定し、各テストモジュールについて決定された換算率のうち最大値が登録されている。
記憶装置62は、さらに、リソース管理対象となる各個別機能モジュール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として算出することができる。
記憶装置62は、さらに、個別機能モジュール130が受信するイベントを処理するイベントリスナを登録するイベントリスナテーブル480を記憶している。
図9は、イベントリスナテーブル480のデータ構造を示す図である。
イベントリスナテーブル480には、図9に示すように、個別機能モジュール130が登録するイベントリスナごとにレコードが登録される。各レコードは、イベントリスナの名称を登録するフィールド482を含んで登録されている。
図3に戻り、CPU50は、マイクロプロセッシングユニット等からなり、ROM52の所定領域に格納されている所定のプログラムを起動させ、そのプログラムに従って、図10、図14、図15、図17および図18のフローチャートに示す個別機能モジュール制御処理、クラス読込処理、イベントリスナ制御処理、インスタンス削除処理およびモジュール認証処理を共通機能モジュール120の処理としてそれぞれ時分割で実行する。
初めに、個別機能モジュール制御処理を説明する。
図10は、個別機能モジュール制御処理を示すフローチャートである。
個別機能モジュール制御処理は、個別機能モジュール130の削除および実行を制御する処理であって、CPU50において実行されると、図10に示すように、まず、ステップS100に移行する。
ステップS100では、実行すべき個別機能モジュール130の名称および削除すべき個別機能モジュール130の名称を実行環境情報登録テーブル440から取得し、ステップS102に移行して、削除すべき個別機能モジュール130が存在するか否かを判定し、削除すべき個別機能モジュール130が存在すると判定したとき(Yes)は、ステップS104に移行する。
ステップS104では、取得した名称に基づいて該当の個別機能モジュール130を記憶装置62から削除し、ステップS106に移行して、該当の個別機能モジュール130に含まれるモジュール情報420に基づいて、該当の個別機能モジュール130がリソース管理対象であるか否かを判定し、該当の個別機能モジュール130がリソース管理対象であると判定したとき(Yes)は、ステップS108に移行する。
ステップS108では、該当の個別機能モジュール130に対応するリソース管理テーブル460を記憶装置62から削除し、ステップS110に移行して、現在起動中のモジュール数を示す変数の値から「1」を減算し、ステップS102に移行する。
一方、ステップS106で、該当の個別機能モジュール130がリソース管理対象でないと判定したとき(No)は、ステップS102に移行する。
一方、ステップS102で、削除すべき個別機能モジュール130が存在しないと判定したとき(No)は、ステップS112に移行して、実行すべき個別機能モジュール130が存在するか否かを判定し、実行すべき個別機能モジュール130が存在すると判定したとき(Yes)は、ステップS114に移行する。
ステップS114では、現在起動中のモジュール数を示す変数の値が所定の上限値未満であるか否かを判定し、所定の上限値未満であると判定したとき(Yes)は、ステップS116に移行する。
ステップS116では、取得した名称に基づいて該当の個別機能モジュール130を記憶装置62から読み込み、ステップ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に移行して、モジュール数が上限に達したことを示すログ情報を生成し、生成したログ情報を記憶装置62のログファイルに記録し、一連の処理を終了して元の処理に復帰させる。
一方、ステップS112で、実行すべき個別機能モジュール130が存在しないと判定したとき(No)は、一連の処理を終了して元の処理に復帰させる。
次に、ステップS118の実行可否判定処理を説明する。
図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を記憶装置62から読み込み、ステップS211に移行する。
ステップS211では、個別機能モジュール130に含まれるリソース制限情報400から上限値を取得し、ステップS212に移行して、上限値の取得に成功したか否かを判定し、上限値の取得に成功したと判定したとき(Yes)は、ステップS214に移行する。
ステップS214では、取得した上限値が全メモリ残量未満であるか否かを判定し、全メモリ残量未満であると判定したとき(Yes)は、ステップS216に移行して、個別機能モジュール130の実行を許可することを示す戻り値を返却し、一連の処理を終了して元の処理に復帰させる。
一方、ステップS214で、取得した上限値が全メモリ残量以上であると判定したとき(No)は、ステップS217に移行して、上限値が全メモリ残量以上であることを示すログ情報を生成し、生成したログ情報を記憶装置62のログファイルに記録し、ステップS218に移行して、個別機能モジュール130の実行を許可しないことを示す戻り値を返却し、一連の処理を終了して元の処理に復帰させる。
一方、ステップS212で、上限値の取得に失敗したと判定したとき(No)、ステップS206で、対応可能な電子署名情報でないと判定したとき(No)、およびステップS202で、機種情報が一致しないと判定したとき(No)はいずれも、ステップS218に移行する。
一方、ステップS209で、実行環境情報登録テーブル440に対応するリソース換算テーブル22が存在しないと判定したとき(No)は、ステップS211に移行する。
一方、ステップS208で、個別機能モジュール130がリソース管理対象でないと判定したとき(No)は、ステップS216に移行する。
次に、ステップS130,S134のモジュール起動処理を説明する。
図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が使用するメモリ量が上限に達したことを示すログ情報を生成し、生成したログ情報を記憶装置62のログファイルに記録し、ステップS322に移行して、エラーを通知し、ステップS314に移行する。
一方、ステップS304で、リソース確保先の参照ポインタが設定されていないと判定したとき(No)は、ステップS324に移行して、読み込んだクラスのインスタンスをメモリ上に生成し、ステップS314に移行する。
一方、ステップS314で、インスタンスの生成に失敗したと判定したとき(No)、およびステップS302で、クラスの読込に失敗したと判定したとき(No)はいずれも、ステップS318に移行する。
次に、ステップS318のイベントリスナ登録処理を説明する。
図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が使用するメモリ量が上限に達したことを示すログ情報を生成し、生成したログ情報を記憶装置62のログファイルに記録し、ステップS420に移行して、エラーを通知し、ステップS414に移行する。
一方、ステップS404で、リソース確保先の参照ポインタが設定されていないと判定したとき(No)は、ステップS422に移行して、読み込んだイベントリスナクラスのインスタンスをメモリ上に生成し、ステップS414に移行する。
一方、ステップS414で、インスタンスの生成に失敗したと判定したとき(No)、およびステップS402で、イベントリスナクラスの読込に失敗したと判定したとき(No)はいずれも、一連の処理を終了して元の処理に復帰させる。
次に、クラス読込処理を説明する。
図14は、クラス読込処理を示すフローチャートである。
クラス読込処理は、クラス読込命令に応じてクラスを読み込む処理であって、CPU50において実行されると、図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が起動するクラス数が上限に達したことを示すログ情報を生成し、生成したログ情報を記憶装置62のログファイルに記録し、ステップS522に移行して、エラーを通知し、ステップS518に移行する。
一方、ステップS506で、該当の個別機能モジュール130がリソース管理対象でないと判定したとき(No)は、ステップS524に移行して、クラス読込命令に係るクラスを個別機能モジュール130から読み込み、ステップS526に移行して、読み込んだクラスをキャッシュテーブルに登録し、一連の処理を終了して元の処理に復帰させる。
一方、ステップS502で、クラス読込命令に係るクラスがキャッシュテーブルに登録されていると判定したとき(Yes)は、一連の処理を終了して元の処理に復帰させる。
次に、イベントリスナ制御処理を説明する。
図15は、イベントリスナ制御処理を示すフローチャートである。
イベントリスナ制御処理は、イベントリスナの実行を制御する処理であって、CPU50において実行されると、図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は、イベントリスナ実行処理を示すフローチャートである。
イベントリスナ実行処理は、ステップ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が使用するメモリ量が上限に達したことを示すログ情報を生成し、生成したログ情報を記憶装置62のログファイルに記録し、ステップS716に移行して、エラーを通知し、ステップS712に移行する。
一方、ステップS702で、実行すべき命令が存在しないと判定したとき(No)は、一連の処理を終了して元の処理に復帰させる。
次に、インスタンス削除処理を説明する。
図17は、インスタンス削除処理を示すフローチャートである。
インスタンス削除処理は、インスタンスを削除する処理であって、CPU50において実行されると、図17に示すように、まず、ステップS800に移行する。
ステップS800では、削除すべきインスタンスを登録したインスタンス削除リストを取得し、ステップS802に移行して、取得したインスタンス削除リストに基づいて、削除すべきインスタンスが存在するか否かを判定し、削除すべきインスタンスが存在すると判定したとき(Yes)は、ステップS804に移行する。
ステップS804では、該当のインスタンスからリソース確保先参照情報を取得し、ステップS805に移行して、リソース確保先参照情報の取得に成功したか否かを判定し、リソース確保先参照情報の取得に成功したと判定したとき(Yes)は、ステップS806に移行する。
ステップS806では、取得したリソース確保先参照情報に基づいてリソース確保先の参照ポインタを設定し、ステップS808に移行して、該当のインスタンスを削除し、ステップS810に移行して、該当のインスタンスの実行に必要なメモリ量を参照リソース管理テーブル460の使用メモリ量から減算し、ステップS812に移行する。
ステップS812では、リソース確保先の参照ポインタをクリアし、ステップS814に移行して、該当のインスタンスをインスタンス削除リストから削除し、ステップS802に移行する。
一方、ステップS805で、リソース確保先参照情報の取得に失敗したと判定したとき(No)は、ステップS816に移行して、該当のインスタンスを削除し、ステップS814に移行する。
一方、ステップS802で、削除すべきインスタンスが存在しないと判定したとき(No)は、一連の処理を終了して元の処理に復帰させる。
次に、モジュール認証処理を説明する。
図18は、モジュール認証処理を示すフローチャートである。
モジュール認証処理は、CPU50において実行されると、図18に示すように、まず、ステップS900に移行する。
ステップS900では、記憶装置62のログファイルからログ情報を読み出し、ステップS902に移行して、読み出したログ情報に基づいて、個別機能モジュール130の起動クラス数または使用メモリ量が上限に達したか否かを判定し、起動クラス数または使用メモリ量が上限に達していないと判定したとき(No)は、ステップS904に移行する。
ステップS904では、読み出したログ情報に基づいて、個別機能モジュール130がネットワークプリンタにインストール不可能である否かを判定し、個別機能モジュール130がインストール可能であると判定したとき(No)は、ステップS906に移行する。
ステップS906では、記憶装置62のログファイルに未処理のログ情報が存在するか否かを判定し、未処理のログ情報が存在しないと判定したとき(No)は、ステップS908に移行して、個別機能モジュール130の実行ファイルを記憶装置62から読み出し、ステップS910に移行する。
ステップS910では、読み出した実行ファイルに電子署名情報を付加し、ステップS912に移行して、電子署名情報を付加した実行ファイルを記憶装置62に保存し、一連の処理を終了して元の処理に復帰させる。
一方、ステップS906で、未処理のログ情報が存在すると判定したとき(Yes)は、ステップS900に移行する。
一方、ステップS904で、個別機能モジュール130がインストール不可能であると判定したとき(Yes)、およびステップS902で、起動クラス数または使用メモリ量が上限に達したと判定したとき(Yes)はいずれも、ステップS914に移行して、個別機能モジュール130が認証不可能であることを示すメッセージを表示装置64に表示し、一連の処理を終了して元の処理に復帰させる。
次に、本実施の形態の動作を説明する。
初めに、リソース管理対象となる個別機能モジュール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の使用メモリ量が減算される。
図19は、エラーが発生した場合のログファイルの内容を示す図である。
エラーが発生した場合、ログファイルには、図19に示すように、個別機能モジュール130が起動および停止したことを示すログ情報のほか、個別機能モジュール130の起動クラス数または使用メモリ量が上限に達したことを示すログ情報が記録される。
図20は、エラーが発生しない場合のログファイルの内容を示す図である。
これに対し、エラーが発生しない場合、ログファイルには、図20に示すように、個別機能モジュール130が起動および停止したことを示すログ情報のみが記録される。
次に、リソース管理対象でない個別機能モジュール130を実行する場合を説明する。
ホスト端末100では、個別機能モジュール制御処理が実行されると、ステップS116,S118を経て、該当の個別機能モジュール130が読み込まれ、読み込まれた個別機能モジュール130の実行可否が判定される。
個別機能モジュール130の実行が許可されると、ステップS134を経て、個別機能モジュール130が起動する。モジュール起動処理では、ステップS524,S324,S318を経て、個別機能モジュール130のクラスが読み込まれ、読み込まれたクラスのインスタンスが生成され、個別機能モジュール130のイベントリスナが登録される。イベントリスナ登録処理では、ステップS524,S422,S416を経て、イベントリスナクラスが読み込まれ、イベントリスナクラスのインスタンスが生成され、生成されたインスタンスのイベントリスナがイベントリスナ実行リストに登録される。
一方、ホスト端末100では、イベントリスナ制御処理が実行されると、ステップS616を経て、実行すべきイベントリスナに含まれる命令が実行される。
一方、ホスト端末100では、インスタンス削除処理が実行されると、削除すべきインスタンスが存在する場合は、ステップS816を経て、そのインスタンスが削除される。
図21は、リソース管理対象となる個別機能モジュールb,cを並列に実行した場合を示すタイムチャートである。
図21において、実線は、個別機能モジュール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では、ログファイルが生成されると、ステップS900〜S906を繰り返しを経て、ログファイルからログ情報が順次読み出され、個別機能モジュール130の起動クラス数または使用メモリ量が上限に達したか否か、および個別機能モジュール130がネットワークプリンタにインストール不可能であるか否かが判定される。図20に示すログファイルのように、ログファイルに含まれるすべてのログ情報について、起動クラス数または使用メモリ量が上限に達せずかつインストール可能であると判定されると、ステップS908〜S912を経て、個別機能モジュール130の実行ファイルが読み出され、読み出された実行ファイルに電子署名情報が付加されて保存される。
これに対し、図19に示すログファイルのように、ログファイルに含まれるいずれかのログ情報について、起動クラス数または使用メモリ量が上限に達しまたはインストール不可能であると判定されると、ステップS914を経て、認証不可能であることを示すメッセージが表示される。
このようにして、本実施の形態では、個別機能モジュール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の動作を比較的確実に保証することができる。
さらに、本実施の形態では、ログファイルからログ情報を読み出し、読み出したログ情報に基づいて個別機能モジュール130が使用するリソースの量が上限に達したか否かを判定し、リソースの量が上限に達していないと判定したときは、個別機能モジュール130の実行ファイルに電子署名情報を付加するようになっている。
これにより、使用するリソースの量が上限に達しない個別機能モジュール130に対してのみ電子署名情報が付加されるので、個別機能モジュール130の動作を比較的確実に保証することができる。
さらに、本実施の形態では、ログファイルからログ情報を読み出し、読み出したログ情報に基づいて個別機能モジュール130がネットワークプリンタにインストール不可能であるか否かを判定し、インストール可能であると判定したときは、個別機能モジュール130の実行ファイルに電子署名情報を付加するようになっている。
これにより、ネットワークプリンタにインストール可能である個別機能モジュール130に対してのみ電子署名情報が付加されるので、個別機能モジュール130の動作をさらに確実に保証することができる。
上記第1の実施の形態において、リソース測定部16およびステップS305,S405,S703は、形態1、5、9または10のリソース測定手段に対応し、リソース換算部24およびステップS306,S406,S509,S704は、形態1、5、9または10のリソース換算手段に対応している。また、上限値取得部18およびステップS211は、形態1、5、9または10のリソース制限情報取得手段に対応し、ログ情報生成部26およびステップS321,S419,S521,S715は、形態1、5、9または10のログ情報生成手段に対応している。
また、上記第1の実施の形態において、ログ情報取得部28およびステップS900は、形態1のログ情報取得手段に対応し、ステップS900は、形態5、9または10のログ情報取得ステップに対応し、動作判定部30およびステップS902は、形態1の動作判定手段に対応している。また、ステップS900は、形態5、9または10の動作判定ステップに対応し、モジュール認証部32およびステップS910は、形態1のソフトウェア認証手段に対応し、ステップS910は、形態5、9または10のソフトウェア認証ステップに対応している。
また、上記第1の実施の形態において、電子署名情報は、形態1、5、9または10の認証情報に対応し、CPU50は、形態10の演算手段に対応している。
次に、本発明の第2の実施の形態を図面を参照しながら説明する。図22ないし図25は、本発明に係るソフトウェア認証システムおよびソフトウェア認証プログラム、並びにソフトウェア認証方法の第2の実施の形態を示す図である。
本実施の形態は、本発明に係るソフトウェア認証システムおよびソフトウェア認証プログラム、並びにソフトウェア認証方法を、図22に示すように、ホスト端末100上のJAVA(登録商標)アプリケーションの実行環境において、ネットワークプリンタの動作を制御するためのJAVA(登録商標)クラスセットをエミュレーションする場合について適用したものであり、上記第1の実施の形態と異なるのは、リソースの上限値を換算する点にある。なお、以下、上記第1の実施の形態と異なる部分についてのみ説明し、上記第1の実施の形態と重複する部分については同一の符号を付して説明を省略する。
まず、本発明を適用するホスト端末100の機能概要を説明する。
図22は、ホスト端末100の機能概要を示す機能ブロック図である。
共通機能モジュール120は、図22に示すように、個別機能モジュール管理部14、リソース測定部16、上限値取得部18、リソース制限部20、リソース換算テーブル22およびログ情報生成部26のほか、リソースの量を換算するリソース換算部34を有して構成されている。
リソース換算部34は、リソース換算テーブル22に基づいて、上限値取得部18で取得したリソースの量を、ホスト端末100でのリソースの上限値に換算する。
リソース制限部20は、リソース測定部16で測定したリソースの量が、リソース換算部34で換算した上限値未満となるように、個別機能モジュール130が使用するリソースの量、および個別機能モジュール管理部14がその個別機能モジュール130の実行に使用するリソースの量を制限する。
ログ情報生成部26は、リソース測定部16で測定したリソースの量が、リソース換算部34で換算した上限値以上であると判定したときは、個別機能モジュール130が使用するリソースの量が上限に達したことを示すログ情報を生成する。
次に、ホスト端末100の構成を説明する。
記憶装置62は、図7のリソース換算テーブル22に代えて、図23のリソース換算テーブル22を記憶している。
図23は、リソース換算テーブル22のデータ構造を示す図である。
リソース換算テーブル22には、図23に示すように、リソースの種別または使用形態ごとに1つのレコードが登録されている。各レコードは、リソースの名称を登録するフィールド502と、換算率を登録するフィールド504とを含んで構成されている。
図23の例では、第1段目のレコードには、リソースの名称として「メモリ」が、換算率として「1」がそれぞれ登録されている。これは、個別機能モジュール130がネットワークプリンタでのメモリ量の上限値を換算率「1」で除算することにより、ホスト端末100でのメモリ量の上限値への換算を行うことを示している。
また、第2段目のレコードには、リソースの名称として「クラス数」が、換算率として「1」がそれぞれ登録されている。これは、個別機能モジュール130がネットワークプリンタで起動可能なクラス数の上限値を換算率「1」で除算することにより、ホスト端末100で起動可能なクラス数への換算を行うことを示している。
なお、リソース換算テーブル22には、複数のテストモジュールのそれぞれについて、ホスト端末100およびネットワークプリンタでそのテストモジュールが使用するリソースの量に基づいて換算率を決定し、各テストモジュールについて決定された換算率のうち最大値が登録されている。
記憶装置62は、さらに、図8のリソース管理テーブル460に代えて、図24のリソース管理テーブル460を記憶している。
図24は、リソース管理テーブル460のデータ構造を示す図である。
リソース管理テーブル460には、図24に示すように、リソースの種別ごとに1つのレコードが登録されている。各レコードは、リソースの名称を登録するフィールド462と、個別機能モジュール130がネットワークプリンタでのリソースの上限値を登録するフィールド464と、フィールド464の値を、ホスト端末100でのリソースの上限値に換算した値を登録するフィールド470と、個別機能モジュール130がホスト端末100で現在使用しているリソースの量を登録するフィールド466とを含んで登録されている。
図24の例では、第1段目のレコードには、上限値として「1000000」が、換算値として「666666」がそれぞれ登録されている。これは、個別機能モジュール130がネットワークプリンタでのメモリ量の上限値が1000000[byte]であり、ホスト端末100でのメモリ量の上限値に換算した値(以下、換算メモリ上限値という。)が666666[byte]であることを示している。換算メモリ上限値は、図23のリソース換算テーブル22を参照し、1000000/1.5=666666として算出することができる。
また、第2段目のレコードには、上限値として「100」が、換算値として「20」がそれぞれ登録されている。これは、個別機能モジュール130がネットワークプリンタで起動可能なクラス数の上限値が100個であり、ホスト端末100で起動可能なクラス数の上限値に換算した値(以下、換算クラス上限値という。)が20個であることを示している。換算クラス上限値は、図23のリソース換算テーブル22を参照し、20/1=20として算出することができる。
次に、ホスト端末100で実行される処理を説明する。
CPU50は、図11の実行可否判定処理に代えて、図25のフローチャートに示す実行可否判定処理を実行する。
図25は、実行可否判定処理を示すフローチャートである。
実行可否判定処理は、ステップS118において実行されると、図25に示すように、まず、ステップ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は、形態2、6、11または12のリソース測定手段に対応し、リソース換算部34およびステップS213は、形態2、6、11または12のリソース換算手段に対応している。また、上限値取得部18およびステップS211は、形態2、6、11または12のリソース上限値取得手段に対応し、ログ情報生成部26およびステップS321,S419,S521,S715は、形態2、6、11または12のログ情報生成手段に対応している。
また、上記第2の実施の形態において、ログ情報取得部28およびステップS900は、形態2のログ情報取得手段に対応し、ステップS900は、形態6、11または12のログ情報取得ステップに対応し、動作判定部30およびステップS902は、形態2の動作判定手段に対応している。また、ステップS900は、形態6、11または12の動作判定ステップに対応し、モジュール認証部32およびステップS910は、形態2のソフトウェア認証手段に対応し、ステップS910は、形態6、11または12のソフトウェア認証ステップに対応している。
また、上記第2の実施の形態において、電子署名情報は、形態2、6、11または12の認証情報に対応し、CPU50は、形態12の演算手段に対応している。
次に、本発明の第3の実施の形態を図面を参照しながら説明する。図26ないし図30は、本発明に係るソフトウェア認証システムおよびソフトウェア認証プログラム、並びにソフトウェア認証方法の第3の実施の形態を示す図である。
本実施の形態は、本発明に係るソフトウェア認証システムおよびソフトウェア認証プログラム、並びにソフトウェア認証方法を、図26に示すように、ホスト端末100上のJAVA(登録商標)アプリケーションの実行環境において、ネットワークプリンタの動作を制御するためのJAVA(登録商標)クラスセットをエミュレーションする場合について適用したものであり、上記第1および第2の実施の形態と異なるのは、ファイル操作に関するログ情報に基づいて個別機能モジュール130を認証する点にある。なお、以下、上記第1および第2の実施の形態と異なる部分についてのみ説明し、上記第1および第2の実施の形態と重複する部分については同一の符号を付して説明を省略する。
まず、本発明を適用するホスト端末100の機能概要を説明する。
図26は、ホスト端末100の機能概要を示す機能ブロック図である。
共通機能モジュール120は、図26に示すように、個別機能モジュール管理部14およびログ情報生成部26のほか、個別機能モジュール130が使用するリソースの使用状況を監視するリソース監視部36を有して構成されている。
ログ情報生成部26は、リソース監視部36の監視結果に基づいてリソース使用状況を示すログ情報を生成する。
次に、ホスト端末100の構成を説明する。
CPU50は、図16のイベントリスナ実行処理に代えて、図27のフローチャートに示すイベントリスナ実行処理を実行する。また、図18のモジュール認証処理に代えて、図28のフローチャートに示すモジュール認証処理を実行する。
初めに、イベントリスナ実行処理を説明する。
図27は、イベントリスナ実行処理を示すフローチャートである。
イベントリスナ実行処理は、ステップS610において実行されると、図27に示すように、まず、ステップS1000に移行する。
ステップS1000では、イベントリスナに含まれる命令リストの先頭にプログラムポインタを移動し、ステップS1002に移行して、プログラムポインタが指し示すアドレスに実行すべき命令が存在するか否かを判定し、実行すべき命令が存在すると判定したとき(Yes)は、ステップS1004に移行する。
ステップS1004では、実行すべき命令がファイル操作を行うファイル操作命令であるか否かを判定し、ファイル操作命令であると判定したとき(Yes)は、ステップS1006に移行する。ファイル操作としては、例えば、ファイルの作成、ファイルの読込、ファイルの書込、ファイルの削除、ファイル名の確認、ファイル名の変更、ファイル属性の確認、ファイル属性の変更、ディレクトリの作成、ディレクトリの削除、ディレクトリ名の確認、ディレクトリ名の変更、ディレクトリ属性の確認およびディレクトリ属性の変更が挙げられる。ファイルまたはディレクトリの属性としては、読込専用等のアクセス権の設定に関する属性が含まれる。
ステップS1006では、ファイル操作の対象となるファイル名およびパス名を含むログ情報を生成し、生成したログ情報を記憶装置62のログファイルに記録し、ステップS1008に移行する。
ステップS1008では、プログラムポインタが指し示すアドレスの命令を実行し、ステップS1010に移行して、イベントリスナに含まれる命令リストの次にプログラムポインタを移動し、ステップS1002に移行する。
一方、ステップS1004で、ファイル操作命令でないと判定したとき(No)は、ステップS1008に移行する。
一方、ステップS1002で、実行すべき命令が存在しないと判定したとき(No)は、一連の処理を終了して元の処理に復帰させる。
次に、モジュール認証処理を説明する。
図28は、モジュール認証処理を示すフローチャートである。
モジュール認証処理は、CPU50において実行されると、図28に示すように、まず、ステップS1100に移行する。
ステップS1100では、記憶装置62のログファイルからログ情報を読み出し、ステップS1102に移行して、読み出したログ情報がファイル操作に関するログ情報であるか否かを判定し、ファイル操作に関するログ情報であると判定したとき(Yes)は、ステップS1104に移行する。
ステップS1104では、読み出したログ情報からファイル名を取得し、ステップS1106に移行して、取得したファイル名が所定長(ネットワークプリンタプリンタで対応可能な長さ)以下であるか否かを判定し、ファイル名が所定長以下であると判定したとき(Yes)は、ステップS1108に移行する。
ステップS1108では、取得したファイル名にネットワークプリンタで使用できない文字種(漢字等)の文字が含まれているか否かを判定し、ファイル名に使用不可文字種の文字が含まれていないと判定したとき(No)は、ステップS1110に移行する。
ステップS1110では、読み出したログ情報からパス名を取得し、ステップS1112に移行して、取得したパス名が所定長以下であるか否かを判定し、パス名が所定長以下であると判定したとき(Yes)は、ステップS1114に移行する。
ステップS1114では、取得したパス名に使用不可文字種の文字が含まれているか否かを判定し、パス名に使用不可文字種の文字が含まれていないと判定したとき(No)は、ステップS1116に移行する。
ステップS1116では、記憶装置62のログファイルに未処理のログ情報が存在するか否かを判定し、未処理のログ情報が存在しないと判定したとき(No)は、ステップS1118に移行して、個別機能モジュール130の実行ファイルを記憶装置62から読み出し、ステップS1120に移行する。
ステップS1120では、読み出した実行ファイルに電子署名情報を付加し、ステップS1122に移行して、電子署名情報を付加した実行ファイルを記憶装置62に保存し、一連の処理を終了して元の処理に復帰させる。
一方、ステップS1116で、未処理のログ情報が存在すると判定したとき(Yes)は、ステップS1100に移行する。
一方、ステップS1106で、ファイル名が所定長よりも大きいと判定したとき(No)、ステップS1108で、ファイル名に使用不可文字種の文字が含まれていると判定したとき(Yes)、ステップS1112で、パス名が所定長よりも大きいと判定したとき(No)、およびステップS1114で、パス名に使用不可文字種の文字が含まれていると判定したとき(Yes)はいずれも、ステップS1124に移行して、個別機能モジュール130が認証不可能であることを示すメッセージを表示装置64に表示し、一連の処理を終了して元の処理に復帰させる。
一方、ステップS1102で、読み出したログ情報がファイル操作に関するログ情報でないと判定したとき(No)は、ステップS1116に移行する。
次に、本実施の形態の動作を説明する。
ホスト端末100では、個別機能モジュール130の実行によりファイル操作命令が実行されると、ステップS1006を経て、ファイル操作の対象となるファイル名およびパス名を含むログ情報が生成される。
図29および図30は、ファイル操作が行われた場合のログファイルの内容を示す図である。
ファイル操作が行われた場合、ログファイルには、図29および図30に示すように、個別機能モジュール130が起動および停止したことを示すログ情報と、ネットワークプリンタでのファイル名およびパス名の長さの上限値を示すログ情報と、ファイル操作の対象となったファイル名およびパス名を含むログ情報とが記録される。図29の例では、第3〜第5段目のレコードが、図30の例では、第3段目のレコードがファイル操作に関するログ情報を格納している。
ホスト端末100では、ログファイルが生成されると、ステップS1100〜S1116を繰り返しを経て、ログファイルからログ情報が順次読み出され、読み出されたログ情報からファイル名およびパス名が取得され、取得されたファイル名およびパス名が所定長以下であるか否か、および取得されたファイル名およびパス名に使用不可文字種の文字が含まれているか否かが判定される。図30に示すログファイルのように、ログファイルに含まれるファイル操作に関するすべてのログ情報について、ファイル名およびパス名が所定長以下であり、かつ、ファイル名およびパス名に使用不可文字種の文字が含まれていないと判定されると、ステップS1118〜S1122を経て、個別機能モジュール130の実行ファイルが読み出され、読み出された実行ファイルに電子署名情報が付加されて保存される。
これに対し、図29に示すログファイルのように、ログファイルに含まれるファイル操作に関するいずれかのログ情報について、ファイル名またはパス名が所定長よりも大きいと判定されると、ステップS1124を経て、認証不可能であることを示すメッセージが表示される。図29の例では、第4および第5段目のレコードがこれに該当する。
このようにして、本実施の形態では、ファイル操作に関するログ情報をログファイルから読み出し、読み出したログ情報に基づいてファイル名およびパス名が所定長以下であるか否かを判定し、所定長以下であると判定したときは、個別機能モジュール130の実行ファイルに電子署名情報を付加するようになっている。
これにより、ファイル操作の対象となるファイル名およびパス名がネットワークプリンタプリンタで対応可能な長さ以下の個別機能モジュール130に対してのみ電子署名情報が付加されるので、個別機能モジュール130の動作をさらに確実に保証することができる。
さらに、本実施の形態では、ファイル操作に関するログ情報をログファイルから読み出し、読み出したログ情報に基づいてファイル名およびパス名に使用不可文字種の文字が含まれているか否かを判定し、使用不可文字種の文字が含まれていないと判定したときは、個別機能モジュール130の実行ファイルに電子署名情報を付加するようになっている。
これにより、ファイル操作の対象となるファイル名およびパス名にネットワークプリンタで使用できない文字種の文字を含まない個別機能モジュール130に対してのみ電子署名情報が付加されるので、個別機能モジュール130の動作をさらに確実に保証することができる。
上記第3の実施の形態において、リソース監視部36およびステップS1004は、形態3、7、13または14のリソース監視手段に対応し、ログ情報生成部26およびステップS1006は、形態3、7、13または14のログ情報生成手段に対応し、ログ情報取得部28およびステップS1100は、形態3のログ情報取得手段に対応している。また、ステップS1100は、形態7、13または14のログ情報取得ステップに対応し、動作判定部30およびステップS1106,S1108,S1112,S1114は、形態3の動作判定手段に対応し、ステップS1106,S1108,S1112,S1114は、形態7、13または14の動作判定ステップに対応している。
また、上記第3の実施の形態において、モジュール認証部32およびステップS1120は、形態3のソフトウェア認証手段に対応し、ステップS1120は、形態7、13または14のソフトウェア認証ステップに対応し、電子署名情報は、形態3、7、13または14の認証情報に対応している。また、CPU50は、形態14の演算手段に対応している。
次に、本発明の第4の実施の形態を図面を参照しながら説明する。図31および図32は、本発明に係るソフトウェア認証システムおよびソフトウェア認証プログラム、並びにソフトウェア認証方法の第4の実施の形態を示す図である。
本実施の形態は、本発明に係るソフトウェア認証システムおよびソフトウェア認証プログラム、並びにソフトウェア認証方法を、ホスト端末100上のJAVA(登録商標)アプリケーションの実行環境において、ネットワークプリンタの動作を制御するためのJAVA(登録商標)クラスセットをエミュレーションする場合について適用したものであり、上記第1ないし第3の実施の形態と異なるのは、個別機能モジュール130の実行ファイルに基づいて個別機能モジュール130を認証する点にある。なお、以下、上記第1ないし第3の実施の形態と異なる部分についてのみ説明し、上記第1ないし第3の実施の形態と重複する部分については同一の符号を付して説明を省略する。
まず、ホスト端末100の構成を説明する。
CPU50は、図18のモジュール認証処理に代えて、図31のフローチャートに示すモジュール認証処理を実行する。
図31は、モジュール認証処理を示すフローチャートである。
モジュール認証処理は、CPU50において実行されると、図31に示すように、まず、ステップS1200に移行する。
ステップS1200では、個別機能モジュール130の実行ファイルを読み出し、ステップS1201に移行して、読み出した個別機能モジュール130の実行ファイルからクラスファイルリストを取得し、ステップS1202に移行して、取得したクラスファイルリストに基づいてクラスの検証を行うクラス検証処理を実行し、ステップS1204に移行する。
ステップS1204では、クラス検証処理からクラス不存在通知が出力されたか否かを判定し、クラス不存在通知が出力されないと判定したとき(No)は、ステップS1206に移行する。
ステップS1206では、記憶装置62のログファイルに未処理のログ情報が存在するか否かを判定し、未処理のログ情報が存在しないと判定したとき(No)は、ステップS1208に移行して、個別機能モジュール130の実行ファイルを記憶装置62から読み出し、ステップS1210に移行する。
ステップS1210では、読み出した実行ファイルに電子署名情報を付加し、ステップS1212に移行して、電子署名情報を付加した実行ファイルを記憶装置62に保存し、一連の処理を終了して元の処理に復帰させる。
一方、ステップS1206で、未処理のログ情報が存在すると判定したとき(Yes)は、ステップS1202に移行する。
一方、ステップS1204で、クラス不存在通知が出力されたと判定したとき(Yes)は、ステップS1214に移行して、個別機能モジュール130が認証不可能であることを示すメッセージを表示装置64に表示し、一連の処理を終了して元の処理に復帰させる。
次に、ステップS1202のクラス検証処理を説明する。
図32は、クラス検証処理を示すフローチャートである。
クラス検証処理は、ステップS1202において実行されると、図32に示すように、まず、ステップS1300に移行する。
ステップS1300では、取得したクラスファイルリストに基づいてクラスファイルを読み込み、ステップS1302に移行して、読み込んだクラスファイルからクラス定義リストを生成し、ステップS1304に移行する。
ステップS1304では、生成したクラス定義リストに未検証のクラス定義が存在するか否かを判定し、未検証のクラス定義が存在すると判定したとき(Yes)は、ステップS1306に移行して、クラスの読込に成功したか否かを判定し、クラスの読込に成功したと判定したとき(Yes)は、ステップS1308に移行する。
ステップS1308では、クラス定義に基づいてクラス解決パス上にクラスが存在するか否かを判定し、クラス解決パス上にクラスが存在しないと判定したとき(No)は、ステップS1310に移行して、クラス不存在通知を出力し、一連の処理を終了して元の処理に復帰させる。
一方、ステップS1308で、クラス解決パス上にクラスが存在すると判定したとき(Yes)は、ステップS1304に移行する。
一方、ステップS1306で、クラスの読込に失敗したと判定したとき(No)、およびステップS1304で、未検証のクラス定義が存在しないと判定したとき(No)はいずれも、一連の処理を終了して元の処理に復帰させる。
次に、本実施の形態の動作を説明する。
ホスト端末100では、ステップS1202〜S1206を繰り返し経て、個別機能モジュール130が使用するクラスが、ネットワークプリンタで実行可能なクラスのみからなるか否かが判定される。その結果、ネットワークプリンタで実行可能なクラスのみからなると判定されると、ステップS1208〜S1212を経て、個別機能モジュール130の実行ファイルが読み出され、読み出された実行ファイルに電子署名情報が付加されて保存される。
これに対し、個別機能モジュール130が使用するいずれかのクラスが、ネットワークプリンタで実行できないクラスであると判定されると、ステップS1214を経て、認証不可能であることを示すメッセージが表示される。
このようにして、本実施の形態では、個別機能モジュール130の実行ファイルを取得し、取得した実行ファイルに基づいて、個別機能モジュール130が使用するクラスが、ネットワークプリンタで実行可能なクラスのみからなるか否かを判定し、ネットワークプリンタで実行可能なクラスのみからなると判定したときは、個別機能モジュール130の実行ファイルに電子署名情報を付加するようになっている。
これにより、ネットワークプリンタで実行可能なクラスのみを使用する個別機能モジュール130に対してのみ電子署名情報が付加されるので、個別機能モジュール130の動作をさらに確実に保証することができる。例えば、悪意を持った開発者が、ホスト端末100からネットワークプリンタに移行する際に、クラスのバイナリを書き換えてしまうと、ネットワークプリンタで正しく動作しなくなる。このような不正行為も防止することができる。
上記第4の実施の形態において、ステップS1200は、形態4の実行ファイル取得手段、または形態8若しくは15の実行ファイル取得ステップに対応し、ステップS1204は、形態4の第2動作判定手段、または形態8若しくは15の第2動作判定ステップに対応している。また、ステップS1210は、形態4のソフトウェア認証手段、または形態8若しくは15のソフトウェア認証ステップに対応している。
なお、上記第1および第2の実施の形態においては、リソース換算テーブル22は、各テストモジュールについて決定された換算率のうち最大値を登録して構成したが、これに限らず、各テストモジュールについて決定された換算率のうち平均値を登録して構成することもできる。
これにより、リソース換算テーブル22には、各テストモジュールについて決定された換算率のうち平均値が登録されているので、機能モジュールの動作をある程度の確実性をもって保証することができるとともにネットワークプリンタで使用されるリソースの量を抑制することができる。
また、上記第1および第2の実施の形態においては、個別機能モジュール130が使用するリソースの量が上限に達したことを示すログ情報を生成するように構成したが、これに限らず、個別機能モジュール130が使用するリソースの量が上限に達したことを示すメッセージを表示装置64に表示するように構成することもできる。
また、上記第1および第2の実施の形態においては、リソース換算テーブル22に換算率として「1」を登録した例を示したが、これに限らず、ホスト端末100とネットワークプリンタの仕様の差異によってはそれ以外の値を登録することもできる。
また、上記第1および第2の実施の形態においては、リソースの量として使用メモリ量および起動クラス数を制限するように構成したが、これに限らず、ソケット接続数、ファイル接続数、ファイル数、ファイル容量、クラスサイズ、ZIPメモリ容量、CPU利用量、ソケット通信量およびファイル読み書き量を制限するように構成することもできる。
また、上記第1ないし第4の実施の形態をそれぞれ別々に構成したが、これに限らず、それらの形態を複合的に組み合わせて構成することができる。すなわち、ステップS902,S904の判定処理、ステップS1106,S1108,S1112,S1114の判定処理、およびステップS1204の判定処理を任意に組み合わせることができる。最も好ましいのは、これら判定処理に係るすべての認証条件を満たした場合にのみ、個別機能モジュール130に電子署名情報を付加することである。
また、上記第1ないし第4の実施の形態において、図10ないし図18、図25、図27、図28、図31および図32のフローチャートに示す処理を実行するにあたってはいずれも、ROM52にあらかじめ格納されている制御プログラムを実行する場合について説明したが、これに限らず、これらの手順を示したプログラムが記憶された記憶媒体から、そのプログラムをRAM54に読み込んで実行するようにしてもよい。
ここで、記憶媒体とは、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のデータ構造を示す図である。 実行可否判定処理を示すフローチャートである。 ホスト端末100の機能概要を示す機能ブロック図である。 イベントリスナ実行処理を示すフローチャートである。 モジュール認証処理を示すフローチャートである。 ファイル操作が行われた場合のログファイルの内容を示す図である。 ファイル操作が行われた場合のログファイルの内容を示す図である。 モジュール認証処理を示すフローチャートである。 クラス検証処理を示すフローチャートである。
符号の説明
100…ホスト端末, 110…OS, 120…共通機能モジュール, 130…個別機能モジュール, 10,16…リソース測定部, 12,20…リソース制限部, 14…個別機能モジュール管理部, 18…上限値取得部, 22…リソース換算テーブル, 24,34…リソース換算部, 26…ログ情報生成部, 28…ログ情報取得部, 30…動作判定部, 32…モジュール認証部, 36…リソース監視部, 50…CPU, 52…ROM, 54…RAM, 58…I/F, 60…入力装置, 62…記憶装置, 64…表示装置, 400…リソース制限情報, 420…モジュール情報, 440…実行環境情報登録テーブル, 460…リソース管理テーブル, 480…イベントリスナテーブル, 520…実行結果登録テーブル, 199…ネットワーク

Claims (10)

  1. 機能モジュールが第1実行環境で使用するリソースの量を測定するリソース測定手段と、前記リソース測定手段で測定したリソースの量を、前記機能モジュールが第2実行環境で使用するリソースの量に換算するリソース換算手段と、リソースの制限条件を示すリソース制限情報を取得するリソース制限情報取得手段と、前記リソース換算手段で換算したリソースの量および前記リソース制限情報取得手段で取得したリソース制限情報に基づいて、前記機能モジュールが使用するリソースの量が上限に達したことを示すログ情報を生成するログ情報生成手段とを備えるリソース管理システムにより生成された前記ログ情報に基づいて前記機能モジュールを含むソフトウェアを認証するソフトウェア認証システムであって、
    前記ログ情報を取得するログ情報取得手段と、前記ログ情報取得手段で取得したログ情報に基づいて前記機能モジュールが使用するリソースの量が上限に達していないかを判定する動作判定手段と、前記動作判定手段が上限に達していないと判定したときは、前記ソフトウェアに認証情報を付加するソフトウェア認証手段とを備えることを特徴とするソフトウェア認証システム。
  2. 機能モジュールが第1実行環境で使用するリソースの量を測定するリソース測定手段と、第2実行環境でのリソースの上限値を取得するリソース上限値取得手段と、前記リソース上限値取得手段で取得したリソースの上限値を、前記第1実行環境でのリソースの上限値に換算するリソース換算手段と、前記リソース測定手段で測定したリソースの量および前記リソース換算手段で換算したリソースの上限値に基づいて、前記機能モジュールが使用するリソースの量が上限に達したことを示すログ情報を生成するログ情報生成手段とを備えるリソース管理システムにより生成された前記ログ情報に基づいて前記機能モジュールを含むソフトウェアを認証するソフトウェア認証システムであって、
    前記ログ情報を取得するログ情報取得手段と、前記ログ情報取得手段で取得したログ情報に基づいて前記機能モジュールが使用するリソースの量が上限に達していないかを判定する動作判定手段と、前記動作判定手段が上限に達していないと判定したときは、前記ソフトウェアに認証情報を付加するソフトウェア認証手段とを備えることを特徴とするソフトウェア認証システム。
  3. 第1実行環境とは異なる第2実行環境で機能モジュールが使用するリソースの使用状況を監視するリソース監視手段と、前記リソース監視手段の監視結果に基づいて前記リソース使用状況を示すログ情報を生成するログ情報生成手段とを備えるリソース管理システムにより生成された前記ログ情報に基づいて前記機能モジュールを含むソフトウェアを認証するソフトウェア認証システムであって、
    前記ログ情報を取得するログ情報取得手段と、前記ログ情報取得手段で取得したログ情報に基づいて前記リソース使用状況が前記第1実行環境に適合するかを判定する動作判定手段と、前記動作判定手段が適合すると判定したときは、前記ソフトウェアに認証情報を付加するソフトウェア認証手段とを備えることを特徴とするソフトウェア認証システム。
  4. 請求項1ないし3のいずれか1項において、
    前記機能モジュールの実行に必要な実行ファイルを取得する実行ファイル取得手段と、前記実行ファイル取得手段で取得した実行ファイルに基づいて、前記機能モジュールを構成する命令または命令群が前記第1実行環境で実行可能な命令または命令群のみからなるかを判定する第2動作判定手段とを備え、
    前記ソフトウェア認証手段は、前記第2動作判定手段が前記第1実行環境で実行可能な命令または命令群のみからなると判定したときは、前記ソフトウェアに前記認証情報を付加するようになっていることを特徴とするソフトウェア認証システム。
  5. 機能モジュールが第1実行環境で使用するリソースの量を測定するリソース測定手段と、前記リソース測定手段で測定したリソースの量を、前記機能モジュールが第2実行環境で使用するリソースの量に換算するリソース換算手段と、リソースの制限条件を示すリソース制限情報を取得するリソース制限情報取得手段と、前記リソース換算手段で換算したリソースの量および前記リソース制限情報取得手段で取得したリソース制限情報に基づいて、前記機能モジュールが使用するリソースの量が上限に達したことを示すログ情報を生成するログ情報生成手段とを備えるリソース管理システムにより生成された前記ログ情報に基づいて前記機能モジュールを含むソフトウェアを認証するソフトウェア認証プログラムであって、
    前記ログ情報を取得するログ情報取得ステップと、前記ログ情報取得ステップで取得したログ情報に基づいて前記機能モジュールが使用するリソースの量が上限に達していないかを判定する動作判定ステップと、前記動作判定ステップで上限に達していないと判定したときは、前記ソフトウェアに認証情報を付加するソフトウェア認証ステップとからなる処理をコンピュータに実行させるためのプログラムを含むことを特徴とするソフトウェア認証プログラム。
  6. 機能モジュールが第1実行環境で使用するリソースの量を測定するリソース測定手段と、第2実行環境でのリソースの上限値を取得するリソース上限値取得手段と、前記リソース上限値取得手段で取得したリソースの上限値を、前記第1実行環境でのリソースの上限値に換算するリソース換算手段と、前記リソース測定手段で測定したリソースの量および前記リソース換算手段で換算したリソースの上限値に基づいて、前記機能モジュールが使用するリソースの量が上限に達したことを示すログ情報を生成するログ情報生成手段とを備えるリソース管理システムにより生成された前記ログ情報に基づいて前記機能モジュールを含むソフトウェアを認証するソフトウェア認証プログラムであって、
    前記ログ情報を取得するログ情報取得ステップと、前記ログ情報取得ステップで取得したログ情報に基づいて前記機能モジュールが使用するリソースの量が上限に達していないかを判定する動作判定ステップと、前記動作判定ステップで上限に達していないと判定したときは、前記ソフトウェアに認証情報を付加するソフトウェア認証ステップとからなる処理をコンピュータに実行させるためのプログラムを含むことを特徴とするソフトウェア認証プログラム。
  7. 第1実行環境とは異なる第2実行環境で機能モジュールが使用するリソースの使用状況を監視するリソース監視手段と、前記リソース監視手段の監視結果に基づいて前記リソース使用状況を示すログ情報を生成するログ情報生成手段とを備えるリソース管理システムにより生成された前記ログ情報に基づいて前記機能モジュールを含むソフトウェアを認証するソフトウェア認証プログラムであって、
    前記ログ情報を取得するログ情報取得ステップと、前記ログ情報取得ステップで取得したログ情報に基づいて前記リソース使用状況が前記第1実行環境に適合するかを判定する動作判定ステップと、前記動作判定ステップで適合すると判定したときは、前記ソフトウェアに認証情報を付加するソフトウェア認証ステップとからなる処理をコンピュータに実行させるためのプログラムを含むことを特徴とするソフトウェア認証プログラム。
  8. 機能モジュールが第1実行環境で使用するリソースの量を測定するリソース測定手段と、前記リソース測定手段で測定したリソースの量を、前記機能モジュールが第2実行環境で使用するリソースの量に換算するリソース換算手段と、リソースの制限条件を示すリソース制限情報を取得するリソース制限情報取得手段と、前記リソース換算手段で換算したリソースの量および前記リソース制限情報取得手段で取得したリソース制限情報に基づいて、前記機能モジュールが使用するリソースの量が上限に達したことを示すログ情報を生成するログ情報生成手段とを備えるリソース管理システムにより生成された前記ログ情報に基づいて前記機能モジュールを含むソフトウェアを認証するソフトウェア認証方法であって、
    前記ログ情報を取得するログ情報取得ステップと、前記ログ情報取得ステップで取得したログ情報に基づいて前記機能モジュールが使用するリソースの量が上限に達していないかを判定する動作判定ステップと、前記動作判定ステップで上限に達していないと判定したときは、前記ソフトウェアに認証情報を付加するソフトウェア認証ステップとを含むことを特徴とするソフトウェア認証方法。
  9. 機能モジュールが第1実行環境で使用するリソースの量を測定するリソース測定手段と、第2実行環境でのリソースの上限値を取得するリソース上限値取得手段と、前記リソース上限値取得手段で取得したリソースの上限値を、前記第1実行環境でのリソースの上限値に換算するリソース換算手段と、前記リソース測定手段で測定したリソースの量および前記リソース換算手段で換算したリソースの上限値に基づいて、前記機能モジュールが使用するリソースの量が上限に達したことを示すログ情報を生成するログ情報生成手段とを備えるリソース管理システムにより生成された前記ログ情報に基づいて前記機能モジュールを含むソフトウェアを認証するソフトウェア認証方法であって、
    前記ログ情報を取得するログ情報取得ステップと、前記ログ情報取得ステップで取得したログ情報に基づいて前記機能モジュールが使用するリソースの量が上限に達していないかを判定する動作判定ステップと、前記動作判定ステップで上限に達していないと判定したときは、前記ソフトウェアに認証情報を付加するソフトウェア認証ステップとを含むことを特徴とするソフトウェア認証方法。
  10. 第1実行環境とは異なる第2実行環境で機能モジュールが使用するリソースの使用状況を監視するリソース監視手段と、前記リソース監視手段の監視結果に基づいて前記リソース使用状況を示すログ情報を生成するログ情報生成手段とを備えるリソース管理システムにより生成された前記ログ情報に基づいて前記機能モジュールを含むソフトウェアを認証するソフトウェア認証方法であって、
    前記ログ情報を取得するログ情報取得ステップと、前記ログ情報取得ステップで取得したログ情報に基づいて前記リソース使用状況が前記第1実行環境に適合するかを判定する動作判定ステップと、前記動作判定ステップで適合すると判定したときは、前記ソフトウェアに認証情報を付加するソフトウェア認証ステップとを含むことを特徴とするソフトウェア認証方法。
JP2005249530A 2005-03-14 2005-08-30 ソフトウェア認証システムおよびソフトウェア認証プログラム、並びにソフトウェア認証方法 Expired - Fee Related JP4232767B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2005249530A JP4232767B2 (ja) 2005-03-14 2005-08-30 ソフトウェア認証システムおよびソフトウェア認証プログラム、並びにソフトウェア認証方法
EP05257352A EP1703370A3 (en) 2005-03-14 2005-11-29 Software authentication system, software authencation program, and software authentication method
US11/297,747 US20060206929A1 (en) 2005-03-14 2005-12-08 Software authentication system, software authentication program, and software authentication method
KR1020050120757A KR100751159B1 (ko) 2005-03-14 2005-12-09 소프트웨어 인증 시스템, 소프트웨어 인증 방법 및소프트웨어 인증 프로그램을 기록한 컴퓨터 판독 가능한기록 매체
CNB2005100229064A CN100370411C (zh) 2005-03-14 2005-12-09 软件认证系统和软件认证方法
TW094143557A TW200634568A (en) 2005-03-14 2005-12-09 Software authentication system, recording medium recording software authentication program, and software authentication method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2005070505 2005-03-14
JP2005249530A JP4232767B2 (ja) 2005-03-14 2005-08-30 ソフトウェア認証システムおよびソフトウェア認証プログラム、並びにソフトウェア認証方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2005335766A Division JP2006293980A (ja) 2005-03-14 2005-11-21 ソフトウェア認証システムおよびソフトウェア認証プログラム、並びにソフトウェア認証方法

Publications (2)

Publication Number Publication Date
JP2006293974A true JP2006293974A (ja) 2006-10-26
JP4232767B2 JP4232767B2 (ja) 2009-03-04

Family

ID=36581856

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005249530A Expired - Fee Related JP4232767B2 (ja) 2005-03-14 2005-08-30 ソフトウェア認証システムおよびソフトウェア認証プログラム、並びにソフトウェア認証方法

Country Status (6)

Country Link
US (1) US20060206929A1 (ja)
EP (1) EP1703370A3 (ja)
JP (1) JP4232767B2 (ja)
KR (1) KR100751159B1 (ja)
CN (1) CN100370411C (ja)
TW (1) TW200634568A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009020863A (ja) * 2008-04-10 2009-01-29 Ricoh Co Ltd 画像形成装置、情報処理装置、障害解析支援方法、及び障害解析支援プログラム
JP2009037589A (ja) * 2007-07-10 2009-02-19 Ricoh Co Ltd プログラム判定装置、プログラム判定方法及びプログラム
JP2013529811A (ja) * 2010-06-23 2013-07-22 マイクロソフト コーポレーション 多数の体験モジュールを含むアプリケーション
US9003394B2 (en) 2007-07-10 2015-04-07 Ricoh Company, Ltd. Program determining apparatus and program determining method

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4207938B2 (ja) * 2005-02-01 2009-01-14 セイコーエプソン株式会社 ソフトウェア認証システム、ソフトウェア認証プログラム、およびソフトウェア認証方法
US8001383B2 (en) 2007-02-01 2011-08-16 Microsoft Corporation Secure serial number
JP5247230B2 (ja) * 2008-05-14 2013-07-24 キヤノン株式会社 画像形成装置及びその制御方法、並びにプログラム
TWI459295B (zh) * 2008-08-22 2014-11-01 Hon Hai Prec Ind Co Ltd 動態調用功能模組的系統及方法
US10642794B2 (en) * 2008-09-11 2020-05-05 Vmware, Inc. Computer storage deduplication
US10496670B1 (en) 2009-01-21 2019-12-03 Vmware, Inc. Computer storage deduplication
US8775593B2 (en) 2011-06-29 2014-07-08 International Business Machines Corporation Managing organizational computing resources in accordance with computing environment entitlement contracts
US8812679B2 (en) 2011-06-29 2014-08-19 International Business Machines Corporation Managing computing environment entitlement contracts and associated resources using cohorting
US20130006793A1 (en) 2011-06-29 2013-01-03 International Business Machines Corporation Migrating Computing Environment Entitlement Contracts Based on Seller and Buyer Specified Criteria
US9760917B2 (en) 2011-06-29 2017-09-12 International Business Machines Corporation Migrating computing environment entitlement contracts between a seller and a buyer
KR101946874B1 (ko) * 2012-09-03 2019-02-13 엘지이노텍 주식회사 프로그램 인증 시스템.
US9319392B1 (en) * 2013-09-27 2016-04-19 Amazon Technologies, Inc. Credential management
JP2019067219A (ja) * 2017-10-02 2019-04-25 株式会社東芝 画像形成装置及びコンピュータプログラム

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3435454B2 (ja) * 1995-02-28 2003-08-11 富士通株式会社 異なる環境空間での連続運転方法およびそのための装置
JPH09330243A (ja) * 1996-06-10 1997-12-22 Toshiba Corp 計算機システム
ES2184066T3 (es) * 1996-10-25 2003-04-01 Schlumberger Systems & Service Uso de un lenguaje de programacion de alto nivel con microcontrolador.
CN1264477A (zh) * 1997-01-09 2000-08-23 梅地亚·梅垂克斯公司 监视公用计算机网上的远程文件访问
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
AU6274099A (en) 1998-09-30 2000-04-17 Netscout Service Level Corporation Managing computer resources
US6581206B2 (en) * 1999-11-12 2003-06-17 Sun Microsystems, Inc. Computer program language subset validation
US6708324B1 (en) 1999-06-24 2004-03-16 Cisco Technology, Inc. Extensible automated testing software
US6772106B1 (en) * 1999-08-20 2004-08-03 Hewlett-Packard Development Company, L.P. Retargetable computer design system
JP2001154878A (ja) 1999-11-30 2001-06-08 Nec Ic Microcomput Syst Ltd デバッグ用プログラム生成方法及び生成・実行方法
US7086060B2 (en) * 2001-02-15 2006-08-01 Sun Microsystems, Inc. Method for programmatic representation and enforcement of resource controls
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
US7099663B2 (en) * 2001-05-31 2006-08-29 Qualcomm Inc. Safe application distribution and execution in a wireless environment
JP2003050641A (ja) * 2001-08-07 2003-02-21 Nec Corp プログラム管理システム、そのプログラム管理方法、及び情報管理プログラム
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
KR101044182B1 (ko) * 2003-03-06 2011-06-28 마이크로소프트 코포레이션 시스템의 검증을 용이하게 하는 방법, 소프트웨어 애플리케이션의 검증을 용이하게 하는 장치 및 컴퓨터 판독 가능 기록 매체
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
KR20040041138A (ko) * 2004-04-26 2004-05-14 쉬프트정보통신 주식회사 분산배포서버에 의한 클라이언트 모듈 배포 및 버전 자동매핑방법
JP4207938B2 (ja) * 2005-02-01 2009-01-14 セイコーエプソン株式会社 ソフトウェア認証システム、ソフトウェア認証プログラム、およびソフトウェア認証方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009037589A (ja) * 2007-07-10 2009-02-19 Ricoh Co Ltd プログラム判定装置、プログラム判定方法及びプログラム
US9003394B2 (en) 2007-07-10 2015-04-07 Ricoh Company, Ltd. Program determining apparatus and program determining method
US9792159B2 (en) 2007-07-10 2017-10-17 Ricoh Company, Ltd. Program determining apparatus and program determining method
JP2009020863A (ja) * 2008-04-10 2009-01-29 Ricoh Co Ltd 画像形成装置、情報処理装置、障害解析支援方法、及び障害解析支援プログラム
JP2013529811A (ja) * 2010-06-23 2013-07-22 マイクロソフト コーポレーション 多数の体験モジュールを含むアプリケーション
US9672022B2 (en) 2010-06-23 2017-06-06 Microsoft Technology Licensing, Llc Applications including multiple experience modules

Also Published As

Publication number Publication date
CN100370411C (zh) 2008-02-20
TW200634568A (en) 2006-10-01
EP1703370A2 (en) 2006-09-20
US20060206929A1 (en) 2006-09-14
EP1703370A3 (en) 2008-05-14
CN1834889A (zh) 2006-09-20
JP4232767B2 (ja) 2009-03-04
KR20060100915A (ko) 2006-09-21
KR100751159B1 (ko) 2007-08-22

Similar Documents

Publication Publication Date Title
JP4232767B2 (ja) ソフトウェア認証システムおよびソフトウェア認証プログラム、並びにソフトウェア認証方法
KR100750770B1 (ko) 리소스 관리 시스템, 리소스 관리 방법 및 리소스 관리프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
CN108280367B (zh) 数据操作权限的管理方法、装置、计算设备及存储介质
JP4215037B2 (ja) リソース管理システム、プリンタ、プリンタ用ネットワークカードおよびリソース管理プログラム、並びにリソース管理方法
CN101151608A (zh) 开发人员容易地找出或扩展系统上周知位置的能力
WO2011089864A1 (ja) ファイル群整合性検証システム、ファイル群整合性検証方法およびファイル群整合性検証用プログラム
US8572632B2 (en) Devices as services in a decentralized operating system
JP2013045400A (ja) 情報処理装置、情報処理方法、およびプログラム
JP4207938B2 (ja) ソフトウェア認証システム、ソフトウェア認証プログラム、およびソフトウェア認証方法
EP3374858B1 (en) Creating and modifying applications from a mobile device
US20180349102A1 (en) Apparatus and method for converting large-scale application
CN111324645B (zh) 区块链的数据处理方法及装置
JP2006293980A (ja) ソフトウェア認証システムおよびソフトウェア認証プログラム、並びにソフトウェア認証方法
CN115129275A (zh) 一种数字文件打印方法、装置、电子设备及存储介质
WO2021077862A1 (zh) 文件同步方法及装置
JP2006244457A (ja) リソース管理システムおよびリソース管理プログラム、並びにリソース管理方法
CN112817782A (zh) 一种数据采集上报方法、装置、电子设备和存储介质
US20170286195A1 (en) Information object system
JP2006244456A (ja) リソース管理システム、リソース換算テーブル生成システム、ソフトウェア認証システム、リソース管理プログラム、リソース換算テーブル生成プログラムおよびソフトウェア認証プログラム、並びにリソース管理方法、リソース換算テーブル生成方法およびソフトウェア認証方法
CN100435084C (zh) 资源管理系统、管理方法、打印机、打印机用网卡
CN100367182C (zh) 资源管理系统、资源换算表生成系统以及软件认证系统
US20230036834A1 (en) Information processing system, apparatus, and storage medium having combinational and non-combinational applications
JP7119448B2 (ja) 情報処理装置及び情報処理プログラム
JP4630145B2 (ja) 成果物管理装置及び成果物管理システム
CN116302047A (zh) 配置文件的构建处理方法、电子设备及存储介质

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080331

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080624

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080725

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080826

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081027

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20081118

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081201

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111219

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111219

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121219

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121219

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131219

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees