(57)【要約】  プログラム管理装置１０は、端末装置２０がプログラム２２の実行のために送信してきたライセンスキー２３を取得する、キー取得部１１と、取得されたライセンスキー２３が最新であるかどうかを判定し、最新である場合に、端末装置２０に対してプログラムの実行を許可する、実行許可部１２と、ライセンスキー２３が予め設定されたタイミングで更新された場合に、更新されたライセンスキー２３を最新のライセンスキーとする、キー更新部１３とを備えている。
2018155593.tif 000002
【特許請求の範囲】
【請求項１】
端末装置がプログラムの実行のために送信してきたライセンスキーを取得する、キー取得部と、
取得された前記ライセンスキーが最新であるかどうかを判定し、最新である場合に、前記端末装置に対して前記プログラムの実行を許可する、実行許可部と、
前記ライセンスキーを予め設定されたタイミングで更新し、更新したライセンスキーを、前記プログラムの実行が許可された前記端末装置に送信し、更新した前記ライセンスキーを最新のライセンスキーとする、キー更新部と、
を備えている、ことを特徴とするプログラム管理装置。
【請求項２】
前記実行許可部が、前記端末装置に対して前記プログラムの実行を許可する際に、前記ライセンスキーが最新でない場合であっても実行が許可される期間を設定する、
請求項１に記載のプログラム管理装置。
【請求項３】
前記キー取得部によって、複数の前記端末装置それぞれから同一の前記ライセンスキーが取得され、且つ、取得された同一の前記ライセンスキーそれぞれが最新である場合に、前記実行許可部が、設定されたルールに沿って、複数の前記端末装置のうちのいずれかを選択し、選択した前記端末装置に対して前記プログラムの実行を許可する、
請求項１または２に記載のプログラム管理装置。
【請求項４】
前記実行許可部が、前記端末装置に対して前記プログラムの実行を許可する際に、前記端末装置に対してトークンを送信し、
前記トークンの送信後に、前記トークンを有していない端末装置から、同一の前記ライセンスキーが取得され、且つ、取得された同一の前記ライセンスキーそれぞれが最新である場合に、前記トークンを有していない端末装置による前記プログラムの実行を不許可とする、
請求項１または２に記載のプログラム管理装置。
【請求項５】
（ａ）端末装置がプログラムの実行のために送信してきたライセンスキーを取得する、ステップと、
（ｂ）取得された前記ライセンスキーが最新であるかどうかを判定し、最新である場合に、前記端末装置に対して前記プログラムの実行を許可する、ステップと、
（ｃ）前記ライセンスキーを予め設定されたタイミングで更新し、更新したライセンスキーを、前記プログラムの実行が許可された前記端末装置に送信し、更新した前記ライセンスキーを最新のライセンスキーとする、ステップと、
を有する、ことを特徴とするプログラム管理方法。
【請求項６】
前記（ｂ）のステップにおいて、前記端末装置に対して前記プログラムの実行を許可する際に、前記ライセンスキーが最新でない場合であっても実行が許可される期間を設定する、
請求項５に記載のプログラム管理方法。
【請求項７】
前記（ａ）のステップにおいて、複数の前記端末装置それぞれから同一の前記ライセンスキーが取得され、且つ、取得された同一の前記ライセンスキーそれぞれが最新である場合に、前記（ｂ）のステップにおいて、設定されたルールに沿って、複数の前記端末装置のうちのいずれかを選択し、選択した前記端末装置に対して前記プログラムの実行を許可する、
請求項５または６に記載のプログラム管理方法。
【請求項８】
前記（ｂ）のステップにおいて、前記端末装置に対して前記プログラムの実行を許可する際に、前記端末装置に対してトークンを送信し、
当該プログラム管理方法が、
（ｄ）前記トークンの送信後に、前記トークンを有していない端末装置から、同一の前記ライセンスキーが取得され、且つ、取得された同一の前記ライセンスキーそれぞれが最新である場合に、前記トークンを有していない端末装置による前記プログラムの実行を不許可とする、ステップを更に有する、
請求項５または６に記載のプログラム管理方法。
【請求項９】
コンピュータに、
（ａ）端末装置がプログラムの実行のために送信してきたライセンスキーを取得する、ステップと、
（ｂ）取得された前記ライセンスキーが最新であるかどうかを判定し、最新である場合に、前記端末装置に対して前記プログラムの実行を許可する、ステップと、
（ｃ）前記ライセンスキーを予め設定したタイミングで更新し、更新したライセンスキーを、前記プログラムの実行が許可された前記端末装置に送信し、更新した前記ライセンスキーを最新のライセンスキーとする、ステップと、
を実行させる命令を含む、プログラムを記録しているコンピュータ読み取り可能な記録媒体。
【請求項１０】
前記（ｂ）のステップにおいて、前記端末装置に対して前記プログラムの実行を許可する際に、前記ライセンスキーが最新でない場合であっても実行が許可される期間を設定する、
請求項９に記載のコンピュータ読み取り可能な記録媒体。
【請求項１１】
前記（ａ）のステップにおいて、複数の前記端末装置それぞれから同一の前記ライセンスキーが取得され、且つ、取得された同一の前記ライセンスキーそれぞれが最新である場合に、前記（ｂ）のステップにおいて、設定されたルールに沿って、複数の前記端末装置のうちのいずれかを選択し、選択した前記端末装置に対して前記プログラムの実行を許可する、
請求項９または１０に記載のコンピュータ読み取り可能な記録媒体。
【請求項１２】
前記（ｂ）のステップにおいて、前記端末装置に対して前記プログラムの実行を許可する際に、前記端末装置に対してトークンを送信し、
前記プログラムが、前記コンピュータに、
（ｄ）前記トークンの送信後に、前記トークンを有していない端末装置から、同一の前記ライセンスキーが取得され、且つ、取得された同一の前記ライセンスキーそれぞれが最新である場合に、前記トークンを有していない端末装置による前記プログラムの実行を不許可とする、ステップを実行させる命令を更に含む、
請求項９または１０に記載のコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムをライセンスに沿って適法に使用させるための、プログラム管理装置及びプログラム管理方法に関し、更には、これらを実現するためのプログラムを記録したコンピュータ読み取り可能な記録媒体に関する。
【背景技術】
【０００２】
従来では、ソフトウェアの分野では、非合法に入手したコピー品の使用、更には、許可されているライセンスの範囲を超えたプログラムの使用、といった不正使用を阻止するため、プログラムの利用時にアクティベーションと呼ばれる処理が求められるようになっている。【０００３】
例えば、非特許文献１は、アクティベーションを行なうための仕組みとして、プログラムのコンピュータへのインストール時に、プロダクトＩＤとインストール先のコンピュータのハードウェア構成の情報とを管理サーバに登録する仕組みを開示している。非特許文献１に開示された仕組みによれば、後日、同じプロダクトＩＤを用いて、別のコンピュータにプログラムをインストールできなくすることができ、不正使用が阻止される。【０００４】
また、非特許文献２は、ライセンスキーに有効期間を設定し、ユーザが、有効期間内にライセンス管理用のサーバにアクセスして、ライセンスキーを更新しないと、プログラムを起動できないようにする仕組みを開示している。非特許文献２に開示された仕組みによれば、よりいっそうプログラムの不正使用が阻止される。【０００５】
また、非特許文献３は、フローティングライセンスと呼ばれる仕組みを開示している。フローティングライセンスを用いた場合、プログラムは、ライセンス数を超える数のコンピュータにインストールすることが可能であるが、起動及び利用は、管理サーバによって、ライセンス数までのコンピュータに制限される。【０００６】
更に、非特許文献４は、ドングルと呼ばれるハードウェアキーを用いた仕組みを開示している。非特許文献４に開示された仕組みによれば、ドングルがコンピュータのポートに挿入されていない限り、プログラムを利用できないため、確実にプログラムの不正使用を阻止できる。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】小川誉久、小林章彦、デジタルアドバンテージ、「マイクロソフトライセンス認証（Microsoft Product Activation）」、［online］、2007年12月20日、アイティメディア株式会社、［平成28年12月1日検索］、インターネット＜URL：http://www.atmarkit.co.jp/ait/articles/0205/23/news002.html＞
【非特許文献２】「５分でわかるボリュームアクティベーション」、［online］、2012年11月12日、ＭＣＴの憂鬱、［平成28年12月1日検索］、インターネット＜URL：http://mctjp.com/2012/11/12/5%E5%88%86%E3%81%A7%E3%82%8F%E3%81%8B%E3%82%8B%E3%83%9C%E3%83%AA%E3%83%A5%E3%83%BC%E3%83%A0%E3%82%A2%E3%82%AF%E3%83%86%E3%82%A3%E3%83%99%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3/＞
【非特許文献３】「スタンダードライセンスとフローティングライセンスの違い」、［online］、Ｓｐａｒｘ  Ｓｙｓｔｅｍｓ  Ｊａｐａｎ株式会社、［平成28年12月1日検索］、インターネット＜URL：http://www.sparxsystems.jp/purchase/license_case.htm＞
【非特許文献４】「LOCK STAR-PKUSBドングルタイプのソフトウェアコピープロテクト製品」、［online］、2016年、ロジカルテック株式会社、［平成28年12月1日検索］、インターネット＜URL：http://www.atmarkit.co.jp/ait/articles/0205/23/news002.html＞
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところで、近年においては、物理的なマシンのリソースを効率良く使用できるようにするため、コンピュータシステムにおいては、仮想マシンの構築が行なわれることがある。仮想マシンは、ソフトウェアによって仮想的に構築したものであり、ネットワーク上では、物理マシンと同様に、１台のコンピュータとして成立している。また、仮想マシンにおいても、オペレーティングシステムが動作しており、仮想マシンもオペレーティングシステム上でプログラムを実行することができる。従って、仮想マシンであっても、ライセンスされたプログラムを実行する場合は、アクティベーションが必要となる。【０００９】
しかしながら、仮想マシンの構築は、物理マシン上のプログラムの実行環境をそっくりそのままコピーすることによっても行なうことができるため、仮想マシン上で新たにアクティベーションを行なうことなく、プログラムを実行することもできる。このため、上記非特許文献１〜３に開示された仕組みでは、プログラムの不正使用を阻止できないことある。【００１０】
一方、上記非特許文献４に開示された仕組みを利用した場合は、ドングルが複製されない限り、プログラムが不正に使用されることはない。また、この仕組みは、仮想マシンに対しても、物理マシンのポートをこの仮想マシンに割り当てることによって適用可能である。【００１１】
しかしながら、物理マシンにおいて、ポートの数には限りがあり、更に、１台の物理マシン上で複数の仮想マシンが構築されることがあるので、実際のところ、常に全ての仮想マシンにポートを割り当てることができるわけではない。従って、仮想マシン上でのプログラムの不正使用を阻止するため、上記非特許文献１〜４以外の仕組みが求められている。【００１２】
本発明の目的の一例は、上記問題を解消し、プログラムのインストール先が仮想マシンである場合であっても、プログラムの不正使用を抑制し得る、プログラム管理装置、プログラム管理方法、及びコンピュータ読み取り可能な記録媒体を提供することにある。
【課題を解決するための手段】
【００１３】
上記目的を達成するため、本発明の一側面におけるプログラム管理装置は、
端末装置がプログラムの実行のために送信してきたライセンスキーを取得する、キー取得部と、
取得された前記ライセンスキーが最新であるかどうかを判定し、最新である場合に、前記端末装置に対して前記プログラムの実行を許可する、実行許可部と、
前記ライセンスキーを予め設定されたタイミングで更新し、更新したライセンスキーを、前記プログラムの実行が許可された前記端末装置に送信し、更新した前記ライセンスキーを最新のライセンスキーとする、キー更新部と、
を備えている、ことを特徴とする。【００１４】
また、上記目的を達成するため、本発明の一側面におけるプログラム管理方法は、
（ａ）端末装置がプログラムの実行のために送信してきたライセンスキーを取得する、ステップと、
（ｂ）取得された前記ライセンスキーが最新であるかどうかを判定し、最新である場合に、前記端末装置に対して前記プログラムの実行を許可する、ステップと、
（ｃ）前記ライセンスキーが予め設定されたタイミングで更新し、更新したライセンスキーを、前記プログラムの実行が許可された前記端末装置に送信し、更新した前記ライセンスキーを最新のライセンスキーとする、ステップと、
を有する、ことを特徴とする。【００１５】
更に、上記目的を達成するため、本発明の一側面におけるコンピュータ読み取り可能な記録媒体は、
コンピュータに、
（ａ）端末装置がプログラムの実行のために送信してきたライセンスキーを取得する、ステップと、
（ｂ）取得された前記ライセンスキーが最新であるかどうかを判定し、最新である場合に、前記端末装置に対して前記プログラムの実行を許可する、ステップと、
（ｃ）前記ライセンスキーを予め設定されたタイミングで更新し、更新したライセンスキーを、前記プログラムの実行が許可された前記端末装置に送信し、更新した前記ライセンスキーを最新のライセンスキーとする、ステップと、
を実行させる命令を含む、プログラムを記録していることを特徴とする。
【発明の効果】
【００１６】
以上のように、本発明によれば、プログラムのインストール先が仮想マシンである場合であっても、プログラムの不正使用を抑制することができる。
【図面の簡単な説明】
【００１７】
【図１】図１は、本発明の実施の形態におけるプログラム管理装置の構成を示すブロック図である。
【図２】図２は、本実施の形態においてプログラム管理装置が複数の端末装置から同一のライセンスキーを取得した場合を説明する図である。
【図３】図３は、本発明の実施の形態におけるプログラム管理装置がプログラムの実行許可の際に行なう動作を示すフロー図である。
【図４】図４は、本発明の実施の形態におけるプログラム管理装置がライセンスキーの更新の際に行なう動作を示すフロー図である。
【図５】図５は、本実施の形態の変形例においてプログラム管理装置が実行を許可する端末装置にトークンを送信している場合を説明する図である。
【図６】図６は、本発明の実施の形態におけるプログラム管理装置を実現するコンピュータの一例を示すブロック図である。
【発明を実施するための形態】
【００１８】
（実施の形態）
以下、本発明の実施の形態における、プログラム管理装置、プログラム管理方法、及びプログラムについて、図１〜図６を参照しながら説明する。
【００１９】
［装置構成］
最初に、本発明の実施の形態におけるプログラム管理装置の構成について説明する。図１は、本発明の実施の形態におけるプログラム管理装置の構成を示すブロック図である。
【００２０】
図１に示す本実施の形態におけるプログラム管理装置１０は、端末装置２０で実行されるプログラム２２のライセンスキー２３を管理するための装置である。また、本実施の形態では、プログラム管理装置１０は、インターネット、ＬＡＮ（Local Area Network）等のネットワーク３０を介して、複数の端末装置２０に接続されている。なお、図１の例では、端末装置２０は全て同様の構成を備えているが、１つの端末装置２０についてのみ機能ブロックを明示している。
【００２１】
図１に示すように、プログラム管理装置１０は、キー取得部１１と、実行許可部１２と、キー更新部１３とを備えている。
【００２２】
キー取得部１１は、端末装置２０がプログラム２２の実行のために送信してきたライセンスキー２３を取得する。実行許可部１２は、取得されたライセンスキー２３が最新であるかどうかを判定し、最新である場合に、ライセンスキー２３を送信してきた端末装置２０に対してプログラム２２の実行を許可する。
【００２３】
キー更新部１３は、ライセンスキー２３を予め設定されたタイミングで更新し、更新したライセンスキーを、プログラムの実行が許可された端末装置２０に送信し、更に、更新したライセンスキーを最新のライセンスキーとする。本実施の形態では、後述するように、端末装置２０において、ライセンスキーは、設定されたタイミングで更新される。なお、本実施の形態は、この態様に限定されず、キー更新部１３が、予め設定されたタイミングでライセンスキーを更新し、更新後のライセンスキーを端末装置２０に通知する態様であっても良い。
【００２４】
また、図１に示すように、端末装置２０は、プログラム実行部２１を備えている。具体的には、プログラム実行部２１は、端末装置２０に搭載されているオペレーティングシステム（ＯＳ：Operating System）によって構築されている。
【００２５】
プログラム実行部２１は、まず、プログラム２２の実行が指示されると、ハードディスク、フラッシュメモリ等の記憶装置からプログラム２２を読み込み、読み込んだプログラム２２をメモリに格納する。なお、図２において、記憶装置及びメモリの図示は省略されている。
【００２６】
次に、プログラム実行部２１は、実行が指示されたプログラム２２のライセンスキー２３を読み込み、読み込んだライセンスキー２３をプログラム管理装置１０に送信する。そして、プログラム管理装置１０の実行許可部１２から実行が許可されると、プログラム２２を実行する。
【００２７】
また、プログラム実行部２１は、プログラム管理装置１０のキー更新部１３によって、ライセンスキー２３が更新され、更新されたライセンスキー２３が送信されてきた場合は、保持しているライセンスキー２３を更新する。
【００２８】
このように、本実施の形態では、端末装置２０は、ライセンスキー２３をプログラム管理装置１０に送信し、そこで最新と判断されて許可されない限り、プログラム２２を実行できないようになっている。また、ライセンスキー２３は、定期的に更新され、第３者がライセンスキー２３をコピーできたとしても、コピーされたライセンスキーはすぐに古くなってしまう。
【００２９】
このため、端末装置２０が仮想マシンであり、その実行環境がそっくりそのままコピーされただけでは、プログラム２２が実行されることはない。本実施の形態によれば、プログラム２２のインストール先が仮想マシンである場合であっても、プログラム２２の不正使用を抑制することができる。
【００３０】
また、本実施の形態において、ライセンスキー２３としては、例えば、ハッシュキーが挙げられる。ハッシュキーは、例えば、プログラム２２のシリアルキーと端末装置２０のＭＡＣアドレスとをハッシュ関数に入力することによって算出される。但し、ライセンスキーは、ハッシュキーに限られず、予め設定された文字列であっても良い。
【００３１】
ところで、端末装置２０が仮想マシンであり、その実行環境がそっくりそのままコピーされた場合は、図２に示すように、キー取得部１１が複数の端末装置２０それぞれから同一のライセンスキーを取得する事態が想定される。そして、このような事態において、正規の端末装置２０でライセンスキーの更新が未だであると、取得された同一のライセンスキーそれぞれが最新となってしまう。図２は、本実施の形態においてプログラム管理装置が複数の端末装置から同一のライセンスキーを取得した場合を説明する図である。
【００３２】
これに対して、図２に示すように、本実施の形態においては、実行許可部１２は、設定されたルールに沿って、同一のライセンスキーを送信してきた複数の端末装置２０ａ及び２０ｂのうちのいずれかを選択し、選択した端末装置に対してのみプログラム２２の実行を許可する。このため、本実施の形態では、正規の端末装置２０がライセンスキーを更新する前に、その実行環境がコピーされた場合であっても、不正なプログラムの使用が抑制される。
【００３３】
また、この場合に用いられる「ルール」としては、先にライセンスキーを送信してきた端末装置２０を優先する、受信履歴にあるＩＰアドレスから送信している端末装置２０を優先する、等が挙げられる。なお、「同一のライセンスキー」とは、本実施の形態では、対応する端末装置２０の識別子と、同じく対応するプログラム２２の識別子とが同一のライセンスキーを意味する。具体的には、対応するＭＡＣアドレスとシリアル番号とが同一となるライセンスキーである。
【００３４】
また、実行許可部１２による実行が許可された後に、プログラム管理装置１０において、キー更新部１３は、ライセンスキーを所定のタイミングで更新する。この場合、プログラム２２の実行が許可された端末装置２０のみが、ライセンスキーを更新できるので、以降、プログラム２２の実行が許可されなかった端末装置が最新のライセンスキー２３を送信することはない。
【００３５】
［装置動作］
次に、本発明の実施の形態におけるプログラム管理装置１０の動作について図３及び図４を用いて説明する。以下の説明においては、適宜図１及び図２を参酌する。また、本実施の形態では、プログラム管理装置１０を動作させることによって、プログラム管理方法が実施される。よって、本実施の形態におけるプログラム管理方法の説明は、以下のプログラム管理装置１０の動作説明に代える。
【００３６】
最初に、図３を用いて、プログラムの実行許可を行なう際の処理について説明する。図３は、本発明の実施の形態におけるプログラム管理装置がプログラムの実行許可の際に行なう動作を示すフロー図である。
【００３７】
図３に示すように、最初に、プログラム管理装置１０において、キー取得部１１は、端末装置２０が送信してきたライセンスキーを取得する（ステップＡ１）。また、キー取得部１１は、取得したライセンスキーを、実行許可部１２に渡す。
【００３８】
次に、実行許可部１２は、ステップＡ１において、同一の最新のライセンスキー２３が複数取得されていたかどうかを判定する（ステップＡ２）。具体的には、複数の端末装置２０それぞれから同一の最新のライセンスキー２３が送信されてきているかどうかを判定する。
【００３９】
ステップＡ２の判定の結果、同一の最新のライセンスキー２３が複数取得されている場合は、実行許可部１２は、設定されたルールに沿って、最新の同一のライセンスキーを送信してきた端末装置２０のうちのいずれかを選択する（ステップＡ３）。例えば、実行許可部１２は、先にライセンスキー２３を送信してきた端末装置２０を選択する。その後、実行許可部１２は、ステップＡ５を実行し、選択した端末装置２０に対して、プログラム２２の実行を許可する。
【００４０】
一方、ステップＡ２の判定の結果、最新のライセンスキー２３が複数存在していない場合は、実行許可部１２は、最新のライセンスキー２３を送信してきた端末装置２０を選択する。その後、実行許可部１２は、ステップＡ５を実行し、選択した端末装置２０に対して、プログラム２２の実行を許可する。
【００４１】
なお、ステップＡ２の判定では、ライセンスキーは取得されているが、そこに最新のライセンスキーが含まれていない場合も、Ｎｏと判定される。この場合は、ステップＡ４では、実行許可部１２は、ライセンスキーを送信してきた端末装置２０に対して、プログラム２２の実行を許可出来ない旨を通知し、処理を終了する。
【００４２】
続いて、図４を用いて、ライセンスキーを更新する場合の処理について説明する。図４は、本発明の実施の形態におけるプログラム管理装置がライセンスキーの更新の際に行なう動作を示すフロー図である。
【００４３】
最初に、図４に示すように、プログラム管理装置１０において、キー更新部１３が、所定のタイミングでライセンスキー２３を更新する（ステップＢ１）。次に、キー更新部１３は、更新前のライセンスキー２３によってプログラム２２の実行が許可されている端末装置２０に対して、更新後のライセンスキー２３を送信する（ステップＢ２）。
【００４４】
ステップＢ２が実行された場合は、実行許可部１２は、ステップＢ２で更新されたライセンスキー２３を用いて、キー取得部１１で取得されたライセンスキー２３が最新のライセンスキーであるかどうかを判定する。
【００４５】
以上のように、本実施の形態では、ライセンスキーが定期的に更新され、端末装置２０から送信されてきたライセンスキー２３が、更新後の最新のライセンスキーと一致して初めてプログラム２２の実行が許可される。このため、端末装置２０が仮想マシンであり、その実行環境がコピーされてしまった場合であっても、プログラムの不正使用が抑制される。
【００４６】
更に、本実施の形態は、物理サーバの上にゲストＯＳを実装することによって構築された仮想マシンだけに限られず、物理マシンのＯＳの上に、コンテナと呼ばれる仮想的なユーザ空間が構築される場合であっても、プログラムの不正使用を抑制できる。
【００４７】
また、コピーされた実行環境に最新のライセンスキー２３が保持されていたとしても、プログラム２２の実行が許可される端末装置２０の数は制限されるので、より確実にプログラム２２の不正使用が抑制される。
【００４８】
［変形例１］
ここで、本実施の形態における変形例１について図５を用いて説明する。図５は、本実施の形態の変形例においてプログラム管理装置が実行を許可する端末装置にトークンを送信している場合を説明する図である。
【００４９】
本変形例１では、図５に示すように、実行許可部１２は、端末装置２０ａに対してプログラム２２の実行を許可した場合に、それに際して、端末装置２０ａに対してトークン２４を送信する。トークンの具体例としては、識別子、文字列等が挙げられる。
【００５０】
そして、図５に示すように、プログラム管理装置１０において、トークン２４の送信後に、トークン２４を有していない端末装置２０ｂから同一のライセンスキー２３が取得されたとする。更に、取得された同一のライセンスキーが最新であるとする。この場合、本変形例１では、実行許可部１２は、トークンを有していない端末装置２０ｂによるプログラムの実行を不許可とする。本変形例１では、トークン２４を有する端末装置２０を優先することで、プログラムの不正使用が抑制される。
【００５１】
［変形例２］
次いで、本実施の形態における変形例２について説明する。本変形例２では、プログラム管理装置１０において、実行許可部１２は、端末装置２０に対してプログラム２２の実行を許可する際に、ライセンスキー２３が最新でない場合であっても実行が許可される期間（１ヶ月間など）を設定することができる。この場合、端末装置２０において、プログラム実行部２１は、設定された期間が経過するまで、プログラム２２を実行することができる。なお、期間以外にも、実行が許可される世代（例えば、最新のライセンスキーの２世代前まで）が設定されていても良い。
【００５２】
［変形例３］
続いて、本実施の形態における変形例３について説明する。変形例３では、トークンを保持している端末装置に対し、実行許可部１２が一定期間プログラムの実行を許可する。この場合、オフライン状態（端末装置２０とプログラム管理装置１０とが通信出来ない状態）であっても、端末装置２０はプログラムの使用が可能となる。
【００５３】
［プログラム］
本実施の形態におけるプログラムは、コンピュータに、図３に示すステップＡ１〜Ａ５、図４に示すステップＢ１及びＢ２を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態におけるプログラム管理装置とプログラム管理方法とを実現することができる。この場合、コンピュータのプロセッサは、キー取得部１１、実行許可部１２、及びキー更新部１３として機能し、処理を行なう。
【００５４】
また、本実施の形態におけるプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されても良い。この場合は、例えば、各コンピュータが、それぞれ、キー取得部１１、実行許可部１２、及びキー更新部１３のいずれかとして機能しても良い。
【００５５】
ここで、本実施の形態におけるプログラムを実行することによって、プログラム管理装置１０を実現するコンピュータについて図６を用いて説明する。図６は、本発明の実施の形態におけるプログラム管理装置を実現するコンピュータの一例を示すブロック図である。
【００５６】
図６に示すように、コンピュータ１１０は、ＣＰＵ（Central Processing Unit）１１１と、メインメモリ１１２と、記憶装置１１３と、入力インターフェイス１１４と、表示コントローラ１１５と、データリーダ／ライタ１１６と、通信インターフェイス１１７とを備える。これらの各部は、バス１２１を介して、互いにデータ通信可能に接続される。なお、コンピュータ１１０は、ＣＰＵ１１１に加えて、又はＣＰＵ１１１に代えて、ＧＰＵ（Graphics Processing Unit）、又はＦＰＧＡ（Field-Programmable Gate Array）を備えていても良い。
【００５７】
ＣＰＵ１１１は、記憶装置１１３に格納された、本実施の形態におけるプログラム（コード）をメインメモリ１１２に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ１１２は、典型的には、ＤＲＡＭ（Dynamic Random Access Memory）等の揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体１２０に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス１１７を介して接続されたインターネット上で流通するものであっても良い。
【００５８】
また、記憶装置１１３の具体例としては、ハードディスクドライブの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェイス１１４は、ＣＰＵ１１１と、キーボード及びマウスといった入力機器１１８との間のデータ伝送を仲介する。表示コントローラ１１５は、ディスプレイ装置１１９と接続され、ディスプレイ装置１１９での表示を制御する。
【００５９】
データリーダ／ライタ１１６は、ＣＰＵ１１１と記録媒体１２０との間のデータ伝送を仲介し、記録媒体１２０からのプログラムの読み出し、及びコンピュータ１１０における処理結果の記録媒体１２０への書き込みを実行する。通信インターフェイス１１７は、ＣＰＵ１１１と、他のコンピュータとの間のデータ伝送を仲介する。
【００６０】
また、記録媒体１２０の具体例としては、ＣＦ（Compact Flash（登録商標））及びＳＤ（Secure Digital）等の汎用的な半導体記憶デバイス、フレキシブルディスク（Flexible Disk）等の磁気記録媒体、又はＣＤ−ＲＯＭ（Compact Disk Read Only Memory）などの光学記録媒体が挙げられる。
【００６１】
なお、本実施の形態におけるプログラム管理装置１０は、プログラムがインストールされたコンピュータではなく、各部に対応したハードウェアを用いることによっても実現可能である。更に、プログラム管理装置１０は、一部がプログラムで実現され、残りの部分がハードウェアで実現されていてもよい。
【００６２】
上述した実施の形態の一部又は全部は、以下に記載する（付記１）〜（付記１２）によって表現することができるが、以下の記載に限定されるものではない。
【００６３】
（付記１）
端末装置がプログラムの実行のために送信してきたライセンスキーを取得する、キー取得部と、
取得された前記ライセンスキーが最新であるかどうかを判定し、最新である場合に、前記端末装置に対して前記プログラムの実行を許可する、実行許可部と、
前記ライセンスキーを予め設定されたタイミングで更新し、更新したライセンスキーを、前記プログラムの実行が許可された前記端末装置に送信し、更新した前記ライセンスキーを最新のライセンスキーとする、キー更新部と、
を備えている、ことを特徴とするプログラム管理装置。
【００６４】
（付記２）
前記実行許可部が、前記端末装置に対して前記プログラムの実行を許可する際に、前記ライセンスキーが最新でない場合であっても実行が許可される期間を設定する、
付記１に記載のプログラム管理装置。
【００６５】
（付記３）
前記キー取得部によって、複数の前記端末装置それぞれから同一の前記ライセンスキーが取得され、且つ、取得された同一の前記ライセンスキーそれぞれが最新である場合に、前記実行許可部が、設定されたルールに沿って、複数の前記端末装置のうちのいずれかを選択し、選択した前記端末装置に対して前記プログラムの実行を許可する、
付記１または２に記載のプログラム管理装置。
【００６６】
（付記４）
前記実行許可部が、前記端末装置に対して前記プログラムの実行を許可する際に、前記端末装置に対してトークンを送信し、
前記トークンの送信後に、前記トークンを有していない端末装置から、同一の前記ライセンスキーが取得され、且つ、取得された同一の前記ライセンスキーそれぞれが最新である場合に、前記トークンを有していない端末装置による前記プログラムの実行を不許可とする、
付記１または２に記載のプログラム管理装置。
【００６７】
（付記５）
（ａ）端末装置がプログラムの実行のために送信してきたライセンスキーを取得する、ステップと、
（ｂ）取得された前記ライセンスキーが最新であるかどうかを判定し、最新である場合に、前記端末装置に対して前記プログラムの実行を許可する、ステップと、
（ｃ）前記ライセンスキーを予め設定されたタイミングで更新し、更新したライセンスキーを、前記プログラムの実行が許可された前記端末装置に送信し、更新した前記ライセンスキーを最新のライセンスキーとする、ステップと、
を有する、ことを特徴とするプログラム管理方法。
【００６８】
（付記６）
前記（ｂ）のステップにおいて、前記端末装置に対して前記プログラムの実行を許可する際に、前記ライセンスキーが最新でない場合であっても実行が許可される期間を設定する、
付記５に記載のプログラム管理方法。
【００６９】
（付記７）
前記（ａ）のステップにおいて、複数の前記端末装置それぞれから同一の前記ライセンスキーが取得され、且つ、取得された同一の前記ライセンスキーそれぞれが最新である場合に、前記（ｂ）のステップにおいて、設定されたルールに沿って、複数の前記端末装置のうちのいずれかを選択し、選択した前記端末装置に対して前記プログラムの実行を許可する、
付記５または６に記載のプログラム管理方法。
【００７０】
（付記８）
前記（ｂ）のステップにおいて、前記端末装置に対して前記プログラムの実行を許可する際に、前記端末装置に対してトークンを送信し、
当該プログラム管理方法が、
（ｄ）前記トークンの送信後に、前記トークンを有していない端末装置から、同一の前記ライセンスキーが取得され、且つ、取得された同一の前記ライセンスキーそれぞれが最新である場合に、前記トークンを有していない端末装置による前記プログラムの実行を不許可とする、ステップを更に有する、
付記５または６に記載のプログラム管理方法。
【００７１】
（付記９）
コンピュータに、
（ａ）端末装置がプログラムの実行のために送信してきたライセンスキーを取得する、ステップと、
（ｂ）取得された前記ライセンスキーが最新であるかどうかを判定し、最新である場合に、前記端末装置に対して前記プログラムの実行を許可する、ステップと、
（ｃ）前記ライセンスキーを予め設定したタイミングで更新し、更新したライセンスキーを、前記プログラムの実行が許可された前記端末装置に送信し、更新した前記ライセンスキーを最新のライセンスキーとする、ステップと、
を実行させる命令を含む、プログラムを記録しているコンピュータ読み取り可能な記録媒体。
【００７２】
（付記１０）
前記（ｂ）のステップにおいて、前記端末装置に対して前記プログラムの実行を許可する際に、前記ライセンスキーが最新でない場合であっても実行が許可される期間を設定する、
付記９に記載のコンピュータ読み取り可能な記録媒体。
【００７３】
（付記１１）
前記（ａ）のステップにおいて、複数の前記端末装置それぞれから同一の前記ライセンスキーが取得され、且つ、取得された同一の前記ライセンスキーそれぞれが最新である場合に、前記（ｂ）のステップにおいて、設定されたルールに沿って、複数の前記端末装置のうちのいずれかを選択し、選択した前記端末装置に対して前記プログラムの実行を許可する、
付記９または１０に記載のコンピュータ読み取り可能な記録媒体。
【００７４】
（付記１２）
前記（ｂ）のステップにおいて、前記端末装置に対して前記プログラムの実行を許可する際に、前記端末装置に対してトークンを送信し、
前記プログラムが、前記コンピュータに、
（ｄ）前記トークンの送信後に、前記トークンを有していない端末装置から、同一の前記ライセンスキーが取得され、且つ、取得された同一の前記ライセンスキーそれぞれが最新である場合に、前記トークンを有していない端末装置による前記プログラムの実行を不許可とする、ステップを実行させる命令を更に含む、
付記９または１０に記載のコンピュータ読み取り可能な記録媒体。
【００７５】
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施の形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【００７６】
この出願は、２０１７年２月２４日に出願された日本出願特願２０１７−０３４１２９を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【００７７】
以上のように、本発明によれば、プログラムのインストール先が仮想マシンである場合であっても、プログラムの不正使用を抑制することができる。本発明は、プログラムの管理が必要な種々のコンピュータシステムに有用である。
【符号の説明】
【００７８】
１０  プログラム管理装置
１１  キー取得部
１２  実行許可部
１３  キー更新部
２０  端末装置
２１  プログラム実行部
２２  プログラム
２３  ライセンスキー
２４  トークン
３０  ネットワーク
１１０  コンピュータ
１１１  ＣＰＵ
１１２  メインメモリ
１１３  記憶装置
１１４  入力インターフェイス
１１５  表示コントローラ
１１６  データリーダ／ライタ
１１７  通信インターフェイス
１１８  入力機器
１１９  ディスプレイ装置
１２０  記録媒体
１２１  バス
【図１】
2018155593.tif 000003
【図２】
2018155593.tif 000004
【図３】
2018155593.tif 000005
【図４】
2018155593.tif 000006
【図５】
2018155593.tif 000007
【図６】
2018155593.tif 000008
【手続補正書】
【提出日】令和1年8月21日(2019.8.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
端末装置がプログラムの実行のために送信してきたライセンスキーを取得する、キー取得部と、
取得された前記ライセンスキーが最新であるかどうかを判定し、最新である場合に、前記端末装置に対して前記プログラムの実行を許可する、実行許可部と、
前記ライセンスキーを予め設定されたタイミングで更新し、更新したライセンスキーを、前記プログラムの実行が許可された前記端末装置に送信し、更新した前記ライセンスキーを最新のライセンスキーとする、キー更新部と、
を備えている、ことを特徴とするプログラム管理装置。
【請求項２】
前記実行許可部が、前記端末装置に対して前記プログラムの実行を許可する際に、前記ライセンスキーが最新でない場合であっても実行が許可される期間を設定する、
請求項１に記載のプログラム管理装置。
【請求項３】
前記キー取得部によって、複数の前記端末装置それぞれから同一の前記ライセンスキーが取得され、且つ、取得された同一の前記ライセンスキーそれぞれが最新である場合に、前記実行許可部が、設定されたルールに沿って、複数の前記端末装置のうちのいずれかを選択し、選択した前記端末装置に対して前記プログラムの実行を許可する、
請求項１または２に記載のプログラム管理装置。
【請求項４】
前記実行許可部が、前記端末装置に対して前記プログラムの実行を許可する際に、前記端末装置に対してトークンを送信し、
前記トークンの送信後に、前記トークンを有していない端末装置から、同一の前記ライセンスキーが取得され、且つ、取得された同一の前記ライセンスキーそれぞれが最新である場合に、前記トークンを有していない端末装置による前記プログラムの実行を不許可とする、
請求項１または２に記載のプログラム管理装置。
【請求項５】
（ａ）端末装置がプログラムの実行のために送信してきたライセンスキーを取得する、ステップと、
（ｂ）取得された前記ライセンスキーが最新であるかどうかを判定し、最新である場合に、前記端末装置に対して前記プログラムの実行を許可する、ステップと、
（ｃ）前記ライセンスキーを予め設定されたタイミングで更新し、更新したライセンスキーを、前記プログラムの実行が許可された前記端末装置に送信し、更新した前記ライセンスキーを最新のライセンスキーとする、ステップと、
を有する、ことを特徴とするプログラム管理方法。
【請求項６】
前記（ｂ）のステップにおいて、前記端末装置に対して前記プログラムの実行を許可する際に、前記ライセンスキーが最新でない場合であっても実行が許可される期間を設定する、
請求項５に記載のプログラム管理方法。
【請求項７】
前記（ａ）のステップにおいて、複数の前記端末装置それぞれから同一の前記ライセンスキーが取得され、且つ、取得された同一の前記ライセンスキーそれぞれが最新である場合に、前記（ｂ）のステップにおいて、設定されたルールに沿って、複数の前記端末装置のうちのいずれかを選択し、選択した前記端末装置に対して前記プログラムの実行を許可する、
請求項５または６に記載のプログラム管理方法。
【請求項８】
前記（ｂ）のステップにおいて、前記端末装置に対して前記プログラムの実行を許可する際に、前記端末装置に対してトークンを送信し、
当該プログラム管理方法が、
（ｄ）前記トークンの送信後に、前記トークンを有していない端末装置から、同一の前記ライセンスキーが取得され、且つ、取得された同一の前記ライセンスキーそれぞれが最新である場合に、前記トークンを有していない端末装置による前記プログラムの実行を不許可とする、ステップを更に有する、
請求項５または６に記載のプログラム管理方法。
【請求項９】
コンピュータに、
（ａ）端末装置がプログラムの実行のために送信してきたライセンスキーを取得する、ステップと、
（ｂ）取得された前記ライセンスキーが最新であるかどうかを判定し、最新である場合に、前記端末装置に対して前記プログラムの実行を許可する、ステップと、
（ｃ）前記ライセンスキーを予め設定したタイミングで更新し、更新したライセンスキーを、前記プログラムの実行が許可された前記端末装置に送信し、更新した前記ライセンスキーを最新のライセンスキーとする、ステップと、
を実行させる、プログラム。
【請求項１０】
前記（ｂ）のステップにおいて、前記端末装置に対して前記プログラムの実行を許可する際に、前記ライセンスキーが最新でない場合であっても実行が許可される期間を設定する、
請求項９に記載のプログラム。
【請求項１１】
前記（ａ）のステップにおいて、複数の前記端末装置それぞれから同一の前記ライセンスキーが取得され、且つ、取得された同一の前記ライセンスキーそれぞれが最新である場合に、前記（ｂ）のステップにおいて、設定されたルールに沿って、複数の前記端末装置のうちのいずれかを選択し、選択した前記端末装置に対して前記プログラムの実行を許可する、
請求項９または１０に記載のプログラム。
【請求項１２】
前記（ｂ）のステップにおいて、前記端末装置に対して前記プログラムの実行を許可する際に、前記端末装置に対してトークンを送信し、
前記コンピュータに、
（ｄ）前記トークンの送信後に、前記トークンを有していない端末装置から、同一の前記ライセンスキーが取得され、且つ、取得された同一の前記ライセンスキーそれぞれが最新である場合に、前記トークンを有していない端末装置による前記プログラムの実行を不許可とする、ステップを更に実行させる、
請求項９または１０に記載のプログラム。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
本発明は、プログラムをライセンスに沿って適法に使用させるための、プログラム管理装置及びプログラム管理方法に関し、更には、これらを実現するためのプログラムに関する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
本発明の目的の一例は、上記問題を解消し、プログラムのインストール先が仮想マシンである場合であっても、プログラムの不正使用を抑制し得る、プログラム管理装置、プログラム管理方法、及びプログラムを提供することにある。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
更に、上記目的を達成するため、本発明の一側面におけるプログラムは、
コンピュータに、
（ａ）端末装置がプログラムの実行のために送信してきたライセンスキーを取得する、ステップと、
（ｂ）取得された前記ライセンスキーが最新であるかどうかを判定し、最新である場合に、前記端末装置に対して前記プログラムの実行を許可する、ステップと、
（ｃ）前記ライセンスキーを予め設定されたタイミングで更新し、更新したライセンスキーを、前記プログラムの実行が許可された前記端末装置に送信し、更新した前記ライセンスキーを最新のライセンスキーとする、ステップと、
を実行させる、ことを特徴とする。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００７１
【補正方法】変更
【補正の内容】
【００７１】
（付記９）
コンピュータに、
（ａ）端末装置がプログラムの実行のために送信してきたライセンスキーを取得する、ステップと、
（ｂ）取得された前記ライセンスキーが最新であるかどうかを判定し、最新である場合に、前記端末装置に対して前記プログラムの実行を許可する、ステップと、
（ｃ）前記ライセンスキーを予め設定したタイミングで更新し、更新したライセンスキーを、前記プログラムの実行が許可された前記端末装置に送信し、更新した前記ライセンスキーを最新のライセンスキーとする、ステップと、
を実行させる、プログラム。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００７２
【補正方法】変更
【補正の内容】
【００７２】
（付記１０）
前記（ｂ）のステップにおいて、前記端末装置に対して前記プログラムの実行を許可する際に、前記ライセンスキーが最新でない場合であっても実行が許可される期間を設定する、
付記９に記載のプログラム。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００７３
【補正方法】変更
【補正の内容】
【００７３】
（付記１１）
前記（ａ）のステップにおいて、複数の前記端末装置それぞれから同一の前記ライセンスキーが取得され、且つ、取得された同一の前記ライセンスキーそれぞれが最新である場合に、前記（ｂ）のステップにおいて、設定されたルールに沿って、複数の前記端末装置のうちのいずれかを選択し、選択した前記端末装置に対して前記プログラムの実行を許可する、
付記９または１０に記載のプログラム。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００７４
【補正方法】変更
【補正の内容】
【００７４】
（付記１２）
前記（ｂ）のステップにおいて、前記端末装置に対して前記プログラムの実行を許可する際に、前記端末装置に対してトークンを送信し、
前記コンピュータに、
（ｄ）前記トークンの送信後に、前記トークンを有していない端末装置から、同一の前記ライセンスキーが取得され、且つ、取得された同一の前記ライセンスキーそれぞれが最新である場合に、前記トークンを有していない端末装置による前記プログラムの実行を不許可とする、ステップを更に実行させる、
付記９または１０に記載のプログラム。
【国際調査報告】
2018155593.tif 000009
2018155593.tif 000010
2018155593.tif 000011
2018155593.tif 000012