(57)【要約】【課題】ネットワーク内におけるライセンスの整合を保ったまま、ネットワーク接続のないノードにライセンスの一部または全部を移行することができる。【解決手段】所定のソフトウェアがそれぞれにインストールされた複数のノードのうち第１のネットワークに接続するノードが、第１のネットワークに接続する他のノードが保持するソフトウェアのライセンスの使用状況を含むライセンス情報を取得し、取得したライセンス情報に基づいて自身が記憶するライセンス情報を更新し、余剰ライセンスの一部または全部を第１のネットワークに接続しない他のノードに分割して移行するための分割ライセンス情報を生成し、生成した分割ライセンス情報に基づいてライセンス情報を更新し、更新したライセンス情報を第１のネットワークに接続する他のノードの全てへ反映させる。【選択図】図１
2020101942.tif 000002
【特許請求の範囲】
【請求項１】
所定のソフトウェアがそれぞれにインストールされた複数のノードのうち第１のネットワークに接続するノードであって、
第１のネットワークに接続する全てのノードにおける前記ソフトウェアのライセンスの使用状況を含むライセンス情報を記憶する記憶部と、
前記第１のネットワークに接続する他のノードを検出する検出部と、
前記検出された他のノードが保持する前記ライセンス情報を取得する取得部と、
前記取得したライセンス情報に基づいて前記記憶部に記憶されたライセンス情報を更新し、前記更新したライセンス情報を前記第１のネットワークに接続する他のノードの全てへ反映させる更新部と、
前記ライセンス情報に基づいて、前記ソフトウェアのライセンスのうち使用していない余剰ライセンスの一部または全部を前記第１のネットワークに接続しない他のノードに分割して移行するための分割ライセンス情報を生成する生成部と、
前記生成した分割ライセンス情報に基づいて前記記憶部に記憶されたライセンス情報を更新し、前記更新したライセンス情報を前記第１のネットワークに接続する他のノードの全てへ反映させる分割部と、
を備えるライセンス管理装置。
【請求項２】
前記ライセンスを分割するための情報の入力を受け付ける分割入力部を備え、
前記生成部は、前記入力された情報に基づいて分割ライセンス情報を生成する
請求項１に記載のライセンス管理装置。
【請求項３】
前記生成部は、前記分割ライセンス情報を含む前記ソフトウェアを生成する
請求項１または請求項２に記載のライセンス管理装置。
【請求項４】
前記第１のネットワークに接続していない他のノードが生成した前記分割ライセンス情報に基づいて前記記憶部に記憶されたライセンス情報を更新する追加部と、
を備える請求項１から請求項３の何れか一項に記載のライセンス管理装置。
【請求項５】
前記追加部は、前記更新前に前記第１のネットワークにおいて使用していたライセンス数が２以上である場合に、前記更新した前記ライセンス情報を前記第１のネットワークに接続する他のノードの全てへ反映させる
請求項４に記載のライセンス管理装置。
【請求項６】
所定のソフトウェアがそれぞれにインストールされた複数のノードのうち第１のネットワークに接続しないノードであって、
通信可能な全てのノードにおける前記ソフトウェアのライセンスの使用状況を含むライセンス情報を記憶する記憶部と、
前記第１のネットワークにおいて保有する前記ソフトウェアのライセンスのうち使用していない余剰ライセンスの一部または全部を分割して移行するための分割ライセンス情報に基づいて前記記憶部に記憶されたライセンス情報を更新する追加部と、
を備えるライセンス管理装置。
【請求項７】
所定のソフトウェアがそれぞれにインストールされた複数のノードを備え、
第１のネットワークに接続する前記ノードは、
前記第１のネットワークに接続する全てのノードにおける前記ソフトウェアのライセンスの使用状況を含むライセンス情報を記憶する記憶部と、
前記第１のネットワークに接続する他のノードを検出する検出部と、
前記検出された他のノードが保持する前記ライセンス情報を取得する取得部と、
前記取得したライセンス情報に基づいて前記記憶部に記憶されたライセンス情報を更新し、前記更新したライセンス情報を前記第１のネットワークに接続する他のノードの全てへ反映させる更新部と、
前記ライセンス情報に基づいて、前記ソフトウェアのライセンスのうち使用していない余剰ライセンスの一部または全部を前記第１のネットワークに接続しない他のノードに分割して移行するための分割ライセンス情報を生成する生成部と、
前記生成した分割ライセンス情報に基づいて前記記憶部に記憶されたライセンス情報を更新し、前記更新したライセンス情報を前記第１のネットワークに接続する他のノードの全てへ反映させる分割部と、
を備え、
前記第１のネットワークに接続しない前記ノードは、
通信可能な全てのノードにおける前記ソフトウェアのライセンスの使用状況を含むライセンス情報を記憶する記憶部と、
前記分割ライセンス情報に基づいて前記記憶部に記憶されたライセンス情報を更新する追加部と、
を備えるライセンス管理システム。
【請求項８】
所定のソフトウェアがそれぞれにインストールされた複数のノードのうち第１のネットワークに接続するノードが、
前記第１のネットワークに接続する他のノードを検出し、
前記検出された他のノードが保持する前記ソフトウェアのライセンスの使用状況を含むライセンス情報を取得し、
前記取得したライセンス情報に基づいて、前記第１のネットワークに接続する全てのノードにおける前記ソフトウェアのライセンスの使用状況を含むライセンス情報を記憶する記憶部に記憶されたライセンス情報を更新し、前記更新したライセンス情報を前記第１のネットワークに接続する他のノードの全てへ反映し、
前記ライセンス情報に基づいて、前記ソフトウェアのライセンスのうち使用していない余剰ライセンスの一部または全部を前記第１のネットワークに接続しない他のノードに分割して移行するための分割ライセンス情報を生成し、
前記生成した分割ライセンス情報に基づいて前記記憶部に記憶されたライセンス情報を更新し、前記更新したライセンス情報を前記第１のネットワークに接続する他のノードの全てへ反映させる、
ライセンス管理方法。
【請求項９】
所定のソフトウェアがそれぞれにインストールされた複数のノードのうち第１のネットワークに接続するノードのコンピュータを、
前記第１のネットワークに接続する他のノードを検出する検出手段と、
前記検出された他のノードが保持する前記ソフトウェアのライセンスの使用状況を含むライセンス情報を取得する取得手段と、
前記取得したライセンス情報に基づいて、前記第１のネットワークに接続する全てのノードにおける前記ソフトウェアのライセンスの使用状況を含むライセンス情報を記憶する記憶部に記憶されたライセンス情報を更新し、前記更新したライセンス情報を前記第１のネットワークに接続する他のノードの全てへ反映させる更新手段と、
前記ライセンス情報に基づいて、前記ソフトウェアのライセンスのうち使用していない余剰ライセンスの一部または全部を前記第１のネットワークに接続しない他のノードに分割して移行するための分割ライセンス情報を生成する生成手段と、
前記生成した分割ライセンス情報に基づいて前記記憶部に記憶されたライセンス情報を更新し、前記更新したライセンス情報を前記第１のネットワークに接続する他のノードの全てへ反映させる分割手段と、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ライセンス管理装置、ライセンス管理システム、ライセンス管理方法、プログラムに関する。
【背景技術】
【０００２】
コンピュータ装置が、ソフトウェアの実行時にライセンスの保有状況を確認してそのソフトウェアの実行可否を判定する場合がある。そのようなライセンス管理方法としては、中央集権型の所定のサーバ装置がライセンスの保有状況を記憶して管理する方法が一般的である。しかしながら、中央集権型の管理方法では、ライセンスを管理する装置等の機構に異常が生じたときにソフトウェアのライセンスの保有状況の確認が不明となり、正常なライセンス管理ができなくなる。
【０００３】
この問題を防ぐ方法として、特許文献１には、ライセンス管理対象のソフトウェアを実行する装置が、そのソフトウェアの機能により他ノードのソフトウェアから取得したライセンス情報を保持及び更新し、全ての他ノードへ反映することでソフトウェアの実行数を管理する技術が記載されている。この方法では、単にライセンス管理の冗長性が担保できるだけでなく、ライセンスの管理がソフトウェア内で完結するためライセンス情報の外部への入出力が不要になるというメリットがある。例えば、利用者側のセキュリティ上の理由によりインターネット接続ができない環境で当該ソフトウェアを利用するケースにおいては、当該ソフトウェアを開発する開発元ではネットワーク接続による利用状況の把握ができないため、不正利用などへの対策が難しい状況がある。しかしながら上記のようなライセンス管理方法であれば、内部ネットワークが接続されている環境において自律的に不正利用されることがなくなるとともに、ライセンス情報の漏えいによる不正利用も防ぐことができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第６２３７０５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載の技術では、ネットワーク接続のある中でしかライセンスの管理ができないという課題がある。例えば、システムのリプレースを行ったり、セキュリティ上の理由などでネットワークの分離を行ったりする場合において、接続がない環境へソフトウェアライセンスの一部または全部の移行が必要なときに、ライセンスの移行をすることができない。
【０００６】
そこでこの発明は、上述の課題を解決することのできるライセンス管理装置、ライセンス管理システム、ライセンス管理方法、プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００７】
本発明の第１の態様によれば、ライセンス管理装置は、所定のソフトウェアがそれぞれにインストールされた複数のノードのうち第１のネットワークに接続するノードであって、第１のネットワークに接続する全てのノードにおける前記ソフトウェアのライセンスの使用状況を含むライセンス情報を記憶する記憶部と、前記第１のネットワークに接続する他のノードを検出する検出部と、前記検出された他のノードが保持する前記ライセンス情報を取得する取得部と、前記取得したライセンス情報に基づいて前記記憶部に記憶されたライセンス情報を更新し、前記更新したライセンス情報を前記第１のネットワークに接続する他のノードの全てへ反映させる更新部と、前記ライセンス情報に基づいて、前記ソフトウェアのライセンスのうち使用していない余剰ライセンスの一部または全部を前記第１のネットワークに接続しない他のノードに分割して移行するための分割ライセンス情報を生成する生成部と、前記生成した分割ライセンス情報に基づいて前記記憶部に記憶されたライセンス情報を更新し、前記更新したライセンス情報を前記第１のネットワークに接続する他のノードの全てへ反映させる分割部と、を備えることを特徴とする。
【０００８】
本発明の第２の態様によれば、ライセンス管理装置は、所定のソフトウェアがそれぞれにインストールされた複数のノードのうち第１のネットワークに接続しないノードであって、通信可能な全てのノードにおける前記ソフトウェアのライセンスの使用状況を含むライセンス情報を記憶する記憶部と、前記第１のネットワークにおいて保有する前記ソフトウェアのライセンスのうち使用していない余剰ライセンスの一部または全部を分割して移行するための分割ライセンス情報に基づいて前記記憶部に記憶されたライセンス情報を更新する追加部と、を備えることを特徴とする。
【０００９】
本発明の第３の態様によれば、ライセンス管理システムは、所定のソフトウェアがそれぞれにインストールされた複数のノードを備え、第１のネットワークに接続する前記ノードは、前記第１のネットワークに接続する全てのノードにおける前記ソフトウェアのライセンスの使用状況を含むライセンス情報を記憶する記憶部と、前記第１のネットワークに接続する他のノードを検出する検出部と、前記検出された他のノードが保持する前記ライセンス情報を取得する取得部と、前記取得したライセンス情報に基づいて前記記憶部に記憶されたライセンス情報を更新し、前記更新したライセンス情報を前記第１のネットワークに接続する他のノードの全てへ反映させる更新部と、前記ライセンス情報に基づいて、前記ソフトウェアのライセンスのうち使用していない余剰ライセンスの一部または全部を前記第１のネットワークに接続しない他のノードに分割して移行するための分割ライセンス情報を生成する生成部と、前記生成した分割ライセンス情報に基づいて前記記憶部に記憶されたライセンス情報を更新し、前記更新したライセンス情報を前記第１のネットワークに接続する他のノードの全てへ反映させる分割部と、を備え、前記第１のネットワークに接続しない前記ノードは、通信可能な全てのノードにおける前記ソフトウェアのライセンスの使用状況を含むライセンス情報を記憶する記憶部と、前記分割ライセンス情報に基づいて前記記憶部に記憶されたライセンス情報を更新する追加部と、を備えることを特徴とする。
【００１０】
本発明の第４の態様によれば、ライセンス管理方法は、所定のソフトウェアがそれぞれにインストールされた複数のノードのうち第１のネットワークに接続するノードが、前記第１のネットワークに接続する他のノードを検出し、前記検出された他のノードが保持する前記ソフトウェアのライセンスの使用状況を含むライセンス情報を取得し、前記取得したライセンス情報に基づいて、前記第１のネットワークに接続する全てのノードにおける前記ソフトウェアのライセンスの使用状況を含むライセンス情報を記憶する記憶部に記憶されたライセンス情報を更新し、前記更新したライセンス情報を前記第１のネットワークに接続する他のノードの全てへ反映し、前記ライセンス情報に基づいて、前記ソフトウェアのライセンスのうち使用していない余剰ライセンスの一部または全部を前記第１のネットワークに接続しない他のノードに分割して移行するための分割ライセンス情報を生成し、前記生成した分割ライセンス情報に基づいて前記記憶部に記憶されたライセンス情報を更新し、前記更新したライセンス情報を前記第１のネットワークに接続する他のノードの全てへ反映させることを特徴とする。
【００１１】
本発明の第５の態様によれば、プログラムは、所定のソフトウェアがそれぞれにインストールされた複数のノードのうち第１のネットワークに接続するノードのコンピュータを、前記第１のネットワークに接続する他のノードを検出する検出手段と、前記検出された他のノードが保持する前記ソフトウェアのライセンスの使用状況を含むライセンス情報を取得する取得手段と、前記取得したライセンス情報に基づいて、前記第１のネットワークに接続する全てのノードにおける前記ソフトウェアのライセンスの使用状況を含むライセンス情報を記憶する記憶部に記憶されたライセンス情報を更新し、前記更新したライセンス情報を前記第１のネットワークに接続する他のノードの全てへ反映させる更新手段と、前記ライセンス情報に基づいて、前記ソフトウェアのライセンスのうち使用していない余剰ライセンスの一部または全部を前記第１のネットワークに接続しない他のノードに分割して移行するための分割ライセンス情報を生成する生成手段と、前記生成した分割ライセンス情報に基づいて前記記憶部に記憶されたライセンス情報を更新し、前記更新したライセンス情報を前記第１のネットワークに接続する他のノードの全てへ反映させる分割手段と、として機能させることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、ネットワーク内におけるライセンスの整合を保ったまま、ネットワーク接続のないノードにライセンスの一部または全部を移行することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１の実施形態によるライセンス管理システムの構成を示す図である。
【図２】本発明の第１の実施形態によるライセンス管理テーブルのデータ構成及びデータ例を示す概略図である。
【図３】本発明の第１の実施形態によるノードのハードウェア構成を示す図である。
【図４】本発明の第１の実施形態によるライセンス管理処理の流れを示すフローチャートである。
【図５】本発明の第１の実施形態によるライセンス分割処理の流れを示すフローチャートである。
【図６】本発明の第１の実施形態によるライセンス投入処理の流れを示すフローチャートである。
【図７】本発明の第２の実施形態によるライセンス分割処理の流れを示すフローチャートである。
【図８】本発明の第２の実施形態によるソフトウェア導入処理の流れを示すフローチャートである。
【図９】本発明の分割元のノードの最小構成を示す図である。
【図１０】本発明の分割先のノードの最小構成を示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明の一実施形態によるライセンス管理装置、ライセンス管理システム、ライセンス管理方法、プログラムを、図面を参照して説明する。
【００１５】
＜第１の実施形態＞
まず第１の実施形態について説明する。
【００１６】
図１は本実施形態によるライセンス管理システムの構成を示す図である。
本図に示すように、ライセンス管理システムＳ１は、複数のノード１１００，１２００，・・・，１ｎ００（ｎは、自然数），２１００，２２００，・・・，２ｍ００（ｍは、自然数）を備える。ノード１１００〜１ｎ００，２１００〜２ｍ００のそれぞれには、所定のソフトウェアがインストールされている。ノード１１００〜１ｎ００，２１００〜２ｍ００には、同じ種類のコンピュータプログラムがインストールされている。当該ソフトウェアは、自身のソフトウェアのライセンスの管理を行うプログラムモジュールが含まれたものである。所定のソフトウェアは、例えば、任意の業務ソフトウェアに内包されるものであってもよい。つまり、この場合、実質的に当該業務ソフトウェアのライセンス管理を行うものとなる。そして、ノード１１００〜１ｎ００，２１００〜２ｍ００のそれぞれは、自身が接続するネットワークにある全てのノードにおける前記ソフトウェアのライセンスの使用状況を含むライセンス情報を保持し、他のノードとの間でライセンス情報の同期を取るものである。
【００１７】
ノード１１００〜１ｎ００は、第１のネットワークＮ１に接続されており、互いに通信可能である。また、ノード２１００〜２ｍ００は、第２のネットワークＮ２に接続されており、互いに通信可能である。第１のネットワークＮ１と第２のネットワークＮ２とは接続されていない。つまり、第１のネットワークＮ１に接続されるノード１１００〜１ｎ００と、第２のネットワークＮ２に接続されるノード２１００〜２ｍ００とは、互いに通信することができない。
【００１８】
ここで、「ノード」とは、ソフトウェアを実行するハードウェアや、仮想マシン等に相当するものであり、典型的には、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）の動作単位に対応するものである。例えば、複数のノードは、分散して並列実行を行う処理単位であってもよい。また、ライセンス管理システムＳ１は、複数の仮想マシンを使用したクラウドコンピューティング基盤により実現してもよい。尚、ノード１１００〜１ｎ００，２１００〜２ｍ００などで示すように、一つのネットワークに接続されるノードは、少なくとも２以上であればよい。また、ノード１１００〜１ｎ００，２１００〜２ｍ００のそれぞれには、２以上のソフトウェア、つまり、ソフトウェア群がインストールされていてもよい。ノード１１００〜１ｎ００は、同等の機能を有するため、以下では、ノード１１００について説明し、他のノードについては詳細な図示及び説明を省略する。また、ノード２１００〜２ｍ００は、同等の機能を有するため、以下では、ノード２１００について説明し、他のノードについては詳細な図示及び説明を省略する。以下、説明を簡単にするため、ノード１１００〜１ｎ００を総称して分割元のノード１１００とし、ノード２１００〜２ｍ００を総称して分割先のノード２１００とすることがある。
【００１９】
また、ライセンスの「使用状況」とは、例えば、当該ソフトウェアがノードにおいて実行されているか否かを示す情報であるか、実行にあたり当該ソフトウェアのライセンス形態（ノード単位やＣＰＵ単位等）に基づいたライセンス数を示す情報等である。
【００２０】
ノード１１００は、ライセンス管理装置の一態様である。ノード１１００は、各ノード１１００〜１ｎ００にインストールされた上記所定のソフトウェアのライセンスを管理するものである。つまり、ノード１１００〜１ｎ００は、各ノードがお互いのライセンス管理をし合う関係である。ノード１１００は、記憶部１１１０と、検出部１１２０と、取得部１１３０と、更新部１１４０と、分割入力部１１５０と、生成部１１６０と、分割部１１７０と、追加部１１８０とを備える。
【００２１】
記憶部１１１０は、ライセンス情報１１１１を記憶する。ライセンス情報１１１１は、第１のネットワークＮ１に接続する全てのノード１１００〜１ｎ００における所定のソフトウェアのライセンスの使用状況を含む。例えば、ライセンス情報１１１１は、所定のソフトウェアの使用可能なライセンス数の上限と、ライセンスの使用状況を示すライセンス管理テーブルとを含む。
検出部１１２０は、第１のネットワークＮ１に接続する他のノード、つまり、ノード１２００〜１ｎ００を検出する。
取得部１１３０は、検出部１１２０により検出された他のノードノード１２００〜１ｎ００が保持するライセンス情報を取得する。
更新部１１４０は、取得部１１３０により取得されたライセンス情報に基づいて記憶部１１１０に記憶されたライセンス情報１１１１を更新し、更新したライセンス情報１１１１を第１のネットワークＮ１に接続する他のノード１２００〜１ｎ００の全てへ反映させる。
【００２２】
分割入力部１１５０は、ライセンス情報を分割するための分割情報の入力を受け付ける。
生成部１１６０は、分割入力部１１５０に入力された情報に基づいて、ソフトウェアのライセンスのうち使用していない余剰ライセンスの一部または全部を第１のネットワークＮ１に接続しない他のノード２１００〜２ｍ００に分割するための分割ライセンス情報を生成する。
分割部１１７０は、生成部１１６０が生成した分割ライセンス情報に基づいて記憶部１１１０に記憶されたライセンス情報１１１１を更新し、更新したライセンス情報１１１１を第１のネットワークＮ１に接続する他のノード１２００〜１ｎ００の全てへ反映させる。
【００２３】
追加部１１８０は、第１のネットワークＮ１に接続しない他のノードが生成した分割ライセンス情報に基づいて記憶部１１１０に記憶されたライセンス情報１１１１を更新する。また、追加部１１８０は、更新前に第１のネットワークＮ１において使用していたライセンス数が２以上である場合に、更新したライセンス情報１１１１を第１のネットワークＮ１に接続する他のノード１２００〜１ｎ００の全てへ反映させる。
【００２４】
ノード２１００は、ライセンス管理装置の一態様である。ノード２１００は、各ノード２１００〜２ｍ００にインストールされた上記所定のソフトウェアのライセンスを管理するものである。つまり、ノード２１００〜２ｍ００は、各ノードがお互いのライセンス管理をし合う関係である。ノード２１００は、記憶部２１１０と、検出部２１２０と、取得部２１３０と、更新部２１４０と、分割入力部２１５０と、生成部２１６０と、分割部２１７０と、追加部２１８０とを備える。
【００２５】
記憶部２１１０は、ライセンス情報２１１１を記憶する。ライセンス情報２１１１は、第２のネットワークＮ２に接続する全てのノードにおける所定のソフトウェアのライセンスの使用状況を含む。例えば、ライセンス情報２１１１は、所定のソフトウェアの使用可能なライセンス数の上限と、ライセンスの使用状況を示すライセンス管理テーブルとを含む。
検出部２１２０は、第２のネットワークＮ２に接続する他のノード、つまり、ノード２２００〜２ｍ００を検出する。
取得部２１３０は、検出部２１２０により検出された他のノードが保持するライセンス情報を取得する。
更新部２１４０は、取得部２１３０により取得されたライセンス情報に基づいて記憶部２１１０に記憶されたライセンス情報２１１１を更新し、更新したライセンス情報２１１１を第２のネットワークＮ２に接続する他のノード２２００〜２ｍ００の全てへ反映させる。
【００２６】
分割入力部２１５０は、ライセンス情報を分割するための分割情報の入力を受け付ける。
生成部２１６０は、分割入力部２１５０に入力された情報に基づいて、ソフトウェアのライセンスのうち使用していない余剰ライセンスの一部または全部を第２のネットワークＮ２に接続しない他のノード１１００〜１ｎ００に分割するための分割ライセンス情報を生成する。
分割部２１７０は、生成部２１６０が生成した分割ライセンス情報に基づいて記憶部２１１０に記憶されたライセンス情報２１１１を更新し、更新したライセンス情報２１１１を第２のネットワークＮ２に接続する他のノード２２００〜２ｍ００の全てへ反映させる。
【００２７】
追加部２１８０は、第２のネットワークＮ２に接続しない他のノードが生成した分割ライセンス情報に基づいて記憶部２１１０に記憶されたライセンス情報２１１１を更新する。また、追加部２１８０は、更新前に第２のネットワークＮ２において使用していたライセンス数が２以上である場合に、更新したライセンス情報２１１１を第２のネットワークＮ２に接続する他のノード２２００〜２ｍ００の全てへ反映させる。
【００２８】
図２は本実施形態によるライセンス管理テーブルのデータ構成及びデータ例を示す概略図である。
ライセンス管理テーブルは、ソフトウェアのライセンスの使用状況を示す。ライセンス管理テーブルは、ノードＩＤと、使用ライセンス数と、更新日時との各項目を対応付けて記憶する。ノードＩＤは、各ノードを一意に識別するための識別情報である。使用ライセンス数は、対応するノードが使用しているライセンス数である。更新日時は、ノードＩＤまたは使用ライセンス数が更新された日時である。
【００２９】
図３は本実施形態によるノードのハードウェア構成を示す図である。
この図が示すようにノード１１００〜１ｎ００，２１００〜２ｍ００はＣＰＵ（Central Processing Unit）１０１、ＲＯＭ（Read Only Memory）１０２、ＲＡＭ（Random Access Memory）１０３、大容量記憶装置１０４、通信モジュール１０５等の各ハードウェアを備えたコンピュータである。
【００３０】
図４は本実施形態によるライセンス管理処理の流れを示すフローチャートである。
なお、以下では、ノード１１００の処理として説明するが、ノード１２００〜１ｎ００，２１００〜２ｍ００のそれぞれも当該ライセンス管理処理を実行する。
【００３１】
まず、検出部１１２０は、当該ソフトウェアの実行開始時に、他のノード１２００〜１ｎ００を検出する（ステップＳ１）。次に、取得部１１３０は、検出された各ノードにおけるソフトウェアのライセンスの使用状況を含むライセンス情報を他のノード１２００〜１ｎ００から取得する（ステップＳ２）。そして、更新部１１４０は、取得したライセンス情報を自身のノード１１００に保持されるライセンス情報１１１１と統合する（ステップＳ３）。
【００３２】
続いて、更新部１１４０は、統合したライセンス情報に基づいて、当該ソフトウェアの実行が継続可能か否かを判定する（ステップＳ４）。そして、更新部１１４０は、判定結果が継続可能である場合、統合したライセンス情報のうち自身のノード１１００にかかる使用状況を更新する（ステップＳ５）。その後、更新部１１４０は、更新したライセンス情報を他のノード１２００〜１ｎ００へ反映させる（ステップＳ６）。一方、ステップＳ４において判定結果が継続不可能である場合、処理を終了する。尚、この場合に、ステップＳ５及びステップＳ６の処理を実行しても構わない。
【００３３】
次に、第１のネットワークＮ１において使用されていない余剰ライセンスを、第２のネットワークＮ２のノード２１００〜２ｍ００に分割して移行する処理について説明する。
【００３４】
図５は本実施形態によるライセンス分割処理の流れを示すフローチャートである。
なお、以下では、ノード１１００の処理として説明するが、ノード１２００〜１ｎ００のそれぞれも当該ライセンス分割処理を実行する。なお、第１のネットワークＮ１に接続されるノード１１００〜１ｎ００は、上述したライセンス管理処理により同一のライセンス情報が格納されている状態である。
【００３５】
まず、ユーザは、ライセンス情報を分割するための分割情報をノード１１００に入力する。分割情報には、分割したいライセンスの数量（以下、「分割ライセンス数」とする。）が含まれる。なお、分割情報には、分割先のノード２１００を特定する情報（例えば、ノードＩＤや、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスや、ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレスなど）が含まれていてもよい。
【００３６】
分割入力部１１５０は、ライセンス情報を分割するための分割情報の入力を受け付ける（ステップＳ１０１）。生成部１１６０は、記憶部１１１０に格納されているライセンス情報１１１１を参照し、余剰ライセンス数（未使用のライセンスの数量）が、入力された分割ライセンス数以上であるか否かを判定する（ステップＳ１０２）。すなわち、生成部１１６０は、入力された分割ライセンス数分の余剰ライセンスがあるかを確認する。生成部１１６０は、余剰ライセンス数が分割ライセンス数よりも少ない場合（ステップＳ１０２；Ｎｏ）、処理を終了する。
【００３７】
一方、生成部１１６０は、余剰ライセンス数が分割ライセンス数以上である場合（ステップＳ１０２；Ｙｅｓ）、ライセンスを移行させる分割先のノード２１００に投入する分割ライセンス情報を生成する（ステップＳ１０３）。分割ライセンス情報には、分割ライセンス数が含まれる。なお、生成部１１６０は、ライセンスの不正な複製や流用を防止するために、分割ライセンス情報に分割先のノード２１００を特定する情報を追加してもよい。その後、分割部１１７０は、自身のノード１１００のライセンス情報１１１１が示すライセンス数の上限から分割ライセンス数を減算して、余剰ライセンス数を削減する(ステップＳ１０４)。その後、分割部１１７０は、更新したライセンス情報１１１１を他ノード１２００〜１ｎ００に反映する(ステップＳ１０５)。その後、処理を終了する。
【００３８】
図６は本実施形態によるライセンス投入処理の流れを示すフローチャートである。
なお、以下では、ノード２１００の処理として説明するが、ノード２２００〜２ｍ００のそれぞれも当該ライセンス投入処理を実行する。
【００３９】
まず追加部２１８０は、ノード１１００が生成した分割ライセンス情報を取得する（ステップＳ２０１）。なお、ノード１１００から分割ライセンス情報のデータを取り出しノード２１００へデータを投入する方法については、本発明で特定するものではないが、一例として、メモリカードやＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリ等の外部記憶媒体を介してデータを渡す方法や、分割元のノード１１００で特定の文字列（コードワード）を生成及び表示して、その文字列を分割先のノード２１００で読み取って入力する方法などが挙げられる。
【００４０】
次に、追加部２１８０は、分割ライセンス情報のデータの正常性を確認する(ステップＳ２０２)。ここでいう正常性とは、データの構造の正しさを確認するとともに、分割ライセンス情報内に分割先のノード２１００を特定する情報が含まれている場合は、その特定する情報の確認も行ったうえで正常性を判定する。追加部２１８０は、分割ライセンス情報のデータが正常でない場合（ステップＳ２０２；Ｎｏ）、処理を終了する。
【００４１】
一方、追加部２１８０は、分割ライセンス情報のデータが正常である場合（ステップＳ２０２；Ｙｅｓ）、分割ライセンス情報に含まれる分割ライセンス数を、記憶部２１１０に格納されているライセンス情報２１１１に追加する(ステップＳ２０３)。具体的には、追加部２１８０は、ライセンス情報２１１１が示すライセンス数の上限に分割ライセンス数を加算する。また、追加部２１８０は、分割ライセンス数を追加する前の第２のネットワークＮ２における使用ライセンス数を確認する(ステップＳ２０４)。第２のネットワークＮ２における使用ライセンス数は、第２のネットワークＮ２に接続するノード２１００〜２ｍ００それぞれの使用ライセンス数の合計値である。追加部２１８０は、追加前の使用ライセンス数が１以下である場合、処理を終了する。
【００４２】
一方、追加部２１８０は、追加前の使用ライセンス数が２以上である場合、分割先の第２のネットワークＮ２内で既に複数のノードがライセンスを使用しているため、他のノード２２００〜２ｍ００に更新したライセンス情報２１１１を反映する(ステップＳ２０５)。その後、処理を終了する。
【００４３】
なお、上述した例では、第１のネットワークＮ１のノード１１００から第２のネットワークＮ２のノード２１００へライセンスを分割して移行する場合について説明したが、第２のネットワークＮ２のノード２１００〜２ｍ００から第１のネットワークＮ１のノード１１００〜１ｎ００へライセンスを分割して移行する場合も同様の処理により実現可能である。
【００４４】
このように、第１の実施形態に係るライセンス管理システムＳ１は、所定のソフトウェアがそれぞれにインストールされた複数のノード１１００〜１ｎ００，２１００〜２ｍ００を備える。第１のネットワークＮ１に接続するノード１１００は、第１のネットワークＮ１に接続する全てのノードにおけるソフトウェアのライセンスの使用状況を含むライセンス情報を記憶する記憶部１１１０と、第１のネットワークＮ１に接続する他のノード１２００〜１ｎ００を検出する検出部１１２０と、検出された他のノード１２００〜１ｎ００が保持するライセンス情報を取得する取得部１１３０と、取得したライセンス情報に基づいて記憶部１１１０に記憶されたライセンス情報１１１１を更新し、更新したライセンス情報を第１のネットワークＮ１に接続する他のノード１２００〜１ｎ００の全てへ反映させる更新部１１４０と、ライセンスを分割するための情報の入力を受け付ける分割入力部１１５０と、入力された情報及びライセンス情報１１１１に基づいて、ソフトウェアのライセンスのうち使用していない余剰ライセンスの一部または全部を第１のネットワークＮ１に接続しない他のノード２１００〜２ｍ００に分割するための分割ライセンス情報を生成する生成部１１６０と、生成した分割ライセンス情報に基づいて記憶部１１１０に記憶されたライセンス情報１１１１を更新し、更新したライセンス情報１１１１を第１のネットワークＮ１に接続する他のノード１２００〜１ｎ００の全てへ反映させる分割部１１７０と、を備える。第１のネットワークＮ１に接続しないノード２１００は、第２のネットワークＮ２に接続する全てのノードにおけるソフトウェアのライセンスの使用状況を含むライセンス情報２１１１を記憶する記憶部２１１０と、分割ライセンス情報に基づいて記憶部２１１０に記憶されたライセンス情報２１１１を更新する追加部２１８０と、を備える。
【００４５】
このような構成により、第１のネットワークＮ１に接続する既存ノード１１００〜１ｎ００内でライセンスの整合を保ったまま、システム移行等で第１のネットワークＮ１と分断された第２のネットワークＮ２に接続するノード２１００〜２ｍ００に対してソフトウェアのライセンスを分割して移行することができる。またライセンス情報とソフトウェアが分かれることなく、使用中の任意のソフトウェアでライセンスの分割ができるため、分割元と分割先の双方において、引き続き手元のソフトウェアだけでライセンスの管理ができる。
【００４６】
また、追加部２１８０は、更新前に第２のネットワークＮ２において使用していたライセンス数が２以上である場合に、更新したライセンス情報２１１１を第２のネットワークＮ２に接続する他のノード２２００〜２ｍ００の全てへ反映させる。このような構成により、第１のネットワークＮ１及び第２のネットワークＮ２各々のネットワーク内でライセンス情報を整合させることができる。
【００４７】
＜第２の実施形態＞
次に第２の実施形態について説明する。
本実施形態のライセンス管理システムＳ１の構成は第１の実施形態と同様であるため、その説明を省略する。第１の実施形態では分割元のノード１１００は分割するライセンスを示す分割ライセンス情報を生成しているが、本実施形態では分割するソフトウェアそのものを生成する点が異なる。すなわち、生成部１１６０は、分割ライセンス情報を含むソフトウェアを生成する。
【００４８】
図７は本実施形態によるライセンス分割処理の流れを示すフローチャートである。
なお、以下では、ノード１１００の処理として説明するが、ノード１２００〜１ｎ００のそれぞれも当該ライセンス分割処理を実行する。なお、第１のネットワークＮ１に接続されるノード１１００〜１ｎ００は、上述したライセンス管理処理により同一のライセンス情報が格納されている状態である。
【００４９】
まず、ユーザは、ライセンス情報を分割するための分割情報をノード１１００に入力する。分割入力部１１５０は、ライセンス情報を分割するための分割情報の入力を受け付ける（ステップＳ３０１）。生成部１１６０は、記憶部１１１０に格納されているライセンス情報１１１１を参照し、余剰ライセンス数が、入力された分割ライセンス数以上であるか否かを判定する（ステップＳ３０２）。すなわち、生成部１１６０は、入力された分割ライセンス数分の余剰ライセンスがあるかを確認する。生成部１１６０は、余剰ライセンス数が分割ライセンス数よりも少ない場合（ステップＳ３０２；Ｎｏ）、処理を終了する。
【００５０】
一方、生成部１１６０は、余剰ライセンス数が分割ライセンス数以上である場合（ステップＳ３０２；Ｙｅｓ）、ライセンスを移行させる分割先のノード２１００にインストールするソフトウェアを生成する（ステップＳ３０３）。ここで生成するソフトウェアは、元のソフトウェアに対してライセンス情報のみが異なる複製物となるが、新しいノードへのインストール機構（インストーラー）を伴うものでもかまわない。生成するソフトウェアのライセンス情報は、分割ライセンス数を含む分割ライセンス情報である。なお、生成部１１６０は、ライセンスの不正な複製や流用を防止するために、生成するソフトウェアの分割ライセンス情報に分割先のノード２１００を特定する情報を追加してもよい。
【００５１】
その後、分割部１１７０は、自身のノード１１００のライセンス情報１１１１が示すライセンス数の上限から分割ライセンス数を減算して、余剰ライセンス数を削減する(ステップＳ３０４)。その後、分割部１１７０は、更新したライセンス情報１１１１を他ノード１２００〜１ｎ００に反映する(ステップＳ３０５)。その後、処理を終了する。
【００５２】
図８は本実施形態によるソフトウェア導入処理の流れを示すフローチャートである。
なお、以下では、ノード２１００の処理として説明するが、ノード２２００〜２ｍ００のそれぞれも当該ソフトウェア導入処理を実行する。
【００５３】
まず追加部２１８０は、ノード１１００が生成したソフトウェアのデータを取得する（ステップＳ４０１）。なお、ノード１１００からソフトウェアのデータを取り出しノード２１００へ移動する方法については、本発明で特定するものではないが、一例として、メモリカードやＵＳＢメモリ等の外部記憶媒体を介してソフトウェアのデータを移動させる方法がある。
【００５４】
次に、追加部２１８０は、自身のノード２１００に同じソフトウェアが存在する（既にインストールされている）か否かを判定する（ステップＳ４０２）。追加部２１８０は、同じソフトウェアが存在する場合（ステップＳ４０２；Ｙｅｓ）、ソフトウェアの導入（インストール）は行わずに、取得したソフトウェアに含まれている分割ライセンス情報が示す分割ライセンス数を、既存ソフトウェアのライセンス情報２１１１に追加する（ステップＳ４０３）。
【００５５】
その後、追加部２１８０は、追加前の既存ソフトウェアの第２のネットワークＮ２における使用ライセンス数を確認する（ステップＳ４０４）。追加部２１８０は、追加前の使用ライセンス数が１以下である場合、処理を終了する。一方、追加部２１８０は、追加前の使用ライセンス数が２以上である場合、分割先の第２のネットワークＮ２内ですでに複数のノードが当該ソフトウェアを実行してライセンスを使用しているため、第２のネットワークＮ２内の他のノード２２００〜２ｍ００に更新したライセンス情報２１１１を反映する（ステップＳ４０５）。その後、処理を終了する。
【００５６】
一方、追加部２１８０は、自身のノード２１００に同じソフトウェアが存在しない場合（ステップＳ４０２；Ｎｏ）、取得したソフトウェア内の分割ライセンス情報のデータの正常性を確認する(ステップＳ４１１)。ここでいう正常性とは、データの構造の正しさを確認するとともに、分割ライセンス情報内に分割先のノード２１００を特定する情報が含まれている場合は、その特定情報の確認も行ったうえで正常性を判定する。追加部２１８０は、分割ライセンス情報のデータが正常でない場合（ステップＳ４１１；Ｎｏ）、ソフトウェアを導入（インストール）せずに処理を終了する。
【００５７】
一方、追加部２１８０は、分割ライセンス情報のデータが正常である場合（ステップＳ４１１；Ｙｅｓ）、取得したソフトウェアを導入（インストール）する（ステップＳ４１２）。その後、検出部２１２０は、第２のネットワークＮ２内の他のノード２２００〜２ｍ００で同一ソフトウェアが動作していないか確認するため、第２のネットワークＮ２に接続する他のノード２２００〜２ｍ００を検出する（ステップＳ４１３）。次に、取得部２１３０は、検出された各ノードにおけるソフトウェアのライセンスの使用状況を含むライセンス情報を他のノード２２００〜２ｍ００から取得する（ステップＳ４１４）。そして、更新部２１４０は、取得したライセンス情報（ライセンス数の上限と使用ライセンス数）を自身のノード２１００に保持されるライセンス情報２１１１に加算して統合する（ステップＳ４１５）。そして、更新部２１４０は、統合したライセンス情報のうち自身のノード２１００にかかる使用状況（使用ライセンス数）を更新する（ステップＳ４１６）。その後、更新部２１４０は、更新したライセンス情報を他のノード２２００〜２ｍ００へ反映させる（ステップＳ４１７）。その後、処理を終了する。
【００５８】
なお、上述した例では、第１のネットワークＮ１のノード１１００から第２のネットワークＮ２のノード２１００へライセンスを分割して移行する場合について説明したが、第２のネットワークＮ２のノード２１００〜２ｍ００から第１のネットワークＮ１のノード１１００〜１ｎ００へライセンスを分割して移行する場合も同様の処理により実現可能である。
【００５９】
このように、第２の実施形態に係るライセンス管理システムＳ１は、所定のソフトウェアがそれぞれにインストールされた複数のノード１１００〜１ｎ００，２１００〜２ｍ００を備える。第１のネットワークＮ１に接続するノード１１００は、第１のネットワークＮ１に接続する全てのノードにおけるソフトウェアのライセンスの使用状況を含むライセンス情報を記憶する記憶部１１１０と、第１のネットワークＮ１に接続する他のノード１２００〜１ｎ００を検出する検出部１１２０と、検出された他のノード１２００〜１ｎ００が保持するライセンス情報を取得する取得部１１３０と、取得したライセンス情報に基づいて記憶部１１１０に記憶されたライセンス情報１１１１を更新し、更新したライセンス情報を第１のネットワークＮ１に接続する他のノード１２００〜１ｎ００の全てへ反映させる更新部１１４０と、ライセンスを分割するための情報の入力を受け付ける分割入力部１１５０と、入力された情報及びライセンス情報１１１１に基づいて、ソフトウェアのライセンスのうち使用していない余剰ライセンスの一部または全部を第１のネットワークＮ１に接続しない他のノード２１００〜２ｍ００に分割するための分割ライセンス情報を含むソフトウェアを生成する生成部１１６０と、生成した分割ライセンス情報に基づいて記憶部１１１０に記憶されたライセンス情報１１１１を更新し、更新したライセンス情報１１１１を第１のネットワークに接続する他のノード１２００〜１ｎ００の全てへ反映させる分割部１１７０と、を備える。第１のネットワークＮ１に接続しないノード２１００は、第２のネットワークＮ２に接続する全てのノードにおけるソフトウェアのライセンスの使用状況を含むライセンス情報２１１１を記憶する記憶部２１１０と、分割ライセンス情報に基づいて記憶部２１１０に記憶されたライセンス情報２１１１を更新する追加部２１８０と、を備える。
【００６０】
このような構成により、第１のネットワークＮ１に接続する既存ノード１１００〜１ｎ００内でのライセンスの整合を保ったまま、システム移行等で第１のネットワークＮ１と分断された第２のネットワークＮ２に接続するノード２１００〜２ｍ００に対してソフトウェアのライセンスを分割して移行することができる。またライセンス情報とソフトウェアが分かれることなく、使用中の任意のソフトウェアでライセンスの分割ができるため、分割元と分割先の双方において、引き続き手元のソフトウェアだけでライセンスの管理ができる。
【００６１】
更に、生成部１１６０が分割ライセンス情報を含むソフトウェアそのものを生成することにより、ライセンス情報をソフトウェアの外部に出さないため、ライセンス情報の不正入力やハッキングを防ぐことができる。
【００６２】
また、追加部２１８０は、更新前に第２のネットワークＮ２において使用していたライセンス数が２以上である場合に、更新したライセンス情報２１１１を第２のネットワークＮ２に接続する他のノード２２００〜２ｍ００の全てへ反映させる。このような構成により、第１のネットワークＮ１及び第２のネットワークＮ２各々のネットワーク内でライセンス情報を整合させることができる。
【００６３】
以上本発明の一実施形態について説明したが、本発明は、上記実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲において種々の変更を加えることが可能である。
【００６４】
また、本発明の各実施形態は、閉じたネットワーク内でソフトウェアが動作するシステムや機械、例えば工場内のシステム、自治体ネットワーク内のシステム等に適用可能である。
【００６５】
図９は分割元のノードの最小構成を示す図である。
ライセンス管理装置の一態様としてのノード１１００は少なくとも記憶部１１１０、検出部１１２０、取得部１１３０、更新部１１４０、生成部１１６０、及び分割部１１７０の機能を備えればよい。
記憶部１１１０は、第１のネットワークＮ１に接続する全てのノードにおける所定のソフトウェアのライセンスの使用状況を含むライセンス情報１１１１を記憶する。
検出部１１２０は、第１のネットワークＮ１に接続する他のノード１２００〜１ｎ００を検出する。
取得部１１３０は、検出された他のノード１２００〜１ｎ００が保持するライセンス情報を取得する。
更新部１１４０は、取得したライセンス情報に基づいて記憶部１１１０に記憶されたライセンス情報１１１１を更新し、更新したライセンス情報１１１１を第１のネットワークＮ１に接続する他のノード１２００〜１ｎ００の全てへ反映させる。
生成部１１６０は、ライセンス情報１１１１に基づいて、ソフトウェアのライセンスのうち使用していない余剰ライセンスの一部または全部を第１のネットワークＮ１に接続しない他のノードに分割して移行するための分割ライセンス情報を生成する。
分割部１１７０は、生成した分割ライセンス情報に基づいて記憶部１１１０に記憶されたライセンス情報１１１１を更新し、更新したライセンス情報１１１１を第１のネットワークＮ１に接続する他のノード１２００〜１ｎ００の全てへ反映させる。
【００６６】
図１０は分割先のノードの最小構成を示す図である。
ライセンス管理装置の一態様としてのノード２１００は少なくとも記憶部２１１０、及び追加部２１８０の機能を備えればよい。
記憶部２１１０は、第２のネットワークＮ２に接続する全てのノードにおける所定のソフトウェアのライセンスの使用状況を含むライセンス情報２１１１を記憶する。
追加部２１８０は、第１のネットワークＮ１において保有するソフトウェアのライセンスのうち使用していない余剰ライセンスの一部または全部を分割して移行するための分割ライセンス情報に基づいて記憶部２１１０に記憶されたライセンス情報２１１１を更新する。
【００６７】
上述の各装置は内部に、コンピュータシステムを有している。そして、上述した各処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【００６８】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【符号の説明】
【００６９】
Ｓ１・・・ライセンス管理システム
Ｎ１・・・第１のネットワーク
Ｎ２・・・第２のネットワーク
１１００，１２００，１ｎ００，２１００，２２００，２ｍ００・・・ノード
１１１０，２１００・・・記憶部
１１１１，２１１１・・・ライセンス情報
１１２０，２１２０・・・検出部
１１３０，２１３０・・・取得部
１１４０，２１４０・・・更新部
１１５０，２１５０・・・分割入力部
１１６０，２１６０・・・生成部
１１７０，２１７０・・・分割部
１１８０，２１８０・・・追加部
【図１】
2020101942.tif 000003
【図２】
2020101942.tif 000004
【図３】
2020101942.tif 000005
【図４】
2020101942.tif 000006
【図５】
2020101942.tif 000007
【図６】
2020101942.tif 000008
【図７】
2020101942.tif 000009
【図８】
2020101942.tif 000010
【図９】
2020101942.tif 000011
【図１０】
2020101942.tif 000012