説明

プロテクトドングル、コンピュータプログラムのライセンス付与システムおよびライセンス付与方法

【課題】コンピュータプログラムについて、その使用数量に応じてライセンスを付与できるライセンス付与システム、およびライセンス付与方法を提供する。
【解決手段】コンピュータ1とデータを授受できるプロテクトドングル3であって、コンピュータ1に固有の識別符号から所定の演算方法で生成した符号を記憶するライセンス情報記憶部32と、所定のプログラム2をコンピュータ1で実行するときに、プログラム2の利用可能な使用数量を定めるデータを記憶する利用可能数量記憶部33と、を備え、コンピュータ1からの要求に応答して、ライセンス情報および利用可能な使用数量を定めるデータをコンピュータ1に送信し、コンピュータ1がプログラム2を実行したのちの、利用可能な使用数量を定めるデータを、コンピュータ1から受信して利用可能数量記憶部33に記憶する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プロテクトドングル、コンピュータプログラムのライセンス付与システムおよびライセンス付与方法に関する。
【背景技術】
【0002】
コンピュータの普及に伴って、いわゆるパッケージソフトの形態でコンピュータプログラムが流通している。パッケージソフトはライセンス単位の契約で販売される。コンピュータプログラムをライセンスを超えて使用できないように、コピーまたは同時使用を制限する技術がある。例えば、プロテクトドングル(ハードウェアプロテクトキーともいう)がコンピュータに装着されている場合に限ってプログラムを実行することによって、同時使用の台数を規制する方法がある。また、プログラムをコンピュータにインストールまたは実行するときに、ライセンスコードの入力を求め、正規のユーザであることを確認することが行われている。
【0003】
特許文献1は、情報処理装置の利用制限を行うためのカウンタの限界値をセキュリティ上安全な方法で動的に設定・変更する技術が記載されている。特許文献1の技術は、カウンタ機能を有し、カウンタ値が限界値に達した場合に機能の制限を行う複写機に対して、当該複写機の機器シリアル番号と新たな限界値を含むライセンス情報を入力する。そして、入力されたライセンス情報が有効であるか否かを判定し、有効であると判定されたことを条件として、保持されている限界値をライセンス情報に含まれる新たな限界値に更新する。
【0004】
特許文献2は、ユニーク性を損なうことなく再発行が可能なハードウェアプロテクトキーの技術が記載されている。パーソナルコンピュータに装着され、特定ソフトウェアの使用の可否を制御するハードウェアプロテクトキーであって、特定ソフトウェアと同一種類の他のソフトウェアの使用の可否を規定する第1シリアルNo.が初期状態において記憶され、特定ソフトウェアの使用の可否を規定する第2シリアルNo.が必要に応じて追加的に記憶される記憶部を有する。パーソナルコンピュータからの要求に応答して、記憶部に第2シリアルNo.が記憶されている場合は該第2シリアルNo.を、記憶されていない場合は第1シリアルNo.を記憶部から読み出してパーソナルコンピュータに送る。
【0005】
特許文献3は、アプリケーションプログラムの能力の変更を短時間で行うための技術が記載されている。特許文献3の技術は、キャパシティーオンデマンド(以下、CODという)の発動を契機として、ソフトウェアベンダに対してもCODの発動を通知する。CODの発動通知を受けたソフトウェアベンダは顧客の計算機に対して自動的に新しい構成で動作するためのライセンスキーを送信する事により、短時間での業務処理能力の向上を実現する。また、アプリケーション使用料の支払いが滞った場合には、アプリケーションベンダから制限付きのライセンスキーを送り込み、不正使用を防ぐ事ができる。さらに顧客システムではライセンスキーをを受け取った契機で、アプリケーション自体に通知を行う事で、アプリケーション動作中に動的に処理能力を向上させる手段を提供する。
【0006】
特許文献4は、ポータブルメモリデバイス上にあるアプリケーションプログラムの実行に際して、知的所有権保護を行う技術が記載されている。少なくとも1つのアプリケーションプログラムを有するポータブルメモリデバイスがユーザに提供される。これがホスト環境に接続され、そのアプリケーションが実行されると、ポータブルメモリデバイス上に少なくとも部分的にある有効なライセンスが、そのアプリケーションプログラムに対応するかどうかが判定される。有効なライセンスが存在すると判定された場合に、ホストプラットホームプロセッサを使用してアプリケーションプログラムが実行され、有効なライセンスが存在しないと判定された場合にはアプリケーションの実行は停止される。
【特許文献1】特開2005−352902号公報
【特許文献2】特開2005−50162号公報
【特許文献3】特開2004−86392号公報
【特許文献4】特開2006−73002号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
コンピュータプログラムの機能が高度になるほど、また、用途が特殊になるほど、ライセンス当たりの価格は高くなる傾向にある。ライセンスは一般に、プログラムの導入に対して付与され、その価格は使用頻度には関係ない。ライセンスの数によって1本当たりの価格は変動するが、使用頻度(使用数量)に関わらず、ソフトウェア(コンピュータプログラム)の使用料金は一定である。すなわち、毎日使用する人も、たまにしか使用しない人も負担する金額は同じである。
【0008】
そのプログラムの使用頻度が多くない場合、または、処理の目的にそのプログラムが適合しているか知りたいような場合に、ライセンスを購入したのでは負担が大きすぎることがある。関連する技術のライセンスの付与方法では、少頻度の需要に対応できなかった。特許文献1の技術は、情報処理装置の使用に対するライセンス付与方法であって、ハードウェアにバンドルされていないソフトウェアのコピー防止や不正使用の対策が充分ではない。
【0009】
さらに、プログラムを実行するハードウェア環境についても、利用者ごとの違いがライセンス料には反映しない。同じプログラムの使用について、プログラムが対応できる最大限のハードウェア資源を用いて処理を行う場合に、その機能を充分利用しているといえる。豊富なまたは高度なハードウェア資源を利用できるプログラムについて、そのプログラムが対応できる最大限のハードウェア資源を用いて処理を行う場合に比べて、実用的な最小限のハードウェア資源を用いて処理を行う場合では、その能力を充分に活用していないことになる。逆に言えば、能力を充分に発揮できないハードウェア環境であっても、同じライセンス料を負担しなければならない。
【0010】
関連する技術のライセンス付与方法では、ユーザのハードウェア環境の違いが考慮されず、一律なライセンス料の場合が多かった。ハードウェア環境の違いを考慮してライセンス料を設定したとしても、プログラムを導入したのちに、ハードウェア環境が変化することに対応できなかった。
【0011】
また、コンピュータプログラムが使用される地域が拡大することに応じて、不正使用の防止と同時に、対価の回収についてもいろいろな方法、特に、プリペイド方式を採用できることが望ましい。従量制と同時に前払い制のライセンス付与を行うプログラムの提供方法がなかった。
【0012】
本発明は上述の事情に鑑みてなされたもので、コンピュータプログラムについて、その使用数量に応じてライセンスを付与できるライセンス付与システム、およびライセンス付与方法を提供することを目的とする。
【課題を解決するための手段】
【0013】
本発明の第1の観点に係るプロテクトドングルは、
コンピュータとデータを授受できるプロテクトドングルであって、
あるコンピュータに固有の識別符号から所定の演算方法で生成した符号であるライセンス情報と、
所定のプログラムを前記コンピュータで実行するときに、該プログラムの利用可能な使用数量を定めるデータと、
を記憶し、
前記コンピュータからの要求に応答して、前記ライセンス情報および前記利用可能な使用数量を定めるデータを該コンピュータに送信し、
前記コンピュータが前記プログラムを実行したのちの、利用可能な使用数量を定めるデータを、前記コンピュータから受信して記憶する、
ことを特徴とする。
【0014】
本発明の第2の観点に係るコンピュータプログラムのライセンス付与システムは、
本発明の第1の観点に係るプロテクトドングルと、
前記プロテクトドングルとデータを授受できるコンピュータと、
前記コンピュータ上で実行可能な所定のプログラムと、
を備え、
前記所定のプログラムを前記コンピュータで実行するときに、前記プロテクトドングルに記憶されている前記ライセンス情報と、前記プログラムをコンピュータで実行するときに該プログラムの利用可能な使用数量を定めるデータとを、前記プロテクトドングルから入力し、
前記ライセンス情報から所定の演算方法で復号したデータが、前記コンピュータに固有の識別符号と整合して、かつ、前記利用可能な使用数量が残存する場合に、前記プログラムの処理を実行し、
前記プログラムを実行したのちの、利用可能な使用数量に応じた値を、新たな利用可能な使用数量として前記プロテクトドングルに記憶し、
前記ライセンス情報から前記所定の演算方法で復号したデータが、前記コンピュータに固有の識別符号と整合しない場合、または、前記利用可能な使用数量が残存しない場合に、前記プログラムの実行を制限する、
ことを特徴とする。
【0015】
本発明の第3の観点に係るコンピュータプログラムのライセンス付与方法は、
所定のプログラムをコンピュータで実行するときに、前記コンピュータとデータを授受できるプロテクトドングルに記憶されている、ライセンス情報と、前記プログラムをコンピュータで実行するときに該プログラムの利用可能な使用数量を定めるデータとを、前記プロテクトドングルから入力する入力ステップと、
前記ライセンス情報から所定の演算方法でデータを復号する復号ステップと、
前記復号ステップで復号したデータが、前記コンピュータに固有の識別符号と整合して、かつ、前記利用可能な使用数量が残存する場合に、前記プログラムの処理を実行する実行ステップと、
前記実行ステップで前記プログラムを実行したのちの、利用可能な使用数量に応じた値を、新たな利用可能な使用数量として前記プロテクトドングルに記憶する利用限度改訂ステップと、
前記復号ステップで復号したデータが、前記コンピュータに固有の識別符号と整合しない場合、または、前記利用可能な使用数量が残存しない場合には、前記プログラムの実行を制限する実行制限ステップと、
を備えることを特徴とする。
【発明の効果】
【0016】
本発明によれば、コンピュータプログラムについて、その使用数量に応じてライセンスを付与することができる。また、前払いで従量制の対価を回収するライセンス付与を可能とする。
【発明を実施するための最良の形態】
【0017】
(実施の形態1)
図1は、本発明の実施の形態1に係るライセンス付与システムの構成例を示すブロック図である。ライセンス付与システムは、コンピュータ1と、プログラム2と、プロテクトドングル(以下、単にドングルという)3とから構成される。プログラム2は、ライセンス付与の目的であって、コンピュータ1で実行される。
【0018】
プログラム2は、一般に、コンピュータ1のオペレーティングシステム(OS)4の上で動作し、OS4が提供する入出力部41を介して、コンピュータ1の入出力ポート(図示せず)からデータを入出力する。
【0019】
ドングル3は、コンピュータ1の、例えばUSB(Universal Serial Bus)またはプリンタ用のパラレルポートなどの、入出力ポートに接続される。ドングル3とコンピュータ1の接続は、その他の通信ポートでもよいし、PCMCIAまたはSDメモリカードなどのスロットでも構わない。さらに、無線LAN、Bluetoothまたは赤外線インタフェース(IrDA)などの方法を採用することも可能である。
【0020】
ドングル3は、入出力部31と、ライセンス情報記憶部32と、利用可能数量記憶部33を備える。入出力部31は、コンピュータ1の入出力ポートを経由して、OS4の入出力部41とデータを送受信する。ライセンス情報記憶部32は、プログラム2をコンピュータ1で実行できる権限を許可するライセンス情報を記憶する。
【0021】
図2は、ライセンス情報の例を示す。ライセンス情報は、コンピュータ1に固有の識別符号、例えば、MACアドレス(マック・アドレス、Media Access Control address)から演算された符号である。例えば、MACアドレスにプログラム2の識別コードやユーザのライセンス番号などを加えたデータを、暗号化したデータである。または、何らかの識別コードを、MACアドレスなどを鍵として暗号化した符号でもよい。
【0022】
ライセンス情報は、コンピュータ1の固有の識別符号と整合するかどうかを判断することができて、改竄となりすましを防止できることが必要である。図2の例では、ライセンス情報が正当であることを確認するための認証コードを付加している。例えば、ライセンス情報またはそれを復号したデータから、所定のパラメータを用いたハッシュ関数によって生成したデータなどを用いる。
【0023】
図1の利用可能数量記憶部33は、プログラム2の利用可能な使用数量を定めるデータを格納する。図3は、利用可能な使用数量のデータの例を示す。利用可能な使用数量には、例えば、プログラム2の入力データのバイト数、プログラム2が実行途中で生成する中間ファイルのデータ量、または、プログラム2の出力データのバイト数などを用いることができる。これらのデータ容量は、バイト数でなく、例えば、画像の枚数やページ数などでカウントしてもよい。
【0024】
その他、プログラム2を実行したときのダイナミックステップ数、所定の関数を実行した回数、読み込みまたは書き出ししたデータ量などを使用数量として用いてもよい。また、それぞれの使用数量を独立に計測した値でなく、それぞれに所定の係数を乗じて加算した合計値などを使用数量として用いてもよい。
【0025】
使用数量は改竄を防止する必要がある。例えば、利用可能数量記憶部33に記憶されるデータは、暗号化されている。または、プログラム2に埋め込まれた秘密のコードを用いないと、ドングル3に書き込めないように規制する。
【0026】
ライセンス情報は、前もってユーザから連絡されたコンピュータ1に固有の識別符号から生成して、ドングル3に格納する。また、ユーザが利用する予定の使用数量をドングル3に設定する。ドングル3と対価を交換することによって、使用数量に応じた対価を回収することができる。
【0027】
図1のプログラム2は、プログラム機能部21、実行制御部22、実行権限判定部23、利用可能数量判定部24および利用可能残量算出部25を備える。プログラム機能部21は、本来そのプログラム2が提供する機能を実行する。
【0028】
実行制御部22は、実行権限判定部23および利用可能数量判定部24の結果に基づいて、プログラム機能部21の動作を制御する。例えば、ライセンス情報がコンピュータ1のMACアドレスと整合しない場合は、プログラム機能部21を実行させない。また、利用可能な使用数量の範囲で、プログラム機能部21を実行させる。
【0029】
実行権限判定部23は、コンピュータ1に固有の識別符号を取得し、ドングル3からライセンス情報を読み出して解読し、それらが整合するかどうか判断する。例えば、暗号化されたライセンス情報を所定の復号化方法で解読して、MACアドレスを取り出し、OS4から取得したMACアドレスと照合する。あるいは、MACアドレス(と所定のコード)を暗号鍵としてライセンス情報を解読して、所定のデータが含まれているかどうかを判断する。
【0030】
利用可能数量判定部24は、ドングル3から利用可能な使用数量を取得して、実行制御部22に伝える。使用数量のデータが暗号化されている場合は、利用可能数量判定部24で復号化する。
【0031】
前述のとおり、実行制御部22は、ライセンス情報がコンピュータ1の固有の識別符号と整合し、利用可能な使用数量に残量がある場合に、その範囲でプログラム機能部21を実行させる。そして、使用した数量を利用可能残量算出部25に伝える。
【0032】
利用可能残量算出部25は、実行する前の使用数量から使用した数量を減じて、使用可能な残量を算出する。利用可能残量算出部25は、使用数量の残量を改めて使用数量に置き換え、必要に応じて暗号化して、ドングル3の利用可能数量記憶部33に格納する。
【0033】
図4は、実施の形態1に係るプログラム実行処理の動作の一例を示すフローチャートである。プログラム2が起動されると、実行権限判定部23は、ドングル3からライセンス情報を読み出し(ステップS11)、ライセンス情報を解読する(ステップS12)。同時に、OS4からコンピュータ1に固有の識別符号を取得して、ライセンス情報と整合するか調べる(ステップS13)。
【0034】
実行制御部22は、ライセンス情報とコンピュータ1の固有符号とが整合しない場合(ステップS13;NO)、プログラムの実行を終了する。ライセンス情報とコンピュータ1の固有符号とが整合する場合(ステップS13;YES)、利用可能数量判定部24は、ドングル3から利用可能な使用数量を読み出す(ステップS14)。
【0035】
利用可能な使用数量に残高がない場合は(ステップS15;NO)、実行制御部22は、プログラムの実行を終了する。使用数量の残高があれば(ステップS15;YES)、実行制御部22は、その範囲でプログラム機能部21を実行させる(ステップS16)。
【0036】
利用可能残量算出部25は、プログラム機能部21を実行する前の利用可能数から、実行した数量を減じた値を、新たな利用可能数とする(ステップS17)。そして、新たな利用可能数をドングル3に格納する(ステップS18)。
【0037】
プログラム2を終了する場合は(ステップS19;YES)、処理を終了する。プログラム2を継続して実行する場合は(ステップS19;NO)、ステップS15に戻って、利用可能数の残量を判定する。プログラム2の利用可能な使用数量(のいずれか)の残高が0になった時点で、プログラム2(のプログラム機能部21)は実行されない。
【0038】
本実施の形態1のライセンス付与システムによれば、コンピュータプログラムについて、その使用数量に応じてライセンスを付与することができる。さらに、前払いで従量制の対価を回収することができる。
【0039】
また、ライセンス情報および従量制の使用数量は、コンピュータ1とは独立のドングル3に格納されているので、改竄やなりすましに対する保護を強化しやすい。例えば、データを暗号化して、OS4の入出力をトンネルのように使用することによって、プログラム2でしか実質的にデータを読み書きできないようにすることができる。
【0040】
ライセンス情報は、プログラム2を実行させるコンピュータ1に固有の識別符号から生成され、プログラム2を実行するときに整合するかどうか判断するので、ドングル3をコンピュータに装着しなければプログラム2を実行することができない。また、許可されたコンピュータ1以外のコンピュータではプログラム2を実行することができない。
【0041】
(実施の形態1の変形例)
図5は、実施の形態1の変形例に係るライセンス付与システムの構成例を示す。図1の構成に比べて、ドングル3に制御プログラム記憶部35が追加されている。また、プログラム2に、プログラムロード実行部20を備える。
【0042】
図5のライセンス付与システムでは、ライセンス情報を判断して実行を制御するプログラムが、ドングル3の制御プログラム記憶部35に格納されている。プログラム2のプログラムロード実行部20は、プログラム2が起動されたときに、ドングル3から制御プログラムを読み込んで実行する。制御プログラムは、実行制御部22、実行権限判定部23、利用可能数量判定部24および利用可能残量算出部25などの、各処理を行うプログラムである。
【0043】
図6は、ドングル格納プログラムを実行する動作の一例を示す。プログラム2が起動されたときに、プログラムロード実行部20は、ドングル3から制御プログラムをロードして、それを実行する(ステップS20)。制御プログラムはプログラム実行処理を行う(ステップS21)。制御プログラムの動作は、例えば、図4のプログラム実行処理である。
【0044】
プログラム2は、ライセンス付与の処理内容に関わらず、起動されたときにドングル3から制御プログラムを読み込んで実行するという構成にしておけばよい。制御プログラムはドングル3で与えられるので、プログラム2をインストールしたのちに、ライセンス付与の処理を変更・改訂することができる。
【0045】
(実施の形態2)
実施の形態2は、プログラム2を実行するコンピュータ1のハードウェア資源を制限する場合である。図7は、本発明の実施の形態2に係るライセンス付与システムの構成例を示すブロック図である。実施の形態2のプログラム2は、実施の形態1の構成に資源割当部26が追加されている。また、ドングル3は、資源限度記憶部34を備える。その他の構成は実施の形態1と同様である。
【0046】
ドングル3の資源限度記憶部34は、プログラム2を実行するときに利用できるハードウェア資源の限度を記憶する。図8は、ハードウェア資源の限度の例を示す。ハードウェア資源の限度には、例えば、同時に命令を実行するプロセッサ(演算処理装置)の個数、プロセッサの動作周波数、プログラム2が使用するメモリの容量がある。また、プログラム2の処理内容に応じたアクセラレータがある場合、例えば、画像処理のためのグラフィックアクセラレータなど、それを使用できる個数の制限を設けてもよい。さらに、プログラム2がグリッドコンピューティングで実行できる場合に、同時に動作するグリッドの台数をハードウェア資源の限度とすることもできる。
【0047】
資源はハードウェアに限らず、プログラム2の機能を資源とみなして、それらの限度を設定してもよい。例えば、プログラム2のある関数を実行できる権限や、再帰的な処理のネストの深さなどを限度として設定することも可能である。
【0048】
実行制御部22の資源割当部26は、プログラム機能部21を実行するときに、その入力データまたはプログラム機能部21が要求する資源を、資源限度記憶部34の設定データに基づいて制限する。例えば、コンピュータ1が4個のプロセッサを備えていても、資源限度の同時実行プロセッサ数が2の場合は、4個のプロセッサのうち同時には2個でしか命令を実行させない。また、プログラム2のデータが増大しても、資源限度の範囲でしかメモリを割り当てない。それを超えるデータが生じた場合は、例えば、外部記憶上に仮想記憶領域をとるか、そのメモリ容量の範囲で実行するように処理を分割する。
【0049】
プロセッサの動作周波数に制限を設ける場合は、例えば、クロック周波数を切り替えることができれば、制限以下の周波数にする。クロック周波数を切り替えられない場合でも、実質的に制限以下の動作周波数になるように、ウェイト(無効命令)を挿入することができる。グリッドコンピューティングのグリッドの台数に制限を設ける場合は、制限以上の台数のグリッドをアサインする命令を、実行中のあるグリッドの処理が終わって開放されるまで待たせる。
【0050】
図9は、実施の形態2に係るプログラム実行処理の動作の一例を示すフローチャートである。ライセンス情報を読み出して(ステップS11)から、利用可能数を読み出す(ステップS14)までは、実施の形態1の動作と同じである。
【0051】
実施の形態2では、ハードウェア資源限度がある場合に、そのデータをドングル3から読み出す(ステップS30)。利用可能数の残高がある場合に(ステップS15;YES)、利用可能数およびハードウェア資源の限度の範囲でプログラムの機能を実行する(ステップS31)。すなわち、資源割当部26はハードウェア資源限度の範囲で、コンピュータ1の資源を割り当てる。ステップS17からステップS19の処理は、実施の形態1の動作と同様である。
【0052】
図10は、ハードウェア資源割当処理の動作の一例を示す。資源割当部26は、プログラム機能部21から資源割当要求を受け付ける(ステップS41)。資源割当要求がなければ(ステップS42;NO)、資源割当要求受付を繰り返す。
【0053】
資源割当要求があると(ステップS42;YES)、その要求によって資源限度が超えるかどうか判断する(ステップS43)。資源限度を超える場合は(ステップS43:YES)、資源割当要求を資源限度範囲に制限する(ステップS44)。資源限度を超えなければ(ステップS43;NO)、資源要求をそのままとする。
【0054】
資源割当部26は、受け付けた資源要求または資源限度範囲に制限した資源要求に従って、ハードウェア資源を割り当てる。例えば、メモリ、アクセラレータまたは新たなグリッドなどのハードウェア資源の割当をOS4に要求する。そして、新たな資源割当要求を受け付ける(ステップS41)。
【0055】
本実施の形態2のライセンス付与システムによれば、プログラム2を実行するコンピュータ1のハードウェア資源の限度をドングル3で与えるので、ドングル3を譲渡または貸し出すときに、資源の限度を設定することができる。そして、資源の限度を設定したのちに、コンピュータ1の構成が変わっても、設定した資源の限度の範囲でプログラム2が実行される。従って、ハードウェア資源の限度に応じた価格体系とすることができる。
【0056】
例えば、豊富なハードウェア資源を使用するユーザは、大きな便益の対価として相当の負担とし、小規模のハードウェア資源を使用するユーザには、その処理能力に見合った負担とすることができる。その結果、少ない資源で利用したいユーザは少ない負担でプログラム2を利用できる。
【0057】
なお、実施の形態2においても、実施の形態1の変形例のように、ドングル3に格納された制御プログラムを、プログラム2の起動時にロードして実行する構成とすることができる。
【0058】
図11は、図1、図5または図7に示すライセンス付与システムのハードウェア構成の一例を示すブロック図である。コンピュータ1は、図11に示すように、制御部11、主記憶部12、外部記憶部13、操作部14、表示部15および入出力部16を備える。主記憶部12、外部記憶部13、操作部14、表示部15および入出力部16はいずれも内部バス10を介して制御部11に接続されている。
【0059】
制御部11はCPU(Central Processing Unit)などから構成され、外部記憶部13に記憶されているプログラム2を主記憶部12にロードして実行する。
【0060】
主記憶部12はRAM(Random-Access Memory)などから構成され、外部記憶部13に記憶されているプログラム2をロードし、制御部11の作業領域として用いられる。
【0061】
外部記憶部13は、フラッシュメモリ、ハードディスク、DVD−RAM(Digital Versatile Disc Random-Access Memory)、DVD−RW(Digital Versatile Disc ReWritable)などの不揮発性メモリから構成され、前記の処理を制御部11に行わせるためのプログラム2を予め記憶し、また、制御部11の指示に従って、このプログラム2が記憶するデータを制御部11に供給し、制御部11から供給されたデータを記憶する。
【0062】
操作部14はキーボードおよびマウスなどのポインティングデバイスなどと、キーボードおよびポインティングデバイスなどを内部バス10に接続するインターフェース装置から構成されている。操作部14を介して、プログラム2の起動・終了や、プログラム2で使用するデータなどが入力され、制御部11に供給される。また、ライセンスを確認するためのパスワードなどの入力を受け付け、制御部11に供給する。
【0063】
表示部15は、CRT(Cathode Ray Tube)又はLCD(Liquid Crystal Display)などから構成され、プログラム2が出力するデータ、ライセンスが許可されていない場合や、使用数量がない場合の警告などを表示する。
【0064】
入出力部16は、USBなどのシリアルインターフェース、または、プリンタポートなどのパラレルインタフェースを備える。入出力部16、通信ポートでもよいし、PCMCIAまたはSDメモリカードなどのスロットの場合がある。さらに、無線LAN、Bluetoothまたは赤外線インタフェース(IrDA)を備える場合もある。
【0065】
図1、図5または図7に示すライセンス付与システムの動作は、プログラム2が、制御部11、主記憶部12、外部記憶部13および入出力部16を資源として用いて、プロテクトドングル3と協働して行う。
【0066】
その他、本発明の好適な変形として、以下の構成が含まれる。
【0067】
本発明の第1の観点に係るプロテクトドングルにについて、
好ましくは、前記使用数量は、前記プログラムの入力データ、計算途中データもしくは出力データ、またはそれらの組み合わせについて、所定の単位で計数した値を含むことを特徴とする。
【0068】
好ましくは、前記プログラムを実行するために利用できるハードウェア資源の限度を規定するデータを記憶し、
前記コンピュータからの要求に応答して、前記ハードウェア資源の限度を規定する情報のデータを該コンピュータに送信する、
ことを特徴とする。
【0069】
好ましくは、前記ハードウェア資源の限度を規定するデータは、演算装置の個数および/または処理能力、メモリ容量もしくはグリッドコンピューティングのグリッド数、またはそれらの組み合わせの上限を含むことを特徴とする。
【0070】
本発明の第2の観点に係るライセンス付与システムについて、
好ましくは、前記使用数量は、前記プログラムの入力データ、計算途中データもしくは出力データ、またはそれらの組み合わせについて、所定の単位で計数した値を含み、
前記コンピュータは、前記利用可能な使用数量のうち、いずれかが残存しない場合に、前記プログラムの実行を制限する、
ことを特徴とする。
【0071】
好ましくは、前記コンピュータで前記プログラムを実行するときに、前記プロテクトドングルに記憶されているハードウェア資源の限度を規定する情報のデータを、前記プロテクトドングルから入力し、
前記プログラムは、前記プロテクトドングルから入力した前記ハードウェア資源の限度の範囲で、前記コンピュータの資源を用いる、
ことを特徴とする。
【0072】
好ましくは、前記ハードウェア資源の限度を規定するデータは、演算装置の個数および/または処理能力、メモリ容量もしくはグリッドコンピューティングのグリッド数、またはそれらの組み合わせの上限を含み、
前記プログラムは、前記プロテクトドングルから入力した前記ハードウェア資源の限度のいずれについても、その限度の範囲で前記コンピュータの資源を用いる、
ことを特徴とする。
【0073】
本発明の第3の観点に係るライセンス付与方法について、
好ましくは、前記使用数量は、前記プログラムの入力データ、計算途中データもしくは出力データ、またはそれらの組み合わせについて、所定の単位で計数した値を含み、
前記実行制限ステップは、前記利用可能な使用数量のうち、いずれかが残存しない場合に、前記プログラムの実行を制限する、
ことを特徴とする。
【0074】
好ましくは、前記入力ステップは、前記コンピュータで前記プログラムを実行するときに、前記プロテクトドングルに記憶されているハードウェア資源の限度を規定する情報のデータを、前記プロテクトドングルから入力し、
前記実行ステップは、前記プロテクトドングルから入力した前記ハードウェア資源の限度の範囲で前記コンピュータの資源を用いて、前記プログラムを実行する、
ことを特徴とする。
【0075】
好ましくは、前記プロテクトドングルに記憶されている前記ハードウェア資源の限度を規定するデータは、演算装置の個数および/または処理能力、メモリ容量もしくはグリッドコンピューティングのグリッド数、またはそれらの組み合わせの上限を含み、
前記実行ステップは、前記プロテクトドングルから入力した前記ハードウェア資源の限度のいずれについても、その限度の範囲で前記コンピュータの資源を用いる、
ことを特徴とする。
【0076】
その他、前記のハードウエェア構成やフローチャートは一例であり、任意に変更および修正が可能である。
【図面の簡単な説明】
【0077】
【図1】本発明の実施の形態1に係るライセンス付与システムの構成例を示すブロック図である。
【図2】ライセンス情報の例を示す図である。
【図3】利用可能な使用数量のデータの例を示す図である。
【図4】実施の形態1に係るプログラム実行処理の動作の一例を示すフローチャートである。
【図5】実施の形態1の変形例に係るライセンス付与システムの構成例を示す図である。
【図6】ドングル格納プログラムを実行する動作の一例を示すフローチャートである。
【図7】本発明の実施の形態2に係るライセンス付与システムの構成例を示すブロック図である。
【図8】ハードウェア資源の限度の例を示す図である。
【図9】実施の形態2に係るプログラム実行処理の動作の一例を示すフローチャートである。
【図10】ハードウェア資源割当処理の動作の一例を示すフローチャートである。
【図11】ライセンス付与システムのハードウェア構成の一例を示すブロック図である。
【符号の説明】
【0078】
1 コンピュータ
2 プログラム
3 プロテクトドングル
4 オペレーティングシステム
11 制御部
12 主記憶部
13 外部記憶部
14 操作部
15 表示部
16 入出力部
20 プログラムロード実行部
21 プログラム機能部
22 実行制御部
23 実行権限判定部
24 利用可能数量判定部
25 利用可能残量算出部
26 資源割当部
31 入出力部
32 ライセンス情報記憶部
33 利用可能数量記憶部
34 資源限度記憶部
35 制御プログラム記憶部
41 入出力部

【特許請求の範囲】
【請求項1】
データをコンピュータと授受できるプロテクトドングルであって、
あるコンピュータに固有の識別符号から所定の演算方法で生成した符号であるライセンス情報と、
所定のプログラムを前記コンピュータで実行するときに、該プログラムの利用可能な使用数量を定めるデータと、
を記憶し、
前記コンピュータからの要求に応答して、前記ライセンス情報および前記利用可能な使用数量を定めるデータを該コンピュータに送信し、
前記コンピュータが前記プログラムを実行したのちの、利用可能な使用数量を定めるデータを、前記コンピュータから受信して記憶する、
ことを特徴とするプロテクトドングル。
【請求項2】
前記使用数量は、前記プログラムの入力データ、計算途中データもしくは出力データ、またはそれらの組み合わせについて、所定の単位で計数した値を含むことを特徴とする請求項1に記載のプロテクトドングル。
【請求項3】
前記プログラムを実行するために利用できるハードウェア資源の限度を規定するデータを記憶し、
前記コンピュータからの要求に応答して、前記ハードウェア資源の限度を規定する情報のデータを該コンピュータに送信する、
ことを特徴とする請求項1または2に記載のプロテクトドングル。
【請求項4】
前記ハードウェア資源の限度を規定するデータは、演算装置の個数および/または処理能力、メモリ容量もしくはグリッドコンピューティングのグリッド数、またはそれらの組み合わせの上限を含むことを特徴とする請求項3に記載のプロテクトドングル。
【請求項5】
請求項1ないし4のいずれか1項に記載のプロテクトドングルと、
前記プロテクトドングルとデータを授受できるコンピュータと、
前記コンピュータ上で実行可能な所定のプログラムと、
を備え、
前記所定のプログラムを前記コンピュータで実行するときに、前記プロテクトドングルに記憶されている前記ライセンス情報と、前記プログラムをコンピュータで実行するときに該プログラムの利用可能な使用数量を定めるデータとを、前記プロテクトドングルから入力し、
前記ライセンス情報から所定の演算方法で復号したデータが、前記コンピュータに固有の識別符号と整合して、かつ、前記利用可能な使用数量が残存する場合に、前記プログラムの処理を実行し、
前記プログラムを実行したのちの、利用可能な使用数量に応じた値を、新たな利用可能な使用数量として前記プロテクトドングルに記憶し、
前記ライセンス情報から前記所定の演算方法で復号したデータが、前記コンピュータに固有の識別符号と整合しない場合、または、前記利用可能な使用数量が残存しない場合に、前記プログラムの実行を制限する、
ことを特徴とするライセンス付与システム。
【請求項6】
前記使用数量は、前記プログラムの入力データ、計算途中データもしくは出力データ、またはそれらの組み合わせについて、所定の単位で計数した値を含み、
前記コンピュータは、前記利用可能な使用数量のうち、いずれかが残存しない場合に、前記プログラムの実行を制限する、
ことを特徴とする請求項5に記載のライセンス付与システム。
【請求項7】
請求項3または4に記載のプロテクトドングルを備え、
前記コンピュータで前記プログラムを実行するときに、前記プロテクトドングルに記憶されているハードウェア資源の限度を規定する情報のデータを、前記プロテクトドングルから入力し、
前記プログラムは、前記プロテクトドングルから入力した前記ハードウェア資源の限度の範囲で、前記コンピュータの資源を用いる、
ことを特徴とする請求項5または6に記載のライセンス付与システム。
【請求項8】
前記ハードウェア資源の限度を規定するデータは、演算装置の個数および/または処理能力、メモリ容量もしくはグリッドコンピューティングのグリッド数、またはそれらの組み合わせの上限を含み、
前記プログラムは、前記プロテクトドングルから入力した前記ハードウェア資源の限度のいずれについても、その限度の範囲で前記コンピュータの資源を用いる、
ことを特徴とする請求項7に記載のライセンス付与システム。
【請求項9】
所定のプログラムをコンピュータで実行するときに、前記コンピュータとデータを授受できるプロテクトドングルに記憶されている、ライセンス情報と、前記プログラムをコンピュータで実行するときに該プログラムの利用可能な使用数量を定めるデータとを、前記プロテクトドングルから入力する入力ステップと、
前記ライセンス情報から所定の演算方法でデータを復号する復号ステップと、
前記復号ステップで復号したデータが、前記コンピュータに固有の識別符号と整合して、かつ、前記利用可能な使用数量が残存する場合に、前記プログラムの処理を実行する実行ステップと、
前記実行ステップで前記プログラムを実行したのちの、利用可能な使用数量に応じた値を、新たな利用可能な使用数量として前記プロテクトドングルに記憶する利用限度改訂ステップと、
前記復号ステップで復号したデータが、前記コンピュータに固有の識別符号と整合しない場合、または、前記利用可能な使用数量が残存しない場合には、前記プログラムの実行を制限する実行制限ステップと、
を備えることを特徴とするライセンス付与方法。
【請求項10】
前記使用数量は、前記プログラムの入力データ、計算途中データもしくは出力データ、またはそれらの組み合わせについて、所定の単位で計数した値を含み、
前記実行制限ステップは、前記利用可能な使用数量のうち、いずれかが残存しない場合に、前記プログラムの実行を制限する、
ことを特徴とする請求項9に記載のライセンス付与方法。
【請求項11】
前記入力ステップは、前記コンピュータで前記プログラムを実行するときに、前記プロテクトドングルに記憶されているハードウェア資源の限度を規定する情報のデータを、前記プロテクトドングルから入力し、
前記実行ステップは、前記プロテクトドングルから入力した前記ハードウェア資源の限度の範囲で前記コンピュータの資源を用いて、前記プログラムを実行する、
ことを特徴とする請求項9または10に記載のライセンス付与方法。
【請求項12】
前記プロテクトドングルに記憶されている前記ハードウェア資源の限度を規定するデータは、演算装置の個数および/または処理能力、メモリ容量もしくはグリッドコンピューティングのグリッド数、またはそれらの組み合わせの上限を含み、
前記実行ステップは、前記プロテクトドングルから入力した前記ハードウェア資源の限度のいずれについても、その限度の範囲で前記コンピュータの資源を用いる、
ことを特徴とする請求項11に記載のライセンス付与方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2010−33322(P2010−33322A)
【公開日】平成22年2月12日(2010.2.12)
【国際特許分類】
【出願番号】特願2008−194807(P2008−194807)
【出願日】平成20年7月29日(2008.7.29)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Bluetooth
【出願人】(390001395)NECシステムテクノロジー株式会社 (438)
【Fターム(参考)】