JP2017004044A - ライセンス管理プログラム、ライセンス管理方法、およびライセンス管理システム - Google Patents
ライセンス管理プログラム、ライセンス管理方法、およびライセンス管理システム Download PDFInfo
- Publication number
- JP2017004044A JP2017004044A JP2015114002A JP2015114002A JP2017004044A JP 2017004044 A JP2017004044 A JP 2017004044A JP 2015114002 A JP2015114002 A JP 2015114002A JP 2015114002 A JP2015114002 A JP 2015114002A JP 2017004044 A JP2017004044 A JP 2017004044A
- Authority
- JP
- Japan
- Prior art keywords
- machine
- software
- license
- machines
- mode
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/107—License processing; Key processing
- G06F21/1077—Recurrent authorisation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06Q2220/00—Business processing using cryptography
- G06Q2220/10—Usage protection of distributed data files
- G06Q2220/18—Licensing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Marketing (AREA)
- Health & Medical Sciences (AREA)
- Economics (AREA)
- General Health & Medical Sciences (AREA)
- Human Resources & Organizations (AREA)
- Primary Health Care (AREA)
- Strategic Management (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
Abstract
【課題】簡易な構成でライセンス管理を実現する。【解決手段】複数のマシン1〜3それぞれで実行され得るソフトウェアのライセンスを管理するライセンス管理システムにおいて、第1のマシン2が、ライセンスの管理を行うモードにモード遷移する。次に第1のマシン2が、複数のマシン1〜3それぞれのソフトウェアの実行の有無を示す実行情報5を収集する。次に第2のマシン3が、ソフトウェアの実行許否を、第1のマシン2に問い合わせる。次に第1のマシン2が、ライセンスの管理を行うモードにおいて、第2のマシン3からの問い合わせに応じ、ソフトウェアを同時に実行できるマシン数を示すライセンス情報4と実行情報5とに基づいて、第2のマシン3によるソフトウェアの実行の許否を判断する。そして第2のマシン3が、第1のマシン2よりソフトウェアの実行を許可すると判断された場合、ソフトウェアを実行する。【選択図】図1
Description
本発明は、ライセンス管理プログラム、ライセンス管理方法、およびライセンス管理システムに関する。
複数のマシンを有するコンピュータシステムでは、そのコンピュータシステムに予め与えられたライセンスの範囲内で、各マシンにソフトウェアを実行させることができる。ソフトウェアのライセンスの中には、フローティングライセンスと呼ばれるものがある。フローティングライセンスでは、ソフトウェアを同時に実行するマシン数が制限される。
フローティングライセンスによりソフトウェアの同時実行マシン数を管理する場合、ソフトウェアを使用しようとするマシンは、ソフトウェアの起動時に、契約したライセンス数を超えない状態の使用となるかを確認する。ライセンスの同時使用数の確認のために、例えば、ライセンス管理サーバが設置される。この場合、ソフトウェアの起動指示を受けたマシンは、ソフトウェアの使用開始前に、ソフトウェアの実行の許否をライセンス管理サーバに確認する。
ライセンス管理技術としては、例えば、一定のライセンス数の範囲内において各デバイス間で柔軟に所定プログラムを実行できるようにするライセンス数管理装置が考えられている。また、ある装置に故障等が発生した場合でも、代替動作させる装置でデータやアプリケーションやライセンス情報等の情報を迅速かつ簡単に利用することを可能とする技術も考えられている。
フローティングライセンスは、ライセンス数より多くのマシンにソフトウェアをインストールしておき適宜利用できる点で便利であるが、その一方でライセンス管理サーバの増設を強いられる。ライセンス管理サーバの用途は、同時実行マシン数が契約ライセンス数を上回らないように、各マシンへのライセンスの割り当てを管理することのみであり、ライセンス対象のソフトウェアの実行自体には、ライセンス管理サーバは用いられない。そのためライセンス管理サーバは、ソフトウェアを利用するための利便性の向上には寄与していない。すなわち、ライセンス管理サーバを用いずにフローティングライセンスを管理できれば、ソフトウェア利用の利便性を低下させずに、システム規模を縮小できる。
1つの側面では、本件は、簡易な構成でライセンス管理を実現することを目的とする。
1つの案では、複数のマシンそれぞれで実行され得るソフトウェアのライセンスを管理するためのライセンス管理プログラムが提供される。複数のマシンに含まれる第1のマシンは、当該ライセンス管理プログラムに基づいて、ライセンスの管理を行うモードにモード遷移する。次に第1のマシンは、複数のマシンそれぞれのソフトウェアの実行の有無を示す実行情報を収集する。次に第1のマシンは、ライセンスの管理を行うモードにおいて、複数のマシンに含まれる第2のマシンからの、ソフトウェアの実行許否の問い合わせに応じ、ソフトウェアを同時に実行できるマシン数を示すライセンス情報と実行情報とに基づいて、第2のマシンによるソフトウェアの実行の許否を判断する。
1態様によれば、簡易な構成でライセンス管理を実現することができる。
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
まず、第1の実施の形態について説明する。第1の実施の形態は、ライセンス管理サーバを用いずに、フローティングライセンスの管理を可能としたものである。
〔第1の実施の形態〕
まず、第1の実施の形態について説明する。第1の実施の形態は、ライセンス管理サーバを用いずに、フローティングライセンスの管理を可能としたものである。
図1は、第1の実施の形態に係るシステムによるライセンス管理例を示す図である。複数のマシン1〜3がネットワークで接続されている。マシン1〜3は、例えばコンピュータである。
複数のマシン1〜3それぞれで実行され得るソフトウェアについて、ライセンスが発行されている。例えば複数のマシン1〜3には、ライセンス対象のソフトウェアが予めインストールされている。以下の説明で「ソフトウェア」と呼んだ場合、特に断らない限りライセンス対象のソフトウェアを指すものとする。
ライセンスの内容は、ライセンス情報4,6として1以上のマシンに格納される。ライセンス情報4,6には、ソフトウェアを同時に実行できるマシン数(ライセンス数)が示されている。図1の例では、2台のマシンにおいてソフトウェアを同時実行できるライセンスが発行されている。
複数のマシン1〜3のうちの1台は、ライセンスの管理を行う権限を示す管理ロールを取得する。管理ロールを取得したマシンは、ライセンスの管理を行うモードにモード遷移する。例えば各マシンは、ライセンス対象のソフトウェアの実行を開始するとき、またはそのソフトウェアの実行中に、複数のマシン1〜3のいずれもがライセンスの管理を行うモードでなければ、管理ロールを取得し、ライセンス管理を行うモードにモード遷移する。図1の例では、マシン2でソフトウェアが起動され、ソフトウェアの実行を開始するときに、マシン2が管理ロールを取得し、モード遷移をしている。
ライセンス管理を行うモードとなったマシン2は、複数のマシン1〜3それぞれのソフトウェアの実行の有無を示す実行情報5を収集する。例えば各マシンで実行されるソフトウェアは、P2P(Peer to Peer)で接続される。ライセンス管理を行うモードとなったマシン2は、例えばソフトウェア間のP2P通信により、ソフトウェアを実行している他のマシンの情報を取得することで、実行情報5を収集できる。またP2Pの情報共有機能を用いて、ソフトウェアを実行しているマシン間で、実行情報5を共有することもできる。図1の例では、マシン2が管理ロールを取得した時点では、マシン2のみが、ライセンス対象のソフトウェアを実行している。
その後、複数のマシン1〜3のうちに、管理ロールを有するマシン2以外のマシンが、例えばソフトウェアを起動する際に、ソフトウェアの実行許否を、マシン2に問い合わせる。図1の例では、マシン3が実行許否を問い合わせている。
ライセンス管理を行うモードにおいて、マシン2は、他のマシン3からのソフトウェアの実行許否の問い合わせに応じ、ライセンス情報4と実行情報5とに基づいて、問い合わせ元のマシン3によるソフトウェアの実行の許否を判断する。例えば実行情報5にソフトウェアを実行中であると示されているマシンの台数が、ライセンス情報4に示されるライセンス数より少なければ、実行を許可するものと判断される。図1の例では、マシン3からの問い合わせ時点では、ライセンス数が「2」であり、ソフトウェアを実行しているマシン数が「1」であるため、実行が許可される。
マシン2は、実行を許可すると判断した場合、実行を許可することを、問い合わせ元のマシン3に通知する。実行の許可の通知を受けたマシン3は、ソフトウェアを実行する。また、マシン2は、マシン3がソフトウェアの実行中であることを、実行情報5に設定する。
ここで、マシン2,3がソフトウェアを実行中に、マシン1においてソフトウェアを実行しようとする場合もある。この場合、マシン1は、マシン2に、ソフトウェアの実行の許否を問い合わせる。マシン1からの問い合わせ時点では、ライセンス数が「2」であり、ソフトウェアを実行しているマシン数が「2」である。そのため、マシン2は、実行を許可しない。実行を許可しない場合、マシン2は、問い合わせたマシン1に対して、実行不許可の通知を送信する。するとマシン1は、ソフトウェアを起動できずに、エラー終了する。
その後、管理ロールを有するマシン2でソフトウェアを停止させる場合、マシン2は、ライセンスの管理を行うモードを解除し、管理ロールを放棄する。そしてマシン2は、ソフトウェアを実行中の別のマシン3に、管理ロールの移管依頼を送信する。移管依頼を受信したマシン3は、管理ロールを取得する。そしてマシン3は、最新の実行情報7を収集し、予め保持しているライセンス情報6と実行情報7とを用いて、ライセンス管理を開始する。
このように第1の実施の形態では、ソフトウェアの実行し得る複数のマシン1〜3のうちの1台が管理ロールを有し、そのソフトウェアのライセンス管理を行うため、ライセンス管理サーバを別で設けずに済む。その結果、システム全体の規模を縮小することができる。
また、実行情報の収集をP2P通信で行うため、データ収集のためのサーバも用意せずに済む。その結果、マシン間の多対多の通信を実現するために、システムの規模が拡大することが抑止される。
また、各マシン1〜3は、複数のマシン1〜3のいずれもが管理ロールを有していないときに、管理ロールを取得するようにしたため、複数のマシンが管理ロールを取得することを抑止できる。もし、複数のマシンが管理ロールを有してしまうと、複数のマシンでライセンス管理が行われてしまう。すると、ライセンス管理を行う複数のマシンそれぞれが、個別のマシンに同時にソフトウェアの実行許可を与えた結果、全体としてライセンス数を超えた数のマシンでソフトウェアが同時実行されてしまう可能性がある。管理ロールを有するマシンを1台に制限することで、このようなライセンス違反の状態になることを抑止できる。
また、各マシン1〜3は、ソフトウェアの実行を開始するとき、またはソフトウェアの実行中に管理ロールを取得するため、ソフトウェアを実行していないマシンが管理ロールを有することはない。これにより、ソフトウェアを実行するマシンが存在しない場合には、ライセンス管理を行うマシンも存在せず、無駄なライセンス管理処理の発生が抑止される。
また、管理ロールを有するマシンは、ソフトウェアの実行を停止する場合、管理ロールを放棄し、他にソフトウェアを実行中のマシンがあれば、そのマシンに管理ロールを移管することができる。これにより、ソフトウェア実行中のマシンが存在するにも拘わらず管理ロールを有するマシンが存在しなくなることを、抑止できる。
なお、ライセンス管理対象のソフトウェアを実行しているマシン間では、P2P通信により、ソフトウェアの実行の有無を示す実行情報を、常に共有することができる。実行情報を共有しておけば、管理ロールを有するマシンが故障などで停止し、管理ロールの正常な移管依頼が出されなかった場合でも、他のマシンが管理ロールを引き継ぐことができる。
また、各マシン1〜3は、予め入力されたソフトウェアのライセンスキーから、ライセンス情報4,6を取得することができる。この際、ライセンスキーに、複数のマシン1〜3と同じLAN(Local Area Network)上の任意の通信機器(代表機器)の識別情報を含めておくことができる。この場合、各マシン1〜3が管理ロールを取得する際に、ソフトウェアのライセンスキーから代表機器の識別情報を取得する。そして各マシン1〜3は、識別情報を有する代表機器に接続できるか否かを判断し、代表機器に接続できたときに、管理ロールを取得したと判断し、ライセンスの管理を行うモードにモード遷移する。このように、代表機器に接続できることを、管理ロールの取得条件とすることで、特定のLANに対して発行されたライセンスキーの、他のLANでの不正使用が抑止できる。
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、P2Pによるライセンス管理と、ネットワーク内の通信機器の固有情報を用いたライセンスキー発行とを行うものである。
次に第2の実施の形態について説明する。第2の実施の形態は、P2Pによるライセンス管理と、ネットワーク内の通信機器の固有情報を用いたライセンスキー発行とを行うものである。
図2は、第2の実施の形態のシステム構成例を示す図である。会社α内のLAN60には、複数のセグメント61〜64それぞれに、複数のマシン100,100a〜100oが接続されている。セグメント61〜64間は、複数のルータ51〜55で接続されている。複数のマシン100,100a〜100oは、例えばコンピュータである。複数のマシン100,100a〜100o間は、P2Pで接続されている。
図3は、マシンのハードウェアの一構成例を示す図である。マシン100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
メモリ102は、マシン100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に利用する各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
バス109に接続されている周辺機器としては、HDD(Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
HDD103は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103は、マシン100の補助記憶装置として使用される。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの不揮発性の半導体記憶装置(SSD:Solid State Drive)を使用することもできる。
グラフィック処理装置104には、モニタ21が接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取りを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
機器接続インタフェース107は、マシン100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
ネットワークインタフェース108は、LAN60に接続されている。ネットワークインタフェース108は、LAN60を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。他のマシン100a〜100oも、図3に示したマシン100と同様のハードウェアで実現できる。なお、第1の実施の形態に示した装置も、図3に示したマシン100と同様のハードウェアにより実現できる。
マシン100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。マシン100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、マシン100に実行させるプログラムをHDD103に格納しておくことができる。プロセッサ101は、HDD103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。またマシン100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、HDD103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
図4は、マシンの機能を示すブロック図である。マシン100は、記憶部110、代表機器確認部120、管理ロール受け渡し部130、ライセンス管理部140、ライセンス取得部150、およびソフトウェア実行部160を有する。
記憶部110は、ライセンスキー111、ライセンス使用状況情報112、管理ロールマシン情報113、およびソフトウェア114(例えばアプリケーションソフトウェア)を記憶する。ライセンスキー111は、ライセンスキーは、ソフトウェア114の正規の使用者であることを示すコードである。ライセンス使用状況情報112は、ライセンスを適用してソフトウェア114を実行しているマシンに関する情報である。管理ロールマシン情報113は、管理ロールを有しているマシンを示す情報である。ソフトウェア114は、ライセンスの対象となっているソフトウェアである。
代表機器確認部120は、LAN60内に代表機器が存在することを確認する。代表機器は、ソフトウェア114の実行ライセンスが与えられた会社α内のLAN60を代表する機器である。例えばLAN60内のルータ51が、代表機器となる。ライセンスキー111は、代表機器の識別情報を用いて生成される。例えばライセンスキー111が符号化されている場合、ライセンスキー111を復号すると、復号されたコードには代表機器の識別情報が含まれる。代表機器の識別情報は、例えばMAC(Media Access Control)アドレスやIP(Internet Protocol)アドレスである。代表機器確認部120は、マシン100が管理ロールを取得する際に、ライセンスキー111から抽出した識別情報を有する代表機器がLAN60内に存在することを確認する。
管理ロール受け渡し部130は、マシン間での管理ロールの受け渡しを行う。例えば管理ロール受け渡し部130は、システム内で最初にソフトウェアを実行する際に、マシン100自身に管理ロールを付与する。また管理ロール受け渡し部130は、他のマシンから管理ロールの依頼に基づいて、そのマシンから管理ロールを取得する。また管理ロール受け渡し部130は、マシン100が管理ロールを有しているとき、ソフトウェア114の実行が終了すると、管理ロールを他のマシンに依頼する。
ライセンス管理部140は、マシン100が管理ロールを有しているときに、ソフトウェア114のライセンス管理を行う。例えばライセンス管理部140は、他のマシンからのライセンス取得依頼に応じて、そのマシンにおいてソフトウェア114を実行させた場合に、同時実行マシン数がライセンスで許容されたマシン数を超えるかどうかを判断する。ライセンスで許容されたマシン数を超えなければ、ライセンス管理部140は、ライセンス取得依頼を発信したマシンへのライセンスの割り当てを行い、そのマシンに起動可能を示すメッセージを応答する。
なお複数のマシンから同時にライセンス取得依頼を受信した場合、ライセンス管理部140は、各ライセンス取得依頼をキューイングして、逐次処理を行う。これにより、誤ってライセンス数以上のマシンにソフトウェアの使用許可を与えることがなくなる。
またライセンス管理部140は、ライセンスキーの登録管理も行う。例えばライセンス管理部140は、ユーザ操作によりソフトウェアのライセンスキーが入力されると、そのライセンスキーを、記憶部110に格納する。なおライセンス管理部140は、ライセンスキーが入力された際には、代表機器確認部120を介して、そのライセンスキーに含まれる識別情報で示される代表機器が存在することを確認する。そしてライセンス管理部140は、代表機器が存在する場合にのみ、そのライセンスキーを記憶部110に格納する。
ライセンス取得部150は、マシン100でソフトウェア114を起動する際に、管理ロールを有しているマシンからライセンスを取得する。例えばライセンス取得部150は、管理ロールを有しているマシンに対してライセンス取得依頼を送信する。そのマシンから起動可能の応答を受信した場合、ライセンス取得部150は、ソフトウェア実行部160にソフトウェア114の実行を許可する。
ソフトウェア実行部160は、ライセンス取得部150から許可が得られると、ソフトウェア114を実行する。
なお、図4に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図4に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
なお、図4に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図4に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
マシン100以外のマシン100a〜100oも、マシン100と同様の機能を有している。その結果、マシン100,100a〜100oが対等の関係で、管理ロールの受け渡しが行われる。そして管理ロールを有しているマシンにより、ライセンス管理が行われる。なお会社αがソフトウェア114を実行するライセンスを有していることは、例えばライセンスキー111によって証明される。ライセンスキーは、ソフトウェアの販売元で発行される。
ライセンスキーは、ソフトウェア114の使用を許諾した会社α以外では使用できないように、会社α内の機器の識別情報が含められる。ここで、ライセンスキーの不正流用防止のために、例えば会社αのLAN60内のすべてのマシン100,100a〜100oの識別情報を含むライセンスキーを生成することが考えられる。しかしその場合、ライセンスキー発行時の各マシンの識別情報の入力の手間が過大となる。しかも、ソフトウェア114を使用するすべてのマシンの識別情報を用いてライセンスキーを発行する場合、マシンの入れ替えごとにライセンスキーを再発行することとなり、運用コストが増大する。さらに、すべてのマシンの識別情報を用いてライセンスキーを生成すると、ライセンスキーのサイズが大きくなりすぎ、マシンへのライセンスキーの入力作業の手間も増大する。
そこで第2の実施の形態では、代表機器の識別情報のみをライセンスキーに含め、マシンがライセンスの有無の確認する際には、そのマシンは、代表機器にアクセスしてライセンスキーの正当性を判断する。
図5は、ライセンスキーの発行状況の一例を示す図である。例えば会社αは、ルータ51の識別情報81を、ソフトウェア販売元企業70に送信する。ソフトウェア販売元企業70では、ルータ51の識別情報81を用いてライセンスキー82を生成する。例えばソフトウェア販売元企業70では、ルータ51の識別情報を含む文字列を、所定のアルゴリズムで符号化し、ライセンスキー82とする。符号化する文字列には、例えばライセンスによって許容される同時実行マシン数を含めることもできる。ソフトウェア販売元企業70は、生成したライセンスキー82を、会社αに送信する。
会社αでは、ライセンスキー82を、各マシンに登録する。例えば1台のマシンにライセンスキーを設定したとき、そのマシンからの他のマシンにライセンスキーを配布してもよい。
図6は、ライセンスキーの登録状況の一例を示す図である。ライセンスキー82は、例えばソフトウェアをマシン100にインストールする際に、マシン100に登録される。ライセンスキー82が文字コードの場合、例えば、マシン100を使用するユーザが、入力装置を用いて、ライセンスキー82をマシン100に入力する。
マシン100は、ライセンスキー82が入力されると、符号化されているライセンスキー82を復号し、ルータ51のIPアドレスやMACアドレスを抽出する。そしてマシン100は、抽出したIPアドレスを用いてルータ51にアクセスし、ルータ51からMACアドレスを取得する。マシン100は、ルータ51へのアクセスが成功し、かつルータ51のMACアドレスが、ライセンスキー82から抽出したMACアドレスと一致した場合、ライセンスキー82が正当であると判断する。ライセンスキー82が正当であれば、マシン100において、ソフトウェアが使用可能となる。
なお、ライセンスキー82は、会社α内のLAN60以外では使用できない。例えば会社βに、ルータ90と複数のマシン91〜94とを有するLANがある。ここで、会社βのLAN内のマシン91にライセンスキー82を登録しようとした場合を想定する。
ライセンスキー82の入力を受け付けたマシン91は、ライセンスキー82からIPアドレスとMACアドレスとを抽出する。そして、マシン91は、抽出したIPアドレスに対応する機器にアクセスし、MACアドレスを取得する。このとき、抽出したIPアドレスに対応する機器が会社βのLAN内に存在しなければ、アクセスがエラーとなり、ライセンスキー82は不正であると判断される。抽出したIPアドレスに対応する機器が会社βのLAN内に存在する場合、その機器から取得したMACアドレスとライセンスキー82から抽出したMACアドレスとが比較される。ライセンスキー82に含まれるMACアドレスは、会社αのLAN60に含まれるルータ51のものであるため、会社β内の機器から抽出されたMACアドレスと一致することはない。そのため、マシン91では、MACアドレスの不一致により、ライセンスキー82が不正であると判断される。
このように、ルータ51の識別情報(IPアドレスやMACアドレス)を用いてライセンスキー82を生成し、その識別情報の照合によりライセンスキー82の正当性を判断できるようにすることで、ライセンスキー82の不正使用が抑止される。
しかも、ライセンスキー82の生成に使用するのは、1台のルータ51の識別情報だけであるため、ライセンスキー82の発行の手間が少なくて済む。すなわち、1台の機器(例えばルータ51)の識別情報のみでライセンスキー82を発行できれば、その機器の入れ替えがない限り、ライセンスキー82を使用し続けることができる。しかもライセンスキー82のサイズも小さくて済む。その結果、ライセンスキー82の管理が容易となり、運用コストを削減することができる。
なお、第2の実施の形態では、LAN60内の1台のマシンにライセンスキー82を登録すると、P2Pで接続された他のマシンにそのライセンスキー82が配布される。これにより、ライセンスキー82の登録の手間が簡略化される。また各マシンは、自身が管理ロールを取得する際には、代表機器であるルータ51に接続できることを確認する。これにより、会社αのLAN60から切り離されたマシンによる管理ロールの取得を抑止できる。
会社αのLAN60内では、複数のマシン100,100a〜100oのうちの1台が、管理ロールを有する。そして管理ロールを有するマシンは、ソフトウェアの同時使用マシン数が、ライセンスに許容された数以内となるように、他のマシンへのライセンスの割り当てを管理する。
図7は、管理ロールを有するマシンによるライセンス管理の一例を示す図である。図7の例では、マシン100,100a〜100cのうち、マシン100aが管理ロールを有している。またマシン100aと100bとにおいて、ソフトウェアが使用中であるものとする。なおマシン100のノード名を「A」、マシン100aのノード名を「B」、マシン100cのノード名を「C」、マシン100dのノード名を「D」とする。このとき、マシン100a,100bのライセンス使用状況情報32,33には、ノード名「B」、「C」の各マシンがアプリケーションを使用中であることが示されている。また、ライセンスにより許容されている同時実行マシン数が「3」であるものとする。
このような状態において、ノード名「A」のマシン100でソフトウェアを使用しようとすると、そのマシン100から、管理ロールを有しているマシン100aへ、ライセンス取得依頼が送信される。マシン100aでは、ライセンス取得依頼に応じて、ライセンスで許容される同時実行マシン数の範囲内で、マシン100に対するライセンスの割り当てを行う。図7の例では、マシン100がソフトウェアの使用を開始しても、同時に実行するマシン数が、ライセンスで許容されている数以下となる。そのためマシン100に対してライセンスが割り当てられ、マシン100aからマシン100へ、ソフトウェアの起動を許可する通知(起動可能通知)が送信される。
マシン100aは、マシン100に対してソフトウェアの使用を許可すると、ライセンス使用状況情報32の内容が更新される。またマシン100aは、更新後のライセンス使用状況情報32を、マシン100に通知する。マシン100では、通知内容に従って、ライセンス使用状況情報31が新たに記憶される。
さらにマシン100aは、ノード名「A」のマシン100がソフトウェアの使用を開始したことを、すでにソフトウェアを使用しているマシン100bに通知する。マシン100bは、マシン100aからの通知に応じて、自身が有しているライセンス使用状況情報33を更新する。
このようにして、ソフトウェアを使用中の各マシン100〜100bでライセンス使用状況情報31,32,33が共通の内容に更新される。更新後のライセンス使用状況情報31,32,33には、ノード名「A」、「B」、「C」の各マシンがアプリケーションを使用中であることが示されている。
その後、マシン100cにおいてソフトウェアを使用しようとすると、そのマシン100cから、管理ロールを有しているマシン100aへ、ライセンス取得依頼が送信される。このとき、マシン100cにソフトウェアの使用を許可すると、同時使用マシン数が、ライセンスで許容されている数を超えてしまう。そこでマシン100aは、マシン100cからのライセンス取得要求に対して、使用不可の応答を返す。
このように、管理ロールを有するマシン100aがライセンス管理を行うことで、管理ロールを有していないマシンに対して、適切にライセンスを割り当てることができる。管理ロールは、マシン間で受け渡すことができる。例えばマシン100aにおいてソフトウェアの使用を停止する際には、マシン100aから他のマシンに管理ロールが渡される。各マシンが同じ内容のライセンス使用状況情報を有しているため、管理ロールを有しているマシンが変更された際にも、新たに管理ロールを有することとなったマシンが、すぐにライセンス管理を引き継ぐことができる。また、管理ロールを有するマシンが故障などで停止した場合でも、他のマシンが管理ロールを取得し、ライセンス管理を引き継ぐことができる。
なお、図7に示したライセンス使用状況情報のマシン間での同期は、例えばP2P通信における情報共有機能を用いて実現することができる。
以下、各マシンによるライセンス管理の処理について詳細に説明する。まず、ライセンスキー入力時の処理について説明する。
以下、各マシンによるライセンス管理の処理について詳細に説明する。まず、ライセンスキー入力時の処理について説明する。
図8は、ライセンスキー入力処理の手順の一例を示すフローチャートである。以下、マシン100にライセンスキーを入力する場合を想定し、図8に示す処理を説明する。なおライセンスキー入力処理は、例えばマシン100にソフトウェアをインストールする際に実行される。
[ステップS101]ライセンス管理部140は、ライセンスキーの入力を受け付け、入力されたライセンスキーから代表機器の識別情報を取得する。例えばライセンス管理部140は、符号化されているライセンスキーを、所定のアルゴリズムで復号する。そしてライセンス管理部140は、復号によって得られた文字列から、代表機器の識別情報を抽出する。
[ステップS102]代表機器確認部120は、代表機器がLAN60上に存在するか否かを判断する。例えば代表機器確認部120は、ライセンス管理部140から、代表機器の識別情報を取得する。識別情報がIPアドレスとMACアドレスとの組の場合、代表機器確認部120は、取得したIPアドレスにより代表機器にアクセスし、その代表機器からMACアドレスを取得する。代表機器確認部120は、代表機器からMACアドレスが取得でき、取得したMACアドレスがライセンスキーから抽出したMACアドレスと同一であれば、代表機器がLAN60上に存在すると判断する。代表機器がLAN60上に存在する場合、処理がステップS103に進められる。代表機器がLAN60上に存在しない場合、処理がステップS104に進められる。
[ステップS103]ライセンス管理部140は、代表機器確認部120から代表機器が存在するとの通知を受け取り、記憶部110にライセンスキー111を格納する。またライセンス管理部140は、入力されたライセンスキーを、P2Pで接続されている他のマシンに送信する。他のマシンは、受信したライセンスキーを、メモリなどに格納する。その後、ライセンスキー入力処理が終了する。
[ステップS104]ライセンス管理部140は、代表機器確認部120から代表機器が存在しないとの通知を受け取り、ライセンスキー登録エラーをモニタ21に表示する。その後、ライセンスキー入力処理が終了する。
このようにして、各マシンにライセンスキーが登録される。そして複数のマシンのうちの1台が管理ロールを有し、ライセンス管理を行う。他のマシンは、ソフトウェアの起動時に、管理ロールを有するマシンからライセンスの割り当てを受ける。
図9は、ソフトウェア起動時の処理の一例を示すフローチャートである。以下、マシン100aが管理ロールを有しているときに、マシン100を起動する場合を想定し、図9の処理を説明する。
[ステップS111]マシン100は、ソフトウェアの起動要求が入力されると、他のマシンから管理ロールマシン情報を収集する。例えばマシン100は、P2P接続により、他のマシン100a〜100oに接続されている。そこでマシン100は、他のマシン100a〜100oのすべてに対して、管理ロールマシン情報の取得要求を送信する。すると、ソフトウェアを使用しているマシンからマシン100へ、管理ロールマシン情報が送信される。図9の例では、取得した管理ロールマシン情報には、マシン100aが管理ロールを有していることが示されているものとする。
[ステップS112]マシン100は、管理ロールを有するマシン100aに対して、ライセンス取得依頼を送信する。
[ステップS113]マシン100aは、ライセンス取得依頼を受信すると、ライセンスで許容されている同時使用マシン数(ライセンス数)よりも、現在ソフトウェアを使用中のマシン数が少ないかどうかを判断する。ライセンス数よりも使用中のマシン数が少なければ、処理がステップS117に進められる。使用中のマシン数がライセンス数に達していれば、処理がステップS114に進められる。
[ステップS113]マシン100aは、ライセンス取得依頼を受信すると、ライセンスで許容されている同時使用マシン数(ライセンス数)よりも、現在ソフトウェアを使用中のマシン数が少ないかどうかを判断する。ライセンス数よりも使用中のマシン数が少なければ、処理がステップS117に進められる。使用中のマシン数がライセンス数に達していれば、処理がステップS114に進められる。
[ステップS114]マシン100aは、ライセンスを付与したマシンの状態を確認する。例えばマシン100aは、ライセンス使用状況情報32を参照し、ライセンスを付与したマシンを認識する。そしてマシン100aは、ライセンスを付与したマシンに対して、ソフトウェア使用状態の確認メッセージを送信する。確認メッセージを受信したマシンは、ソフトウェアが使用されていれば、使用中である旨の応答を返す。確認メッセージを受信したマシンにおいてソフトウェアが使用されていなければ、そのマシンは、該当ソフトウェアを実行していない旨の応答を返す。マシン100aは、各マシンからの応答に基づいて、ライセンスを付与したマシンにおけるソフトウェアの使用状態を認識する。
[ステップS115]マシン100aは、ライセンスを付与したマシンの中に、現在ソフトウェア不使用のマシンがあるか否かを判断する。例えばマシン100aは、少なくとも1台のマシンから、ソフトウェアを実行していない旨の応答を受信した場合、ソフトウェア不使用のマシンが存在すると判断する。ソフトウェア不使用のマシンが存在する場合、処理がステップS116に進められる。ソフトウェア不使用のマシンが存在しなければ、処理がステップS121に進められる。
[ステップS116]マシン100aは、ソフトウェア不使用のマシンにおけるソフトウェアの停止情報を、該当マシンの代替で、他の各マシンに送信する。停止情報を受信したマシンは、該当マシンによるソフトウェアの使用が停止したことを、ライセンス使用状況情報32に反映させる。
[ステップS117]マシン100aは、ライセンス使用状況情報32を更新する。例えばマシン100aは、ライセンス取得依頼を送信したマシン100のノード名を、使用中のマシンとしてライセンス使用状況情報32に追加する。またマシン100aは、ライセンスを付与しているがソフトウェアを不使用のマシンが存在した場合、そのマシンのノード名を、ライセンス使用状況情報32から削除する。
[ステップS118]マシン100aは、マシン100に対して、起動可能通知を送信する。その後、ステップS119とステップS120との処理が並行して実行される。
[ステップS119]マシン100aは、最新のライセンス使用状況情報32を、マシン100とソフトウェアを現在使用しているマシンとに送信する。
[ステップS119]マシン100aは、最新のライセンス使用状況情報32を、マシン100とソフトウェアを現在使用しているマシンとに送信する。
[ステップS120]マシン100は、起動可能通知を受信するとソフトウェアを起動する。これにより、ソフトウェアが正常に起動完了する。
他方、ライセンス数が不足している場合、以下の処理が行われる。
他方、ライセンス数が不足している場合、以下の処理が行われる。
[ステップS121]マシン100aは、ライセンス数の上限エラーをマシン100に通知する。
[ステップS122]マシン100は、ライセンス数上限エラーをモニタに表示し、ソフトウェアの起動処理をエラー終了する。
[ステップS122]マシン100は、ライセンス数上限エラーをモニタに表示し、ソフトウェアの起動処理をエラー終了する。
このようにして、LAN60内のいずれかのマシンのソフトウェアの起動時に、管理ロールを有するマシンにより、ライセンス数内でのライセンス割り当てが適切に行われる。またソフトウェアを使用するマシンが増加したことにより、ソフトウェアを実行中の各マシンにおいて、ライセンス使用状況情報や管理ロールマシン情報が更新される。
図10は、ソフトウェアの起動に伴う情報更新の一例を示すシーケンス図である。図10の例は、ノード名「B」のマシン100aが管理ロールを有し、ノード名「C」のマシン100bがソフトウェアを使用中のときに、ノード名「A」のマシン100を起動した場合を想定している。なお、管理ロールを有しているマシン100aも、ソフトウェア使用中である。この場合、ソフトウェア使用中である2台のマシン100a,100bのライセンス使用状況情報として、ノード名「B」、「C」のマシンがソフトウェアを使用中であることが登録されている。なお図10の例では、ライセンス数は「3」であるものとする。そのため、ライセンス使用状況情報には、ライセンスの使用状況が「2/3(同時使用マシン数/ライセンス数)」であると示されている。
マシン100においてソフトウェアの起動が開始されると、例えばマシン100は、マシン100bに対して管理ロールマシン情報の取得要求を送信する(ステップS131)。マシン100bは、管理ロールマシン情報の取得要求に応じて、自身が保持する管理ロールマシン情報をマシン100に送信する(ステップS132)。この管理ロールマシン情報には、ノード名「B」のマシン100aが管理ロールを有していることが示されている。マシン100は、受信した管理ロールマシン情報をメモリに格納する。
マシン100は、取得した管理ロールマシン情報により、マシン100aが管理ロールを有していることを認識する。そこでマシン100は、管理ロールを有するマシン100aに、ライセンス取得依頼を送信する(ステップS133)。マシン100にソフトウェアを使用させても、同時使用マシン数がライセンス数以下となる。そこでマシン100aは、ライセンス使用状況情報にマシン100のノード名「A」を使用中のマシンリストに追記し、ライセンス使用状況情報における使用中のライセンス数を「3/3」に更新する。
そしてマシン100aは、マシン100に対して、ソフトウェア使用許可と最新のライセンス使用状況情報とを送信する(ステップS134)。マシン100は、マシン100aから受信したライセンス使用状況情報をメモリに格納し、ソフトウェアの使用を開始する。またマシン100aは、すでにソフトウェア使用中のマシン100bに対しても、最新のライセンス使用状況情報を送信する(ステップS135)。マシン100bは、受信したライセンス使用状況情報に従って、自身が保持しているライセンス使用状況情報を更新する。
このようにして、ソフトウェアを使用しているすべてのマシン100,100a,100bにおけるライセンス使用状況情報が、最新に更新される。
ライセンスの割り当てを受けたマシンにおいて、ソフトウェアの使用が終了した場合、そのマシンに割り当てられたライセンスが解放される。この場合にも、ソフトウェアを使用しているすべてのマシンにおいて、ライセンス使用状況情報が更新される。
ライセンスの割り当てを受けたマシンにおいて、ソフトウェアの使用が終了した場合、そのマシンに割り当てられたライセンスが解放される。この場合にも、ソフトウェアを使用しているすべてのマシンにおいて、ライセンス使用状況情報が更新される。
図11は、ソフトウェア停止時の処理の手順の一例を示すフローチャートである。以下、マシン100aが管理ロールを有しているときに、マシン100がソフトウェアの使用を停止する場合を想定し、図11の処理を説明する。
[ステップS141]マシン100は、ソフトウェアの停止処理を開始すると、管理ロールを有するマシン100aに、停止情報を送信する。
[ステップS142]マシン100aは、停止情報を受信すると、自身のライセンス使用状況情報における使用中のマシンのリストから、マシン100のノード名を削除する。またマシン100aは、ライセンス使用状況情報における同時使用マシン数の値を1だけ減算する。そしてマシン100aは、ソフトウェアを使用中のすべてのマシンに、最新のライセンス使用状況情報を通知する。最新のライセンス使用状況情報を受信した各マシンは、自身のライセンス使用状況情報を更新する。
[ステップS142]マシン100aは、停止情報を受信すると、自身のライセンス使用状況情報における使用中のマシンのリストから、マシン100のノード名を削除する。またマシン100aは、ライセンス使用状況情報における同時使用マシン数の値を1だけ減算する。そしてマシン100aは、ソフトウェアを使用中のすべてのマシンに、最新のライセンス使用状況情報を通知する。最新のライセンス使用状況情報を受信した各マシンは、自身のライセンス使用状況情報を更新する。
[ステップS143]ライセンス使用状況情報の更新後、マシン100は、ソフトウェアの実行を停止する。
このようにして、ソフトウェアの停止時にも、ソフトウェア使用中の他のすべてのマシンにおいて、ライセンス使用状況情報が更新される。各マシンのライセンス使用状況情報が同期して更新されることで、マシン間で管理ロールを容易に移管することができる。管理ロールが移管される主なケースとして、管理ロールを有するマシンでソフトウェアが停止するケース(第1のケース)がある。また、管理ロールを有するマシンが存在しない状態で、いずれかのマシンが管理ロールを有するようになるケース(第2のケース)もある。
このようにして、ソフトウェアの停止時にも、ソフトウェア使用中の他のすべてのマシンにおいて、ライセンス使用状況情報が更新される。各マシンのライセンス使用状況情報が同期して更新されることで、マシン間で管理ロールを容易に移管することができる。管理ロールが移管される主なケースとして、管理ロールを有するマシンでソフトウェアが停止するケース(第1のケース)がある。また、管理ロールを有するマシンが存在しない状態で、いずれかのマシンが管理ロールを有するようになるケース(第2のケース)もある。
図12は、管理ロール移管の第1のケースについての手順の一例を示すフローチャートである。以下、マシン100aが管理ロールを有し、その管理ロールをマシン100bに移管する場合を想定し、図12の処理を説明する。なお、図12の例では、起動時刻が早いマシンに優先的に管理ロールを持たせている。
[ステップS151]マシン100aがソフトウェアの停止処理を開始すると、マシン100aは、マシン100a以外のソフトウェア使用中のマシンのうち、起動時刻が最も早いマシンを特定する。図12の例では、マシン100bが特定される。そして、マシン100aは、特定したマシン100bに管理ロールを依頼する。
[ステップS152]管理ロールの依頼を受けたマシン100bは、代表機器に接続可能か否かを判断する。例えばマシン100bは、ライセンスキーを復号することで、ライセンスキーからIPアドレスとMACアドレスとを抽出する。そしてマシン100bは、抽出したIPアドレスに対応する機器から、その機器のMACアドレスを取得する。マシン100bは、取得したMACアドレスが、ライセンスキーから抽出したMACアドレスと同一であれば、代表機器に接続可能であると判断する。代表機器に接続可能であれば、処理がステップS153に進められる。代表機器に接続できない場合、処理がステップS157に進められる。
[ステップS153]マシン100bは、ライセンスを有効化する。例えばマシン100bは、メモリ内において、保持しているライセンスキーに関連付けて、ライセンスが有効であることを示すフラグを設定する。
[ステップS154]マシン100bは、管理ロールの受諾通知を、マシン100aに送信する。その後、ステップS155とステップS156との処理が並行して実行される。
[ステップS155]マシン100bは、ソフトウェアを使用している各マシンに、マシン100bが管理ロールを有していることを示す情報を送信する。
[ステップS156]管理ロールの受諾通知を受信したマシン100aは、ソフトウェアの実行を停止する。
[ステップS156]管理ロールの受諾通知を受信したマシン100aは、ソフトウェアの実行を停止する。
[ステップS157]マシン100bは、代表機器に接続できない場合、ライセンスキーを無効化する。例えばマシン100bは、メモリ内において、保持しているライセンスキーに関連付けて、ライセンスが無効であることを示すフラグを設定する。
このようにして、管理ロールを有するマシン100aにおいてソフトウェアを停止する際に、代表機器に接続可能な他のマシン100bに管理ロールが移管される。なお図12の例では、マシン100bが代表機器に接続できない場合、システム内に管理ロールを有するマシンが不在となる。その場合、新たにソフトウェアを使用するマシンが発生したときに、いずれかのマシンに管理ロールが依頼される。
図13は、ソフトウェアの停止に伴う情報更新の一例を示す図である。図13の例は、ノード名「B」のマシン100aが管理ロールを有し、ノード名「A」、「B」、「C」のマシン100,100a,100bがソフトウェアを使用中のときに、ノード名「B」のマシン100aでソフトウェアの使用を停止した場合を想定している。この場合、ソフトウェア使用中である3台のマシン100,100a,100bのライセンス使用状況情報として、ノード名「A」、「B」、「C」のマシンがソフトウェアを使用中であることが登録されている。なお図13の例では、ライセンス数は「3」であるものとする。そのため、ライセンス使用状況情報には、ライセンスの使用状況が「3/3」であると示されている。また、3台のマシン100,100a,100bのソフトウェアの起動時刻は、管理ロールを有するマシン100aが最も早く、マシン100bが2番目に早いものとする。
このような状況において、管理ロールを有するマシン100aのソフトウェアの停止処理が開始されると、マシン100aからソフトウェアの起動時刻が2番目に早いマシン100bに対して、管理ロール依頼が送信される(ステップS161)。マシン100bは、管理ロールを保持することを受諾し、管理ロール受諾の応答をマシン100aに送信する(ステップS162)。
管理ロール受諾の応答を受信したマシン100aは、ソフトウェアの停止処理を完了する。新たに管理ロールを有することとなったマシン100bは、マシン100aにおいてソフトウェアが停止したことにより、ライセンス使用状況情報を更新する。すなわち、ソフトウェアを使用中のマシンのリストからマシン100aのノード名「B」を削除し、使用しているライセンス数を「2/3」に変更する。またマシン100bは、管理ロールマシン情報として、自身のノード名「C」を設定する。そしてマシン100bは、ライセンス使用状況情報と管理ロールマシン情報とに関する最新情報を、ソフトウェア使用中のマシン100に送信する(ステップS163)。これにより、ソフトウェア使用中のマシンの情報が最新の状態に更新される。
次に、LAN内に管理ロールを有するマシンが存在しない場合の管理ロール移管処理について、図14を参照して説明する。なお、図14に示す処理は、図9に示す「ソフトウェアを使用するマシン」のソフトウェア起動時の処理を詳細化したものである。
図14は、管理ロール移管の第2のケースについての手順の一例を示すフローチャートである。以下、マシン100aでソフトウェアが起動された場合を想定して、図13の処理を説明する。
[ステップS171]マシン100aは、ソフトウェアの起動要求が入力されると、P2Pで接続されたLAN内の、ソフトウェアを使用している他のマシンの情報を取得する。例えばマシン100aは、ソフトウェアを使用しているマシンとP2P接続で通信する。
[ステップS172]マシン100aは、ソフトウェアを使用している他のマシンが存在するか否かを判断する。他のマシンが存在する場合、処理がステップS177に進められる。他のマシンが存在しない場合、処理がステップS173に進められる。
[ステップS173]マシン100aは、代表機器に接続可能か否かを判断する。代表機器に接続可能か否かを判断する。代表機器に接続可能であれば、処理がステップS175に進められる。代表機器に接続できなければ、処理がステップS174に進められる。
[ステップS174]マシン100aは、ライセンスキーを無効化し、ソフトウェアを起動せずに処理を終了する。
[ステップS175]マシン100aは、ライセンスキーを有効化する。
[ステップS175]マシン100aは、ライセンスキーを有効化する。
[ステップS176]マシン100aは、自身が管理ロールを有するマシンとなる。例えばマシン100aは、管理ロールマシン情報に、マシン100aのノード名を設定する。その後、処理がステップS182に進められる。
[ステップS177]マシン100aは、ソフトウェアを使用している他のマシンから管理ロールマシン情報を収集する。マシン100aは、収集した管理ロールマシン情報に基づいて、現在管理ロールを有するマシンを認識する。
[ステップS178]マシン100aは、管理ロールを有するマシンにアクセス可能か否かを判断する。例えばマシン100aは、管理ロールを有するマシンに所定のメッセージを送信し、そのメッセージに対する応答の有無により、アクセス可能かどうかを判断する。管理ロールを有するマシンにアクセス可能であれば、処理がステップS180に進められる。管理ロールをするマシンにアクセスできなければ、処理がステップS179に進められる。
[ステップS179]マシン100aは、ソフトウェアの起動時刻が最も早いマシンに管理ロールを依頼する。マシン100aは、管理ロールを依頼したマシンから、管理ロール受諾の応答を受信すると、次のステップS180に処理を進める。なお、管理ロールを受諾したマシンは、図12に示す「起動時刻が2番目に早いマシン」と同様の処理を行う。
[ステップS180]マシン100aは、管理ロールを有するマシンにライセンス取得依頼を送信する。
[ステップS181]マシン100aは、管理ロールを有するマシンから起動可能の通知を受信したか否かを判断する。起動可能の通知を受信した場合、処理がステップS182に進められる。起動可能の通知を受信できなかった場合、処理がステップS183に進められる。
[ステップS181]マシン100aは、管理ロールを有するマシンから起動可能の通知を受信したか否かを判断する。起動可能の通知を受信した場合、処理がステップS182に進められる。起動可能の通知を受信できなかった場合、処理がステップS183に進められる。
[ステップS182]マシン100aは、ソフトウェアを起動し、処理を終了する。
[ステップS183]マシン100aは、エラー表示を行い、ソフトウェアを起動せずに処理を終了する。
[ステップS183]マシン100aは、エラー表示を行い、ソフトウェアを起動せずに処理を終了する。
このようにして、管理ロールを有するマシンが不在の場合、ソフトウェアの起動時刻が最も早いマシンが管理ロールを保持する。例えば、管理ロールを有していたマシンの異常により、そのマシンで正しくソフトウェアを終了させることができなかった場合でも、他のマシンが図14に示す処理を実行することで、管理ロールの移管が可能となる。
以上説明したように、第2の実施の形態では、複数のマシンの内の1台が管理ロールを有し、そのマシンがフローティングライセンスを管理するため、ソフトウェアを実行しないライセンス管理サーバを別途設けずに済む。しかも、管理ロールを有するマシンは、ソフトウェアを実行しているマシンのいずれかに動的に変更できる。そのため、管理ロールを有しているマシンでソフトウェアが停止しても、他のマシンに管理ロールを移管し、ライセンス管理処理を引き継がせることができる。その結果、ライセンス管理サーバを用いなくても、信頼性の高いライセンス管理が可能となっている。
さらに、代表機器の識別情報をライセンスキーに含め、代表機器に接続できないマシンは管理ロールを有することができないようにしている。これにより、ライセンス対象のLAN以外のLANでライセンスキーを使用することはできず、ライセンスの不正使用が抑止される。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
1〜3 マシン
4,6 ライセンス情報
5,7 実行情報
4,6 ライセンス情報
5,7 実行情報
Claims (7)
- 複数のマシンそれぞれで実行され得るソフトウェアのライセンスを管理するライセンス管理プログラムであって、
前記複数のマシンに含まれる第1のマシンに、
ライセンスの管理を行うモードにモード遷移し、
前記複数のマシンそれぞれの前記ソフトウェアの実行の有無を示す実行情報を収集し、
前記ライセンスの管理を行うモードにおいて、前記複数のマシンに含まれる第2のマシンからの、前記ソフトウェアの実行許否の問い合わせに応じ、前記ソフトウェアを同時に実行できるマシン数を示すライセンス情報と前記実行情報とに基づいて、前記第2のマシンによる前記ソフトウェアの実行の許否を判断する、
処理を実行させるライセンス管理プログラム。 - 前記実行情報の収集では、前記ソフトウェアを実行しているマシン間のピアツーピア通信によって、前記実行情報を収集する、
請求項1記載のライセンス管理プログラム。 - 前記ライセンスの管理を行うモードへのモード遷移では、
前記ソフトウェアのライセンスキーから代表機器の識別情報を取得し、
前記識別情報を有する前記代表機器に接続できるか否かを判断し、
前記代表機器に接続できたときに、前記ライセンスの管理を行うモードにモード遷移する、
請求項1または2記載のライセンス管理プログラム。 - 前記ライセンスの管理を行うモードへのモード遷移では、前記ソフトウェアの起動時に、前記複数のマシンのいずれも前記ライセンスの管理を行うモードでないときに、前記ライセンスの管理を行うモードにモード遷移する、
請求項1乃至3のいずれかに記載のライセンス管理プログラム。 - 前記第1のマシンに、さらに、
前記ライセンスの管理を行うモードへのモード遷移後に前記ソフトウェアの実行を停止する場合、前記ライセンスの管理を行うモードを解除し、前記複数のマシンのうちの前記ソフトウェアを実行中のマシンに、前記ライセンスの管理を行うモードへのモード遷移依頼を送信する、
処理を実行させる請求項1乃至4のいずれかに記載のライセンス管理プログラム。 - 複数のマシンそれぞれで実行され得るソフトウェアのライセンスを管理するライセンス管理方法であって、
前記複数のマシンに含まれる第1のマシンが、ライセンスの管理を行うモードにモード遷移し、
前記第1のマシンが、前記複数のマシンそれぞれの前記ソフトウェアの実行の有無を示す実行情報を収集し、
前記複数のマシンに含まれる、前記第1のマシン以外の第2のマシンが、前記ソフトウェアの実行許否を、前記第1のマシンに問い合わせ、
前記第1のマシンが、前記ライセンスの管理を行うモードにおいて、前記第2のマシンからの前記問い合わせに応じ、前記ソフトウェアを同時に実行できるマシン数を示すライセンス情報と前記実行情報とに基づいて、前記第2のマシンによる前記ソフトウェアの実行の許否を判断し、
前記第2のマシンが、前記第1のマシンより前記ソフトウェアの実行を許可すると判断された場合、前記ソフトウェアを実行する、
ライセンス管理方法。 - 複数のマシンそれぞれで実行され得るソフトウェアのライセンスを管理するライセンス管理システムであって、
ライセンスの管理を行うモードにモード遷移し、前記複数のマシンそれぞれの前記ソフトウェアの実行の有無を示す実行情報を収集し、前記ライセンスの管理を行うモードにおいて、前記ソフトウェアの実行許否の問い合わせに応じ、前記ソフトウェアを同時に実行できるマシン数を示すライセンス情報と前記実行情報とに基づいて、前記ソフトウェアの実行の許否を判断する、複数のマシンに含まれる第1のマシンと、
前記ソフトウェアの実行許否を前記第1のマシンに問い合わせ、前記第1のマシンにより前記ソフトウェアの実行を許可すると判断された場合、前記ソフトウェアを実行する、前記複数のマシンに含まれる第2のマシンと、
を有するライセンス管理システム。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2015114002A JP2017004044A (ja) | 2015-06-04 | 2015-06-04 | ライセンス管理プログラム、ライセンス管理方法、およびライセンス管理システム |
| US15/096,359 US20160357948A1 (en) | 2015-06-04 | 2016-04-12 | Information processing device and management method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2015114002A JP2017004044A (ja) | 2015-06-04 | 2015-06-04 | ライセンス管理プログラム、ライセンス管理方法、およびライセンス管理システム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2017004044A true JP2017004044A (ja) | 2017-01-05 |
Family
ID=57451585
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2015114002A Pending JP2017004044A (ja) | 2015-06-04 | 2015-06-04 | ライセンス管理プログラム、ライセンス管理方法、およびライセンス管理システム |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US20160357948A1 (ja) |
| JP (1) | JP2017004044A (ja) |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11148059B2 (en) * | 2017-09-28 | 2021-10-19 | Ags Llc | Methods for generating and validating gaming machine subscription keys and securing subscription parameter data and jurisdiction files |
| CN111406379A (zh) | 2017-11-09 | 2020-07-10 | 区块链控股有限公司 | 用于可证实计算的类似c的智能合约的算术增强 |
| WO2019092552A1 (en) | 2017-11-09 | 2019-05-16 | nChain Holdings Limited | Systems and methods for ensuring correct execution of computer program using a mediator computer system |
| GB201720946D0 (en) | 2017-12-15 | 2018-01-31 | Nchain Holdings Ltd | Computer-implemented system and method |
| EP3725028A1 (en) | 2017-12-13 | 2020-10-21 | Nchain Holdings Limited | System and method for securely sharing cryptographic material |
| US20220197980A1 (en) * | 2019-04-26 | 2022-06-23 | Kyocera Document Solutions Inc. | Electronic apparatus, control method, and information processing system |
-
2015
- 2015-06-04 JP JP2015114002A patent/JP2017004044A/ja active Pending
-
2016
- 2016-04-12 US US15/096,359 patent/US20160357948A1/en not_active Abandoned
Also Published As
| Publication number | Publication date |
|---|---|
| US20160357948A1 (en) | 2016-12-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5963957B2 (ja) | 開発環境システム、開発環境装置、開発環境提供方法及びプログラム | |
| EP3376378B1 (en) | Container license management method, and apparatus | |
| JP2017004044A (ja) | ライセンス管理プログラム、ライセンス管理方法、およびライセンス管理システム | |
| US8423734B2 (en) | Making automated use of data volume copy service targets | |
| US11625385B2 (en) | Method and apparatus for managing data based on blockchain | |
| JP2010237788A (ja) | サーバ装置、計算機システム、プログラム及び仮想計算機移動方法 | |
| US11861360B2 (en) | Management method, management apparatus, and program | |
| JP6003590B2 (ja) | データセンタ,仮想システムの複写サービスの提供方法,データセンタの管理サーバ及び仮想システムの複写プログラム | |
| US8640209B2 (en) | Authentication information change facility | |
| JP2008176749A (ja) | Id貸出装置、id貸出プログラムおよびid貸出方法 | |
| JP4753953B2 (ja) | ソフトウェア実行管理装置、その方法及びプログラム | |
| JP6638317B2 (ja) | 情報処理システム、情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム | |
| US20170308684A1 (en) | System and method for information processing | |
| KR102357715B1 (ko) | 보안 os 이미지 관리 방법 및 이 방법을 이용하는 인터넷 서버 | |
| JP6651836B2 (ja) | 情報処理装置、共有メモリ管理方法及び共有メモリ管理プログラム | |
| JP7100607B2 (ja) | 異常検知システム、及び異常検知方法 | |
| CN113495739B (zh) | 信息处理装置、信息处理方法和系统、计算机可读介质 | |
| JP7527404B2 (ja) | データ移行装置、データ移行方法、及び、データ移行プログラム | |
| JP6525067B2 (ja) | 逆コマンド生成プログラム、逆コマンド生成方法及び逆コマンド生成装置 | |
| CN117120977A (zh) | 动态地获取在计算容量和资源中执行操作的范围许可 | |
| JP2019033350A (ja) | 通信システムおよびアドレス設定方法 | |
| CN119536847A (zh) | 运维环境配置方法、设备、介质及产品 | |
| JP2006235751A (ja) | 仮想ストレージ装置、仮想ストレージ方法およびプログラム |