(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-24
(45)【発行日】2024-07-02
(54)【発明の名称】サーバ装置、ライセンス管理システム、ライセンス管理方法、及びプログラム
(51)【国際特許分類】
G06F 21/10 20130101AFI20240625BHJP
G06Q 50/18 20120101ALI20240625BHJP
【FI】
G06F21/10
G06Q50/18 310
(21)【出願番号】P 2020206455
(22)【出願日】2020-12-14
【審査請求日】2023-11-15
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100109313
【氏名又は名称】机 昌彦
(74)【代理人】
【識別番号】100149618
【氏名又は名称】北嶋 啓至
(72)【発明者】
【氏名】甲能 靖二
【審査官】▲柳▼谷 侑
(56)【参考文献】
【文献】特開2020-101942(JP,A)
【文献】特開2015-69257(JP,A)
【文献】特開2020-60920(JP,A)
【文献】米国特許出願公開第2012/0185593(US,A1)
【文献】米国特許出願公開第2008/0082450(US,A1)
【文献】中国特許出願公開第1831836(CN,A)
【文献】中国特許出願公開第101291254(CN,A)
【文献】韓国登録特許第10-1436398(KR,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/10
G06Q 50/18
(57)【特許請求の範囲】
【請求項1】
所定のソフトウェアと、前記所定のソフトウェア上で動作する所定のアプリケーションと、前記所定のソフトウェアに対して認証されたライセンスの数であるライセンス認証数を含むライセンス認証情報と、を含むパッケージファイルが展開された場合に、
自サーバ装置において前記所定のアプリケーションを実行させるために必要なライセンスの数である第1ライセンス必要数を取得する第1取得手段と、
他のサーバ装置において前記所定のアプリケーションを実行させるために必要な前記ライセンスの数である第2ライセンス必要数を、前記他のサーバ装置から取得する第2取得手段と、
前記第1ライセンス必要数及び前記第2ライセンス必要数の合計値と前記ライセンス認証情報とに基づいて、前記所定のアプリケーションの実行の可否を判定する判定手段と、
前記所定のアプリケーションの実行が可能である場合、前記第1ライセンス必要数と自サーバ装置に登録されている前記ライセンスの数であるライセンス登録数とに基づいて、前記ライセンス登録数を制御する制御手段と、を備える
サーバ装置。
【請求項2】
前記制御手段は、前記ライセンス登録数が、前記第1ライセンス必要数を超過している場合、自サーバ装置に登録されている前記ライセンスのうち、超過している数の前記ライセンスを削除する、
請求項1に記載のサーバ装置。
【請求項3】
前記制御手段は、前記ライセンス登録数が、前記第1ライセンス必要数未満である場合、前記ライセンス登録数と前記第1ライセンス必要数との差の数の前記ライセンスを、自サーバ装置に登録する、
請求項1または2に記載のサーバ装置。
【請求項4】
前記判定手段は、前記合計値が前記ライセンス認証数未満である場合、自サーバ装置において、前記所定のソフトウェアの起動が可能であると判定する、
請求項1乃至3のいずれか一項に記載のサーバ装置。
【請求項5】
前記パッケージファイルには、前記所定のアプリケーションに対応する識別子であるパッケージ識別情報と、前記所定のソフトウェアを識別するソフトウェア識別情報が含まれ、
前記第2取得手段は、
前記所定のアプリケーションを実行させるために必要なライセンスの数を要求する要求メッセージであって、前記パッケージ識別情報と、前記ソフトウェア識別情報とを含む要求メッセージを、前記他のサーバ装置に送信し、
前記要求メッセージに対応する応答メッセージを前記他のサーバ装置から受信した場合に、前記応答メッセージに含まれる、ライセンスの数を示す情報を第2ライセンス必要数として取得する、
請求項1乃至4のいずれか一項に記載のサーバ装置。
【請求項6】
前記要求メッセージを受信し、前記要求メッセージに含まれる前記パッケージ識別情報及び前記ソフトウェア識別情報と、自サーバ装置が保持する前記パッケージ識別情報及び前記ソフトウェア識別情報と、が一致する場合、自サーバ装置が保持する前記パッケージ識別情報及び前記ソフトウェア識別情報と、自サーバ装置において前記所定のアプリケーションを実行させるために必要なライセンスの数と、を含む前記応答メッセージを、前記要求メッセージの送信元に送信する応答処理手段を備える、
請求項5に記載のサーバ装置。
【請求項7】
自サーバ装置または前記他のサーバ装置のいずれかを示す格納要求先に、自サーバ装置及び前記他のサーバ装置それぞれにおいて使用されているライセンスの数を示す情報が格納されている場合、
前記第2取得手段は、前記格納要求先に前記要求メッセージを送信し、前記格納要求先から前記要求メッセージに対応する前記応答メッセージを受信する、
請求項5または6に記載のサーバ装置。
【請求項8】
所定のソフトウェアに対してライセンス認証を行う認証手段と、
前記所定のソフトウェアと、前記所定のソフトウェア上で動作するアプリケーションと、を含むパッケージファイルを生成する生成手段と、を備え、
前記生成手段は、前記アプリケーションに対応する識別子であるパッケージ識別情報と、認証された前記ライセンスの数であるライセンス認証数を含むライセンス認証情報と、をさらに含めた前記パッケージファイルを生成する、
端末装置と、
請求項1乃至7のいずれか一項に記載のサーバ装置と、を備える
ライセンス管理システム。
【請求項9】
所定のソフトウェアを含むパッケージファイルが展開されたサーバ装置において、
前記所定のソフトウェア起動時に、前記サーバ装置において前記所定のソフトウェアを実行させるために必要なライセンスの数である第1ライセンス必要数を取得し、
前記所定のソフトウェア起動時に、他のサーバ装置において前記所定のソフトウェアを実行させるために必要なライセンスの数である第2ライセンス必要数を、前記他のサーバ装置から取得し、
前記第1ライセンス必要数及び前記第2ライセンス必要数の合計値に基づいて、前記所定のソフトウェアの起動の可否を判定し、
前記所定のソフトウェアの起動が可能である場合、前記第1ライセンス必要数と前記サーバ装置に登録されているライセンスの数であるライセンス登録数とに基づいて、前記ライセンス登録数を制御する、
ライセンス管理方法。
【請求項10】
所定のソフトウェアを含むパッケージファイルが展開されたサーバ装置において、
前記所定のソフトウェア起動時に、前記サーバ装置において前記所定のソフトウェアを実行させるために必要なライセンスの数である第1ライセンス必要数を取得する処理と、
前記所定のソフトウェア起動時に、他のサーバ装置において前記所定のソフトウェアを実行させるために必要なライセンスの数である第2ライセンス必要数を、前記他のサーバ装置から取得する処理と、
前記第1ライセンス必要数及び前記第2ライセンス必要数の合計値に基づいて、前記所定のソフトウェアの起動の可否を判定する処理と、
前記所定のソフトウェアの起動が可能である場合、前記第1ライセンス必要数と前記サーバ装置に登録されているライセンスの数であるライセンス登録数とに基づいて、前記ライセンス登録数を制御する処理と、をコンピュータに実行させる、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ライセンスを管理する技術に関する。
【背景技術】
【0002】
ソフトウェアのライセンスを管理する技術が特許文献1に開示されている。具体的には、特許文献1には、ライセンス情報を管理するサーバを設け、サーバが、クライアントからソフトウェアの実行に関する要求を受け取り、クライアントにおけるソフトウェアの実行を許可するか否かを判定する技術が開示されている。
【0003】
しかしながら、特許文献1に記載の技術では、ソフトウェアが動作する装置とは別に、ライセンスを管理するサーバを設ける必要がある。
【0004】
これに対して特許文献2には、ソフトウェアが展開されたノード(例えば、サーバ)において、他のノードが保持するライセンス情報を取得し、取得したライセンス情報と、自ノードが保持するライセンス情報と、を統合した情報に基づいて、ソフトウェアの実行が継続可能か否か判定する技術が開示されている。
【先行技術文献】
【特許文献】
【0005】
【文献】特開平09-319570号公報
【文献】特開2020-101942号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、ソフトウェアを実行するサーバの諸元変更により、ソフトウェアを実行するために必要なライセンスの数が変わる場合がある。例えば、サーバのCPU(Central Processing Unit)のコア数に応じてライセンスの必要数が定まるライセンス方式が採用されているとする。この場合、サーバのCPU数割り当ての変更が行われると、変更が行われたサーバにおいて、ソフトウェアを実行するために必要なライセンスの数が変わる。
【0007】
特許文献2には、上記のような場合に対応する記載はない。一方で、特許文献2には、余剰のライセンスを他のノードに移行する処理については記載されている。しかしながらこの処理は、ユーザが指示を行わない限り実行されない。つまり、上記のような場合に対応するためには、ユーザが何らかの手段によって、諸元変更が行われたこと、及び、諸元変更に応じて変更するライセンスの数等を把握する必要がある。そのため、特許文献2に記載の技術では、上記のような場合に適切にライセンスを管理することができない虞がある。
【0008】
本開示は、上記課題を鑑みてなされたものであり、ライセンスを適切に管理することが可能な技術を提供することを目的の一つとする。
【課題を解決するための手段】
【0009】
本発明の一態様にかかるサーバ装置は、所定のソフトウェアと、前記所定のソフトウェア上で動作する所定のアプリケーションと、前記所定のソフトウェアに対して認証されたライセンスの数であるライセンス認証数を含むライセンス認証情報と、を含むパッケージファイルが展開された場合に、自サーバ装置において前記所定のアプリケーションを実行させるために必要なライセンスの数である第1ライセンス必要数を取得する第1取得手段と、他のサーバ装置において前記所定のアプリケーションを実行させるために必要な前記ライセンスの数である第2ライセンス必要数を、前記他のサーバ装置から取得する第2取得手段と、前記第1ライセンス必要数及び前記第2ライセンス必要数の合計値と前記ライセンス認証情報とに基づいて、前記所定のアプリケーションの実行の可否を判定する判定手段と、前記所定のアプリケーションの実行が可能である場合、前記第1ライセンス必要数と自サーバ装置に登録されている前記ライセンスの数であるライセンス登録数とに基づいて、前記ライセンス登録数を制御する制御手段と、を備える。
【0010】
本発明の一態様にかかるライセンス管理方法は、所定のソフトウェアを含むパッケージファイルが展開されたサーバ装置において、前記所定のソフトウェア起動時に、前記サーバ装置において前記所定のソフトウェアを実行させるために必要なライセンスの数である第1ライセンス必要数を取得し、前記所定のソフトウェア起動時に、他のサーバ装置において前記所定のソフトウェアを実行させるために必要なライセンスの数である第2ライセンス必要数を、前記他のサーバ装置から取得し、前記第1ライセンス必要数及び前記第2ライセンス必要数の合計値に基づいて、前記所定のソフトウェアの起動の可否を判定し、前記所定のソフトウェアの起動が可能である場合、前記第1ライセンス必要数と前記サーバ装置に登録されているライセンスの数であるライセンス登録数とに基づいて、前記ライセンス登録数を制御する。
【0011】
本発明の一態様にかかるプログラムは、所定のソフトウェアを含むパッケージファイルが展開されたサーバ装置において、前記所定のソフトウェア起動時に、前記サーバ装置において前記所定のソフトウェアを実行させるために必要なライセンスの数である第1ライセンス必要数を取得する処理と、前記所定のソフトウェア起動時に、他のサーバ装置において前記所定のソフトウェアを実行させるために必要なライセンスの数である第2ライセンス必要数を、前記他のサーバ装置から取得する処理と、前記第1ライセンス必要数及び前記第2ライセンス必要数の合計値に基づいて、前記所定のソフトウェアの起動の可否を判定する処理と、前記所定のソフトウェアの起動が可能である場合、前記第1ライセンス必要数と前記サーバ装置に登録されているライセンスの数であるライセンス登録数とに基づいて、前記ライセンス登録数を制御する処理と、をコンピュータに実行させる。
【発明の効果】
【0012】
本開示によれば、ライセンスを適切に管理することができるという効果が得られる。
【図面の簡単な説明】
【0013】
【
図1】第1の実施形態のライセンス管理システムの構成の一例を模式的に示す図である。
【
図2】第1の実施形態のサーバ装置の機能構成の一例を示すブロック図である。
【
図3】第1の実施形態のサーバ装置の動作の一例を示すフローチャートである。
【
図4】第2の実施形態のライセンス管理システムの構成の一例を示す図である。
【
図5】第2の実施形態の端末装置の機能構成の一例を含むブロック図である。
【
図6】第2の実施形態のサーバ装置の機能構成の一例を含むブロック図である。
【
図7】第2の実施形態の端末装置の第1の動作の一例を示すフローチャートである。
【
図8】第2の実施形態の端末装置の第1の動作の続きの一例を示すフローチャートである。
【
図9】第2の実施形態のサーバ装置の第1の動作の一例を示すフローチャートである。
【
図10】第2の実施形態のサーバ装置の第1の動作の続きの一例を示すフローチャートである。
【
図11】第2の実施形態のサーバ装置の第2の動作の一例を示すフローチャートである。
【
図12】第3の実施形態のライセンス管理システムの構成の一例を示す図である。
【
図13】第3の実施形態の端末装置の機能構成の一例を含むブロック図である。
【
図14】第3の実施形態のサーバ装置の機能構成の一例を含むブロック図である。
【
図15】第3の実施形態のライセンス使用数テーブルの一例を示す図である。
【
図16】第3の実施形態の端末装置の第1の動作の一例を示すフローチャートである。
【
図17】第3の実施形態のサーバ装置の第1の動作の一例を示すフローチャートである。
【
図18】第3の実施形態のサーバ装置の第1の動作の続きの一例を示すフローチャートである。
【
図19】第3の実施形態のサーバ装置の第2の動作の一例を示すフローチャートである。
【
図20】第3の実施形態のサーバ装置の第2の動作の続きの一例を示すフローチャートである。
【
図21】第3の実施形態のサーバ装置の第3の動作の一例を示すフローチャートである。
【
図22】第3の実施形態のサーバ装置の第4の動作の一例を示すフローチャートである。
【
図23】第1、第2、及び第3の実施形態における端末装置及びサーバ装置のそれぞれを実現するコンピュータ装置のハードウェア構成の一例を示すブロック図である。
【発明を実施するための形態】
【0014】
以下に、本開示の実施形態を、図面を参照しつつ説明する。
【0015】
<第1の実施形態>
第1の実施形態のライセンス管理システムについて説明する。
【0016】
図1は、第1の実施形態のライセンス管理システムの構成の一例を示す図である。ライセンス管理システム1000は、端末装置100とサーバ装置200-1、・・・、200-n(nは自然数)とを備える。以下、サーバ装置200-1、・・・、200-nを区別しない場合、サーバ装置200と称することもある。端末装置100とサーバ装置200とは、ネットワークを介して通信可能に接続されている。サーバ装置200が複数ある場合、サーバ装置200のそれぞれは、互いに通信可能である。
【0017】
端末装置100は、サーバ装置200において展開されるパッケージファイルを生成する装置である。端末装置100は、例えばパーソナルコンピュータであるが、この例に限らない。例えば、端末装置100は、所定のソフトウェア上で動作する所定のアプリケーションにおいて使用される予定のライセンスの認証を行う。また、端末装置100は、認証されたライセンスの数であるライセンス認証数を含むライセンス認証情報を生成する。そして、端末装置100は、所定のソフトウェアと、所定のソフトウェア上で動作する所定のアプリケーションと、ライセンス認証情報と、を含むパッケージファイルを生成する。
【0018】
所定のソフトウェアは、例えば、WebコンテナやEJB(Enterprise Java Beans)コンテナ等のアプリケーションサーバといった、所定のアプリケーションの実行基盤となるソフトウェアである。所定のアプリケーションは、例えば、WebアプリケーションやEJBアプリケーション等である。本開示において、所定のソフトウェアをサービス基盤ソフトウェアとも称し、所定のアプリケーションをサービスアプリケーションとも称する。
【0019】
サーバ装置200には、端末装置100によって生成されたパッケージファイルが展開される。サーバ装置200は、展開されたパッケージファイルに含まれるサービス基盤ソフトウェアを実行することにより、以下の機能部の処理を実行することができる。
【0020】
図2は、サーバ装置200の機能構成の一例を示す図である。サーバ装置200は、第1取得部210と、第2取得部220と、判定部230と、制御部240と、を備える。
【0021】
第1取得部210は、自サーバ装置において、サービスアプリケーションを実行させるために必要なライセンスの数を取得する。本開示において、自サーバ装置においてサービスアプリケーションを実行させるために必要なライセンスの数を第1ライセンス必要数とも称する。例えば、ライセンス方式が、サーバのCPUのコア数に応じてライセンスの必要数が定まるものであるとする。この場合、第1取得部210は、例えば、自サーバ装置のCPUのコア数をカウントすることにより、第1ライセンス必要数を取得する。なお、第1ライセンス必要数を取得する方法はこの例に限らず、ライセンス方式に応じて既知の手法を利用することができる。このように、第1取得部210は、自サーバ装置において所定のアプリケーションを実行させるために必要なライセンスの数である第1ライセンス必要数を取得する。第1取得部は、第1取得手段の一例である。
【0022】
第2取得部220は、他のサーバ装置においてサービスアプリケーションを実行させるために必要なライセンスの数を取得する。本開示において、他のサーバ装置においてサービスアプリケーションを実行させるために必要なライセンスの数を第2ライセンス必要数とも称する。例えば、第2取得部220は、自サーバ装置において実行するサービスアプリケーションと同一のサービスアプリケーションに関する、第2ライセンス必要数の要求を、他のサーバ装置に送信する。例えば第2取得部220は、当該要求に対する他のサーバ装置からの応答を受信することにより、他のサーバ装置から第2ライセンス必要数を取得する。このとき、第2取得部220は、所定時間経過するまでに当該応答を受信しなかった場合、他のサーバ装置が存在しない、または、他のサーバ装置が同一のアプリケーションを保有していないと判断してもよい。このように、第2取得部220は、他のサーバ装置において所定のアプリケーションを実行させるために必要なライセンスの数である第2ライセンス必要数を、他のサーバ装置から取得する。第2取得部220は、第2取得手段の一例である。なお、他のサーバ装置は複数存在してもよい。この場合、第2取得部220は、複数の他のサーバ装置のそれぞれに、第2ライセンス必要数の要求を行う。そして第2取得部220は、複数の他のサーバ装置から応答を受信した場合、複数の第2ライセンス必要数を取得する。
【0023】
判定部230は、サービスアプリケーションの実行の可否を判定する。例えば、判定部230は、第1ライセンス必要数と第2ライセンス必要数との合計値を取得する。例えば、判定部230は、パッケージファイルに含まれるライセンス認証情報を読み出し、ライセンス認証数を取得する。そして、判定部230は、例えば、合計値とライセンス認証数とを比較し、合計値がライセンス認証数以下であれば、サービスアプリケーションの実行が可能であると判定する。このように、判定部230は、第1ライセンス必要数及び第2ライセンス必要数の合計値とライセンス認証情報とに基づいて、所定のアプリケーションの実行の可否を判定する。判定部230は、判定手段の一例である。なお、他のサーバ装置が複数存在し、第2取得部220が複数の第2ライセンス必要数を取得した場合、判定部230は、第1ライセンス必要数と複数の第2ライセンス必要数との合計値を取得する。
【0024】
制御部240は、自サーバ装置に登録されているライセンスの数を制御する。本開示において、自サーバ装置に登録されているライセンスの数をライセンス登録数とも称する。サーバ装置200がサービスアプリケーションを実行する場合、第1ライセンス必要数分のライセンスが自サーバ装置に登録されている必要がある。そのため、制御部240は、例えば、ライセンス登録数を取得する。ここで、ライセンス登録数を示す情報は、サーバ装置200に格納されている。例えば、制御部240は、ライセンス登録数と第1ライセンス必要数とを比較する。例えば、制御部240は、ライセンス登録数が第1ライセンス必要数未満である場合、不足数分のライセンスを自サーバ装置に追加する。また、例えば、制御部240は、ライセンス登録数が第1ライセンス必要数を超過している場合、超過数分のライセンスを自サーバ装置から削除する。また、制御部240は、ライセンス登録数が第1ライセンス必要数と同じである場合、ライセンス登録数を変更しなくてもよい。このように、制御部240は、所定のアプリケーションの実行が可能である場合、第1ライセンス必要数と自サーバ装置に登録されているライセンスの数であるライセンス登録数とに基づいて、ライセンス登録数を制御する。制御部240は、制御手段の一例である。
【0025】
次に、サーバ装置200の動作の一例を、
図3を用いて説明する。なお、本開示において、シーケンス図及びフローチャートの各ステップを「S101」のように、各々のステップに付した番号を用いて表現する。
【0026】
図3は、サーバ装置200の動作の一例を説明するフローチャートである。本動作例において、サーバ装置200には、端末装置100が生成したパッケージファイルが展開されているとする。
【0027】
サーバ装置200の第1取得部210は、第1ライセンス必要数を取得する(S101)。第2取得部220は、第2ライセンス必要数を、他のサーバ装置から取得する(S102)。判定部230は、第1ライセンス必要数及び第2ライセンス必要数の合計値とライセンス認証情報とに基づいて、サービスアプリケーションの実行の可否を判定する(S103)。制御部240は、サービスアプリケーションの実行が可能である場合、第1ライセンス必要数とライセンス登録数とに基づいて、ライセンス登録数を制御する(S204)。
【0028】
このように、第1の実施形態のサーバ装置200は、所定のソフトウェアと、所定のソフトウェア上で動作する所定のアプリケーションと、所定のソフトウェアに対して認証されたライセンスの数を含むライセンス認証情報と、を含むパッケージファイルが展開された場合に、以下の処理を行う。サーバ装置200は、自サーバ装置において所定のアプリケーションを実行させるために必要なライセンスの数である第1ライセンス必要数を取得する。また、サーバ装置200は、他のサーバ装置において所定のアプリケーションを実行させるために必要なライセンスの数である第2ライセンス必要数を、他のサーバ装置から取得する。また、サーバ装置200は、第1ライセンス必要数及び第2ライセンス必要数の合計値とライセンス認証情報とに基づいて、所定のアプリケーションの実行の可否を判定する。そして、サーバ装置200は、アプリケーションの実行が可能である場合、第1ライセンス必要数と自サーバ装置に登録されているライセンスの数であるライセンス登録数とに基づいて、ライセンス登録数を制御する。これにより、第1の実施形態のサーバ装置200は、例えば、サーバ装置200の諸元変更によって、第1ライセンス必要数が変更された場合であっても、第1ライセンス必要数に応じて、自サーバ装置にライセンスの登録を行うことができる。すなわち、第1の実施形態のサーバ装置200は、ライセンスを適切に管理することができる。
【0029】
<第2の実施形態>
次に、第2の実施形態のサーバ装置を含むライセンス管理システムについて説明する。第2の実施形態では、第1の実施形態のライセンス管理システム1000について、
図4等を用いて、より詳細に説明する。
図4は、第2の実施形態のライセンス管理システム1000の構成の一例を示す図である。なお、第2の実施形態の説明において、第1の実施形態で説明した内容と重複する内容については、説明を省略する。
【0030】
[端末装置100の詳細]
図4に示すように端末装置100は、ストレージ1を含む。ストレージは、コンピュータで利用可能なメモリやファイルシステムの総称である。ストレージ1には、サービス基盤ソフトウェア2とサービスアプリケーション3とパッケージファイル4とが格納される。端末装置100は、上述したように、パッケージファイルを生成する装置である。パッケージファイル4は、端末装置100によって生成されたファイルである。端末装置100は、以下に説明する機能部の処理を行うことにより、パッケージファイル4を生成する。
【0031】
また、端末装置100には、パッケージングソフトウェアがインストールされている。端末装置100は、パッケージングソフトウェアを実行することにより、以下に説明する機能部の処理を実行することができる。
【0032】
図5は、端末装置100の機能構成の一例を含む図である。端末装置100は、受付部110、認証部120、及び生成部130の機能部を備える。
【0033】
受付部110は、作業者によって入力された情報を受け付ける。作業者とは、例えば、サービス基盤ソフトウェア及びサービスアプリケーションによってサービスを提供する人物であってもよい。すなわち、作業者は、サービスの運営及び管理を行う会社の人物、または、当該会社から依頼を受けてアプリケーションに開発を行う会社の人物であってもよい。
【0034】
受付部110は、作業者によって入力された、パッケージファイルを生成するために必要なパラメータを受け付ける。パッケージファイルを生成するために必要なパラメータは、例えば、サービス基盤ソフトウェア2の格納先ディレクトリ名、及び、サービスアプリケーション3の格納先ディレクトリ名である。また、受付部110は、作業者によって入力された、サービス基盤ソフトウェア2に関するライセンスキーを受け付ける。
【0035】
認証部120は、ライセンス認証を行う。具体的には、認証部120は、例えば、受付部110によって受け付けられたライセンスキーを、製品(サービス基盤ソフトウェア)を購入したユーザに発行するライセンスキーとして登録する。認証部120は、ライセンス認証が正常に行われた場合(すなわち、ライセンスキーが正常に登録された場合)、ライセンス認証が行われたサービス基盤ソフトウェアの識別情報であるソフトウェア識別情報を取得する。ソフトウェア識別情報は、ライセンス認証が正常に行われた場合に、ライセンスキーに基づいて特定される情報である。例えば、ソフトウェア識別情報は、ライセンスキーから特定される製品コードであってもよいし、製品コードから変換される、サービス基盤ソフトウェアの製品名であってもよい。そして、認証部120は、ライセンス認証が正常に行われたライセンスの数である、ライセンス認証数を算出する。なお、ライセンス認証の処理としては、上記の例に限らず、既知の手法を利用することが可能である。
【0036】
このように、認証部120は、所定のソフトウェアに対してライセンス認証を行う。認証部120は、認証手段の一例である。
【0037】
生成部130は、ファイルコピー部131と、パッケージID(IDentifier)生成部132と、パッケージID格納部133と、ライセンス認証情報格納部134と、パッケージ生成部135とを備える。
【0038】
ファイルコピー部131は、サービス基盤ソフトウェア2、及びサービスアプリケーション3のコピーを行う。具体的には、まず、ファイルコピー部131は、パッケージファイル4の作業用ディレクトリを作成する。ファイルコピー部131は、受付部110が受け付けた、サービス基盤ソフトウェア2、及び、サービスアプリケーション3の格納先ディレクトリ名の情報を取得する。ファイルコピー部131は、サービス基盤ソフトウェア2を、作業用ディレクトリに、サービス基盤ソフトウェア41としてコピーする。このとき、サービス基盤ソフトウェア41は、サービス基盤ソフトウェア2の格納先ディレクトリ配下のファイル構成を保ったままコピーされる。また、ファイルコピー部131は、サービスアプリケーション3を、サービス基盤ソフトウェア41のオートデプロイ等のアプリケーション格納用ディレクトリにサービスアプリケーション42としてコピーする。このとき、サービスアプリケーション42は、サービスアプリケーション3の格納先ディレクトリ配下のファイル構成を保ったままコピーされる。
【0039】
パッケージID生成部132は、パッケージファイルを識別する情報であるパッケージIDを生成する。パッケージIDは、パッケージファイルに含まれるサービスアプリケーションに対応する。すなわち、パッケージIDは、サービスアプリケーションの識別子としても用いられることが可能である。なお、パッケージIDは、例えばUUID(Universal Unique IDentifier)等の、一意性が確保される情報である。なお、パッケージIDをパッケージ識別情報とも称する。
【0040】
パッケージID格納部133は、生成されたパッケージIDをパッケージファイル4に格納する。より具体的には、パッケージID格納部133は、生成されたパッケージIDを、サービス基盤ソフトウェア41の配下のパッケージIDファイル43に格納する。パッケージIDファイル43は、テキストファイル、バイナリファイル、または、既知の手法を利用した暗号化ファイル等であるが、この例に限らない。パッケージIDファイル43のファイル形式は、サービス基盤ソフトウェア41によって参照と更新が可能であるファイル形式であればよい。
【0041】
ライセンス認証情報格納部134は、ライセンス認証情報をパッケージファイル4に格納する。より具体的には、ライセンス認証情報格納部134は、ライセンス認証数の情報と、ライセンス認証が行われたサービス基盤ソフトウェア41のソフトウェア識別情報と、パッケージIDと、を含むライセンス認証情報を、ライセンス認証情報ファイル44に格納する。ライセンス認証情報ファイル44は、パッケージファイル4の作業用ディレクトリ配下のファイルである。ライセンス認証情報ファイル44は、テキストファイル、バイナリファイル、または、既知の手法を利用した暗号化ファイル等であるが、この例に限らない。ライセンス認証情報ファイル44のファイル形式は、サービス基盤ソフトウェア41によって参照と更新が可能であるファイル形式であればよい。
【0042】
パッケージ生成部135は、ファイルコピー部131、パッケージID生成部132、パッケージID格納部133、及びライセンス認証情報格納部134によって生成されたパッケージファイル4を、一つのファイルに圧縮する。
【0043】
このように、生成部130は、所定のソフトウェアと、前記所定のソフトウェア上で動作するアプリケーションと、を含むパッケージファイルを生成する。また、生成部130は、アプリケーションに対応する識別子であるパッケージ識別情報と、認証されたライセンスの数であるライセンス認証数を含むライセンス認証情報と、をさらに含めたパッケージファイルを生成する。生成部130は、生成手段の一例である。
【0044】
[サーバ装置200の詳細]
図4に示すようにサーバ装置200は、ストレージ5を含む。ストレージ5には、パッケージファイル6が格納される。パッケージファイル6は、端末装置100によって生成されたパッケージファイル4がコピーされ、展開されたものである。例えば、サーバ装置200が、端末装置100からパッケージファイル4を受け取ってもよい。また、サーバ装置200は、図示しない端末装置またはサーバ装置からパッケージファイル4を受け取ってもよい。この場合、図示しない端末装置またはサーバ装置は、例えば、パッケージファイル4を格納した記録媒体からパッケージファイル4を取得する。なお、パッケージファイル4をサーバ装置200にコピーし展開する方法は、既知の手法を利用することが可能である。
【0045】
サーバ装置200は、パッケージファイル6を展開し、サービス基盤ソフトウェア61を起動することにより以下の機能部の処理を実行することができる。
【0046】
図6は、サーバ装置200の機能構成の一例を含む図である。サーバ装置200は、第1取得部210、第2取得部220、判定部230、制御部240、ライセンス認証情報確認部250、ライセンス認証情報取得部260、アプリケーション実行部270、及び応答処理部280の機能部を備える。
【0047】
ライセンス認証情報確認部250は、ライセンス認証情報ファイル64に含まれるライセンス認証情報が正常であるかチェックする。具体的には、ライセンス認証情報確認部250は、実行されたサービス基盤ソフトウェアの配下に格納されているソフトウェア識別情報を取得する。ここで、取得されたソフトウェア識別情報を、ライセンス認証情報ファイル64に格納されるソフトウェア識別情報と区別するために、第1識別情報と称する。また、ライセンス認証情報ファイル64に格納されるソフトウェア識別情報を第2識別情報と称する。
【0048】
ライセンス認証情報確認部250は、ストレージ5にライセンス認証情報ファイル64が存在するか否か判定する。ライセンス認証情報ファイル64が存在する場合、ライセンス認証情報確認部250は、第1識別情報と第2識別情報とが一致するか否か判定する。第1識別情報と第2識別情報とが一致する場合、ライセンス認証情報確認部250は、パッケージIDファイル63に格納されるパッケージIDと、ライセンス認証情報ファイル64に格納されるパッケージIDと、が一致するか否か判定する。なお、ライセンス認証情報確認部250は、ライセンス認証情報ファイル64が存在しない場合、第1識別情報と第2識別情報とが一致しない場合、またはパッケージIDが一致しない場合、異常を通知してもよい。この場合、ライセンス認証情報確認部250は、異常が発生したことを、サービス基盤ソフトウェアを起動したユーザの端末装置(図示せず)に通知してもよい。
【0049】
ライセンス認証情報取得部260は、ライセンス認証情報確認部250の各判定において異常でない場合、ライセンス認証情報ファイル64からライセンス認証数を取得する。
【0050】
第1取得部210は、サービスアプリケーション62を自サーバ装置で動作させるために必要なライセンスの数である、第1ライセンス必要数を取得する。
【0051】
第2取得部220は、他のサーバ装置においてサービスアプリケーションを実行させるために必要なライセンスの数である、第2ライセンス必要数を取得する。具体的には、例えば、第2取得部220は、他のサーバ装置に、第1識別情報とパッケージIDとを含む要求メッセージを送信する。ここで、本開示においてメッセージとは、例えば、異なるサーバ上で動作するサービス基盤ソフトウェアのプロセス間通信で送受信するデータの集合である。メッセージの送受信には、例えば、UDP(User Datagram Protocol)、HTTP(HyperText Transfer Protocol)、またはHTTPS(HyperText Transfer Protocol Secure)等が使用される。
【0052】
第2取得部220は、一つのネットワークの中に存在する他のサーバ装置に対して、ブロードキャストで要求メッセージを送信する。また、第2取得部220は、他のサーバ装置から、ソフトウェア識別情報とパッケージIDと第2ライセンス必要数とが含まれる応答メッセージを受信する。そして、第2取得部220は、応答メッセージに含まれるソフトウェア識別情報及びパッケージIDと、自サーバ装置における第1識別情報及びパッケージIDと、が一致しているか否か判定する。当該判定において一致する場合、第2取得部220は、応答メッセージに含まれる第2ライセンス必要数を取得する。当該判定において一致しない場合、第2取得部220は、応答メッセージに含まれる第2ライセンス必要数を取得しない。ここで、他のサーバ装置が複数存在する場合、第2取得部220は、複数の応答メッセージを受信する場合がある。この場合、第2取得部220は、応答メッセージのそれぞれに対して、上記判定を行い、第2ライセンス必要数を取得する。そして、第2取得部220は、取得した第2ライセンス必要数を合計する。なお、第2取得部220は、要求メッセージを送信してから所定時間経過後に、取得した第2ライセンス必要数を合計してもよい。すなわち、第2取得部220は、要求メッセージを送信してからタイムアウトするまで、応答メッセージを待機する。
【0053】
すなわち、第2取得部220は、所定のアプリケーションを実行させるために必要なライセンスの数を要求する要求メッセージであって、パッケージ識別情報と、ソフトウェア識別情報とを含む要求メッセージを、他のサーバ装置に送信する。そして、第2取得部220は、要求メッセージに対応する応答メッセージを他のサーバ装置から受信した場合に、応答メッセージに含まれる、ライセンスの数を示す情報を第2ライセンス必要数として取得する、
判定部230は、サービスアプリケーション62の実行の可否を判定する。具体的には、判定部230は、第1ライセンス必要数と第2ライセンス必要数との合計値を取得する。そして、判定部230は、ライセンス認証情報ファイル64からライセンス認証数を取得する。判定部230は、合計値とライセンス認証数とを比較する。判定部230は、ライセンス認証数が合計値以上である場合、サービスアプリケーション62の実行が可能であると判定し、ライセンス認証数が合計値未満である場合、サービスアプリケーション62の実行が不可であると判定する。このように、判定部230は、自サーバ装置だけでなく同一パッケージIDのサービスアプリケーションを実行する他のサーバ装置のライセンス必要数も用いて算出された合計値が、ライセンス認証数を超えていないかチェックする。これにより、判定部230は、アプリケーション単位で、ライセンス認証数を超えた利用を防止することができる
制御部240は、ライセンス登録数判定部241とライセンス管理部242とを備える。
【0054】
ライセンス登録数判定部241は、自サーバ装置のライセンス登録数と、第1ライセンス必要数と、を比較する。ライセンス登録数が、第1ライセンス必要数に対して過不足がある場合、ライセンス登録数判定部241は、ライセンス登録数の制御が必要であると判定する。
【0055】
ライセンス管理部242は、ライセンス登録数の制御が必要であると判定された場合、ライセンス登録数の制御を行う。具体的には、ライセンス管理部242は、ライセンス登録数が第1ライセンス必要数未満である場合、不足数分のライセンスを自サーバ装置に追加する。また、ライセンス管理部242は、ライセンス登録数が第1ライセンス必要数を超過している場合、超過数分のライセンスを自サーバ装置から削除する。
【0056】
アプリケーション実行部270は、判定部230によってサービスアプリケーション62の実行が可能であると判定された場合、所定の設定を行い、サービスアプリケーション62を実行する。また、アプリケーション実行部270は、サービスアプリケーション62の終了処理を行ってもよい。
【0057】
応答処理部280は、他のサーバ装置から、要求メッセージを受信する。応答処理部280は、要求メッセージを受信すると、受信した要求メッセージに含まれるソフトウェア識別情報とパッケージIDとを取得する。応答処理部280は、取得したソフトウェア識別情報及びパッケージIDが、自サーバ装置における第1識別情報及びパッケージIDと一致するか否か判定する。当該判定が一致する場合、応答処理部280は、自サーバ装置における第1識別情報と、パッケージIDと、第1ライセンス必要数と、を含む応答メッセージを生成する。そして、応答処理部280は、応答メッセージを、受信した要求メッセージの送信元のサーバ装置に、送信する。
【0058】
すなわち、応答処理部280は、要求メッセージを受信し、要求メッセージに含まれるパッケージ識別情報及びソフトウェア識別情報と、自サーバ装置が保持するパッケージ識別情報及びソフトウェア識別情報と、が一致する場合、自サーバ装置が保持するパッケージ識別情報及びソフトウェア識別情報と、自サーバ装置において所定のアプリケーションを実行させるために必要なライセンスの数と、を含む応答メッセージを、要求メッセージの送信元に送信する。応答処理部280は、応答処理手段の一例である。
【0059】
[端末装置100の動作例]
次に、端末装置100がパッケージファイルを生成する動作を、
図7及び
図8を用いて説明する。
図7及び
図8は、端末装置100の動作の一例を説明するフローチャートである。なお、端末装置100には、パッケージングソフトウェアがインストールされているものとする。
【0060】
まず受付部110は、作業者から、パッケージファイル4を生成するために必要なパラメータの入力を受け付ける(S201)。例えば、受付部110は、サービス基盤ソフトウェア2の格納先ディレクトリ名、及び、サービスアプリケーション3の格納先ディレクトリ名を受け付ける。また、受付部110は、サービス基盤ソフトウェアに関するライセンスキーの入力を受け付ける(S202)。
【0061】
認証部120は、ライセンスキーを用いてライセンス認証を行う。そして、ライセンス認証が正常に行われなかった場合(S203の「No」)、端末装置100は処理を終了する。このとき認証部120は、例えば、ライセンス認証が正常に行われなかったことを示す情報を出力してもよい。ライセンス認証が正常に行われた場合であって(S203の「Yes」)、ライセンスキーの受付が1回目である場合(S204の「Yes」)、認証部120は、ソフトウェア識別情報を取得する(S205)。ライセンスキーの受付が1回目でない場合(S204の「No」)または、S205の処理の後、認証部120は、ライセンス認証数をカウントする(S206)。そして、受付部110がライセンスキーの追加を受け付けた場合(S207の「Yes」)、端末装置100は、S203の処理に戻る。受付部110がライセンスキーの追加を受け付けなかった場合(S207の「No」)、端末装置100は、次の処理に進む。
【0062】
図8は、
図7のS207の処理において「No」の場合に行われる動作例を示している。すなわち、受付部110がライセンスキーの追加を受け付けなかった場合、ファイルコピー部131は、パッケージファイル4の作業用ディレクトリを作成する(S208)。そして、ファイルコピー部131は、サービス基盤ソフトウェア2をコピーして、サービス基盤ソフトウェア41として作業用ディレクトリに格納する(S209)。また、ファイルコピー部131は、サービスアプリケーション3をコピーして、サービス基盤ソフトウェア41のアプリケーション格納用ディレクトリに格納する(S210)。
【0063】
パッケージID生成部132は、パッケージIDを生成する(S211)。パッケージID格納部133は、生成されたパッケージIDを、サービス基盤ソフトウェア41の配下のパッケージIDファイル43に格納する(S212)。ライセンス認証情報格納部134は、ソフトウェア識別情報と、パッケージIDと、ライセンス認証数と、を示す情報を含むライセンス認証情報を、パッケージファイル4に格納する(S213)。パッケージ生成部135は、パッケージファイル4を、一つのファイルとして圧縮する(S214)。
【0064】
[サーバ装置200の動作例1]
次に、サーバ装置200のライセンス数を制御する動作を
図9及び
図10を用いて説明する。
図9及び
図10は、サーバ装置200の動作の一例を示す図である。なお、サーバ装置200には、パッケージファイル6を展開し、サービス基盤ソフトウェア61を起動しているものとする。
【0065】
ライセンス認証情報確認部250は、ライセンス認証情報ファイルがストレージ5に存在するか否か確認する。ライセンス認証情報ファイルが存在しない場合(S301の「No」)、サーバ装置200は処理を終了する。ライセンス認証情報ファイルが存在する場合(S301の「Yes」)、ライセンス認証情報確認部250は、第1識別情報と第2識別情報とが一致するか否か判定する。第1識別情報と第2識別情報とが一致しない場合(S302の「No」)、サーバ装置200は処理を終了する。第1識別情報と第2識別情報とが一致する場合(S302の「Yes」)、ライセンス認証情報確認部250は、パッケージIDファイルに格納されるパッケージIDと、ライセンス認証情報ファイルに格納されるパッケージIDと、が一致するか否か判定する。パッケージIDが一致しない場合(S303の「No」)、サーバ装置200は処理を終了する。パッケージIDが一致する場合(S303の「Yes」)、ライセンス認証情報取得部260は、ライセンス認証情報ファイルからライセンス認証数を取得する(S304)。そして、第1取得部210は、第1ライセンス必要数を取得する(S305)。
【0066】
第2取得部220は、他のサーバ装置に要求メッセージを送信する(S306)。第2取得部220が応答メッセージを受信した場合(S307の「受信」)、第2取得部220は、応答メッセージに含まれるソフトウェア識別情報と第1識別情報とが一致するか否か判定する。ソフトウェア識別情報が一致する場合(S308の「Yes」)、第2取得部220は、応答メッセージに含まれるパッケージIDと自サーバ装置におけるパッケージIDとが一致するか否か判定する。パッケージIDが一致する場合(S309の「Yes」)、第2取得部220は、応答メッセージに含まれる第2ライセンス必要数を取得する(S310)。なお、ソフトウェア識別情報が一致しない場合(S308の「No」)、または、パッケージIDが一致しない場合(S309の「No」)、第2取得部220はS307の処理に戻る。S307の処理においてタイムアウトした場合、第2取得部220は、第2ライセンス必要数を合計する(S311)。
【0067】
図10は、
図9のS311の処理の後に行われる動作の一例である。判定部230は、ライセンス認証数と、第1ライセンス必要数と第2ライセンス必要数との合計値と、を比較する。ライセンス認証数が第1ライセンス必要数と第2ライセンス必要数との合計値未満の場合(S312の「No」)、サーバ装置200は処理を終了する。ライセンス認証数が第1ライセンス必要数と第2ライセンス必要数との合計値以上の場合(S312の「Yes」)、制御部240のライセンス登録数判定部241は、第1ライセンス必要数とライセンス登録数とを比較する。ライセンス登録数が第1ライセンス必要数未満の場合(S313の「Yes」)、ライセンス管理部242は、不足数分のライセンスを登録する(S314)。そして、アプリケーション実行部270は、サービスアプリケーションを実行する(S315)。
【0068】
第1ライセンス必要数とライセンス登録数とが同一である場合(S313の「No」及びS316の「Yes」)、サーバ装置200はS315の処理を行う。ライセンス登録数が第1ライセンス必要数を超過している場合(S316の「No」)、ライセンス管理部242は、超過数分のライセンスを削除する(S317)。
【0069】
なお、
図9及び
図10の動作において、S301の「No」、S302の「No」、S303の「No」、及びS312の「No」の場合、サーバ装置200は、異常が発生したことを出力してもよい。
【0070】
[サーバ装置200の動作例2]
次に、サーバ装置200が、要求メッセージを受信した際の動作を、
図11を用いて説明する。
図11は、サーバ装置200の動作の一例を示す図である。なお、サーバ装置200には、パッケージファイル6を展開し、サービス基盤ソフトウェア61を起動しているものとする。
【0071】
応答処理部280は、要求メッセージを受信すると(S401)、要求メッセージからソフトウェア識別情報とパッケージIDとを取得する(S402)。応答処理部280は、取得したソフトウェア識別情報と、自サーバ装置のソフトウェア識別情報とを比較する。ソフトウェア識別情報が一致する場合(S403の「Yes」)、応答処理部280は、取得したパッケージIDと、自サーバ装置のパッケージIDとを比較する。パッケージIDが一致する場合(S404の「Yes」)、応答処理部280は、応答メッセージを生成する(S405)。そして、応答処理部280は、応答メッセージを要求メッセージの送信元に送信する(S406)。なお、S403の「No」及びS404の「No」の場合、サーバ装置200は処理を終了する。
【0072】
このように、第2の実施形態のサーバ装置200は、所定のソフトウェアと、所定のソフトウェア上で動作する所定のアプリケーションと、所定のソフトウェアに対して認証されたライセンスの数を含むライセンス認証情報と、を含むパッケージファイルが展開された場合に、以下の処理を行う。サーバ装置200は、自サーバ装置において所定のアプリケーションを実行させるために必要なライセンスの数である第1ライセンス必要数を取得する。また、サーバ装置200は、他のサーバ装置において所定のアプリケーションを実行させるために必要なライセンスの数である第2ライセンス必要数を、他のサーバ装置から取得する。また、サーバ装置200は、第1ライセンス必要数及び第2ライセンス必要数の合計値とライセンス認証情報とに基づいて、所定のアプリケーションの実行の可否を判定する。そして、サーバ装置200は、アプリケーションの実行が可能である場合、第1ライセンス必要数と自サーバ装置に登録されているライセンスの数であるライセンス登録数とに基づいて、ライセンス登録数を制御する。これにより、第2の実施形態のサーバ装置200は、第1の実施形態のサーバ装置200と同様に、ライセンスを適切に管理することができる。
【0073】
また、第2の実施形態の端末装置100は、所定のソフトウェアに対してライセンス認証を行い、所定のソフトウェアと、所定のソフトウェア上で動作する所定のアプリケーションと、を含むパッケージファイルを生成する。そしてライセンス管理システム1000は、パッケージファイルを生成する際に、所定のアプリケーションに対応する識別子であるパッケージ識別情報と、認証されたライセンスの数であるライセンス認証数を含むライセンス認証情報と、をパッケージファイルにさらに含める。ここで、サービス基盤ソフトウェア及びサービスアプリケーションが実行されるサーバ装置は、クラウドやオーケストレーションツール等によって管理されることがある。このとき、サーバ装置の数は、オートスケールにより動的に変更される場合がある。サーバ装置にサービス基盤ソフトウェアを展開する際に、サーバ装置ごとにライセンス認証を行う方式でライセンス管理を行う場合、サーバ装置が新規に追加されるたびに、ライセンス認証を行う必要がある。これに対して、第2の実施形態の端末装置100は、上述のように、パッケージファイル生成時に、ライセンス認証を行い、ライセンス認証情報とパッケージ識別情報とをパッケージファイルに含めている。そのため、パッケージファイルが展開されたサーバ装置は、他のサーバ装置が同一のアプリケーションを実行するサーバ装置か否か判定でき、かつ、ライセンス認証数を用いて、自サーバ装置においてアプリケーションの実行の可否も判定できる。つまり、サーバ装置は、パッケージファイルの展開ごとにライセンス認証を行わない。したがって、第2の実施形態の端末装置100は、サーバ装置が追加されるたびにサーバ装置においてライセンス認証を行わせる必要がなくなる。
【0074】
サーバ装置200は、第1ライセンス必要数と第2ライセンス必要数との合計値が、ライセンス認証数未満である場合、自サーバ装置において、所定のソフトウェアの起動が可能であると判定する。このように、サーバ装置200は、自サーバ装置だけでなく他のサーバ装置のライセンス必要数も取得して合計値を算出し、ライセンス認証数を超えていないかチェックする。そのため、第2の実施形態のサーバ装置200は、オートスケールなどによりサーバ装置が動的に増える場合であっても、所定のソフトウェアの、ライセンス認証数を越えた利用を防止することが可能となる。
【0075】
[変形例1]
端末装置100において、認証部120は、ライセンス認証が行われたサービス基盤ソフトウェアのソフトウェア識別情報を必ず取得してもよい。このとき、認証部120は、例えば、ライセンスキーの受付が1回目であるとき(S204のYes)、S205の処理に代わり、取得したソフトウェア識別情報を認証済識別情報として設定する。そして、認証部120は、ライセンスキーの受付が1回目でないとき(S204のNo)、取得したソフトウェア識別情報と、認証済識別情報とを比較してもよい。取得したソフトウェア識別情報と、認証済識別情報とが同一でない場合、認証部120は、異常が発生したことを示す情報を出力し、処理を終了させてもよい。
【0076】
取得したソフトウェア識別情報と、認証済識別情報とが同一でない場合、追加されたライセンスキーが、異なるサービス基盤ソフトウェアにおいて用いられるものである可能性がある。このような場合に、本変形例の端末装置100は、作業者に異常を通知することができる。
【0077】
[変形例2]
複数のサービスアプリケーションが、一つのサービスとして提供される場合がある。このような場合、一つのパッケージファイルにサービスアプリケーションが複数存在していてもよい。すなわち、一つのサービス基盤ソフトウェアにおいて、複数のサービスアプリケーションが実行されてもよい。
【0078】
端末装置100のファイルコピー部131は、パッケージファイル4の作業用ディレクトリに複数のサービスアプリケーションを格納する。パッケージID生成部132は、パッケージファイル4を識別するパッケージIDを生成する。すなわち、本変形例においてパッケージIDは、複数のサービスアプリケーションのセットに対応する。
【0079】
サーバ装置200は、
図9及び
図10の処理を、サーバ装置200が実行するサービスアプリケーションのパッケージIDを用いて行う。
【0080】
[変形例3]
上述の例では、端末装置100のストレージ1に、サービス基盤ソフトウェア2及びサービスアプリケーション3が予め展開されている例を、説明した。ストレージ1に、サービス基盤ソフトウェア2の圧縮ファイル及びサービスアプリケーション3が格納されていてもよい。この場合、受付部110は、パッケージングに必要なパラメータとしてサービス基盤ソフトウェア2の圧縮ファイルへのパス名、及び、サービスアプリケーション3の圧縮ファイルへのパス名を受け取る。ファイルコピー部131は、サービス基盤ソフトウェア2の圧縮ファイルを、パッケージファイル4の作業用ディレクトリにサービス基盤ソフトウェア41として展開する。また、ファイルコピー部131は、サービスアプリケーション3の圧縮ファイルをサービス基盤ソフトウェア41のオートデプロイなどのアプリケーション格納用ディレクトリにサービスアプリケーション42として展開する。
【0081】
[変形例4]
上述の例では、サービス基盤ソフトウェア41内のパッケージIDの格納先としてパッケージIDファイルを使用するケースについて説明したが、サービス基盤ソフトウェア41の設定ファイルの一項目としてパッケージIDを格納するように構成してもよい。
【0082】
この場合、サーバ装置200は、自サーバ装置におけるパッケージIDを、サービス基盤ソフトウェア61の設定ファイルを参照することによりパッケージIDを取得する。
【0083】
<第3の実施形態>
次に、第3の実施形態のサーバ装置を含むライセンス管理システムについて説明する。第3の実施形態では、後述するライセンス使用数テーブルを用いて、ライセンスを管理する例について説明する。なお、第3の実施形態において、第1及び第2の実施形態で説明した内容と重複する内容については、説明を省略する。
【0084】
図12は、第3の実施形態のライセンス管理システム1001の構成の一例を示す図である。
図12に示すように、ライセンス管理システム1001は、端末装置101とサーバ装置201-1とサーバ装置201-2とを備える。端末装置101とサーバ装置201-1とサーバ装置201-2とは、通信可能に接続されている。また、サーバ装置201-1及びサーバ装置201-2間の通信は、ルータを介して接続されるネットワーク上で行われるものとする。また、サーバ装置201-1とサーバ装置201-2とは、それぞれ同様の構成を有する。サーバ装置201-1とサーバ装置201-2とを区別しないとき、それぞれをまとめてサーバ装置201とも称することもある。なお、サーバ装置201は、2以上存在してもよい。また、
図12では、ルータを介して2つのネットワークが接続されているが、3つ以上のネットワークが接続されてもよい。また、それぞれのネットワークは、ルータ以外の機器を介して接続されていてもよい。
【0085】
[端末装置101の詳細]
図13に示すように、端末装置101の機能構成の一例を含む図である。端末装置101は、
図5の端末装置100の受付部110と生成部130とに代えて、受付部140と生成部150とを有する。すなわち、端末装置101は、受付部140と、認証部120と、生成部150と、を備える。なお、受付部140と生成部150とは、それぞれ、受付部110と生成部130との機能に加え、以下に説明する機能を有する。
【0086】
受付部140は、作業者から入力された、格納ホスト名と格納要求先とを受け付ける。格納ホスト名は、例えば、オートスケールを行うサーバ装置の元になるサーバ装置等の、必ず起動するサーバ装置のホスト名である。格納要求先は、後述するライセンス使用数テーブルを格納する場所を示す情報である。ライセンス使用数テーブルは、格納ホスト名を有するサーバ装置に格納される。すなわち、格納要求先は、格納ホスト名を有するサーバ装置内の場所を示している。格納要求先は、URL(Uniform Resource Locater)等の、メッセージの送受信において使用されるプロトコルで利用可能なフォーマットの情報である。
【0087】
生成部150は、ライセンス認証情報格納部134に代えて、ライセンス認証情報格納部136を備える。すなわち生成部150は、ファイルコピー部131と、パッケージID生成部132と、パッケージID格納部133と、ライセンス認証情報格納部136と、パッケージ生成部135とを備える。
【0088】
ライセンス認証情報格納部136は、ライセンス認証数の情報と、ライセンス認証が行われたサービス基盤ソフトウェア41のソフトウェア識別情報と、パッケージIDと、格納ホスト名と、格納要求先と、を含むライセンス認証情報を、ライセンス認証情報ファイル44に格納する。
【0089】
[サーバ装置201の詳細]
図14は、サーバ装置201の機能構成の一例を含む図である。サーバ装置201は、
図6のサーバ装置200の第2取得部220と、制御部240と、ライセンス認証情報取得部260と、応答処理部280とに代えて、第2取得部221と、制御部290と、ライセンス認証情報取得部261と、応答処理部281とを有する。すなわちサーバ装置201は、第1取得部210、第2取得部221、判定部230、制御部290、ライセンス認証情報確認部250、ライセンス認証情報取得部261、アプリケーション実行部270、及び応答処理部281を備える。なお、第2取得部221、制御部290、ライセンス認証情報取得部261、及び応答処理部281は、それぞれ、第2取得部220、制御部240、ライセンス認証情報取得部260、及び応答処理部280の機能に加え、以下に説明する機能を有する。
【0090】
ライセンス認証情報取得部261は、ライセンス認証情報確認部250の各判定において異常でない場合、ライセンス認証情報ファイル64からライセンス認証数を取得する。さらに、ライセンス認証情報取得部261は、ライセンス認証情報ファイル64から格納ホスト名と、格納要求先と、を取得する。また、ライセンス認証情報取得部261は、格納ホスト名が、自サーバ装置のホスト名と一致するか否か判定する。
【0091】
第2取得部221は、第2ライセンス使用数を取得する。具体的には、第2取得部221は、自サーバ装置の第1識別情報及びパッケージIDを含む使用数要求メッセージを、格納要求先に送信する。使用数要求メッセージは、第2の実施形態における要求メッセージに相当する。第3の実施形態においては、後述する格納要求メッセージと区別するため、要求メッセージを使用数要求メッセージとも称する。なお、第2取得部221は、格納要求先が他のサーバ装置である場合、他のサーバ装置に使用数要求メッセージを送信し、格納要求先が自サーバである場合、自サーバに使用数要求メッセージを送信する。さらに、第2取得部221は、応答メッセージを受信する。そして、第2取得部221は、応答メッセージに含まれるライセンス使用数(後述する)を、第2ライセンス使用数として取得する。
【0092】
制御部290は、ライセンス登録数判定部241とライセンス管理部242と、格納要求処理部243と、テーブル更新部244と、周期更新部245と、終了処理部246と、を備える。
【0093】
格納要求処理部243は、ライセンス管理部242がライセンス登録数の制御を行った後に、格納要求メッセージを、格納要求先へ送信する。具体的には、格納要求処理部243は、自サーバ装置の、ソフトウェア識別情報、パッケージID、ホスト名、及びライセンス使用数を含む格納要求メッセージを生成する。ここで、ライセンス使用数とは、サーバ装置において使用されているライセンスの数である。例えば、格納要求処理部243は、ライセンス管理部242がライセンス登録数の制御を行った後に、ライセンス登録数を、自サーバ装置におけるライセンス使用数として取得する。そして、格納要求処理部243は、生成した格納要求メッセージを送信する。格納要求メッセージを受信したサーバ装置において、格納要求メッセージに含まれる情報が、ライセンス使用数テーブル7に反映される。
【0094】
また、格納要求処理部243は、実行中のサービス基盤ソフトウェアの終了時に格納要求メッセージを送信してもよい。このとき、格納要求処理部243は、格納要求メッセージに含めるライセンス使用数を0とする。
【0095】
テーブル更新部244は、ライセンス使用数テーブル7を更新する。
図15は、ライセンス使用数テーブル7の一例を示す図である。ライセンス使用数テーブル7は、各サーバ装置において展開されているサービス基盤ソフトウェアのソフトウェア識別情報、及び、各サーバ装置におけるライセンス使用数等が関連付けられたデータを含む情報である。
図15の例では、ソフトウェア識別情報と、パッケージIDと、サーバ装置のホスト名と、ライセンス使用数と、更新時刻と、が関連付けられている。例えば、一行目のレコードは、ホスト名「aaa」のサーバ装置において、ソフトウェア識別情報が「Aサービス基盤ソフトウェア」であるサービス基盤ソフトウェアが展開されており、パッケージIDが「123」であるサービスアプリケーションが実行されることが示されている。さらに、一行目のレコードには、ホスト名「aaa」のサーバ装置において、ライセンス使用数が「2」であり、一行目のレコードの情報が更新された時刻が「2020年1月2日1時2分3秒」であることが示されている。
【0096】
格納要求メッセージが、後述する応答処理部281によって受信されると、テーブル更新部244は、格納要求メッセージに含まれる情報に基づいて、ライセンス使用数テーブル7を更新する。例えば、テーブル更新部244は、格納要求メッセージから、ソフトウェア識別情報、パッケージID、ホスト名、及びライセンス使用数を取得する。テーブル更新部244は、ライセンス使用数テーブル7を参照し、取得したソフトウェア識別情報とパッケージIDとホスト名が一致するレコードを検索する。検索がヒットしない場合、テーブル更新部244は、取得したソフトウェア識別情報、パッケージID、ホスト名、及びライセンス使用数を関連付けて、新たなレコードとしてライセンス使用数テーブル7に登録する。検索がヒットした場合、テーブル更新部244は、格納要求メッセージから取得したライセンス使用数が0であるか否かを判定する。取得したライセンス使用数が0でない場合、テーブル更新部244は、検索がヒットしたレコードのライセンス使用数と更新時刻とを、それぞれ、取得したライセンス使用数と現在時刻とに更新する。取得したライセンス使用数が0である場合、テーブル更新部244は、検索がヒットしたレコードを、ライセンス使用数テーブル7から削除する。
【0097】
周期更新部245は、一定時間ごとに、ライセンス使用数テーブル7を更新する。具体的には、周期更新部245は、ライセンス使用数テーブル7のうち、更新時刻から所定時間以上更新されていないレコードを削除する。例えば、周期更新部245は、自サーバ装置にライセンス使用数テーブル7がある場合に起動される。そして、周期更新部245は、ライセンス使用数テーブル7の先頭のレコードを参照し、参照したレコードの更新時刻に所定時間足した時刻が、現在時刻を超えているか否か判定する。更新時刻に所定時間足した時刻が、現在時刻を超えている場合、周期更新部245は次のレコードを参照する。更新時刻に所定時間足した時刻が、現在時刻を超えていない場合、周期更新部245は、当該レコードを削除する。すべてのレコードに対して上記更新処理が終了すると、周期更新部245は、一定時間後に、再び上記更新処理を行う。周期更新部245は、例えば、格納ホスト名と自サーバ装置のホスト名とが一致する場合に起動されてもよい。
【0098】
応答処理部281は、使用数要求メッセージ及び格納要求メッセージを受信する。応答処理部281は、格納要求メッセージを受信した場合、テーブル更新部244に通知する。また。応答処理部281は、使用数要求メッセージを受信した場合、使用数要求メッセージに含まれるソフトウェア識別情報とパッケージIDとホスト名とを取得する。応答処理部281は、ライセンス使用数テーブル7から、使用数要求メッセージに含まれるソフトウェア識別情報及びパッケージIDと一致し、使用数要求メッセージに含まれるホスト名と一致しないレコードを検索する。検索がヒットした場合、応答処理部281は、検索がヒットしたレコードのライセンス使用数の合計値を取得する。検索がヒットしない場合、応答処理部281は、ライセンス使用数の合計値を0とする。応答処理部281は、使用数要求メッセージに含まれるソフトウェア識別情報及びパッケージIDと、合計値と、を含む応答メッセージを生成する。そして、応答処理部281は、応答メッセージを、使用数要求メッセージの送信元のサーバ装置に送信する。
【0099】
[端末装置101の動作例]
次に、端末装置101がパッケージファイルを生成する動作を、
図16を用いて説明する。
図16は、端末装置101の動作の一例を説明するフローチャートである。なお、端末装置101が、
図7及び
図8に示す処理と同様の処理を行う場合、説明を省略する。
【0100】
まず、端末装置101は、
図7に示す動作と同様の動作を行う。
図7に示す動作と同様の動作の後(すなわち、S207の「No」)、端末装置101は、
図16に示す動作を行う。
【0101】
受付部140は、作業者から入力された格納ホスト名と格納要求先との入力を受け付ける(S501)。S502乃至S506の処理は、
図8のS208乃至S212と同様である。S506の処理の後、ライセンス認証情報格納部136は、ソフトウェア識別情報と、パッケージIDと、ライセンス認証数と、格納ホスト名と、格納要求先と、を示す情報を含むライセンス認証情報を、パッケージファイル4に格納する(S507)。そして、パッケージ生成部135は、パッケージファイル4を、一つのファイルとして圧縮する(S508)。
【0102】
[サーバ装置201の動作例1]
次に、サーバ装置201のライセンス数を制御する動作を
図17及び
図18を用いて説明する。
図17及び
図18は、サーバ装置201の動作の一例を示すフローチャートである。なお、サーバ装置201が、
図9及び
図10に示す処理と同様の処理を行う場合、説明を省略する。
【0103】
S601乃至S604の処理は、S301乃至S304の処理と同様である。ライセンス認証情報取得部261は、ライセンス認証情報ファイル64から、格納ホスト名と格納要求先とを取得する(S605)。ライセンス認証情報取得部261は、自サーバ装置のホスト名と格納ホスト名とが一致するか否か判定する。自サーバ装置のホスト名と格納ホスト名とが一致する場合(S606の「Yes」)、ライセンス認証情報取得部261は、周期更新部245を起動する(S607)。なお、周期更新部245の動作例は後述する。
【0104】
自サーバ装置のホスト名と格納ホスト名とが一致しない場合(S606の「No」)、または、S607の処理の後、第1取得部210は、第1ライセンス必要数を取得する(S608)。第2取得部221は、自サーバ装置のホスト名と第1識別情報とパッケージIDとを含む使用数要求メッセージを、格納要求先に送信する(S609)。第2取得部221は、応答メッセージを受信した場合(S610の「受信」)、応答メッセージに含まれるソフトウェア識別情報と第1識別情報とが一致するか否か判定する。ソフトウェア識別情報が一致する場合(S611の「Yes」)、第2取得部221は、応答メッセージに含まれるパッケージIDと自サーバ装置におけるパッケージIDとが一致するか否か判定する。パッケージIDが一致する場合(S612の「Yes」)、第2取得部221は、応答メッセージに含まれるライセンス使用数を、第2ライセンス必要数として取得する(S613)。なお、S610においてタイムアウトした場合、または、ソフトウェア識別情報が一致しない場合(S611の「No」)、もしくは、パッケージIDが一致しない場合(S612の「No」)、サーバ装置201は処理を終了する。
【0105】
S613の処理の後、サーバ装置201は、
図18に示す処理を行う。S614乃至S616の処理は、
図10のS312乃至S314の処理と同様である。また、S619及びS620の処理は、
図10のS316及びS317の処理と同様である。
【0106】
次に、格納要求処理部243は、格納要求先に、自サーバ装置の、ソフトウェア識別情報、パッケージID、ホスト名、及びライセンス使用数を含む格納要求メッセージを送信する(S617)。そして、アプリケーション実行部270は、サービスアプリケーションを実行する(S618)。
【0107】
[サーバ装置201の動作例2]
次に、サーバ装置200が、使用数要求メッセージ及び格納要求メッセージを受信した際の動作を、
図19及び
図20を用いて説明する。
図19及び
図20は、サーバ装置201の動作の一例を示すフローチャートである。
【0108】
応答処理部281は、使用数要求メッセージまたは格納要求メッセージを受信する。応答処理部281が、格納要求メッセージを受信した場合(S701の「格納要求メッセージ」)、サーバ装置201は
図20の動作を行う。応答処理部281は、使用数要求メッセージを受信した場合(S701の「使用数要求メッセージ」)、ホスト名とソフトウェア識別情報とパッケージIDとを取得する(S702)。そして応答処理部281は、ライセンス使用数テーブル7から、使用数要求メッセージに含まれるソフトウェア識別情報及びパッケージIDと一致し、使用数要求メッセージに含まれるホスト名と一致しないレコードを検索する(S703)。検索がヒットした場合(S704の「Yes」)、応答処理部281は、検索がヒットしたレコードのライセンス使用数の合計値を取得する(S705)。検索がヒットしない場合(S704の「No」)、ライセンス使用数の合計値を0とする(S706)。応答処理部281は、使用数要求メッセージに含まれるソフトウェア識別情報及びパッケージIDと、合計値と、を含む応答メッセージを生成する(S707)。そして、応答処理部281は、応答メッセージを、使用数要求メッセージの送信元のサーバ装置に送信する(S708)。
【0109】
【0110】
S701の処理において応答処理部281が格納要求メッセージを受信した場合、テーブル更新部244は、格納要求メッセージから、ソフトウェア識別情報とパッケージIDとホスト名とライセンス使用数とを取得する(S709)。次にテーブル更新部244は、ライセンス使用数テーブル7から、格納要求メッセージに含まれるソフトウェア識別情報とパッケージIDとが一致するレコードを検索する(S710)。
【0111】
検索がヒットしなかった場合(S711の「No」)、テーブル更新部244は、ライセンス使用数テーブル7に、格納要求メッセージに含まれるソフトウェア識別情報、パッケージID、ホスト名、及びライセンス使用数、並びに更新時刻を含むレコードを登録する(S713)。このとき、更新時刻は例えば、レコードを登録した時刻である。
【0112】
検索がヒットした場合(S711の「Yes」)、テーブル更新部244は、格納要求メッセージに含まれるライセンス必要数が0であるか否か判定する(S712)。ライセンス必要数が0でない場合(S712の「No」)、S710の処理において検索がヒットしたレコードのライセンス使用数と更新時刻とを更新する(S714)。このとき、テーブル更新部244は、例えば、検索がヒットしたレコードのライセンス使用数を、格納要求メッセージに含まれるライセンス使用数に更新し、更新時刻を、ライセンス使用数を更新した時刻に更新する。
【0113】
ライセンス必要数が0である場合(S712の「Yes」)、テーブル更新部244は、S710の処理において検索がヒットしたレコードを削除する(S715)。
【0114】
[サーバ装置201の動作例3]
次に、サーバ装置201がライセンス使用数テーブル7を定期的に更新する動作を、
図21を用いて説明する。
図21は、サーバ装置201の動作の一例を示すフローチャートである。なお、本動作例において、
図17のS607の処理において、周期更新部245が起動されたものとする。
【0115】
周期更新部245は、現在時刻を取得する(S801)。次に、周期更新部245は、ライセンス使用数テーブル7の先頭のレコードを参照する(S802)。現在時刻が、参照されたレコードの更新時刻に所定時間足した時刻を超えている場合(S803の「Yes」)、周期更新部245は、参照されたレコードを削除する(S804)。現在時刻が、参照されたレコードの更新時刻に所定時間足した時刻を超えていない場合(S803の「No」)、または、S804の処理の後に、周期更新部245は、ライセンス使用数テーブル7に、参照されたレコードの次のレコードが存在するか否か判定する。次のレコードが存在する場合(S805の「Yes」)、周期更新部245は、次のレコードを参照する(S806)。そして、周期更新部245は、再度S803以降の処理を行う。
【0116】
次のレコードが存在しない場合(S805の「No」)、周期更新部245は、先頭のレコードを参照してから一定時間経過したか否か判定する。一定時間経過した場合(S807の「Yes」)、周期更新部245は、S801の処理に戻る。
【0117】
[サーバ装置201の動作例4]
次に、サーバ装置201が、実行中のサービス基盤ソフトウェアの終了するときの動作を、
図22を用いて説明する。
図22は、サーバ装置201の動作の一例を示すフローチャートである。なお、本動作例において、アプリケーション実行部270がサービスアプリケーションの終了処理を行っているとする。
【0118】
格納要求処理部243は、自サーバ装置のライセンス使用数を0とする(S901)。そして、格納要求処理部243は、自サーバ装置の、ソフトウェア識別情報、パッケージID、ホスト名、及びライセンス使用数を含む格納要求メッセージを、格納要求先に送信する(S902)。
【0119】
以上のように、第3の実施形態の端末装置101は、パッケージファイルを生成する際に、格納ホスト名及び格納要求先の情報を含めてパッケージファイルを生成する。また、第3の実施形態のサーバ装置201は、自サーバ装置が格納ホスト名と同一である場合、ライセンス使用数テーブルの保持及び管理を行う。また、サーバ装置201は、第2ライセンス必要数を取得する際に、ライセンス使用数テーブルを保持するサーバ装置である格納要求先に使用数要求メッセージを送信する。そして、サーバ装置201は、使用数要求メッセージに対応する応答メッセージを格納要求先から受信した場合に、応答メッセージに含まれるライセンス使用数を第2ライセンス必要数として取得する。また、使用数要求メッセージを受信したサーバ装置201は、ライセンス使用数テーブルから取得されたライセンス使用数を、応答メッセージに含め、使用数要求メッセージの送信元に送信する。このように構成することによっても、第3の実施形態の端末装置101及びサーバ装置201は、第2の実施形態の端末装置100及びサーバ装置200と同様の効果を奏する。
【0120】
[変形例5]
格納要求メッセージを送信する処理は、周期的に行われてもよい。例えば、格納要求処理部243は、
図18のS616の処理を行ってから、一定時間経過するごとに、格納要求メッセージを格納要求先に送信してもよい。この場合、S616の処理が行われてから、一定時間経過するごとに、格納要求処理部243は、自サーバ装置の、ソフトウェア識別情報と、パッケージIDと、ライセンス使用数と、ホスト名とを含む格納要求メッセージを生成し、格納要求メッセージを送信する。
【0121】
<端末装置及びサーバ装置のハードウェアの構成例>
上述した第1、第2、及び第3の実施形態にかかる端末装置及びサーバ装置を構成するハードウェアについて説明する。
図23は、各実施形態における端末装置及びサーバ装置のそれぞれを実現するコンピュータ装置のハードウェア構成の一例を示すブロック図である。
図23が示す各ブロックは、各実施形態における端末装置、または、サーバ装置及びライセンス管理方法を実現するコンピュータ装置10と、ソフトウェアとの組み合わせにより実現できる。
【0122】
図23に示すように、コンピュータ装置10は、プロセッサ11、RAM(Random Access Memory)12、ROM(Read Only Memory)13、記憶装置14、入出力インタフェース15、バス16、及びドライブ装置17を備える。
【0123】
記憶装置14は、プログラム(コンピュータプログラム)18を格納する。プロセッサ11は、RAM12を用いて端末装置またはサーバ装置にかかるプログラム18を実行する。具体的には、例えば、プログラム18は、第1から第3の実施形態において説明した端末装置またはサーバ装置の処理をコンピュータに実行させるプログラムを含む。プロセッサ11が、プログラム18を実行することに応じて、本端末装置またはサーバ装置の各構成要素の機能が実現される。プログラム18は、ROM13に記憶されていてもよい。また、プログラム18は、記憶媒体20に記録され、ドライブ装置17を用いて読み出されてもよいし、図示しない外部装置から図示しないネットワークを介してコンピュータ装置10に送信されてもよい。
【0124】
入出力インタフェース15は、周辺機器(キーボード、マウス、表示装置など)19とデータをやり取りする。入出力インタフェース15は、データを取得または出力する手段として機能する。バス16は、各構成要素を接続する。
【0125】
なお、端末装置及びサーバ装置の実現方法には様々な変形例がある。例えば、端末装置及びサーバ装置のそれぞれは、専用の装置として実現することができる。また、端末装置及びサーバ装置は、複数の装置の組み合わせにより実現することができる。
【0126】
各実施形態の機能における各構成要素を実現するためのプログラムを記憶媒体に記録させ、該記憶媒体に記録されたプログラムをコードとして読み出し、コンピュータにおいて実行する処理方法も各実施形態の範疇に含まれる。すなわち、コンピュータ読取可能な記憶媒体も各実施形態の範囲に含まれる。また、上述のプログラムが記録された記憶媒体、及びそのプログラム自体も各実施形態に含まれる。
【0127】
該記憶媒体は、例えばフロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、CD(Compact Disc)-ROM、磁気テープ、不揮発性メモリカード、またはROMであるが、この例に限らない。また該記憶媒体に記録されたプログラムは、単体で処理を実行しているプログラムに限らず、他のソフトウェア、拡張ボードの機能と共同して、OS(Operating System)上で動作して処理を実行するプログラムも各実施形態の範疇に含まれる。
【0128】
以上、上述した実施形態を参照して本開示を説明した。しかしながら、本開示は、上述した実施形態には限定されない。即ち、本開示は、本開示のスコープ内において、種々の上記開示要素の多様な組み合わせ乃至選択等、当業者が理解し得る様々な態様を適用することができる。
【符号の説明】
【0129】
100、101 端末装置
110、140 受付部
120 認証部
130、150 生成部
200、201 サーバ装置
210 第1取得部
220、221 第2取得部
230 判定部
240、290 制御部