IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日立製作所の特許一覧

特開2023-154849ソフトウェアのライセンスを管理するシステム及び方法
<>
  • 特開-ソフトウェアのライセンスを管理するシステム及び方法 図1
  • 特開-ソフトウェアのライセンスを管理するシステム及び方法 図2
  • 特開-ソフトウェアのライセンスを管理するシステム及び方法 図3
  • 特開-ソフトウェアのライセンスを管理するシステム及び方法 図4
  • 特開-ソフトウェアのライセンスを管理するシステム及び方法 図5
  • 特開-ソフトウェアのライセンスを管理するシステム及び方法 図6
  • 特開-ソフトウェアのライセンスを管理するシステム及び方法 図7
  • 特開-ソフトウェアのライセンスを管理するシステム及び方法 図8
  • 特開-ソフトウェアのライセンスを管理するシステム及び方法 図9
  • 特開-ソフトウェアのライセンスを管理するシステム及び方法 図10
  • 特開-ソフトウェアのライセンスを管理するシステム及び方法 図11
  • 特開-ソフトウェアのライセンスを管理するシステム及び方法 図12
  • 特開-ソフトウェアのライセンスを管理するシステム及び方法 図13
  • 特開-ソフトウェアのライセンスを管理するシステム及び方法 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023154849
(43)【公開日】2023-10-20
(54)【発明の名称】ソフトウェアのライセンスを管理するシステム及び方法
(51)【国際特許分類】
   G06F 21/10 20130101AFI20231013BHJP
【FI】
G06F21/10 350
【審査請求】有
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022064453
(22)【出願日】2022-04-08
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110002365
【氏名又は名称】弁理士法人サンネクスト国際特許事務所
(72)【発明者】
【氏名】土屋 昌丈
(72)【発明者】
【氏名】松井 章
(57)【要約】
【課題】ソフトウェアの適切なライセンス管理を提供する。
【解決手段】システムは、各時点について、管理情報を基に、当該時点での実績ライセンス料を計算し、実績ライセンス料の時系列を基に予算管理期間の終了時の予測ライセンス料を計算し、予測ライセンス料が予算を超えている場合に、予測ライセンス料が予算以内に収まるようなソフトウェア使用状況を計算し、ソフトウェア使用状況が計算されたソフトウェア使用状況になるよう、いずれかのサーバのいずれかのソフトウェアを停止することを含む制御を行う。管理情報は、ライセンス種別及びその種別でのライセンス購入単位と、ライセンス期間に関わらない固定のライセンス料と、ライセンス期間の期間単位当たりのライセンス料と、ライセンス期間の期間単位とをソフトウェア毎に表す情報を含む。
【選択図】図1
【特許請求の範囲】
【請求項1】
一つ又は複数のサーバに存在しライセンスされた一つ又は複数のソフトウェアであるライセンス管理単位について、ライセンス料の閾値である予算と、当該予算が適用される期間である予算管理期間との入力を受け付け、受け付けた予算及び予算管理期間を登録する登録部と、
前記一つ又は複数のソフトウェアの各々に関する情報を収集する収集部と、
各時点について、前記一つ又は複数のソフトウェアの各々に関し収集された情報を含む管理情報を基に、当該時点での実績ライセンス料を計算し、実績ライセンス料の時系列を基に前記予算管理期間の終了時の予測ライセンス料を計算し、当該計算された予測ライセンス料が前記予算を超えている場合に第1の最適ソフトウェア使用状況を計算する計算部と、
ソフトウェア使用状況が前記第1の最適ソフトウェア使用状況になるための前記一つ又は複数のソフトウェアに関する制御である第1のソフトウェア状況制御を行う制御部と
を備え、
前記管理情報は、
いずれのソフトウェアがいずれの一以上のサーバに存在するかを表す情報と、
ライセンス種別及びその種別でのライセンス購入単位と、ライセンス期間に関わらない固定のライセンス料と、ライセンス期間の期間単位当たりのライセンス料と、ライセンス期間の期間単位とをソフトウェア毎に表す情報である種別管理情報と
を含み、
前記各時点について、
前記計算された実績ライセンス料は、当該時点までの実績ライセンス料トータルの累積値であり、
実績ライセンス料トータルは、前記管理情報を基に各ソフトウェアについて計算されたライセンス料の当該時点でのトータルであり、
前記第1の最適ソフトウェア使用状況は、予測ライセンス料が前記予算以内に収まるようなソフトウェア使用状況であり、
前記第1の最適ソフトウェア使用状況の計算は、いずれのサーバのいずれのソフトウェアを停止対象とするかの決定を含み、
前記第1のソフトウェア状況制御は、サーバにおけるソフトウェアの停止を含む、
ライセンス管理システム。
【請求項2】
前記管理情報は、一つ又は複数の区分の各々について当該区分に属する区分要素毎の優先度を表す情報である優先度管理情報を含み、
前記一つ又は複数の区分は、ソフトウェアという区分を含み、当該区分に属する区分要素毎の優先度は、ソフトウェアそれ自体の優先度であり、
前記計算部は、前記優先度管理情報を基に、いずれのサーバのいずれのソフトウェアを停止対象とするかを決定する、
請求項1に記載のライセンス管理システム。
【請求項3】
前記複数の区分は、ソフトウェアが存在するサーバのサーバ種別及びソフトウェアが存在する環境とのうちの少なくとも一つを含み、
前記計算部は、ソフトウェアの優先度を、ソフトウェアそれ自体の優先度と、ソフトウェアが存在するサーバのサーバ種別とソフトウェアが存在する環境とのうちの少なくとも一つの優先度とを基に決定する、
請求項2に記載のライセンス管理システム。
【請求項4】
前記計算部は、
(a)停止解除されている未選択ソフトウェアから最も優先度が低いソフトウェアを選択し、当該選択されたソフトウェアを停止候補とし、
(b)全停止候補ソフトウェアをそれぞれ或る期間停止したと仮定した場合の予測ライセンス料を計算し、当該予測ライセンス料が、前記予算以下である比較対象予算以下か否かを判定し、
(c)(b)の判定結果が偽の場合に、(a)を行い、
(d)(b)の判定結果が真の場合に、予測ライセンス料が前記比較対象予算以下となる範囲で最も多くのソフトウェアを停止候補から外し、
(e)(d)の後の全停止候補ソフトウェアをそれぞれ停止対象に決定する、
請求項2に記載のライセンス管理システム。
【請求項5】
前記計算部は、(a)において、
(a1)停止解除されている未選択ソフトウェアから最も優先度が低いソフトウェアを選択し、
(a2)前記選択されたソフトウェアの依存先ソフトウェアが存在しない場合、前記選択されたソフトウェアを停止候補とし、
(a3)前記選択されたソフトウェアの依存先ソフトウェアがある場合、前記選択されたソフトウェアとその依存先ソフトウェアとを停止候補とする、
請求項4に記載のライセンス管理システム。
【請求項6】
前記計算部は、(a3)において、前記選択されたソフトウェアの次に前記依存先ソフトウェアの優先度が低い場合、前記選択されたソフトウェアとその依存先ソフトウェアとを停止候補とし、
前記選択されたソフトウェアの依存先ソフトウェアがあるが、前記依存先ソフトウェアの優先度よりも低い優先度のソフトウェアがある場合、当該ソフトウェアを選択し、(a2)を行う、
請求項5に記載のライセンス管理システム。
【請求項7】
前記計算部は、予測ライセンス料の計算を周期的に行い、
当該計算の周期は、前記複数のソフトウェアの期間単位のうち最も短い期間単位と同じ長さである、
請求項1に記載のライセンス管理システム。
【請求項8】
前記計算部は、前記第1の最適ソフトウェア使用状況を管理者に対し提示し、
前記提示された第1の最適ソフトウェア使用状況に対する承認が管理者から受け付けられた場合に、前記制御部が、前記第1のソフトウェア状況制御を行う、
請求項1に記載のライセンス管理システム。
【請求項9】
前記計算部は、前記計算された予測ライセンス料が前記予算以内であり当該予測ライセンス料と前記予算との差分が一定値以上の場合に第2の最適ソフトウェア使用状況を計算し、
前記制御部は、ソフトウェア使用状況が前記第2の最適ソフトウェア使用状況になるための前記一つ又は複数のソフトウェアに関する制御である第2のソフトウェア状況制御を行い、
前記第2の最適ソフトウェア使用状況は、前記予測ライセンス料が前記予算に近づくようなソフトウェア使用状況であり、
前記第2の最適ソフトウェア使用状況の計算は、いずれのサーバのいずれのソフトウェアの停止を解除するかの決定を含み、
前記第2のソフトウェア状況制御は、サーバにおけるソフトウェアの停止解除を含む、
請求項1に記載のライセンス管理システム。
【請求項10】
コンピュータが、一つ又は複数のサーバに存在しライセンスされた一つ又は複数のソフトウェアであるライセンス管理単位について、ライセンス料の閾値である予算と、当該予算が適用される期間である予算管理期間との入力を受け付け、
コンピュータが、前記一つ又は複数のソフトウェアの各々に関する情報を収集し、
コンピュータが、各時点について、前記一つ又は複数のソフトウェアの各々に関し収集された情報を含む管理情報を基に、当該時点での実績ライセンス料を計算し、実績ライセンス料の時系列を基に前記予算管理期間の終了時の予測ライセンス料を計算し、当該計算された予測ライセンス料が前記予算を超えている場合に最適ソフトウェア使用状況を計算し、
コンピュータが、ソフトウェア使用状況が前記最適ソフトウェア使用状況になるよう前記一つ又は複数のソフトウェアに関する制御であるソフトウェア状況制御を行い、
前記管理情報は、
いずれのソフトウェアがいずれの一以上のサーバに存在するかを表す情報と、
ライセンス種別及びその種別でのライセンス購入単位と、ライセンス期間に関わらない固定のライセンス料と、ライセンス期間の期間単位当たりのライセンス料と、ライセンス期間の期間単位とをソフトウェア毎に表す情報である種別管理情報と
を含み、
前記各時点について、
前記計算された実績ライセンス料は、当該時点までのライセンス料トータルの累積値であり、
実績ライセンス料トータルは、前記管理情報を基に各ソフトウェアについて計算されたライセンス料の当該時点でのトータルであり、
前記最適ソフトウェア使用状況は、予測ライセンス料が前記予算以内に収まるようなソフトウェア使用状況であり、
前記最適ソフトウェア使用状況の計算は、いずれのサーバのいずれのソフトウェアを停止対象とするかの決定を含み、
前記ソフトウェア状況制御は、サーバにおけるソフトウェアの停止を含む、
ライセンス管理方法。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、概して、ソフトウェアのライセンスを管理するコンピュータ技術に関する。
【背景技術】
【0002】
ソフトウェアのライセンス管理では、定期的に、使用ライセンス量(例えばライセンス数)と保有ライセンス量とを比較し保有ライセンス数の過不足の有無を判定することが行われる。保有ライセンス量の過不足がある場合には、保有ライセンス量及び使用ライセンス量の少なくとも一方が調整される。
【0003】
特許文献1には、ライセンスに関する開示は無いが、コストベースで計算リソース量の割当てを最適化する技術が開示されている。特許文献2には、リソースの使用状況に基づいてライセンスパッチを決定する技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】JP2021-60745
【特許文献2】WO2008/146408
【発明の概要】
【発明が解決しようとする課題】
【0005】
ソフトウェアのライセンス管理は容易ではない。その理由として、例えば下記が考えられる。
・ライセンス管理単位が複数のソフトウェアであるケースがある。そのケースでは、ソフトウェアそれ自体が異なっていることもあれば、ソフトウェアは同一であるがソフトウェアを実行するサーバの種別が異なっていることもある。
・ソフトウェアのライセンス料には、ソフトウェアを停止してもコスト削減にならない費用(例えば初期費用)が含まれ得る。
【0006】
特許文献1及び2の技術を利用したとしても、ソフトウェアの適切なライセンス管理は困難である。
【課題を解決するための手段】
【0007】
ライセンス管理システムが構築される。ライセンス管理システムは、ライセンス管理単位(一つ又は複数のサーバに存在しライセンスされた一つ又は複数のソフトウェア)について、ライセンス料の閾値である予算と、当該予算が適用される期間である予算管理期間との入力を受け付け、入力された予算及び予算管理期間を登録する。ライセンス管理システムは、一つ又は複数のソフトウェアの各々に関する情報を収集する。ライセンス管理システムは、各時点について、一つ又は複数のソフトウェアの各々に関し収集された情報を含む管理情報を基に、当該時点での実績ライセンス料を計算し、実績ライセンス料の時系列を基に予算管理期間の終了時の予測ライセンス料を計算し、当該計算された予測ライセンス料が予算を超えている場合に最適ソフトウェア使用状況を計算する。ライセンス管理システムは、ソフトウェア使用状況が最適ソフトウェア使用状況になるようソフトウェア状況制御(一つ又は複数のソフトウェアに関する制御)を行う。
【0008】
管理情報は、いずれのソフトウェアがいずれの一以上のサーバに存在するかを表す情報と、種別管理情報(ライセンス種別及びその種別でのライセンス購入単位と、ライセンス期間に関わらない固定のライセンス料と、ライセンス期間の期間単位当たりのライセンス料と、ライセンス期間の期間単位とをソフトウェア毎に表す情報)とを含む。
【0009】
各時点について、下記の通りである。
・計算された実績ライセンス料は、当該時点までの実績ライセンス料トータルの累積値である。
・実績ライセンス料トータルは、管理情報を基に各ソフトウェアについて計算されたライセンス料の当該時点でのトータルである。
【0010】
最適ソフトウェア使用状況は、予測ライセンス料が前記予算以内に収まるようなソフトウェア使用状況である。最適ソフトウェア使用状況の計算は、いずれのサーバのいずれのソフトウェアを停止対象とするかの決定を含む。ソフトウェア状況制御は、サーバにおけるソフトウェアの停止を含む。
【発明の効果】
【0011】
本発明によれば、ソフトウェアの適切なライセンス管理を提供することができる。
【図面の簡単な説明】
【0012】
図1】実施形態に係るライセンス管理サーバを含むシステム全体の構成を示す。
図2】優先度管理テーブルの構成を示す。
図3】予算管理テーブルの構成を示す。
図4】サーバ管理テーブルの構成を示す。
図5】ソフトウェア管理テーブルの構成を示す。
図6】割当管理テーブルの構成を示す。
図7】種別管理テーブルの構成を示す。
図8】コスト管理テーブルの構成を示す。
図9】予測処理の流れを示す。
図10】予算超過対応処理の流れを示す。
図11】停止候補決定処理の流れを示す。
図12】予算超過と予算超過対応のグラフの例を模式的に示す。
図13】ライセンス管理GUI(Graphical User Interface)の例を示す。
図14】予算超過対応におけるテーブル更新の例を模式的に示す。
【発明を実施するための形態】
【0013】
以下の説明では、「インターフェース装置」は、一つ以上のインターフェースデバイスでよい。当該一つ以上のインターフェースデバイスは、下記のうちの少なくとも一つでよい。
・一つ以上のI/O(Input/Output)インターフェースデバイス。I/O(Input/Output)インターフェースデバイスは、I/Oデバイスと遠隔の表示用計算機とのうちの少なくとも一つに対するインターフェースデバイスである。表示用計算機に対するI/Oインターフェースデバイスは、通信インターフェースデバイスでよい。少なくとも一つのI/Oデバイスは、ユーザインターフェースデバイス、例えば、キーボード及びポインティングデバイスのような入力デバイスと、表示デバイスのような出力デバイスとのうちのいずれでもよい。
・一つ以上の通信インターフェースデバイス。一つ以上の通信インターフェースデバイスは、一つ以上の同種の通信インターフェースデバイス(例えば一つ以上のNIC(Network Interface Card))であってもよいし二つ以上の異種の通信インターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。
【0014】
また、以下の説明では、「メモリ」は、一つ以上の記憶デバイスの一例である一つ以上のメモリデバイスであり、典型的には主記憶デバイスでよい。メモリにおける少なくとも一つのメモリデバイスは、揮発性メモリデバイスであってもよいし不揮発性メモリデバイスであってもよい。
【0015】
また、以下の説明では、「永続記憶装置」は、一つ以上の記憶デバイスの一例である一つ以上の永続記憶デバイスでよい。永続記憶デバイスは、典型的には、不揮発性の記憶デバイス(例えば補助記憶デバイス)でよく、具体的には、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、NVME(Non-Volatile Memory Express)ドライブ、又は、SCM(Storage Class Memory)でよい。
【0016】
また、以下の説明では、「記憶装置」は、メモリと永続記憶装置の少なくともメモリでよい。
【0017】
また、以下の説明では、「プロセッサ」は、一つ以上のプロセッサデバイスでよい。少なくとも一つのプロセッサデバイスは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサデバイスでよいが、GPU(Graphics Processing Unit)のような他種のプロセッサデバイスでもよい。少なくとも一つのプロセッサデバイスは、シングルコアでもよいしマルチコアでもよい。少なくとも一つのプロセッサデバイスは、プロセッサコアでもよい。少なくとも一つのプロセッサデバイスは、処理の一部又は全部を行うハードウェア記述言語によりゲートアレイの集合体である回路(例えばFPGA(Field-Programmable Gate Array)、CPLD(Complex Programmable Logic Device)又はASIC(Application Specific Integrated Circuit))といった広義のプロセッサデバイスでもよい。
【0018】
また、以下の説明では、「yyy部」の表現にて機能を説明することがあるが、機能は、一つ以上のコンピュータプログラムがプロセッサによって実行されることで実現されてもよいし、一つ以上のハードウェア回路(例えばFPGA又はASIC)によって実現されてもよいし、それらの組合せによって実現されてもよい。プログラムがプロセッサによって実行されることで機能が実現される場合、定められた処理が、適宜に記憶装置及び/又はインターフェース装置等を用いながら行われるため、機能はプロセッサの少なくとも一部とされてもよい。機能を主語として説明された処理は、プロセッサあるいはそのプロセッサを有する装置が行う処理としてもよい。プログラムは、プログラムソースからインストールされてもよい。プログラムソースは、例えば、プログラム配布計算機又は計算機が読み取り可能な記録媒体(例えば非一時的な記録媒体)であってもよい。各機能の説明は一例であり、複数の機能が一つの機能にまとめられたり、一つの機能が複数の機能に分割されたりしてもよい。
【0019】
また、以下の説明では、「xxxテーブル」といった表現にて、入力に対して出力が得られる情報を説明することがあるが、当該情報は、どのような構造のデータでもよいし(例えば、構造化データでもよいし非構造化データでもよいし)、入力に対する出力を発生するニューラルネットワーク、遺伝的アルゴリズムやランダムフォレストに代表されるような学習モデルでもよい。従って、「xxxテーブル」を「xxx情報」と言うことができる。また、以下の説明において、各テーブルの構成は一例であり、一つのテーブルは、二つ以上のテーブルに分割されてもよいし、二つ以上のテーブルの全部又は一部が一つのテーブルであってもよい。
【0020】
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号のうちの共通符号を使用し、同種の要素を区別する場合は、参照符号を使用することがある。
【0021】
以下、図面を用いて、本発明の一実施形態を説明する。なお、図面では、紙面スペースの都合上、適宜、要素の名称を簡略して表示する。
【0022】
図1は、実施形態に係るライセンス管理サーバを含むシステム全体の構成を示す。
【0023】
ライセンス管理サーバ103が、通信ネットワーク51Aを介して管理クライアント101と通信する。また、ライセンス管理サーバ103が、通信ネットワーク51Bを介してソフトウェアサーバ150A、150B、…と通信する。ソフトウェアサーバ150A、150B、…は、通信ネットワーク51Cを介してソフトウェアマネージャ160A、160B、…と通信する。通信ネットワーク51A~51Cの各々は、例えば、インターネット、WAN(Wide Area Network)又はLAN(Local Area Network)といった任意の通信ネットワークでよい。通信ネットワーク51A~51Cは、それぞれ異なる通信ネットワークでもよいし、それらのうちの二つ以上の通信ネットワークが同一の通信ネットワークでもよい。
【0024】
管理クライアント101は、パーソナルコンピュータやスマートフォンといった情報処理端末でよい。管理クライアント101は、ライセンス管理サーバ103に対し、要求を送信し、当該要求に対する応答を受ける。管理クライアント101のオペレータは、典型的には、ライセンスの管理者である。
【0025】
ソフトウェアサーバ150は、ソフトウェアを実行し、ソフトウェアエージェントを有する。ソフトウェアエージェントが、ソフトウェアマネージャ160から要求を受け付け、その要求に応答して、そのエージェントに対応したソフトウェアに関する情報をソフトウェアマネージャ160に返す。例えば、ソフトウェアサーバ150Aは、ソフトウェア1及び3を実行し、ソフトウェア1及び3それぞれのエージェントを有する。
【0026】
ソフトウェアマネージャ160は、そのマネージャ160に対応するソフトウェアを管理する。ソフトウェアマネージャ160の管理対象のソフトウェアは、一つ又は複数のソフトウェアサーバ150で実行される。例えば、ソフトウェアマネージャ160Aは、ソフトウェア1のマネージャであり、ソフトウェア1は、ソフトウェアサーバ150A(及び他のソフトウェアサーバ)で実行される。
【0027】
ライセンス管理サーバ103は、インターフェース装置10、記憶装置20及びそれらに接続されたプロセッサ30を備える。
【0028】
インターフェース装置10を介して、管理クライアント101とソフトウェアサーバ150と通信が行われる。具体的には、例えば、インターフェース装置10が、通信ネットワーク51A及び51Bに接続される。
【0029】
記憶装置20が、プロセッサ30に入出力される情報やプロセッサ30に実行されるコンピュータプログラムを記憶する。記憶装置20に記憶される情報として、例えば、優先度管理テーブル121、予算管理テーブル122、サーバ管理テーブル123、ソフトウェア管理テーブル124、割当管理テーブル125、種別管理テーブル126及びコスト管理テーブル127がある。これらのテーブル121~127の少なくとも一部が、ライセンス管理サーバ103外部の記憶装置に格納されてもよい。ソフトウェア管理テーブル124は、ソフトウェア毎に存在する。これらのテーブル121~127の詳細は後述する。
【0030】
プロセッサ30がコンピュータプログラムを実行することにより、登録部131、収集部132、計算部133及び制御部134といった機能が実現される。これらの機能131~134の詳細は後述する。
【0031】
ライセンス管理サーバ103、ソフトウェアサーバ150及びソフトウェアマネージャ160の各々は、物理的な計算機システム(一つ以上の物理的な計算機)でもよいし、物理的な計算機システムに基づく論理的な計算機システム(例えば、仮想的な計算機又はクラウドコンピューティングサービス)でもよい。ソフトウェアサーバ150及びソフトウェアマネージャ160の計算リソースは、共通の物理的な計算機システムに存在してもよいし、異なる物理的な計算機システムに存在してもよい。また、本実施形態では、ライセンス管理サーバ103の計算リソースは、ソフトウェアサーバ150及びソフトウェアマネージャ160の計算リソースを有する物理的な計算機システムとは異なる物理的な計算機システムに存在するが、それらの計算リソースが共通の物理的な計算機システムに存在してもよい。具体的には、例えば、ライセンス管理サーバ103及びソフトウェアマネージャ160が、第1のクラウド環境(例えば、第1のパブリッククラウド)において実現されてよい。ソフトウェアサーバ150が、第2のクラウド環境(例えば、第2のパブリッククラウド)において実現されてよい。
【0032】
図1に示したシステムでは、例えば、以下の処理が行われる。
【0033】
ライセンス管理サーバ103の登録部131は、ライセンス管理単位に属する各ソフトウェアの優先度の入力を、管理者から管理クライアント101を通じて受け、入力された優先度を、優先度管理テーブル121に登録する。「ライセンス管理単位」は、ライセンス管理対象の全ソフトウェアである。ライセンス管理単位は、ライセンス購入者が提供するサービス毎に一つでもよいしライセンス購入者毎に一つでもよい。「管理者」は、ライセンス購入者又はその従業員等でよい。
【0034】
ライセンス管理サーバ103の登録部131は、ライセンス管理単位の予算管理期間について、予算の入力を、管理クライアント101から受け、入力された予算を、予算管理テーブル122に登録する。「予算管理期間」とは、予算が適用される期間である。本実施形態では、予算として、通常予算と上限予算とがある。「通常予算」は、超過が許容される目安の予算である。「上限予算」は、超過が許容されない予算である。
【0035】
各ソフトウェアマネージャ160は、当該マネージャ160に対応したソフトウェアのソフトウェア状況情報を、当該ソフトウェアのエージェントを有する一つ又は複数のソフトウェアサーバ150の各々から収集する。「ソフトウェア状況情報」は、ソフトウェアの状況を表す情報であり、例えば、ソフトウェアが使用されているか停止しているか、及び、ソフトウェアが使用する計算リソース量を表す情報を含む。ライセンス管理サーバ103の収集部132は、各ソフトウェアマネージャ160から、当該マネージャ160が収集したソフトウェア状況情報を収集し、収集したソフトウェア状況情報を記憶装置20に格納する。なお、収集部132が、少なくとも一つのソフトウェアマネージャ160を兼ねてよい。すなわち、収集部132が、ソフトウェアマネージャ160に代わり、ソフトウェア状況情報をソフトウェアサーバ150から収集してもよい。
【0036】
ライセンス管理サーバ103の計算部133は、ライセンス管理単位の予算管理期間終了時の予測ライセンス料を計算する。「予測ライセンス料」は、予測された将来のライセンス料である。予測ライセンス料は、同一ライセンス購入者又は複数のライセンス購入者の実績ライセンス料の傾向(例えば時系列)を基に計算されてよい。「実績ライセンス料」は、実績トータルコストの累積値である。「実績トータルコスト」は、ソフトウェア毎の実績コストのトータルである。ソフトウェア毎の「実績コスト」は、当該ソフトウェアについて収集されたソフトウェア状況情報に基づき計算されたコストである。
【0037】
予測ライセンス料に対し予算(通常予算又は上限予算)の過不足が無い場合(例えば、通常予算内に収まっており、且つ、予測ライセンス料と通常予算との差分が所定の閾値以下である場合)、制御部134は、ライセンス管理単位におけるソフトウェア毎に、ソフトウェアマネージャ160に、ライセンス使用の許可(ソフトウェアの実行継続の許可)を通知する。当該許可通知を受けたソフトウェアマネージャ160は、当該マネージャに対応するソフトウェアのエージェントに、ライセンス使用を許可する。
【0038】
一方、予測ライセンス料に対し予算の過不足がある場合(例えば、予測ライセンス料が上限予算を超えている、又は、予測ライセンス料は通常予算以下であるが予測ライセンス料と通常予算との差分が所定の閾値を超えている場合)、計算部133は、優先度管理テーブル121、予算管理テーブル122、種別管理テーブル126及びコスト管理テーブル127を基に、最適なソフトウェア使用状況(具体的には、予算の過不足の無い予測ライセンス料が見込まれるソフトウェア使用状況)を計算する。制御部134は、計算されたソフトウェア使用状況を表す通知を、管理クライアント101に送信してよい。制御部134は、計算されたソフトウェア使用状況(又は、管理者から指定されたソフトウェア使用状況)に応じて、各ソフトウェアの状況を制御し、更新の必要なソフトウェア管理テーブル124を更新する。ソフトウェア使用状況は、各ソフトウェアについて、使用許可の有無、割り当てられる計算リソース量、及び。使用可能な期間でよい。
【0039】
ソフトウェア状況情報の収集や、予測ライセンス料の計算は、管理者から要求を受ける都度に、及び/又は、周期的に行われる。
【0040】
以下、本実施形態を詳細に説明する。
【0041】
図2は、優先度管理テーブル121の構成を示す。
【0042】
優先度管理テーブル121は、区分毎の優先度と、各区分について当該区分に属する区分要素毎の優先度とを表す。図2が示す例によれば、区分毎(及び区分要素毎)の優先度は、他の区分(他の区分要素)と比べて高い/低いといった相対的な値であるが、絶対的な値でもよい。
【0043】
「区分」は、少なくともソフトウェアである。図2が示す例によれば、区分“ソフトウェア”の区分要素として、例えば、ソフトウェア1~7がある。
【0044】
「区分」は、ソフトウェアの他に、ソフトウェアの割当先ソフトウェアサーバ150に関する属性、具体的には、例えば、サーバ種別と環境とうちの少なくとも一つがある。
【0045】
「サーバ種別」は、ソフトウェアサーバ150の種別である。例えば、区分“サーバ種別”の区分要素として、例えば、業務系、情報系及び運用系がある。
【0046】
「環境」は、ソフトウェアサーバ150が属する環境である。例えば、区分“環境”の区分要素として、例えば、本番、災害対策及び開発がある。
【0047】
ソフトウェアの優先度は、ソフトウェアそれ自体の優先度に加えて、ソフトウェアがいずれの環境に属するいずれのソフトウェアサーバ150に存在するかによって決まってよい。例えば、図2によれば、ソフトウェア2が、同一環境におけるサーバ種別が異なる複数のソフトウェアサーバ150で実行される場合(つまり、サーバ種別が異なる複数のソフトウェア2がある場合)、サーバ種別及び環境の優先度によってソフトウェア2の優先度が異なる。
【0048】
図3は、予算管理テーブル122の構成を示す。
【0049】
予算管理テーブル122は、予算管理期間毎の通常予算と上限予算とを表す。「予算管理期間」は、予算が定められた期間であり、図3に例示の通り、開始日時と終了日時の組で表現されてもよいし、基準日時(例えば開始日時)と基準日時からの時間長との組で表現されてもよい。
【0050】
予測ライセンス料が通常予算(又は上限予算)を超えた場合には、アラートが管理クライアント101に発行されてもよいし、アラート発行無しに通常予算(又は上限予算)以内に収まる予測ライセンス料となるような最適なソフトウェア使用状況が計算部133により計算されてもよい。
【0051】
図4は、サーバ管理テーブル123の構成を示す。
【0052】
サーバ管理テーブル123は、ライセンス管理単位におけるソフトウェアの割当先となり得るソフトウェアサーバ150の属性と計算リソースとを表す。例えば、サーバ管理テーブル123は、ソフトウェアサーバ150毎に、サーバ名(ソフトウェアサーバ150の名称)、環境名(ソフトウェアサーバ150の環境の名称)、サーバ種別(ソフトウェアサーバ150のサーバ種別)、コア数(ソフトウェアサーバ150が提供するプロセッサコアの数)、及び、記憶容量(ソフトウェアサーバ150が提供する記憶容量)を表す。
【0053】
図5は、ソフトウェア管理テーブル124の構成を示す。
【0054】
ソフトウェア管理テーブル124は、上述したようにソフトウェア毎に存在するが、当該ソフトウェアについて、日付(使用許可“有”又は“無”の開始日)、サーバ名(ソフトウェアの割当先ソフトウェアサーバ150の名称)、コア数(ソフトウェアが使用するプロセッサコアの数)、及び、使用許可(ソフトウェアの使用が許可されているか否か)を表す。使用許可“有”が、ソフトウェアの使用が許可されていることを意味する。使用許可“無”が、ソフトウェアの使用が許可されていないこと(つまりソフトウェアの停止)を意味する。
【0055】
ソフトウェア管理テーブル124は、例えばソフトウェア名のカラムを持つ等の方法により、複数のソフトウェアに共通のテーブルとして構成されてもよい。
【0056】
図6は、割当管理テーブル125の構成を示す。
【0057】
割当管理テーブル125は、いずれのソフトウェアがいずれの一以上のソフトウェアサーバ150に存在するかと、ソフトウェアのライセンス有効期限とを表す。具体的には、例えば、割当管理テーブル125は、ソフトウェアサーバ150とそのサーバ150が割当先であるソフトウェアとの組毎に、サーバ名(ソフトウェアサーバ150の名称)、ソフトウェア名(ソフトウェアの名称)、及び、有効期限(ソフトウェアのソフトウェアサーバ150での実行が許されている期限)を表す。
【0058】
有効期限の更新は、コスト管理テーブル127でのコスト確定と同期する。また、永年のライセンスについては、有効期限の値は、永年を意味する値(例えば、“9999/12/31”といった極めて大きな値、或いは、“-1”といった特殊な値)でよい。
【0059】
図7は、種別管理テーブル126の構成を示す。
【0060】
種別管理テーブル126は、ソフトウェア毎に、ライセンス料の計算に必要な情報と、他のソフトウェアとの依存関係とを表す。具体的には、例えば、種別管理テーブル126は、ソフトウェア毎に、ライセンス種別(課金対象の種別)、購入単位(祖の種別でのライセンス購入単位)、初期費用(ライセンス期間に関わらない固定のライセンス料の一例)、期間費用(ライセンス期間の期間単位当たりのライセンス料)、期間単位(ライセンス期間の期間単位)、及び、依存関係(依存先のソフトウェア)を表す。
【0061】
ソフトウェアの特性に応じた課金対象や課金期間単位が管理される。また、購入又は停止の対象のソフトウェアに依存先のソフトウェアがある場合、依存先のソフトウェアも購入又は停止が必要となる。具体的には、下記の例がある。
(例1)ソフトウェアが、ノード(計算機システムにおけるノード計算機)の生死を監視するソフトウェアであるとする。このソフトウェアの価値は、監視対象の数(ノード数)によって異なる。そこで、ライセンス種別は、“ノード”であり、購入単位の値は、ノード数である。例えば、ライセンス種別“ノード”及び購入単位“2”は、ノードを2台ずつ購入する必要があることを意味する。
(例2)ソフトウェアが、データを分析するソフトウェアであるとする。このソフトウェアの価値は、分析するデータ量によって異なる。そこで、ライセンス種別は、“記憶容量(GB)”であり、購入単位の値は、記憶容量の値である。例えば、ライセンス種別“記憶容量(GB)”及び購入単位“100”は、記憶容量を100GBずつ購入する必要があることを意味する。
(例3)ソフトウェアが、管理対象のサーバで計算処理を行うソフトウェアであるとする。このソフトウェアの価値は、使用するプロセッサコアの数によって異なる。そこで、ライセンス種別は、“プロセッサコア”であり、購入単位の値は、プロセッサコア数である。例えば、ライセンス種別“プロセッサコア”及び購入単位“100”は、プロセッサコアを100個ずつ購入する必要があることを意味する。
(例4)ソフトウェア2について、依存関係“ソフトウェア3”がある。これは、ソフトウェア2がソフトウェア3に依存すること、別の言い方をすれば、ソフトウェア2にとってソフトウェア3が必須であることを意味する。故に、ソフトウェアサーバ150にソフトウェア2を導入する場合には、当該ソフトウェアサーバ150にソフトウェア3の導入が必要である。また、同一のソフトウェアサーバ150にソフトウェア2及び3がありソフトウェア3が停止する場合にはソフトウェア2の停止も必要である。一方、ソフトウェア3について、依存関係は無い。このため、ソフトウェア2の有無に関わらずソフトウェア3単独での導入や停止が可能である。
【0062】
ソフトウェア毎に、期間単位と期間費用との組が、当該ソフトウェアのコストスケジュールに相当する。例えば、ソフトウェア2を4月使用している場合、ソフトウェア2の累積コストは、40,000である(期間費用“10,000”×4月)。
【0063】
また、ソフトウェア毎に、期間費用は、期間の単位“永年”を除き、図示しない購入単価(購入単位当たりの価格)と購入数との積でよい。例えば、ソフトウェア1の期間費用“1,000”は、購入単価“100”と購入数“10”との積でよい。購入数“10”は、購入単位“1”のプロセッサコアを10個購入したことを意味する。
【0064】
このように、ソフトウェア毎のコストは、種別管理テーブル126から計算可能であるが、種別管理テーブル126には、ソフトウェア状況情報からコストの計算に必要な種々の情報が関連付けられてよい。
【0065】
図8は、コスト管理テーブル127の構成を示す。
【0066】
コスト管理テーブル127は、予算管理期間における各時点での区分要素毎のコストを表すテーブルである。区分要素は、例えば、ソフトウェアやソフトウェアサーバ150である。
【0067】
時点毎のレコードには、日付、時間、予定フラグ、分単位、予算管理期間累積、ソフトウェアサーバ毎のコスト、及び、ソフトウェア毎のコストを表す情報が格納される。一つのレコードを例に取る。
【0068】
「日付」及び「時間」は、時点を表す日時である。
【0069】
「予定フラグ」は、コストが実績値か予測値かを表す。“1”が、実績値を意味し、“0”が予測値を意味する。すなわち、時間の経過に伴い、予定フラグ“0”が“1”に更新されたレコードが増え、且つ、最新の予定フラグ“1”のレコード以降のレコードにおけるコストが、最新の予定フラグ“1”のレコードまでのレコードにおける実績コストをベースに、計算部133により更新される。
【0070】
「分単位」は、予測ライセンス料の周期が分であることを意味し、当該レコードに記録された区分要素毎のコスト(当該レコードに対応した1分間の区分要素毎のコスト)の合計を表す。周期が年や月であれば、「分単位」に代えて「年単位」や「月単位」が採用されてよい。
【0071】
「予算管理期間累積」は、当該レコードに対応した1分間の「分単位」の値と、それよりも過去の「分単位」の値の累積値である。つまり、時点に対応した実績ライセンス料又は予測ライセンス料である。
【0072】
例えば分毎に、ソフトウェアマネージャ160毎に収集されたソフトウェア状況情報を基に、ソフトウェア毎の実績コストが計算され、実績コストのトータルが計算される。実績コストのトータルの累積値が、実績ライセンス料である。
【0073】
また、例えば分毎に、予測ライセンス料の要素としての予測コストトータルが、実績予測ベース、及び/又は、ライセンス購入者履歴ベースで計算される。例えば、下記の通りである。
・実績予測ベースによれば、各ソフトウェアのソフトウェア状況に変更がないとの仮定と、区分要素毎の実績コストの時系列とを基に、将来の各時点について、区分要素毎の予測コストが計算され予測コストのトータルが計算される。将来の各時点について、予測コストトータルの累積値が、予測ライセンス料である。
・ライセンス購入者履歴ベースによれば、同一のライセンス購入者(及び/又は、他のライセンス購入者)の実績(区分要素毎の実績コストの時系列)を基に、区分要素毎の予測コストが計算され、予測コストトータル、及び予測ライセンス料が計算される。
【0074】
以下、本実施形態で行われる処理の例を説明する。
【0075】
<初期登録処理>
【0076】
登録部131が、管理クライアント101から、優先度の入力を受け付ける。具体的には、区分毎の優先度(ソフトウェア、ソフトウェアサーバ及び環境の各々の優先度)、及び、各区分について区分要素毎の優先度が入力される。登録部131が、入力された優先度を優先度管理テーブル121に登録する。なお、優先度の入力及び登録がスキップされ、デフォルト設定の優先度管理テーブル121に登録の優先度が採用されてよい。
【0077】
登録部131が、管理クライアント101から、ライセンス管理単位について予算及び予算管理期間(予算が適用される期間)の入力を受け付ける。本実施形態では、予算として通常予算及び上限予算が入力され、通常予算、上限予算及び期間が予算管理テーブル122に登録される。
【0078】
登録部131が、ライセンス購入者が購入したライセンスに関する情報(例えば、ソフトウェア毎のライセンス種別、購入単位、初期費用、期間費用、期間の単位、及び、依存関係)を管理クライアント101から受け付け、当該情報を種別管理テーブル126に登録する。
【0079】
各ソフトウェアマネージャ160が、当該マネージャ160に対応のソフトウェアについて、一つ以上のソフトウェアサーバ150における一つ以上のソフトウェアエージェントから情報を収集し、当該情報が、ライセンス管理サーバ103に送信される。登録部131が、各ソフトウェアマネージャ160から、収集された情報を受信し、受信した情報を基に、ソフトウェア管理テーブル124及び割当管理テーブル125を構築する。
【0080】
サーバ名とソフトウェア名との組が、管理クライアント101から入力され、登録部131によりサーバ管理テーブル123に登録されてよい。
【0081】
<予測処理>
【0082】
図9は、予測処理の流れを示す。
【0083】
計算部133は、ライセンス予測操作を管理者から受け付けたか否かを判定する(S901)。
【0084】
S901の判定結果が偽の場合(S901:Yes)、計算部133は、コスト管理テーブル127の直前回の更新から周期が経過したか否かを判定する。ここで言う「周期」は、ライセンス管理単位(ソフトウェアグループ)における一つ又は複数のソフトウェアのうち期間単位(種別管理テーブル126に登録されている期間単位)が最も短い単位と同じである。図7が示す例によれば、“分”が最も短い単位であるため、周期は1分である。以下、N番目の周期を、「周期N」と言う(Nは自然数)。N=1が、最初の周期を意味する。今回の周期を、「周期C」と言う(N=C=自然数)。
【0085】
S901の判定結果が真の場合(S901:Yes)、又は、S902の判定結果が真の場合(S902:Yes)、収集部132が、各ソフトウェアマネージャ160から、当該マネージャ160によりソフトウェアエージェントから収集された情報を収集し、収集された情報を記憶装置20に格納する(S903)。S903では、例えば、下記が行われる。
・ソフトウェアのソフトウェア名と当該ソフトウェアを実行する全てのソフトウェアサーバ150の各々のサーバ名とをソフトウェア毎に表す情報が収集される。サーバ名とソフトウェア名との組が、登録部131によりサーバ管理テーブル123に登録される。
・サーバ名とソフトウェア名との組毎に、有効期限が割当管理テーブル125に登録部131により登録される。登録される有効期限は、ソフトウェアについて収集された情報が表すインストール日(当該ソフトウェアがソフトウェアサーバにインストールされた日)と、当該ソフトウェアに対応した期間単位(種別管理テーブル126から特定された期間の単位)とを基に登録部131により計算される。例えば、期間の単位が“年”の場合、有効期限は、インストール日の1年後である。期間の単位が“月”の場合、有効期限は、インストール日が属する月の最終日である。
【0086】
計算部133は、S903で収集された情報を基に、コスト管理テーブル127を更新する(S904)。S904では、更新後のコスト管理テーブル127を基に予測ライセンス料が計算される。例えば、下記が計算部133により行われる。
・コスト管理テーブル127における対象レコード(周期C(例えば今回の1分間)に対応したレコード)に、ソフトウェア毎及びソフトウェアサーバ150毎の実績コストが登録される。例えば、一ソフトウェアについて、実績コストは、当該ソフトウェアの期間費用(及び、期間の単位)と周期とを基に計算される。また、周期Cが最初の周期の場合(すなわちN=C=1)、実績コストには、初期費用が含まれてよい。また、一ソフトウェアサーバ150について、実績コストは、当該ソフトウェアサーバ150により実行される一又は複数のソフトウェアの各々の実績コストのトータルでよい。
・周期Cに対応した全ソフトウェアの実績コストのトータルが計算される。このトータルは、図8の例によれば「分単位」としての値である。
・周期Cまでの実績コストトータル(「分単位」の値)の累積値(図8の例で言えば、“予算管理期間累積”の値)が計算され、対象レコードに登録される。この累積値が、実績ライセンス料である。
・実績予測ベースとライセンス購入者履歴ベースとのうちの少なくとも一つに従い、予測ライセンス料が計算される。具体的には、例えば、周期Cから予算管理期間の終了時までのソフトウェア毎の予測コストが計算される。予測コストは、図8の例でいえば、周期Cから予算管理期間の終了時までの1分間毎における予測コストでよい。予算管理期間の終了時までの各1分間について、予測コストトータルと、予測ライセンス料(予測コストトータルの累積値)が計算される。
【0087】
計算部133は、S904で計算された予測ライセンス料に基づく情報(例えば、当該情報それ自体又は当該情報へのリンクが記述された電子メール、或いは、当該情報が表示されるGUI(Graphical User Interface))を、管理クライアント101を通じて管理者に対し提示する(S905)。
【0088】
なお、S905がスキップされ、図10に示すS1001が行われてよい。すなわち、この予測処理と、図10に例示の予算超過対応処理は、一例の処理でもよい。
【0089】
<予算超過対応処理>
【0090】
図10は、予算超過対応処理の流れを示す。
【0091】
計算部133は、予算管理期間に対応した予算(通常予算及び上限予算)を予算管理テーブル122から特定し、特定された予算を、S903で計算された予測ライセンス料が超えているか否かを判定する(S1001)。予測ライセンス料が予算を超えている場合、S1001の判定結果が真である。
【0092】
S1001の判定結果が真の場合(S1001:Yes)、計算部133は、優先度管理テーブル121を参照し、優先度及び依存関係を基に、S1002において未選択のソフトウェア(使用許可“有”のソフトウェア)のうち停止候補のソフトウェアを選択する(S1002)。なお、例えば、ソフトウェア1が複数のソフトウェアサーバ150に存在する場合、ソフトウェア1が複数存在すると扱われる。つまり、選択済のソフトウェア1と未選択のソフトウェア1とが併存し得る。
【0093】
計算部133は、S1002で選択したソフトウェアを或る期間停止したと仮定した場合の予測ライセンス料を計算する(S1003)。例えば、S1003では、当該「或る期間」と、当該選択されたソフトウェアの期間費用及び期間単位(種別管理テーブル126が表す期間費用及び期間単位)とを基に、予測ライセンス料が計算される。「或る期間」は、当該選択されたソフトウェアの期間単位(種別管理テーブル126が当該ソフトウェアについて表す期間単位)のn倍(nは自然数)でよい。また、「或る期間」の開始時や終了時は、それぞれ、周期Cの次の周期(C+1)から予算管理期間の終了時までの任意の時点でよい。
【0094】
計算部133は、S1003で計算された予測ライセンス料が比較対象予算以下であるか否かを判定する(S1004)。なお、「比較対象予算」は、通常予算(又は上限予算)と同じでもよいし、通常予算(又は上限予算)に所定の係数(0より大きく1より小さい値)を乗じた値でもよい。S1004の判定結果が偽の場合(S1004:NO)、処理がS1002に戻る。
【0095】
S1004の判定結果が真の場合(S1004:NO)、計算部133は、現在の(このS1005の時点における)停止候補のソフトウェアから、最後のS1002で選択したソフトウェアを選択し、この選択したソフトウェアを現在の停止候補のソフトウェアから除外した場合の予測ライセンス料を計算する(S1005)。
【0096】
計算部133は、S1005で計算された予測ライセンス料が上記の比較対象予算以下であるか否かを判定する(S1006)。S1006の結果が真の場合(S1006:YES)、処理がS1005に戻る。
【0097】
S1006の判定結果が偽の場合(S1006:NO)、計算部133は、最後のS1005で選択したソフトウェアを再度停止候補とし、全ての停止候補のソフトウェアの停止を確定する(S1007)。計算部133は、S1007で確定されたソフトウェアを停止した場合のライセンス料に基づく情報(例えば、当該情報それ自体又は当該情報へのリンクが記述された電子メール、或いは、当該情報が表示されるGUI)を、管理クライアント101を通じて管理者に対し提示する(S1008)。当該提供された情報は、S1007で確定されたソフトウェアを表す情報を含む。S1008での情報提供に対して、管理クライアント101から、S1007で確定されたソフトウェアの停止の承認を受け(S1009)、制御部134が、S1007で確定されたソフトウェアを停止する(S1010)。なお、S1008及びS1009はスキップされてもよい。
【0098】
図11は、停止候補決定処理(S1002)の流れを示す。
【0099】
計算部133は、優先度管理テーブル121から、使用許可“有”の未選択ソフトウェアのうち最も優先度が低いソフトウェアを選択する(S1101)。上述したように、ソフトウェアの優先度は、ソフトウェアそれ自体の優先度に加えて、ソフトウェアのサーバ種別及び環境の優先度に依存する。また、ここで言う「未選択ソフトウェア」は、これまでのS1002において未選択であり、且つ、このS1002においても未選択であるソフトウェアである。このS1002において、S1101又は後のS1107で選択されたソフトウェアを、図11の説明において「選択ソフトウェア」と言う。
【0100】
計算部133は、種別管理テーブル126を参照し、選択ソフトウェアと依存関係のあるソフトウェアが存在するか否かを判定する(S1102)。S1102の判定結果が偽の場合(S1102:NO)、計算部133は、選択ソフトウェアを停止候補とする(S1103)。つまり、S1002において停止候補とされるソフトウェアは、選択ソフトウェアである。
【0101】
S1102の判定結果が真の場合(S1102:YES)、計算部133は、選択ソフトウェアの依存先ソフトウェアの優先度を、優先度管理テーブル121から特定する(S1104)。計算部133は、優先度管理テーブル121を基に、S1104で特定された優先度が、選択ソフトウェアの優先度の次に低いか否かを判定する(S1105)。選択ソフトウェアの優先度より高いが依存先ソフトウェアの優先度より低い優先度の未選択ソフトウェアがある場合、S1105の判定結果が偽である。一方、選択ソフトウェアの優先度より高いが依存先ソフトウェアの優先度より低い優先度の未選択ソフトウェアがない場合、S1105の判定結果が真である。
【0102】
S1105の判定結果が真の場合(S1105:YES)、計算部133は、選択ソフトウェア及び依存先ソフトウェアを停止候補とする(S1106)。つまり、S1002において停止候補とされるソフトウェアは、選択ソフトウェア及び依存先ソフトウェアである。
【0103】
S1105の判定結果が偽の場合(S1105:NO)、計算部133は、選択ソフトウェアの優先度より高いが依存先ソフトウェアの優先度より低い優先度の未選択ソフトウェアを選択する(S1107)。その後、処理が、S1102に戻る。
【0104】
以上の実施形態によれば、図12に例示する通り、予測ライセンス料が上限予算を超えるとの判定結果が得られた場合には、予測ライセンス料が通常予算以内に収まるような最適なソフトウェア使用状況が計算される。
【0105】
また、予測ライセンス料が上限予算を超えるとの判定結果が得られた場合には、計算部133が、図13に例示するライセンス管理GUI1300を提供することができる。ライセンス管理GUI1300は、予算管理期間終了時までに予測ライセンス料が予算(例えば上限予算)を超えることを表すアラート、実績ライセンス料及び予測ライセンス料の時系列、及び、予測ライセンス料を予算(例えば通常予算)以内に収めるためのソフトウェア使用状況とするための措置を表す情報を表示する。
【0106】
予測ライセンス料を予算以内に収めるためのソフトウェア使用状況、つまり、最適なソフトウェア使用状況は、ソフトウェア毎の使用/停止を含む。図14が示す例によれば、制御部134は、ソフトウェア使用状況を最適とするためには、下記を行う。
・ソフトウェアサーバIのソフトウェア1の「使用許可」を“無”(つまり停止)に更新する。また、ソフトウェアサーバIにおけるソフトウェア1の停止の指示を、ソフトウェアサーバI又はソフトウェアマネージャ160Aに送信する。
・ソフトウェアサーバFのソフトウェア3の「使用許可」を“有”(つまり実行可能な状態(停止解除の状態))に更新する。また、ソフトウェアサーバFにおけるソフトウェア3の停止解除(稼働)の指示を、ソフトウェアサーバF、又は、ソフトウェア3のソフトウェアマネージャ160に送信する。
・サーバFのソフトウェア6の「使用許可」を“無”に更新する。また、ソフトウェアサーバFにおけるソフトウェア6の停止の指示を、ソフトウェアサーバF、又は、ソフトウェア6のソフトウェアマネージャ160に送信する。
【0107】
以上の説明を、例えば、下記のように総括することができる。なお、下記の総括は、上述の説明の補足又は変形例の説明を含んでよい。
【0108】
ライセンス管理サーバ103(ライセンス管理システムの一例)は、登録部131と、収集部132と、計算部133と、制御部134とを備える。
【0109】
登録部131は、ライセンス管理単位(一つ又は複数のサーバ150に存在しライセンスされた一つ又は複数のソフトウェア)について、予算と予算管理期間(当該予算が適用される期間)の入力を受け付け、受け付けた予算及び予算管理期間を予算管理テーブル122に登録する。
【0110】
収集部132は、一つ又は複数のソフトウェアの各々に関する情報を収集する。
【0111】
計算部133は、各時点について、一つ又は複数のソフトウェアの各々に関し収集された情報を含む管理情報を基に、当該時点での実績ライセンス料を計算し、実績ライセンス料の時系列を基に予算管理期間の終了時の予測ライセンス料を計算し、当該計算された予測ライセンス料が前記予算を超えている場合に第1の最適ソフトウェア使用状況を計算する。管理情報は、割当管理テーブル125及び種別管理テーブル126を含む。各時点について、実績ライセンス料は、当該時点までの実績ライセンス料トータルの累積値であり、実績ライセンス料トータルは、管理情報を基に各ソフトウェアについて計算されたライセンス料(実績コスト)の当該時点でのトータルである。第1の最適ソフトウェア使用状況は、予測ライセンス料が予算以内に収まるようなソフトウェア使用状況である。第1の最適ソフトウェア使用状況の計算は、いずれのサーバ150のいずれのソフトウェアを停止対象とするかの決定を含む。
【0112】
制御部134は、ソフトウェア使用状況が第1の最適ソフトウェア使用状況になるための一つ又は複数のソフトウェアに関する制御である第1のソフトウェア状況制御を行う。第1のソフトウェア状況制御は、サーバ150におけるソフトウェアの停止(例えば、停止対象のソフトウェアマネージャ160、又は、停止対象のソフトウェアを有するサーバ150に、当該ソフトウェアの停止の指示を出すこと)を含む。
【0113】
ライセンス量の種別としては、ライセンス数や計算リソース量といった様々な種別があり得るが、それら様々な種別のライセンス量がライセンス料に統一した管理がされ、そして、ライセンス購入者にとっては費用の観点でライセンス管理することが重要である。また、ソフトウェアのライセンス管理に特有の課題として、例えば、ライセンス管理単位が複数のソフトウェアであるケースでは、ソフトウェアそれ自体が異なっていることもあれば、ソフトウェアは同一であるがソフトウェアを実行するサーバ150の種別が異なっていることもある点、及び、ソフトウェアのライセンス料には、ソフトウェアを停止してもコスト削減にならない費用(例えば初期費用)が含まれ得る点がある。ライセンス管理サーバ103によれば、これらの課題を解決し、ソフトウェアの適切なライセンス管理を提供することができる。
【0114】
管理情報は、一つ又は複数の区分の各々について当該区分に属する区分要素毎の優先度を表す情報である優先度管理テーブル121を含んでよい。一つ又は複数の区分は、ソフトウェアという区分を含んでよい。当該区分に属する区分要素毎の優先度は、ソフトウェアそれ自体の優先度でよい。計算部133は、優先度管理テーブル121を基に、いずれのサーバ150のいずれのソフトウェアを停止対象とするかを決定してよい。これにより、優先度の高いソフトウェアの停止と、予算の超過の両方を避けることが期待できる。
【0115】
複数の区分は、ソフトウェアが存在するサーバ150のサーバ種別及びソフトウェアが存在する環境とのうちの少なくとも一つを含んでよい。計算部133は、ソフトウェアの優先度を、ソフトウェアそれ自体の優先度と、ソフトウェアが存在するサーバのサーバ種別とソフトウェアが存在する環境とのうちの少なくとも一つの優先度とを基に決定してよい。これにより、予算超過を避けるために停止対象とするソフトウェアを適切に選択することが期待できる。
【0116】
計算部133は、下記の処理を行ってよい。これにより、優先度が低いソフトウェアを優先的に停止対象とすることと、予算の範囲でなるべくソフトウェアを停止しないこととを両立することが期待できる。なお、下記の「或る期間」は、ソフトウェアによって異なっていてよく、例えば、当該ソフトウェアの期間単位のn倍(nは自然数)でよい。
(a)停止解除されている未選択ソフトウェアから最も優先度が低いソフトウェアを選択し、当該選択されたソフトウェアを停止候補とする。
(b)全停止候補ソフトウェアをそれぞれ或る期間停止したと仮定した場合の予測ライセンス料を計算し、当該予測ライセンス料が、前記予算以下である比較対象予算以下か否かを判定する。
(c)(b)の判定結果が偽の場合に、(a)を行う。
(d)(b)の判定結果が真の場合に、予測ライセンス料が前記比較対象予算以下となる範囲で最も多くのソフトウェアを停止候補から外す。
(e)(d)の後の全停止候補ソフトウェアをそれぞれ停止対象に決定する。
【0117】
計算部133は、(a)において、下記を行ってよい。これにより、ソフトウェア依存関係に応じて停止対象を決定すること、具体的には、依存関係がある一方のソフトウェアのみが停止することによって他方のソフトウェアが無駄にリソースを消費してライセンス料が生じてしまうことを避けることができる。
(a1)停止解除されている未選択ソフトウェアから最も優先度が低いソフトウェアを選択する。
(a2)選択されたソフトウェアの依存先ソフトウェアが存在しない場合、選択されたソフトウェアを停止候補とする。
(a3)選択されたソフトウェアの依存先ソフトウェアがある場合、選択されたソフトウェアとその依存先ソフトウェアとを停止候補とする。
【0118】
計算部133は、(a3)において、選択されたソフトウェアの次に依存先ソフトウェアの優先度が低い場合、選択されたソフトウェアとその依存先ソフトウェアとを停止候補としてよい。一方、依存先ソフトウェアの優先度よりも低い優先度のソフトウェアがある場合、計算部133は、当該ソフトウェアを選択して、(a2)を行ってよい。これにより、依存関係を有するソフトウェア全体を停止対象とすることと、優先度が低いソフトウェアを優先的に停止対象とすることを維持することを両立することができる。
【0119】
計算部133は、予測ライセンス料の計算を周期的に行ってよい。当該計算の周期は、複数のソフトウェアの期間単位のうち最も短い期間単位と同じ長さでよい。これにより、複数のソフトウェアそれぞれの期間単位が異なるといったライセンス管理特有の課題を解決し、ライセンス管理単位の予算超過を避けることを効率的且つ正確に行うことができる。
【0120】
計算部133は、第1の最適ソフトウェア使用状況を管理者に対して提示してよい。提示された第1の最適ソフトウェア使用状況に対する承認が管理者から受け付けられた場合に、制御部134が、第1のソフトウェア状況制御を行ってよい。これにより、管理者不測のソフトウェア状況制御が行われことを避けることができる。
【0121】
計算部133は、計算された予測ライセンス料が予算以内であり当該予測ライセンス料と予算との差分が一定値以上の場合(つまり、予算に余裕がある場合)に第2の最適ソフトウェア使用状況を計算してよい。制御部134は、ソフトウェア使用状況が第2の最適ソフトウェア使用状況になるための一つ又は複数のソフトウェアに関する制御である第2のソフトウェア状況制御を行ってよい。第2の最適ソフトウェア使用状況は、予測ライセンス料が前記予算に近づくようなソフトウェア使用状況でよい。第2の最適ソフトウェア使用状況の計算は、いずれのサーバ150のいずれのソフトウェアの停止を解除するかの決定を含んでよい。第2のソフトウェア状況制御は、サーバ150におけるソフトウェアの停止解除を含んでよい。これにより、予算の超過を避けつつ、ライセンス管理単位におけるなるべく多くのソフトウェアを稼働させることが期待できる。
【0122】
例えば、計算部133は、S903で計算された予測ライセンス料が通常予算(又は上限予算)以下であって、予測ライセンス料と予算との差分が一定値以上の場合に、第2の最適ソフトウェア使用状況を計算することを含む予算余剰対応処理を行ってよい。予算余剰対応処理は、図10及び図11を参照した説明において、優先度の低いソフトウェアの優先を、優先度の高いソフトウェアの優先とすることで、例えば、下記のように導き出すことができる。
【0123】
すなわち、計算部133は、優先度管理テーブル121を参照し、優先度及び依存関係を基に、使用許可“無”の未選択ソフトウェア(予算余剰対応処理において未選択のソフトウェア)のうち停止解除候補(稼働再開候補)のソフトウェアを選択することである停止解除候補選択を行う。計算部133は、選択したソフトウェアを或る期間停止解除したと仮定した場合の予測ライセンス料を計算する。計算部133は、予測ライセンス料が予算以内にあり予測ライセンス料と予算との差分が一定値未満か否かを判定する。この判定結果が偽の場合、計算部133は、再度、停止解除候補選択を行う。この判定結果が真の場合、計算部133は、停止解除候補の停止解除を行うことを含む第2のソフトウェア状況制御を行う。
【0124】
停止解除候補選択では、次の処理が行われてよい。
【0125】
すなわち、計算部133は、優先度管理テーブル121から、使用許可“無”の未選択ソフトウェアのうち最も優先度が高いソフトウェアを選択する。
【0126】
選択されたソフトウェアと依存関係のあるソフトウェアが存在しない場合、計算部133は、選択されたソフトウェアを、停止解除候補とする。
【0127】
選択されたソフトウェアと依存関係のあるソフトウェアが存在し、依存先ソフトウェアの優先度が、選択ソフトウェアの優先度の次に高い場合、計算部133は、選択ソフトウェア及び依存先ソフトウェアを停止解除候補とする。
【0128】
選択されたソフトウェアと依存関係のあるソフトウェアが存在するが、依存先ソフトウェアの優先度よりも高い優先度の未選択ソフトウェアがある場合、その未選択ソフトウェアを選択し、当該ソフトウェアと依存関係のあるソフトウェアがあるか否かに応じた同様の処理を行う。
【0129】
以上、一実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
【符号の説明】
【0130】
103:ライセンス管理サーバ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14