JP4242458B2 - ライセンス管理システム - Google Patents
ライセンス管理システム Download PDFInfo
- Publication number
- JP4242458B2 JP4242458B2 JP50685299A JP50685299A JP4242458B2 JP 4242458 B2 JP4242458 B2 JP 4242458B2 JP 50685299 A JP50685299 A JP 50685299A JP 50685299 A JP50685299 A JP 50685299A JP 4242458 B2 JP4242458 B2 JP 4242458B2
- Authority
- JP
- Japan
- Prior art keywords
- license
- application program
- keys
- license management
- key
- 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.)
- Expired - Fee Related
Links
- 230000006870 function Effects 0.000 claims description 68
- 238000012545 processing Methods 0.000 claims description 67
- 238000000034 method Methods 0.000 claims description 65
- 230000008569 process Effects 0.000 claims description 31
- 230000015654 memory Effects 0.000 claims description 30
- 230000004044 response Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 72
- 238000007726 management method Methods 0.000 description 55
- 230000002159 abnormal effect Effects 0.000 description 17
- 238000012790 confirmation Methods 0.000 description 9
- 238000001994 activation Methods 0.000 description 5
- 230000005856 abnormality Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000011835 investigation Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- SBUYBNIDQXQZSZ-UHFFFAOYSA-N p-aminophenylphosphocholine Chemical compound C[N+](C)(C)CCOP([O-])(=O)OC1=CC=C(N)C=C1 SBUYBNIDQXQZSZ-UHFFFAOYSA-N 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/105—Arrangements for software license management or administration, e.g. for managing licenses at corporate level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/04—Billing or invoicing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Development Economics (AREA)
- Theoretical Computer Science (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Economics (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
本発明はソフトウェアのライセンス管理システムに関し、特に、ソフトウェアメーカーから所望のソフトウェアをユーザに提供する際に、当該ユーザの使用環境に応じた自在なソフトウェアライセンスの発給を可能とするライセンス管理システムに関する。
背景技術
近年、コンピュータがあらゆる分野で広く利用されるようになるにつれて、ソフトウェアそれ自体の開発のみならず、ソフトウェアメーカーがユーザにソフトウェアを発給する際に、又はソフトウェアの発給後に、ソフトウェアのライセンス管理もまた重要なものとなっている。
一般に、ソフトウェアはソフトウェアメーカーが開発し、ハードウェア(コンピュータ)を持つユーザがそのソフトウェアを所定のライセンス契約に基づき使用する。ソフトウェアを供給した後に、ソフトウェアメーカーはライセンス管理を実行し、即ち、そのソフトウェアが所定のライセンス契約どおり適正に使用されているか否かチェックする。
従来、ライセンス契約には主に2の形式がある。即ち、フローティング・ライセンスシステムとノードロック・ライセンスシステムである。前者では、ソフトウェアの起動毎にライセンス数が一つずつ減少し、ソフトウェアの終了毎に一つずつライセンス数が増加するシステムである。後者は、ユーザ側にて使用するハードウェアが固定されており、ソフトウェアメーカーは、ソフトウェアの本数によらず所定の一定価格にてライセンスを発給する。
さらに、前者において、ユーザが複数のワークステーション(例えば10台)を同じソフトウェアで稼働させたい場合には、ソフトウェアメーカーは10本分のライセンスの価格でユーザからライセンス契約をとる。
前者によれば、ソフトウェアメーカーはソフトウェア単価を高く設定できる利点がある。一方、ユーザは自身が扱うことができるソフトウェアについて使用上のフレキシビリティを持つ利点がある。
一方、後者において、ユーザで使用するハードウェアは固定され、ソフトウェアの数とその性能によらず所定の一定価格にてライセンス契約を発給する。
後者によれば、ユーザはソフトウェアを低い価格単位で設定できる利点がある。しかしながら、使用するハードウェアが固定されているのでソフトウェアの使用上においてフレキシビリティに欠ける。さらに全てのソフトウェアが1つのハードウェアで扱われるので、システム全体の処理速度が悪化する問題がある。
以上説明のように、従来のライセンスシステムではソフトウェアメーカー側にとってもユーザ側にとっても種々の問題がある。特に、ソフトウェアメーカー側にとってはその販売戦略を考慮したライセンスの発給ができないという問題がある。従って、ソフトウェアメーカーは、多額の費用を投入して開発したソフトウェアを適正な価格でユーザに供給すべく最適なライセンス管理を探究し開発してきた。
発明の開示
本発明の目的は、ソフトウェアメーカーの販売戦略を考慮したライセンスの発給を可能にするライセンス管理システムを提供することにある。
本発明は、単一もしくは複数のコンピュータを駆動するソフトウェアのライセンス管理システムであって、自身を駆動するために必要なキー数の決定を要求し、ライセンスの発給を受けるアプリケーション・プログラムと、前記アプリケーション・プログラムからの要求に応じて必要なキー数を決定するライセンス数決定部と、前記キー数決定部にて決定されたキー数を前記アプリケーション・プログラムに対して発給するライセンス管理部とを具備する。
前記キー数決定部は、以下の多項式関数に基づきキー数を決定する手段を含む。
LK=f(x1,x2,....,xn)
但し、LKはキー数、xnはキー数の決定に必要なパラメータである。
さらに、本発明は、少なくともライセンス管理部と、アプリケーション・プログラムと、キー数決定部とを備え、単一もしくは複数のコンピュータを駆動するソフトウェアのライセンス管理システムにおけるライセンス管理方法であって、
アプリケーション・プログラムが起動された際に、前記アプリケーション・プログラム自身の起動に必要なキー数を多項式関数に代入してもらうために、パラメータを前記アプリケーション・プログラムから前記キー数決定部に渡す段階と、
キー数決定部において、キー数の決定に必要なパラメータの値を調べてキー数を決定し、前記アプリケーション・プログラムから渡されたパラメータに決定したキー数を代入し、前記アプリケーション・プログラムにパラメータを返す段階と、
アプリケーション・プログラムからライセンス管理部に、自身が必要とするキー数をパラメータを渡すことによって通知し、ライセンスを要求する段階と、
ライセンス管理部においてキー数決定部から正常フラグを受けると、保持しているキー数から必要なキー数分を減らし、その結果、ライセンス管理部にて保持しているキー数が負にならなければ、正常フラグをアプリケーション・プログラムに返すとともに、前記アプリケーション・プログラムにライセンスを発給する段階とを具備する。
【図面の簡単な説明】
図1〜図5は、ソフトウェアメーカーの販売戦略の説明図である。
図6は、本発明によるライセンス管理システムの第1の実施形態としての基本構成図である。
図7は、本発明によるライセンス管理システムの第2の実施形態としての基本構成図である。
図8は、本発明によるライセンス管理システムの第3の実施形態としての基本構成図である。
図9は、本発明によるライセンス管理システムの第4の実施形態としての基本構成図である。
図10は、ライセンスデーモンとアプリケーション・プログラムとの間の起動処理の説明図である。
図11は、ライセンスデーモンにおけるフォーク処理の説明図である。
図12は、アプリケーション・プログラムにおけるフォーク処理の説明図である。
図13は、アプリケーション・プログラムの終了処理の説明図である。
図14は、専用アプリケーション・マネージャからの強制終了の説明図である。
図15は、アプリケーション・プログラムの終了報告の説明図である。
図16は、専用ライセンスデーモンに対する終了処理の説明図である。
図17は、専用ライセンスデーモンからの調査要求の説明図である。
図18は、専用アプリケーション・マネージャからの正常通知の説明図である。
図19は、専用ライセンスデーモンからの再起動処理の説明図である。
図20は、専用ライセンスデーモンにおけるライセンス解除処理の説明図である。
図21は、専用アプリケーション・マネージャから専用ライセンスデーモンへの調査要求の説明図である。
図22は、専用ライセンスデーモンから専用アプリケーション・マネージャへの正常通知の説明図である。
図23は、専用アプリケーション・マネージャにおける無効情報の説明図である。
図24は、専用アプリケーション・マネージャにおける終了処理の説明図である。
図25は、専用ライセンスデーモンにおける再起動の説明図である。
図26は、ライセンスデーモンからの無効通知の説明図である。
図27は、ライセンスデーモンからの再起動通知の説明図である。
図28は、専用ライセンスデーモンからライセンスデーモンへのポーリング処理の説明図である。
図29は、ライセンスデーモンにおける終了処理の説明図である。
図30は、専用アプリケーション・マネージャAPCM1が所定の処理時間内にアプリケーション・プログラムAP1から命令CORを受けない場合における、ライセンスデーモンにおける終了処理の説明図である。
図31は、ライセンスデーモンにおける異常終了の説明図である。
図32は、アプリケーション・プログラムにおける異常終了の説明図である。
図33は、ライセンスデーモンと専用アプリケーション・マネージャとの間における異常終了の説明図である。
図34は、アプリケーション・プログラムと専用アプリケーション・マネージャの両方における異常終了の説明図である。
図35は、アプリケーション・プログラムと専用ライセンスデーモンの両方における異常終了の説明図である。
図36は、ライセンスデーモンと専用ライセンスデーモンの両方における異常終了の説明図(その1)である。
図37は、ライセンスデーモンが図36の説明で記載された状況の後に再起動する場合の説明図である。
図38は、システム構成の説明図である。
図39は、キー数を決定するフローチャートである。
図40(A)乃至図40(I)は、キー数を決定する実関数リストである。
図41(A)乃至図41(F)は、プログラムの一例の説明図である。
図42(A)乃至図42(C)は上記プログラムの実行結果の説明図である。
発明を実施するための最良の形態
図1〜図5はソフトウェアメーカーの販売戦略の説明図である。本明細書では、ライセンスを「キー」(“key”)とも称し、ライセンス数はキー数とも称する。既存のライセンスシステムでは、「キー数=ライセンス数」であり、キー数はソフトウェアの価値と同じと考えることができる。しかしながら、適正なライセンス管理を実現するためには、キー数とライセンス数の間に所定の相関関係(後述する関数“f”に対応する関係)を実現することが望ましい。例えば、キー数がライセンス数に比例する関係を持つことが望ましい。
以下の5つのパターンは、図1乃至図5に示すように、ソフトウェアメーカーの販売戦略において考慮しなければならない。
図1に示すように、アプリケーション・プログラムが、メモリを多く備えた高速ハードウェアにおいて高速で動作するように特化された設計の場合には、ソフトウェアの設計は複雑となり、その結果ソフトウェアは価値の高いものとなる。従って、多くのメモリを持つハードウェアがユーザ側で使用されるときは、ソフトウェアメーカーはユーザに対してメモリ数が多ければ多いほどより多くのキー数を要求すべきである。
図2に示すように、図1の状況では、コンピュータの性能が高いほどコンピュータの単位時間当たりの処理能力が向上する。従って、ソフトウェアメーカーはコンピュータの性能が高ければ高いほどユーザに対してより多くのキー数を要求すべきである。
図3に示すように、アプリケーション・プログラムが特化されていない設計の場合には、ユーザから見れば、コンピュータの性能が高いほどソフトウェアの見かけの性能が高くなるのであるから、アプリケーション・プログラムは少ないキー数で動作すべきである、との見方もある。このような見方のときは、ソフトウェアメーカーは、少ないキー数でソフトウェアを起動できるように考慮すべきである。しかしながら、これは特殊な場合である。例えば、そのソフトウェアがまだ開発と設計途上にあり、その性能がソフトウェアメーカーにおいて最終的に決定されていない場合に、ソフトウェアメーカーはソフトウェア性能を改善するためにユーザ側にてそのソフトウェアを使用して欲しいと願う。
図4に示すように、ソフトウェアを大量購入するユーザに対しては、購入したキー数に応じて必要なキー数を段階的に減らす。従って、この場合、ソフトウェアメーカーにおいてソフトウェアの実質的な単価を下げる必要がある。
図5に示すように、ソフトウェアメーカーは、ソフトウェアを所定の期日までは無償(必要キー数が「0」に相当)で供給し、その期日以降はソフトウェアを有償(キー数が「0」より大きいに相当)で供給する。
以上のように、ユーザのソフトウェア使用上の諸要因、即ち、ハードウェア的な要因、処理時間的な要因、価格的な要因、等の諸要因に応じて、キー数を決定するようなライセンス管理システムを提供する必要がある。
本発明は、ソフトウェアメーカー側で柔軟にパラメータを設定できるキー数の発給を実行することを目的とする。
上記の目的を達成するために、本発明では、まず、必要なキー数を決定する機能(キー数決定手段)を持つ。キー数決定部では、次式に示す多項式関数に基づいてキー数を決定する。
LK=f(x1,x2,....,xn) ・・・・ (1)
ここで、LKはキー数、xnはキー数の決定に必要なパラメータである。パラメータとして、図1乃至図5で説明したようなハードウェアのメモリ容量、システムのクロックスピード、さらにソフトウェアメーカー側で自由に設定可能な項目、その他、がある。
さらに、本発明では、ソフトウェアが起動された際に、キー数を決定するために必要なパラメータ値を取得する機能(パラメータ値取得手段)を持つ。
キー数LKが常に「1」となるように設定される場合は、従来のシステムと等価となる。これは、本発明のシステムが従来システムの上位に位置にランクされ、従来との互換性を持つことを意味する。従って、本発明の機能に基づいて、ソフトウェアメーカー側にて販売戦略が考慮されたキー数の発給を実現することができる。さらに、従来の固定キー数を利用することも可能である。その結果、ソフトウェアに対して改善されたライセンス管理システムを提供することができる。
図6は本発明によるライセンス管理システムの第1の実施形態としての基本構成図である。図中、Aはライセンス管理部、Bはアプリケーション・プログラム、Cはキー数決定部(デーモンプログラム)である。周知のように、デーモンプログラムとはオペレーションシステム(OS)上でバックグランドで自動的に実行されるプログラムである。また、本発明において、データの授受は、全て、例えばTCP/IP(Transmission Control Protocol/Internet Protocol)のようなUNIX系のネットワークを介して行われる。なお、以下の図中の数字は処理手順を示す。
処理手順1:アプリケーション・プログラムBが起動された際に、アプリケーション・プログラムを起動するのに必要なキー数を代入するためにパラメータ(例えば、NoOfKeys)をキー数決定部Cに渡す。
処理手順2:キー数決定部Cは、キー数の決定に必要なパラメータの値を調べてキー数を決定し、アプリケーション・プログラムから渡されたパラメータ(NoOfKeys)に決定された値を代入し、アプリケーション・プログラムBにパラメータを返す。
処理手順3:アプリケーション・プログラムBは、ライセンス管理部Aに、必要とするキー数をパラメータ(NoOfKeys)を渡すことにより通知しライセンスを要求する。
処理手順4:ライセンス管理部Aは、アプリケーション・プログラムBの要求するキー数が正しいか否か確認するために、アプリケーション・プログラムから通知されたキー数(NoOfKeys)をキー数決定部Cに通知する。
処理手順5:キー数決定部Cは、アプリケーション・プログラムBからライセンス管理部Aに通知されたキー数と、アプリケーション・プログラムBに通知した必要なキー数とを比較する。キー数が正しければ、キー数決定部Cは正常フラグをライセンス管理部Aに返す。
なお、処理手順4及び5は正当な要求が実行されたか否かの確認のためであり、任意の手順である。
処理手順6:ライセンス管理部Aは、キー数決定部Cから正常フラグを受けると、保持しているキー数から必要なキー数分を減らし、ライセンス管理部に保持されているキー数が負にならなければ、正常フラグをアプリケーション・プログラムBに返し、アプリケーション・プログラムBにライセンスを発給する。アプリケーション・プログラムBはライセンスの発給を受けると、実行可能なアプリケーション・プログラムとなる。もし、拒絶を示す異常フラグ、例えば、保持しているキー数が負になることを示すフラグ、がライセンス管理部Aから返されたときは、アプリケーション・プログラムBはその時点で終了する。
図7は本発明によるライセンス管理システムの第2の実施形態としての基本構成図である。上記の第1の実施形態ではキー数決定部Cは独立したデーモンプログラムとして動作する。本実施形態では、キー数決定関数C’を関数コールとしてアプリケーション・プログラム内に組み込んでいる。この場合では第1の実施形態とは異なり、処理手順1は可変引数の関数コールとして与えられ、処理手順2はその戻り値として与えられる。さらに、キー数は式(1)に基づいてキー数決定部C自身を含むアプリケーション・プログラムにより決定される。
処理手順1:アプリケーション・プログラムBが起動された際に、自身の起動に必要なキー数を受けるためにパラメータ(NoOfKeys)をキー数決定関数C’に渡す。
処理手順2:キー数決定関数C’は、パラメータの必要な値を調べ、キー数を決定する。さらに、キー数決定関数C’はアプリケーション・プログラムBから渡されたパラメータに値を代入し、アプリケーション・プログラムBに対して値とともにパラメータ(NoOfKeys)を返す。
処理手順3:アプリケーション・プログラムBは、ライセンス管理部Aに必要なキー数を、パラメータ(NoofKeys)を渡すことにより通知し、ライセンスを要求する。
第1の実施形態で説明した処理手順4及び5は任意なのでここでは省略する。
処理手順6:ライセンス管理部Aは、アプリケーション・プログラムBから要求を受けると、ライセンス管理部A自身に保持しているキー数から必要なキー数分を減らす。減算の結果、保持しているキー数が負にならなければ、ライセンス管理部Aは正常フラグをアプリケーション・プログラムBに返し、アプリケーション・プログラムBにライセンスを発給する。アプリケーション・プログラムBはライセンスの発給を受けると、実行可能なアプリケーション・プログラムとなる。もし、ライセンス管理部Aから異常フラグが返されたときは、アプリケーション・プログラムBはその時点で終了する。
図8は本発明によるライセンス管理システムの第3の実施形態としての基本構成図である。上記の第1の実施形態では、ソフトウェアメーカー側の都合で、多項式関数を変更する際には、直接、キー数決定部Cを変更する方法をとっていた。本実施形態では、多項式関数を決定するデータベースDが、キー数決定部Cに多項式関数を読み込ませるために別途に用意される。この場合、多項式関数を変更する際には、データベースDを変更し、その結果、キー数決定部Cにおける多項式関数の変更は不要となる。
処理手順1:アプリケーション・プログラムBが起動された際に、アプリケーション・プログラム自身の起動に必要なキー数を代入してもらうため、パラメータ(NoOfKeys)をキー数決定部Cに渡す。
処理手順2:キーy数決定部Cは、データベースDからデータを読み込み(処理手順7を参照)多項式関数を決定する。さらに、キー数決定関数Cは、必要なパラメータの値を調査してキー数を決定する。さらに、キー数決定関数Cは、アプリケーション・プログラムBから渡されたパラメータに値を代入し、アプリケーション・プログラムBに値とともに返す。
処理手順3:アプリケーション・プログラムBは、ライセンス管理部Aに必要なキー数をパラメータ(NoOfKeys)を渡すことにより通知し、ライセンスを要求する。
第1の実施形態で説明した処理手順4及び5は任意なのでここでは省略する。
処理手順6:ライセンス管理部Aがキー数関数Cから正常フラグを受けると、ライセンス管理部A自身に保持されているキー数から必要なキー数分を減らす。減算の結果、保持しているキー数が負にならなければ、ライセンス管理部Aは、正常フラグをアプリケーション・プログラムBに返すとともにライセンスを発給する。アプリケーション・プログラムBはライセンスの発給を受けると、実行可能なアプリケーション・プログラムとなる。もし、ライセンス管理部Aから異常フラグが返されたときは、アプリケーション・プログラムBはその時点で終了する。
図9は本発明におけるライセンス管理システムの第4の実施形態としての基本構成図である。上記のように第2の実施形態では、キー数決定関数C’は関数コールとしてアプリケーション・プログラムBに組み込まれている。本実施形態では、多項式関数を決定するデータベースD’は、キー数決定部Cに多項式関数を読み込ませるために別途に用意される。この場合、多項式関数を変更する際には、データベースD’が変更され、その結果、キー数決定関数C’での多項式関数の変更は不要となる。
処理手順1:アプリケーション・プログラムBが起動された際に、アプリケーション・プログラム自身の起動に必要なキー数を受けるために、パラメータ(NoOfKeys)をキー数決定関数C’に渡す。
処理手順2:キー数決定部Cは、データベースD’からデータを読み込み(処理手順7を参照)、多項式関数を決定する。さらに、キー数決定関数C’は、必要なパラメータの値を調べてキー数を決定する。さらに、キー数決定関数C’は、アプリケーション・プログラムBから渡されたパラメータ(NoOfKeys)に値を代入し、アプリケーション・プログラムBに値とともに返す。
処理手順3:アプリケーション・プログラムBは、ライセンス管理部Aに必要なキー数を、パラメータ(NoOfKeys)を渡すことにより通知し、ライセンスを要求する。
第1の実施形態で説明した処理手順4及び5は任意なのでここでは省略する。
処理手順6:ライセンス管理部Aは、アプリケーション・プログラムBから要求を受けると、ライセンス管理部A自身に保持されているキー数から必要なキー数分を減らす。減算の結果、保持しているキー数が負にならなければ、ライセンス管理部Aは、正常フラグをアプリケーション・プログラムBに返すとともにライセンスを発給する。アプリケーション・プログラムBはライセンスの発給を受けると、実行可能なアプリケーション・プログラムとなる。もし、ライセンス管理部Aから異常フラグが返されたときは、アプリケーション・プログラムBはその時点で終了する。
次に、図6〜図9の処理手順を以降の図面にそってさらに詳しく説明する。以下の説明は、ライセンス管理部Aとアプリケーション・プログラムBの間の処理手順3及び6をさらに具体的に説明するものである。
ライセンス管理部Aにおいて、従来は、1つのライセンスデーモン(デーモンプログラム)がそれぞれのアプリケーション・プログラムとやりとりを行う方法により、アプリケーション・プログラムの動作が正常に行われているか否か調査していた。
しかしながら、この方法では、ライセンスデーモンは各アプリケーション・プログラムとの間で多くの煩雑なやりとりが必要である。例えば、ライセンスデーモンが各アプリケーション・プログラムに所定項目を調査する調査要求を送り、各アプリケーション・プログラムはデーモンプログラムに調査要求に対する回答を戻す。この場合、回答が各アプリケーション・プログラムからデーモンプログラムに同時に戻されるので、多くの回答がライセンスデーモンにて待機状態となる。これはライセンスデーモンに多くの負荷が与えられるからである。その結果、ライセンスデーモンにおいて各回答に対する処理時間が遅延し、その結果ソフトウェアの性能も悪化する。
従って、本発明は、ライセンスデーモンにおける負担を低減し、それぞれのソフトウェア(即ち、アプリケーション・プログラム)における処理時間の遅延を除去することを目的とする。
上述の目的を達成するために、本発明では専用ライセンスデーモン(APSM:Application Program Server Manager)と専用アプリケーション・マネージャ(APCM:Application Program Client Manager)がライセンスデーモン及びアプリケーション・プログラムに追加して用意され、種々のやりとりが以下に詳細に説明するように専用ライセンスデーモン(APSM)と専用アプリケーション・マネージャ(APCM)の間で実行される。
図10は、ライセンスデーモンとアプリケーション・プログラムとの間の起動処理の説明図である。ユーザがアプリケーション・プログラムの起動処理を実行すると、アプリケーション・プログラム(AP1)は、実行許可(ライセンス)を得るために、ライセンスデーモン(LDP)に、申請(CIR:Check-In Request)を送る。
図11は、ライセンスデーモンにおけるフォーク処理の説明図である。ライセンスデーモン(LDP)は、専用ライセンスデーモン(APSM1)を設立するためにフォーク命令を発生する。専用ライセンスデーモン(APSM1)は、アプリケーション・プログラム(AP1)に対して、実行許可(CIRC:Check-In Request Confirmation)を送り、ライセンスを発給する。この場合、以下の3つの状態が考えられる。
a)専用ライセンスデーモン(APSM1)から実行許可(CIRC)が得られないときは、アプリケーション・プログラム(AP1)は処理を終了する。
b)専用ライセンスデーモン(APSM1)から実行許可(CIRC)は得られたが、「無効な」内容を含むものであれば、アプリケーション・プログラム(AP1)はユーザに「無効」を通知する。
c)専用ライセンスデーモン(APSM1)から実行許可(CIRC)が得られ、かつ「有効な」内容を含むときは、アプリケーション・プログラム(AP1)は専用アプリケーション・マネージャ(APCM1)を設立するためにフォーク命令を発生する。
図12は、アプリケーション・プログラムにおけるフォーク処理の説明図である。上記のc)項で説明したように、専用ライセンスデーモン(APSM1)から実行許可(CIRC)が得られ、かつ「有効な」内容を含むときは、アプリケーション・プログラム(AP1)は専用アプリケーション・マネージャ(APCM1)を設立するためにフォーク命令を発生する。この処理以降、ライセンス管理に関するやりとりは、専用ライセンスデーモン(APSM1)と専用アプリケーション・マネージャ(APCM1)との間で実行される。アプリケーション・プログラム(AP1)はそれ自身のプログラムの実行を開始する。
図13は、アプリケーション・プログラムの終了処理の説明図である。ユーザがアプリケーション・プログラム(AP1)の終了処理を実行すると、アプリケーション・プログラム(AP1)は終了要求(SIGUSR2:UNIXのシグナルの一種)を専用アプリケーション・マネージャ(APCM1)に送り、アプリケーション・プログラム(AP1)は終了する。
図14は、専用アプリケーション・マネージャからの強制終了の説明図である。アプリケーション・プログラム(AP1)が、終了要求(SIGUSR2)を送出した後に万一終了しない場合は、専用アプリケーション・マネージャ(APCM1)は、パイプ(PIPE)に無効情報+ve(正の値)を設定する。アプリケーション・プログラム(AP1)は無効情報+veを読み込み、それ自身を終了する。
図15は、アプリケーション・プログラムの終了報告の説明図である。アプリケーション・プログラム(AP1)が終了していれば、専用アプリケーション・マネージャ(APCM1)は、アプリケーション・プログラム(AP1)の終了を示す終了報告(CORC:Check-Out Request Confirmation)をライセンスデーモン(LDP)に送り、専用アプリケーション・マネージャ(APCM1)は終了する。
図16は、専用ライセンスデーモンに対する終了処理の説明図である。最後に、ライセンスデーモン(LDP)は、アプリケーション・プログラム(AP1)が終了した後にデータベースに情報を書き込み、専用アプリケーション・デーモン(APSM1)自身が終了するように終了命令(SIGKILL:UNIXのシグナル)を専用ライセンスデーモン(APSM1)に発生する。
次に、専用ライセンスデーモンと専用アプリケーション・マネージャとの間のポーリング動作について説明する。専用ライセンスデーモンと専用アプリケーション・マネージャでは、これらの間で正常なやりとりが実行されているか否かを調べるために定期的なポーリングを行う。
図17は、専用ライセンスデーモンからの調査要求の説明図である。専用ライセンスデーモン(APSM1)は、専用アプリケーション・マネージャ(APCM1)に対して、専用アプリケーション・マネージャ(APCM1)が正常に動作しているか否かを調べるために、調査要求(APPR:Application Program Poll Request)を、専用アプリケーション・マネージャ(APCM1)にに送る。
図18は、専用アプリケーション・マネージャからの正常通知の説明図である。専用アプリケーション・マネージャ(APCM1)は、専用ライセンスデーモン(APSM1)からの内容と専用アプリケーション・マネージャ(APCM1)自身からの内容のチェックが成功すれば、正常通知(APPC:application program poll confirmation)を専用ライセンス・デーモン(APSM1)に送る。
図19は専用ライセンスデーモンからの再起動処理の説明図である。専用ライセンスデーモン(APSM1)が、専用アプリケーション・マネージャ(APCM1)から異常応答を受けると(Heart Beat Message Exchange Fails)、専用ライセンスデーモン(APSM1)はライセンスデーモン(LDP)に命令(CORC)を送り、それ自身を終了する。
図20は、専用ライセンスデーモンにおけるライセンス解除処理の説明図である。ライセンスデーモン(LDP)がアプリケーション・プログラム(AP1)を無効にし、アプリケーション・プログラム(AP1)に割り当てられたライセンスキーを解除する。
次に、専用アプリケーション・マネージャ(APCM1)から専用ライセンスデーモン(APSM1)へのポーリング動作について以下に説明する。
図21は、専用アプリケーション・マネージャから専用ライセンスデーモンへの調査要求の説明図である。専用アプリケーション・マネージャ(APCM1)は、専用ライセンスデーモン(APSM1)へ調査要求(APRR:Application Program Re-validation Request)を送る。
図22は、専用ライセンスデーモンから専用アプリケーション・マネージャへの正常通知の説明図である。専用ライセンスデーモン(APSM1)は、専用アプリケーション・マネージャ(APCM1)からの内容と専用ライセンスデーモンそれ自身からの内容が成功すれば正常通知(APRC:Application Program Re-validation Confirmation)を専用アプリケーション・マネージャ(APCM1)に送る。
図23は、専用アプリケーション・マネージャにおける無効情報の説明図である。専用アプリケーション・マネージャ(APCM1)における内容と、専用ライセンスデーモン(APSM1)における内容のチェックが成功しないときは、専用アプリケーション・マネージャ(APCM1)はパイプに無効情報+ve(正の値)を設定する。アプリケーション・プログラム(AP1)はこの無効情報を読んで自身を終了する。
図24は、専用アプリケーション・マネージャにおける終了処理の説明図である。専用アプリケーション・マネージャ(APCM1)は終了命令を親アプリケーション・プログラムに送った後に自身を終了する。
次に専用ライセンスデーモンの異常終了について説明する。
図25は、専用ライセンスデーモンにおける再起動の説明図である。専用アプリケーション・マネージャ(APCM1)が、専用ライセンスデーモン(APSM1)の異常終了を検出すると、専用アプリケーション・マネージャ(APCM1)は、専用ライセンスデーモン(APSM1)を再起動させるために、要求(APRIR:Application Program Re-Initiation Confirmation)をライセンスデーモン(LDP)に送る。
図26は、ライセンスデーモンからの無効通知の説明図である。ライセンスデーモン(LDP)は、専用ライセンスデーモン(APSM1)が再起動要求を無効にしたことを検出したときは、ライセンスデーモン(LDP)は、専用ライセンスデーモン(APSM1)が再起動しなかったことを示す通知(APRIC:Application Program Re-Initiation Confirmation)を、専用アプリケーション・マネージャ(APCM1)に送る。さらに、専用アプリケーション・マネージャ(APCM1)は自身を終了し、そしてアプリケーション・プログラム(AP1)は終了する。
図27は、ライセンスデーモンからの再起動通知の説明図である。ライセンスデーモン(LDP)は、専用ライセンスデーモン(APSM1)が再起動要求を有効にしたことを検出したときは、ライセンスデーモン(LDP)は、フォーク命令に基づいて新専用ライセンスデーモン(APSM1’)を提供する。新専用ライセンスデーモン(APSM1’)はデータベースを更新し、専用ライセンスデーモンが再起動したことを示す通知(APRIC)を専用アプリケーション・マネージャ(APCM1)に送る。
図28は、専用ライセンデーモンからライセンスデーモンへのポーリングの説明図である。専用ライセンスデーモン(APSM1)はライセンスデーモン(LDP)を定期的にポーリングする。もし、専用ライセンスデーモン(APSM1)が、ライセンスデーモン(LDP)のエクジット(EXIT)を見つけたならば(ステップ1)、専用ライセンスデーモン(APSM1)自身は終了する(ステップ2)。従って、アプリケーション・プログラム(AP1)の正常動作は、専用アプリケーション・マネージャ(APCM1)により中断され(ステップ3)、専用アプリケーション・マネージャ(APCM1)は通知(APRIR)をライセンスデーモン(LDP)に送る試みをループ(loop)する(ステップ4)。
図29は、ライセンスデーモンの終了の説明図である。ライセンスデーモン(LDP)はシステム管理部からのリクエストにより終了する。終了モードには2つある。即ち、通常終了(TR1)と他の終了(TR2)である。ライセンスデーモン(LDP)は、終了要求(TR2)を受けた後に、ライセンスキーを持っている有効なアプリケーション・プログラム(AP1)を調査し、終了命令(SDC:Shut Down Command)を専用アプリケーション・マネージャ(APCM1)に送る(ステップ1)。
専用アプリケーション・マネージャ(APCM1)は専用ライセンスデーモン(APSM1)から終了命令(SDC)を受けると、専用アプリケーション・マネージャ(APCM1)はこれを優先的メッセージとして扱い、直ちにそれ自身の終了を決定する。専用アプリケーション・マネージャ(APCM1)は、アプリケーション・プログラム(AP1)の終了前に専用アプリケーション・プログラム(APCM1)に命令(SIGUSR2:UNIXのシグナルの一種)を確実に送るようにアプリケーション・プログラム(AP1)を強制する(ステップ2)。専用アプリケーション・プログラム(APCM1)は、アプリケーション・プログラム(AP1)から命令(SIGUSR2)を受けた後に、図13乃至図16に示す処理に従って正常終了を実行する。
図30は、ライセンスデーモンにおける終了処理の説明図である。専用アプリケーション・マネージャ(APCM1)が図29に示す所定の処理時間内にアプリケーション・プログラム(AP1)から命令(SIGUSR2)を受け取らないときは、専用アプリケーション・マネージャ(APCM1)はシグナル(SIGKILL)をアプリケーション・プログラム(AP1)に送り(ステップ1)、アプリケーション・プログラム(AP1)は終了する(ステップ2)。
専用アプリケーション・マネージャ(APCM1)は所定時間の後に、自身を終了し(ステップ3)、命令(CORC)を使用するライセンスデーモン(LDP)にこの終了を通知する(ステップ4)。この場合、ライセンスデーモン(LDP)は所定の時間の間、専用アプリケーション・マネージャ(APCM1)からの命令(CORC)を待つ。もしライセンスデーモン(LDP)が専用アプリケーション・マネージャ(APCM1)から命令(CORC)を受け取っていなければ、ライセンスデーモン(LDP)は専用ライセンスデーモン(APSM1)を終了させる(ステップ5)。
図31は、ライセンスデーモンにおける異常終了の説明図である。ライセンスデーモン(LDP)が異常終了したとき、専用アプリケーション・マネージャ(APCM1)はアプリケーション・プログラム(AP1)における通常動作を中断させ(ステップ1)、それ自身も中断する(ステップ2)。ライセンスデーモン(LDP)が異常終了した後、再起動すると、ライセンスデーモン(LDP)は、専用ライセンスデーモン(APSM1)が異常終了後に終了したかを調査する(ステップ3)。
ライセンスデーモン(LDP)は、専用アプリケーション・マネージャ(APCM1)にて命令(APRIR)のペンディング状態を調査する。もし、命令(APRIR)が専用アプリケーション・マネージャ(APCM1)にてペンディングであれば、ライセンスデーモン(LDP)は専用アプリケーション・マネージャ(APCM1)から命令(APRIR)を受け入れる(ステップ4)。専用ライセンスデーモン(APSM1’)は、ライセンスデーモン(LDP)が専用アプリケーション・マネージャ(APCM1)から命令(APRIR)を受け入れた時のみリカバーする(ステップ5)。ライセンスデーモン(LDP)は通常動作を開始する。
図32は、アプリケーション・プログラムにおける異常終了の説明図である。もし、アプリケーション・プログラム(AP1)が専用アプリケーション・マネージャ(APCM1)に命令(SIGUSR2)を送らずに終了した時は、専用アプリケーション・マネージャ(APCM1)は専用ライセンスデーモン(APSM1)へ命令(APRR)を送り(ステップ1)、アプリケーション・プログラム(AP1)の存在を調べる(ポーリングする)(ステップ2)。もし専用アプリケーション・マネージャ(APCM1)が、アプリケーション・プログラム(AP1)が専用アプリケーション・マネージャ(APCM1)に知らせずに終了したのを見つけたならば、専用アプリケーション・マネージャ(APCM1)はライセンスデーモン(LDP)に命令(CORC)を送る(ステップ3)。
図33は、専用ライセンスデーモンと専用アプリケーション・マネージャの異常終了の説明図である。専用アプリケーション・マネージャ(APCM1)が終了した後(ステップ1)、アプリケーション・プログラム(AP1)は、アプリケーション・プログラム(AP1)と専用アプリケーション・マネージャ(APCM1)との間に設けられたパイプの情報+ve(正の値)を調査した後に終了する(ステップ2)。ライセンスデーモン(LDP)は専用ライセンスデーモン(APSM1)からシグナル(SIGCLD)を受けて(ステップ3)、アプリケーション・プログラム(AP1)へライセンスキーを解除する。
図34は、アプリケーション・プログラムと専用アプリケーション・マネージャが共に異常終了する場合の説明図である。専用アプリケーション・プログラム(AP1)と専用アプリケーション・マネージャ(APCM1)が共にライセンスデーモン(LDP)か専用ライセンスデーモン(APSM1)のどちらかに知らせずに異常終了した時(ステップ1)、専用ライセンスデーモン(APSM1)は要求(APPR:Application Program Poll Request)に対する確認(APPC:Application Program Poll Confirmation)を取得しない(ステップ2)。
専用ライセンスデーモン(APSM1)は専用アプリケーション・マネージャ(APCM1)の終了を見つけた後(ステップ4)、専用ライセンスデーモン(APSM1)はアプリケーション・プログラム(AP1)の存在を調査する.もしアプリケーション・プログラム(AP1)が存在するならば、専用ライセンスデーモン(APSM1)は、ポーリングを通してアプリケーション・プログラム(AP1)の終了を待つ(ステップ6)。その後、専用ライセンスデーモン(APSM1)は命令(CORC)を使用してライセンスデーモン(LDP)に通知する。ライセンスデーモン(LDP)はアプリケーション・プログラム(AP1)に割り当てられたライセンスキーを解除する。
図35は、アプリケーション・プログラムと専用ライセンスデーモンが共に異常終了する場合の説明図である。アプリケーション・プログラム(AP1)が異常終了した時(ステップ1)、専用アプリケーション・マネージャ(APCM1)はこの異常終了を検出し(ステップ2)、ライセンスデーモン(LDP)に確認(CORC)を送る(ステップ3)。ライセンスデーモン(LDP)はアプリケーション・プログラム(AP1)に保持されていた全ライセンスキーを解除し、専用ライセンスデーモン(APSM1)を終了する(ステップ4)。もし専用ライセンスデーモン(APSM19が既に終了していても、この場合の問題はない。
図36は、ライセンスデーモンと専用ライセンスデーモンが共に異常終了する場合の説明図である。ライセンスデーモン(LDP)と専用ライセンスデーモン(APSM1)の終了には次の2つの場合がある。
1)ライセンスデーモン(LDP)と専用ライセンスデーモン(APSM1)が共にシグナル(SIGKILL)によりキル(kill)される。
2)ライセンスデーモン(LDP)が異常キルされ、専用ライセンスデーモン(APSM1)がライセンスデーモン(LDP)を調査する。専用ライセンスデーモン(APSM1)は、ライセンスデーモン(LDP)が終了してエクジット(EXIT)を実行したのを見つけた時、専用ライセンスデーモン(APSM1)は自身をキルする。
このような状況のもとで、専用アプリケーション・マネージャ(APCM1)は、アプリケーション・プログラム(AP1)と専用アプリケーション・マネージャ(APCM1)の間に設けられたパイプに情報−ve(負の値)を設定した後、アプリケーション・プログラム(AP1)を中断し(ステップ1)、要求(APRIR)をライセンスデーモン(LDP)に送る(ステップ2)。
図37は、ライセンスデーモン(LDP)が図36で説明した状況の後に再起動する場合の説明図である。ライセンスデーモン(LDP)が再起動すると、ライセンスデーモン(LDP)は要求(APRIR)を認識し(ステップ1)、専用アプリケーション・マネージャ(APCM1)とやりとりするために新専用ライセンスデーモン(APSM1’)をリカバーする。
図38は、システム構成の説明図である。図示のように、例えば、1つのライセンスデーモン(LDP)は2つのグループI及びIIを設立することができ、各々は、アプリケーション・プログラム(AP)、専用アプリケーション・マネージャ(APCM)、及び専用ライセンスデーモン(APSM)を含む。このような構成により、ライセンスデーモン(LDP)の負担を低減することができる。その結果、ソフトウェアの処理時間の遅延を除去することができる。
次に、本発明によるキー数の具体的な決定方法を説明する。
図39は、ライセンス数(キー数)の決定フローチャートである。さらに、図40(A)乃至図40(I)はキー数を決定するための実際の関数のリストであり、図41(A)乃至図41(F)はサンプルプログラムの説明図であり、図42(A)乃至図42(C)はサンプルプログラムの実行結果の説明図である。
図40(A)乃至図40(I)に示した関数を使用する実際のプログラムは、所定のファイルを処理するものである。このプログラムにおいて、以下の項目、例えば、処理対象となるファイルサイズ、プラットフォーム、CPUの数、メモリの容量、等が考慮される。この考慮に基づいて、このプログラムは、複数のプロセスを自動的に並列に起動してプログラムの高速処理が実現できるように設計されている。従って、並列起動されるプロセス数に従ってキー数を増減する必要がある。
キー数を決定する実際の関数について、以下に詳細に説明する。
図40(A)乃至図40(I)において、第1の関数“GetSystemParameters”は、5つのパラメータ、即ち、CPUの数(Ncpu)、メモリのページサイズ(Psize)、全物理的メモリ容量のページ数(PhyPage)、空きメモリ容量のページ数(AvPage)、プラットフォーム(Platform)、を取得する。これらのパラメータは、第2の関数“DetermineNumberOfLicense”に渡される。
第2の関数“DetemineNumberOfLicense”は、第1の関数“GetSystemParameters”からのパラメータとファイルのサイズを受け、並列処理の数を決定する。同時に、第2の関数“DetermineNumberOfLicense”は、必要なキー数を決定し、戻り値(return value)として返す。
まず、第1の関数“GetSystemParameters”を第1ブロック(53〜68行)及び第2ブロック(71〜89行)について説明する。
第1のブロック(53〜68行)に関して、第1の関数“GetSystemParameters”は、以下のパラメータ、即ち、CPUの数(sysconf(_SC_NPROCESSORS _ ONLN))、メモリのページサイズ(sysconf(_SC_PAGESIZE))、全物理的メモリ容量のページ数(sysconf(_SC_PHYS_PAGES))、空きメモリ容量のページ数(sysconf(_SC_AVPHYS_PAGES))を取得し、どれか1つでもエラーであった場合には処理を中断する。
次に、第2ブロック(71〜89行)に関して、第2の関数“DetermineNumberOfLicense”は、プラットフォーム(PLATFORM)を取得する。もしプラットフォームにエラーがあれば処理は中断される。第1の関数“GetSystemParameters”が全てのパラメータを正常に取得できた時は、各パラメータの値、即ち、CPUの数(Ncpu)、メモリのページ数(Psize)、全物理的メモリ容量のページ数(PhyPage)、空きメモリ容量のページ数(AvPage)を定められた変数に代入する。
次に、図39及び図40(F)乃至図40(I)を参照して第2の関数“DetemineNumberOfLicense”を詳細に説明する。
第1ブロック(125〜134行)に関して、渡される引数が正常か否かチェックを行う。もし引数が異常ならば、処理は中断される。もし引数が正常ならば、ライセンス数(キー数)はデフォルト値(NL=NL_DEFAULT)にセットされる(126行目の(1)参照)。
第2ブロック(138〜147行)に関して、もし、自身のハードウェアのCPU数が1つか、又はスパークサーバ(SPARCserver)ではない場合は、並列処理は行えないと決定する。この場合、プロセス数は1、キー数はデフォルト値と決定される。そして、処理はこの関数内で終了する。もし、CPU数が2又はそれ以上のスパークサーバのときは、ライセンス数(キー数)はデフォルト値の2倍(NL=NL_DEFAULT+NL_DEFAULT)にセットされる(139行目の(2)参照)。
第3ブロック(150〜157行)に関して、与えられたファイルサイズがメモリページ数に換算される(150行目の(3)参照)。
第4ブロック(160〜181行)に関して、並列処理(特化したプログラム)を行うべきか否か決め、並列プロセス数とキー数を決める。
163〜166行に関して、もし、値(ファイルサイズ*NL_ MEM_ FACTOR)(注,*=×)が空きメモリ容量よりも大きい場合には、並列処理をしても意味がない(実験によれば、高速処理が得られないことは明らかである。)。従って、単一処理が実行され、キー数はデフォルト値(NL=2)に決定される。
167〜181行に関して、もし、値(ファイルサイズ*NL_MEM _FACTOR)が空きメモリ容量よりも小さい場合には、次の3通りの場合に分ける。
1):167〜171行に関して、もし、値(ファイルサイズ*NL_MEM _FACTOR)が106バイトより小さいとき、並列処理をしても意味がない(上述のように、実験によれば、高速処理が得られないことは明らかである。)。従って、単一処理が実行され、キー数は、デフォルト数*プロセス数、によって決定される。
2):172〜176行に関して、もし、値(ファイルサイズ*NL_ MEM_ FACTOR)が、106バイト以上で2*106バイト以下のときは、2並列(2プロセス)処理が実行され、キー数はデフォルト*プロセス数によって決定される。
3):177〜181行に関して、もし値(ファイルサイズ*NL_ MEM_ FACTOR)が、2*106バイトより大きいときは、並列処理の数は、値(CPU数−1)に基づいて実行され、キー数はデフォルト*プロセス数によって決定される。
次に、図41(A)乃至図41(F)のサンプルプログラムについて説明する。
このサンプルプログラムは、関数“GetSystemParameters”を用いてハードウェアの情報、即ち、プラットフォーム、CPUの数、メモリのページサイズ、全物理的メモリ容量のページ数、及び空きメモリ容量のページ数、を取得する。この結果はスクリーンに表示される。さらに、関数“DetermineNumberOfLicense”を用いて12種類のファイルサイズに対するプロセス数とキー数をスクリーンに表示する。
以下に、図41(A)乃至図41(F)に示すサンプルプログラムを詳細に説明する。
第1ブロック(54〜62行)に関して、最初に、変数の初期化(リセット)を行う。ハードウェアの情報、即ち、CPUの数(Ncpu)、メモリのページサイズ(Psize)、全物理的メモリ容量のページ数(PhyPage)、及び空きメモリ容量のページ数(AvPage)、に「0」を代入する。さらに、プラットフォーム(Platform)にはヌル(Null)を代入する。
第2ブロック(65〜81行)に関して、実際のハードウェアの数、即ち、CPUの数(Ncpu)、メモリのページサイズ(Psize)、全物理的メモリ容量のページ数(PhyPage)、及び空きメモリ容量のページ数(AvPage)、が決定され、スクリーンに表示される。
第3ブロック(85〜103行)に関して、12種類のファイルサイズについて、上述により取得したハードウェアの情報に基づいて、並列処理の数(プロセス数)及びキー数が決定される。決定したプロセス数とキー数はスクリーンに表示される。
次に、図42(A)乃至図42(C)を参照してサンプルプログラムの実行結果を説明する。
サンプルプログラムを“Solaris2.5”(OS)を搭載した2種類のワークステーション(モデル名:S−4/1,S−4/1000)で実行した結果を示す。
図42(A)において、サンプルプログラムは、プラットフォームとしてS−4/1上で実行された。この場合、CPU数は1つであるから、ファイルサイズによらず、キー数は常に1つである。
図42(B)において、サンプルプログラムは、プラットフォームとしてS−4/1000上で実行された。この場合、CPUを4つ持つスパークサーバを使用し、ファイルサイズに従って並列処理の数とキー数が相違する。
図42(C)において、サンプルプログラムは、プラットフォームとしてS−4/1000上で実行された。この場合、CPUを4つ持つスパークサーバを使用した。空きメモリ容量のページ数(AvPage)が小さいので、並列処理を行われない。従って、キー数は全て2つである。
上述の説明で明らかなように、基本的に、キー数決定関数は、以下の項目を満たすように作成されている。
第1に、CPUの性能を予め調べておく。CPUが高い性能を持つときは、多くのキー数を提供する必要がある。
第2に、空きメモリ容量とファイルサイズを互いに比較する。並列処理を実行すべき場合には、多くのキー数を提供する必要がある。
第3に、もし考慮すべきパラメータが他にある場合は、上述に類似の関数を作成することにより、キー数を変更することができる。
産業上の利用可能性
以上説明したように、本発明によれば、ソフトウェアメーカーとユーザの両方に存在する従来の多くの問題を解消することができる。従って、ソフトウェアメーカーは、多大な費用を要して開発したソフトウェアをユーザに適切な価格で発給するために、常に最適なライセンス管理を探究し開発する。その結果、本発明によるライセンス管理システムは、販売戦略が十分に考慮されライセンスの発給を提供することができ、従って、本発明は非常に高い産業上の利用可能性を有する。
Claims (12)
- 単一もしくは複数のコンピュータを駆動するソフトウェアのライセンス管理システムであって、
自身を駆動するために必要なキー数の決定を要求し、ライセンスの発給を受けるアプリケーション・プログラムと、
前記アプリケーション・プログラムからの要求に応じて必要な前記キー数を決定するキー数決定手段と、
前記キー数決定手段にて決定された前記キー数を発給するライセンス管理手段と、
を具備し、
前記キー数決定手段は、LKを前記キー数、x1〜x5をそれぞれ前記キー数の決定に必要なパラメータである、前記アプリケーション・プログラムが動作するコンピュータのプラットフォームの種類、CPUの数、CPUの処理能力、メモリ容量、および処理されるデータファイルのサイズ、としたとき、以下の多項式関数、
LK=f(x1,x2,x3,x4,x5)
に基づき必要な前記キー数を決定する手段と、アプリケーション・プログラムが起動された際に、前記キー数を決定するための必要なパラメータ値をデータベースから取得する手段と、を有するライセンス管理システム。 - 前記ライセンス管理手段は、前記キー数が正しいときは前記ライセンス管理手段に保持されている前記キー数から必要な前記キー数を減らし、保持されている前記キー数が負にならないときはアプリケーション・プログラムに対してライセンスを発給する手段を有する請求項1に記載のライセンス管理システム。
- 前記キー数決定手段は、デーモンプログラムである請求項1に記載のライセンス管理システム。
- 多項式関数を決定するデータベースを備え、前記多項式関数は前記キー数決定手段にて前記多項式関数を変更することなく、前記データベースにて変更される請求項1に記載のライセンス管理システム。
- 単一もしくは複数のコンピュータを駆動するソフトウェアのライセンス管理システムであって、
自身を駆動するために必要なキー数の決定を要求し、ライセンスの発給を受けるアプリケーション・プログラムと、
前記アプリケーション・プログラムに組み込まれ、前記アプリケーション・プログラムからの要求に応じて必要な前記キー数を決定するキー数決定関数と、
前記キー数決定関数にて決定された前記キー数を発給するライセンス管理手段と、
を具備し、
前記キー数決定関数は、LKを前記キー数、x1〜x5をそれぞれ前記キー数の決定に必要なパラメータである、前記アプリケーション・プログラムが動作するコンピュータのプラットフォームの種類、CPUの数、CPUの処理能力、メモリ容量、および処理されるデータファイルのサイズ、としたとき、以下の多項式関数、
LK=f(x1,x2,x3,x4,x5)
に基づき必要な前記キー数を決定する手段と、アプリケーション・プログラムが起動された際に、前記キー数を決定するために必要なパラメータ値をデータベースから取得する手段と、を有するライセンス管理システム。 - 前記キー数決定関数は、前記アプリケーション・プログラムに組み込まれた関数コールである請求項5に記載のライセンス管理システム。
- 前記ライセンス管理手段は、前記キー数が正しいときは前記ライセンス管理手段で保持されている前記キー数から必要な前記キー数を減らし、保持されている前記キー数が負にならないときはアプリケーション・プログラムに対してライセンスを発給する手段を有する請求項5に記載のライセンス管理システム。
- 多項式関数を決定するデータベースを備え、前記多項式関数は前記キー数決定関数にて前記多項式関数を変更することなく、前記データベースにて変更される請求項5に記載のライセンス管理システム。
- 前記ライセンス管理手段のライセンスデーモンとは別個に設けられた専用ライセンスデーモンと、前記アプリケーション・プログラムとは別個に設けられた専用アプリケーション・マネージャとを備え、前記専用ライセンスデーモンと専用アプリケーション・マネージャとの間でやりとりを行う請求項1又は5に記載のライセンス管理システム。
- 複数の前記専用ライセンスデーモンと前記専用アプリケーション・マネージャの組が1つのライセンスデーモンに対して確立される請求項9に記載のライセンス管理システム。
- 前記アプリケーション・プログラムは、前記コンピュータ上において並列に起動することができるプロセスの数を決定し、
前記キー数決定手段は、前記並列処理の数に基づいて前記キー数を決定し、
前記ライセンス管理手段は、前記キー数決定手段にて決定された複数の前記キー数を発給する請求項1に記載のライセンス管理システム。 - 前記アプリケーション・プログラムは、前記コンピュータ上において並列に起動することができるプロセスの数を決定し、
前記キー数決定関数は、前記並列処理の数に基づいて前記キー数を決定し、
前記ライセンス管理手段は、前記キー数決定関数にて決定された複数の前記キー数を発給する請求項5に記載のライセンス管理システム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP1997/002460 WO1999004354A1 (en) | 1997-07-15 | 1997-07-15 | A license management system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001506794A JP2001506794A (ja) | 2001-05-22 |
JP4242458B2 true JP4242458B2 (ja) | 2009-03-25 |
Family
ID=14180833
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP50685299A Expired - Fee Related JP4242458B2 (ja) | 1997-07-15 | 1997-07-15 | ライセンス管理システム |
Country Status (4)
Country | Link |
---|---|
US (1) | US7013294B1 (ja) |
JP (1) | JP4242458B2 (ja) |
KR (1) | KR20000065245A (ja) |
WO (1) | WO1999004354A1 (ja) |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10023827A1 (de) * | 2000-05-15 | 2001-12-06 | Siemens Ag | Lizenzierung und Zugangsauthorisierung |
DE10023820B4 (de) * | 2000-05-15 | 2006-10-19 | Siemens Ag | Software-Schutzmechanismus |
US20070043675A1 (en) * | 2000-05-15 | 2007-02-22 | Siemens Aktiengesellschaft | Software license manager |
US6947977B1 (en) * | 2000-06-09 | 2005-09-20 | Metadigm Llc | Scalable transaction system for a network environment |
CN1503953A (zh) * | 2000-12-08 | 2004-06-09 | ���µ�����ҵ��ʽ���� | 分配装置、终端装置以及其中所用的程序和方法 |
EP1243998B1 (en) | 2001-03-21 | 2017-04-19 | Excalibur IP, LLC | A technique for license management and online software license enforcement |
US9633182B2 (en) | 2001-05-15 | 2017-04-25 | Altair Engineering, Inc. | Token based digital content licensing method |
SE524778C2 (sv) * | 2002-02-19 | 2004-10-05 | Douglas Lundholm | Förfarande och arrangemang för att skydda mjukvara för otillbörlig användning eller kopiering |
JP4371711B2 (ja) * | 2003-06-11 | 2009-11-25 | キヤノン株式会社 | 情報処理装置およびその制御方法、並びに、コンピュータプログラム |
JP4424721B2 (ja) * | 2003-06-11 | 2010-03-03 | キヤノン株式会社 | ライセンス情報発行サーバ |
US7457874B2 (en) * | 2004-02-20 | 2008-11-25 | Microsoft Corporation | Architecture for controlling access to a service by concurrent clients |
US9117057B2 (en) * | 2005-06-21 | 2015-08-25 | International Business Machines Corporation | Identifying unutilized or underutilized software license |
US20060294022A1 (en) * | 2005-06-22 | 2006-12-28 | Dayan Richard A | Apparatus, system, and method for enabling a service |
US8781970B2 (en) * | 2005-07-12 | 2014-07-15 | International Business Machines Corporation | System, method and program product to determine resolution when software installed on a computer is not properly licensed |
JP4768354B2 (ja) * | 2005-08-15 | 2011-09-07 | 富士通株式会社 | ジョブ管理装置、ジョブ管理方法、ジョブ管理プログラム |
US7519561B2 (en) * | 2005-11-10 | 2009-04-14 | International Business Machines Corporation | System, method and program to manage software licenses |
JP4908961B2 (ja) * | 2006-07-27 | 2012-04-04 | キヤノン株式会社 | 情報処理方法、情報処理装置、プログラム及び記憶媒体 |
JP4891054B2 (ja) * | 2006-12-21 | 2012-03-07 | キヤノン株式会社 | ライセンスを利用する画像処理装置、その制御方法およびプログラム |
US20080244754A1 (en) * | 2007-04-02 | 2008-10-02 | Edward Curren | System and Method for Software License Management for Concurrent License Management and Issuance |
US8407669B2 (en) * | 2007-07-25 | 2013-03-26 | Oracle International Corporation | Device based software authorizations for software asset management |
JP4948311B2 (ja) * | 2007-08-01 | 2012-06-06 | キヤノン株式会社 | ライセンス管理システム、ライセンス管理方法、及びコンピュータプログラム |
WO2009105702A2 (en) * | 2008-02-22 | 2009-08-27 | Etchegoyen Craig S | License auditing for distributed applications |
US20100031352A1 (en) * | 2008-08-04 | 2010-02-04 | Amarender Reddy Kethireddy | System and Method for Enforcing Licenses During Push Install of Software to Target Computers in a Networked Computer Environment |
US20100043075A1 (en) * | 2008-08-13 | 2010-02-18 | Autodesk, Inc. | Licensing management utility |
US9195807B1 (en) | 2009-01-28 | 2015-11-24 | Hewlett-Packard Development Company, L.P. | License manager for central management products |
US8898085B1 (en) | 2009-01-30 | 2014-11-25 | Hewlett-Packard Development Company, L.P. | License management solution for central-management products |
WO2010108006A2 (en) * | 2009-03-18 | 2010-09-23 | Altair Engineering, Inc. | Digital content licensing method |
WO2010115107A2 (en) * | 2009-04-02 | 2010-10-07 | Altair Engineering, Inc. | Hardware unit-based license management method |
WO2011015441A1 (en) * | 2009-08-06 | 2011-02-10 | International Business Machines Corporation | A method and system for optimising license use |
US9582776B2 (en) * | 2009-10-09 | 2017-02-28 | Oracle International Corporation | Methods and systems for providing a comprehensive view of it assets as self service inquiry/update transactions |
US9721240B2 (en) * | 2010-05-27 | 2017-08-01 | International Business Machines Corporation | Software license serving in a massively parallel processing environment |
US8751567B2 (en) | 2012-02-09 | 2014-06-10 | Oracle International Corporation | Quantify and measure micro-blogging for enterprise resources planning (ERP) |
US10679151B2 (en) | 2014-04-28 | 2020-06-09 | Altair Engineering, Inc. | Unit-based licensing for third party access of digital content |
US10685055B2 (en) | 2015-09-23 | 2020-06-16 | Altair Engineering, Inc. | Hashtag-playlist content sequence management |
US11799864B2 (en) | 2019-02-07 | 2023-10-24 | Altair Engineering, Inc. | Computer systems for regulating access to electronic content using usage telemetry data |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3614745A (en) * | 1969-09-15 | 1971-10-19 | Ibm | Apparatus and method in a multiple operand stream computing system for identifying the specification of multitasks situations and controlling the execution thereof |
US5390297A (en) * | 1987-11-10 | 1995-02-14 | Auto-Trol Technology Corporation | System for controlling the number of concurrent copies of a program in a network based on the number of available licenses |
US4937863A (en) * | 1988-03-07 | 1990-06-26 | Digital Equipment Corporation | Software licensing management system |
US4924378A (en) * | 1988-06-13 | 1990-05-08 | Prime Computer, Inc. | License mangagement system and license storage key |
US5230051A (en) * | 1990-09-04 | 1993-07-20 | Hewlett-Packard Company | Distributed messaging system and method |
JP3270102B2 (ja) * | 1991-03-11 | 2002-04-02 | ヒューレット・パッカード・カンパニー | ライセンス付与方法及びシステム |
DE69228039T2 (de) * | 1991-05-08 | 1999-08-05 | Digital Equipment Corp., Maynard, Mass. | Lizenz-verwaltungssystem |
US5438508A (en) * | 1991-06-28 | 1995-08-01 | Digital Equipment Corporation | License document interchange format for license management system |
US5204897A (en) * | 1991-06-28 | 1993-04-20 | Digital Equipment Corporation | Management interface for license management system |
US5260999A (en) | 1991-06-28 | 1993-11-09 | Digital Equipment Corporation | Filters in license management system |
US5940504A (en) * | 1991-07-01 | 1999-08-17 | Infologic Software, Inc. | Licensing management system and method in which datagrams including an address of a licensee and indicative of use of a licensed product are sent from the licensee's site |
WO1993011480A1 (en) * | 1991-11-27 | 1993-06-10 | Intergraph Corporation | System and method for network license administration |
GB9303595D0 (en) * | 1993-02-23 | 1993-04-07 | Int Computers Ltd | Licence management mechanism for a computer system |
JP3553993B2 (ja) * | 1993-08-30 | 2004-08-11 | キヤノン株式会社 | プログラム利用契約管理方法及びプログラム実行装置 |
US5619656A (en) * | 1994-05-05 | 1997-04-08 | Openservice, Inc. | System for uninterruptively displaying only relevant and non-redundant alert message of the highest severity for specific condition associated with group of computers being managed |
AU2774495A (en) * | 1994-06-14 | 1996-01-05 | Edward A Smith | Apparatus and method for controlling the registration, paid licensing and metered usage of software products |
US5671412A (en) * | 1995-07-28 | 1997-09-23 | Globetrotter Software, Incorporated | License management system for software applications |
US5758068A (en) * | 1995-09-19 | 1998-05-26 | International Business Machines Corporation | Method and apparatus for software license management |
US5825883A (en) * | 1995-10-31 | 1998-10-20 | Interval Systems, Inc. | Method and apparatus that accounts for usage of digital applications |
US5752041A (en) * | 1995-12-15 | 1998-05-12 | International Business Machines Corporation | Method and system for licensing program management within a distributed data processing system |
US5758069A (en) * | 1996-03-15 | 1998-05-26 | Novell, Inc. | Electronic licensing system |
US5905860A (en) * | 1996-03-15 | 1999-05-18 | Novell, Inc. | Fault tolerant electronic licensing system |
US5991876A (en) * | 1996-04-01 | 1999-11-23 | Copyright Clearance Center, Inc. | Electronic rights management and authorization system |
US5864620A (en) * | 1996-04-24 | 1999-01-26 | Cybersource Corporation | Method and system for controlling distribution of software in a multitiered distribution chain |
US5754763A (en) * | 1996-10-01 | 1998-05-19 | International Business Machines Corporation | Software auditing mechanism for a distributed computer enterprise environment |
JP3924342B2 (ja) * | 1997-02-14 | 2007-06-06 | 富士通株式会社 | ソフトウェアライセンス管理システムおよびソフトウェアライセンス管理装置 |
US6021438A (en) * | 1997-06-18 | 2000-02-01 | Wyatt River Software, Inc. | License management system using daemons and aliasing |
-
1997
- 1997-07-15 WO PCT/JP1997/002460 patent/WO1999004354A1/en not_active Application Discontinuation
- 1997-07-15 KR KR1019980710531A patent/KR20000065245A/ko not_active Application Discontinuation
- 1997-07-15 JP JP50685299A patent/JP4242458B2/ja not_active Expired - Fee Related
- 1997-07-15 US US09/202,189 patent/US7013294B1/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001506794A (ja) | 2001-05-22 |
KR20000065245A (ko) | 2000-11-06 |
US7013294B1 (en) | 2006-03-14 |
WO1999004354A1 (en) | 1999-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4242458B2 (ja) | ライセンス管理システム | |
US5230052A (en) | Apparatus and method for loading bios into a computer system from a remote storage location | |
JP4729172B2 (ja) | 宣言型パラダイムをサポートするステートレスなウェブ環境におけるトランザクションを実行するための方法および装置 | |
US6477569B1 (en) | Method and apparatus for computer network management | |
JP4440990B2 (ja) | 機能するオペレーティング・システムなしにコンピュータのリモート管理を可能にするネットワーク機能拡張bios | |
US20070226715A1 (en) | Application server system and computer product | |
AU2006252906B2 (en) | Split download for electronic software downloads | |
US20140068003A1 (en) | Transaction correlation using three way handshake | |
CN111176801B (zh) | 一种多进程管理方法、装置、设备及存储介质 | |
US20080168167A1 (en) | Service provided by a single entity for all applications | |
US20030140272A1 (en) | Method and data processing system providing checkpoint/restart across multiple heterogeneous computer systems | |
CN109471896A (zh) | 数据源信息动态变更方法及装置 | |
TWI261748B (en) | Policy-based response to system errors occurring during OS runtime | |
TW498211B (en) | Agent provided by USB device for executing USB device dependent program in USB host | |
JP4233635B2 (ja) | アプリケーション・インタフェースに持続性を提供するための装置および方法 | |
CN114257551A (zh) | 一种分布式限流的方法及系统、存储介质 | |
CN103765387A (zh) | 便携式计算装置中的分布式资源管理 | |
US7444629B2 (en) | Autonomic self-healing of java resources | |
US6735716B1 (en) | Computerized diagnostics and failure recovery | |
US8213038B2 (en) | Client call service | |
Team | Condor Version 7.5. 0 Manual | |
US6667736B1 (en) | Method for communicating local information between component objects and hosts | |
WO2000045266A1 (en) | Method and apparatus for automated tuning and configuration collection for logic systems | |
JP3586943B2 (ja) | プログラムロード装置と方法 | |
JP4071678B2 (ja) | バッチアプリケーション実行制御方法,バッチアプリケーション実行制御装置およびバッチアプリケーション実行制御プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060124 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20060421 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20060421 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20060612 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060724 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070710 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20071010 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20071119 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080110 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080304 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080530 |
|
A72 | Notification of change in name of applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A721 Effective date: 20080530 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20080925 |
|
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: 20081125 |
|
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: 20081225 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120109 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: 20130109 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |