(57)【特許請求の範囲】
【請求項１】
端末へのソフトウェアのインストールに伴って生成された第１のソフトウェア識別情報を保持する前記端末と、
前記第１のソフトウェア識別情報の少なくとも一部を含む第２のソフトウェア識別情報を発行するサーバと、を備え、ここで、
前記第１のソフトウェア識別情報は、前記ソフトウェアの実行ファイル名を含み、
前記第２のソフトウェア識別情報は、前記ソフトウェアのライセンスが付与された端末の識別子を含み、
前記端末は、前記端末上で起動を要求されたソフトウェアの実行ファイル名が前記第１のソフトウェア識別情報に含まれる実行ファイル名に一致し、かつ、前記端末の識別子が前記第２のソフトウェア識別情報に記載された識別子に一致する場合、前記要求されたソフトウェアの起動を許可する、
ことを特徴とするライセンス管理システム。
【請求項２】
端末へのソフトウェアのインストールに伴って生成された第１のソフトウェア識別情報を保持する前記端末と、
前記第１のソフトウェア識別情報の少なくとも一部を含む第２のソフトウェア識別情報を発行するサーバと、を備え、ここで、
前記第２のソフトウェア識別情報は、前記ソフトウェアの実行ファイル名と前記ソフトウェアのライセンスが付与された端末の識別子を含み、
前記端末は、前記端末上で起動を要求されたソフトウェアの実行ファイル名が前記第２のソフトウェア識別情報に含まれる実行ファイル名に一致し、かつ、前記端末の識別子が前記第２のソフトウェア識別情報に記載された識別子に一致する場合、前記要求されたソフトウェアの起動を許可する、
ことを特徴とするライセンス管理システム。
【請求項３】
端末へのソフトウェアのインストールに伴って生成された第１のソフトウェア識別情報と、前記第１のソフトウェア識別情報の少なくとも一部を含み、前記ソフトウェアに関する第２のソフトウェア識別情報を保持する記憶部を備え、ここで、
前記第１のソフトウェア識別情報は、前記ソフトウェアの実行ファイル名を含み、
前記第２のソフトウェア識別情報は、前記ソフトウェアのライセンスが付与された端末の識別子を含み、
前記端末上で起動を要求されたソフトウェアの実行ファイル名が前記第１のソフトウェア識別情報に含まれる実行ファイル名に一致し、かつ、前記端末の識別子が前記第２のソフトウェア識別情報に記載された識別子に一致する場合、前記要求されたソフトウェアの起動を許可する制御部と、を備える、
ことを特徴とする前記端末。
【請求項４】
端末へのソフトウェアのインストールに伴って生成された第１のソフトウェア識別情報と、前記第１のソフトウェア識別情報の少なくとも一部を含む前記ソフトウェアに関する第２のソフトウェア識別情報を保持する記憶部を備え、ここで、
前記第２のソフトウェア識別情報は、前記ソフトウェアの実行ファイル名と前記ソフトウェアのライセンスが付与された端末の識別子を含み、
前記端末上で起動を要求されたソフトウェアの実行ファイル名が前記第２のソフトウェア識別情報に含まれる実行ファイル名に一致し、かつ、前記端末の識別子が前記第２のソフトウェア識別情報に記載された識別子に一致する場合、前記要求されたソフトウェアの起動を許可する制御部と、を備える、
ことを特徴とする前記端末。
【請求項５】
端末へのソフトウェアのインストールに伴って生成された第１のソフトウェア識別情報を保持する前記端末から、前記ソフトウェアに対するライセンス要求を受信する受信部と、
前記ライセンス要求に応じて前記端末に対して第２のソフトウェア識別情報を発行する発行部と、を備え、ここで、
前記第２のソフトウェア識別情報は、前記ソフトウェアの実行ファイル名と前記ソフトウェアに対するライセンスが付与された端末の識別子を含む、
ことを特徴とするサーバ。
【請求項６】
端末が、前記端末へのソフトウェアのインストールに伴って生成された第１のソフトウェア識別情報を保持するステップと、
サーバが、前記第１のソフトウェア識別情報の少なくとも一部を含む第２のソフトウェア識別情報を発行するステップと、を含み、ここで、
前記第１のソフトウェア識別情報は、前記ソフトウェアの実行ファイル名を含み、
前記第２のソフトウェア識別情報は、前記ソフトウェアのライセンスが付与された端末の識別子を含み、さらに、
前記端末が、前記端末上で起動を要求されたソフトウェアの実行ファイル名が前記第１のソフトウェア識別情報に含まれる実行ファイル名に一致し、かつ、前記端末の識別子が前記第２のソフトウェア識別情報に記載された識別子に一致する場合、前記要求されたソフトウェアの起動を許可するステップと、を含む、
ことを特徴とするライセンス管理方法。
【請求項７】
端末へのソフトウェアのインストールに伴って生成された第１のソフトウェア識別情報と、前記第１のソフトウェア識別情報の少なくとも一部を含む前記ソフトウェアに関する第２のソフトウェア識別情報を保持する処理であって、ここで、
前記第１のソフトウェア識別情報は、前記ソフトウェアの実行ファイル名を含み、
前記第２のソフトウェア識別情報は、前記ソフトウェアのライセンスが付与された端末の識別子を含み、
前記端末上で起動を要求されたソフトウェアの実行ファイル名が前記第１のソフトウェア識別情報に含まれる実行ファイル名に一致し、かつ、前記端末の識別子が前記第２のソフトウェア識別情報に記載された識別子に一致する場合、前記要求されたソフトウェアの起動を許可する前記ソフトウェアの起動を許可する処理、を前記端末に設けられたコンピュータに実行させる、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ライセンス管理システム、端末、サーバ、ライセンス管理方法、および、プログラムに関し、特に、ソフトウェア識別タグ（Software Identification (SWID) tag）を利用したライセンス管理システム、端末、サーバ、ライセンス管理方法、および、プログラムに関する。
【背景技術】
【０００２】
近年、ソフトウェアのライセンスを順守することにより企業価値を向上させ、組織の信頼性を高めるため、ソフトウェア資産管理（ＳＡＭ：Software Asset Management）に対する関心が高まっている。また、ＳＡＭに関する国際規格（国際標準）として、ＩＳＯ（International Organization for Standardization）／ＩＥＣ（International Electrotechnical Commission）  １９７７０がリリースされている。
【０００３】
特許文献１には、ソフトウェアのライセンスを一元管理するためのライセンス情報管理システムが記載されている。具体的には、特許文献１はソフトウェアのライセンス情報および利用登録情報をＸＭＬ（Extensible Markup Language）ソフトウェア定義フォーマットに翻訳することで、ベンダごとに異なるソフトウェアのライセンス情報および利用登録情報を一元管理する方法を開示している。
【０００４】
また、特許文献２には、ソフトウェア・ベンダがソフトウェアに係る知的財産を保護する方法が記載されている。具体的には、特許文献２は各ソフトウェアインスタンスに対する固有のタグを生成する方法を開示している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−１０８６１８号公報
【特許文献２】国際公開第２０００／０７２１１９号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記特許文献の全開示内容は、本書に引用をもって繰り込み記載されているものとする。以下の分析は、本発明者によってなされたものである。
【０００７】
個々の端末ごとにソフトウェアを手配した上で、ソフトウェアライセンサからライセンスを入手し、さらに、ソフトウェアのライセンサからアクティベーションを受けて初めてソフトウェアの起動を可能とした場合、比較的容易にライセンス遵守（ライセンス・コンプライアンス）を実現することができる。しかし、組織（例えば企業）として一括でソフトウェアを導入している場合、ライセンス配布とインストール管理を組織内で行う必要があり、煩雑な作業が必要とされる。また、不正または不注意により、ライセンス違反が容易に発生するおそれもある。さらに、各端末に配備されたソフトウェア棚卸しツール（エージェント）によるインストール情報の集約間隔が長くなるに従って、ライセンス違反が発覚するタイミングが遅くなり、ライセンス違反の規模も増大するおそれがある。
【０００８】
したがって、ソフトウェア資産管理（ＳＡＭ：Software Asset Management）の関連技術においては、以下の要望が存在している。
・ソフトウェアライセンスの遵守を、棚卸し業務の一環で行えるようにしたい、
・ライセンスを確実に遵守するために、ライセンスを持たない端末では起動を不可にしたい。
【０００９】
ここで、特許文献１は、ライセンスを一元管理するための技術を開示するものにすぎず、上記要望に応えることはできない。
【００１０】
一方、特許文献２には、ソフトウェア・インスタンス（software instance）内にデバイス識別子（device identifier）を格納することにより、当該ソフトウェア・インスタンスの使用を許諾されたデバイスを識別可能とし、ライセンス遵守を実現する技術が記載されている。
【００１１】
しかしながら、かかる技術によると、ソフトウェアの使用を許諾されたデバイスごとに別個にソフトウェア・インスタンスを用意する必要があり、事前に煩雑な作業が必要とされる。また、かかる技術によると、インスタンスを改変する必要があるため、ソフトウェアのベンダ側の関与が必要とされる。すなわち、特許文献２に記載された技術によると、ソフトウェアのユーザ（ユーザ企業）側が、ソフトウェアのベンダから離れて、独自にライセンスを管理することができないという問題がある。
【００１２】
本発明の目的は、ソフトウェアのベンダから独立したライセンス管理を可能とするライセンス管理システム、端末、サーバ、ライセンス管理方法、および、プログラムを提供することにある。
【課題を解決するための手段】
【００１３】
本発明の第１の態様に係るライセンス管理システムは、端末へのソフトウェアのインストールに伴って生成された第１のソフトウェア識別情報を保持する前記端末と、前記第１のソフトウェア識別情報の少なくとも一部を含む第２のソフトウェア識別情報を発行するサーバと、を備え、ここで、前記第１のソフトウェア識別情報は、前記ソフトウェアの実行ファイル名を含み、前記第２のソフトウェア識別情報は、前記ソフトウェアのライセンスが付与された端末の識別子を含み、前記端末は、前記端末上で起動を要求されたソフトウェアの実行ファイル名が前記第１のソフトウェア識別情報に含まれる実行ファイル名に一致し、かつ、前記端末の識別子が前記第２のソフトウェア識別情報に記載された識別子に一致する場合、前記要求されたソフトウェアの起動を許可する。
【００１４】
本発明の第２の態様に係る端末は、前記端末へのソフトウェアのインストールに伴って生成された第１のソフトウェア識別情報と、前記第１のソフトウェア識別情報の少なくとも一部を含み、前記ソフトウェアに関する第２のソフトウェア識別情報を保持する記憶部を備え、ここで、前記第１のソフトウェア識別情報は、前記ソフトウェアの実行ファイル名を含み、前記第２のソフトウェア識別情報は、前記ソフトウェアのライセンスが付与された端末の識別子を含み、前記端末上で起動を要求されたソフトウェアの実行ファイル名が前記第１のソフトウェア識別情報に含まれる実行ファイル名に一致し、かつ、前記端末の識別子が前記第２のソフトウェア識別情報に記載された識別子に一致する場合、前記要求されたソフトウェアの起動を許可する制御部と、を備えている。
【００１５】
本発明の第３の態様に係るサーバは、端末へのソフトウェアのインストールに伴って生成された第１のソフトウェア識別情報を保持する前記端末から、前記ソフトウェアに対するライセンス要求を受信する受信部と、前記ライセンス要求に応じて前記端末に対して第２のソフトウェア識別情報を発行する発行部と、を備え、ここで、前記第２のソフトウェア識別情報は、前記ソフトウェアの実行ファイル名と前記ソフトウェアに対するライセンスが付与された端末の識別子を含む。
【００１６】
本発明の第４の態様に係るライセンス管理方法は、端末が、前記端末へのソフトウェアのインストールに伴って生成された第１のソフトウェア識別情報を保持するステップと、サーバが、前記第１のソフトウェア識別情報の少なくとも一部を含む第２のソフトウェア識別情報を発行するステップと、を含み、ここで、前記第１のソフトウェア識別情報は、前記ソフトウェアの実行ファイル名を含み、前記第２のソフトウェア識別情報は、前記ソフトウェアのライセンスが付与された端末の識別子を含み、さらに、前記端末が、前記端末上で起動を要求されたソフトウェアの実行ファイル名が前記第１のソフトウェア識別情報に含まれる実行ファイル名に一致し、かつ、前記端末の識別子が前記第２のソフトウェア識別情報に記載された識別子に一致する場合、前記要求されたソフトウェアの起動を許可するステップと、を含む。
【００１７】
本発明の第５の態様に係るライセンス管理方法は、端末が、前記端末へのソフトウェアのインストールに伴って生成された第１のソフトウェア識別情報と、前記第１のソフトウェア識別情報の少なくとも一部を含む前記ソフトウェアに関する第２のソフトウェア識別情報を保持するステップと、前記第１のソフトウェア識別情報と前記第２のソフトウェア識別情報を用いて、前記端末上における前記ソフトウェアの起動の許否を制御するステップと、を含む。
【００１８】
本発明の第６の態様に係るライセンス管理方法は、サーバが、端末へのソフトウェアのインストールに伴って生成された第１のソフトウェア識別情報を保持する前記端末から、前記ソフトウェアに対するライセンス要求を受信するステップと、前記ライセンス要求に応じて第２のソフトウェア識別情報を発行するステップと、を含む。
【００１９】
本発明の第７の態様に係るプログラムは、端末へのソフトウェアのインストールに伴って生成された第１のソフトウェア識別情報と、前記第１のソフトウェア識別情報の少なくとも一部を含む前記ソフトウェアに関する第２のソフトウェア識別情報を保持する処理であって、ここで、前記第１のソフトウェア識別情報は、前記ソフトウェアの実行ファイル名を含み、前記第２のソフトウェア識別情報は、前記ソフトウェアのライセンスが付与された端末の識別子を含み、前記端末上で起動を要求されたソフトウェアの実行ファイル名が前記第１のソフトウェア識別情報に含まれる実行ファイル名に一致し、かつ、前記端末の識別子が前記第２のソフトウェア識別情報に記載された識別子に一致する場合、前記要求されたソフトウェアの起動を許可する前記ソフトウェアの起動を許可する処理、を前記端末に設けられたコンピュータに実行させる。
【００２０】
本発明の第８の態様に係るプログラムは、端末へのソフトウェアのインストールに伴って生成された第１のソフトウェア識別情報を保持する前記端末から、前記ソフトウェアに対するライセンス要求を受信する処理と、前記ライセンス要求に応じて第２のソフトウェア識別情報を発行する処理と、をサーバに設けられたコンピュータに実行させる。
【００２１】
なお、プログラムは、非一時的なコンピュータ可読記録媒体（non-transitory computer-readable storage medium）に記録されたプログラム製品として提供することもできる。
【発明の効果】
【００２２】
本発明に係るライセンス管理システム、端末、サーバ、ライセンス管理方法、および、プログラムによると、ソフトウェアのベンダから独立したライセンス管理が可能となる。
【図面の簡単な説明】
【００２３】
【図１】一実施形態に係るライセンス管理システムの構成を例示する図である。
【図２】一実施形態における端末の構成を例示するブロック図である。
【図３】一実施形態におけるサーバの構成を例示するブロック図である。
【図４】第１の実施形態に係るライセンス管理システムの構成を例示するブロック図である。
【図５】第１の実施形態における端末（図４）の詳細な構成を例示するブロック図である。
【図６】第１の実施形態におけるソフトウェア識別タグおよび補足ソフトウェア識別タグの詳細な構成を例示する図である。
【図７】第１の実施形態における補足ソフトウェア識別タグの取得に関する動作を例示するフロー図である。
【図８】第１の実施形態におけるソフトウェアの起動に関する動作を例示するフロー図である。
【図９】変形例における補足ソフトウェア識別タグの詳細な構成を例示する図である。
【発明を実施するための形態】
【００２４】
はじめに、一実施形態の概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。
【００２５】
図１は、一実施形態に係るライセンス管理システムの構成を例示する図である。図１を参照すると、ライセンス管理システム２は、端末４（例えばＰＣ（Personal Computer）、仮想マシン（Virtual Machine）、仮想コンテナ（Virtual Container）、又は、モバイルデバイス（Mobile Device））へのソフトウェアのインストールに伴って生成された第１のソフトウェア識別情報（例えばソフトウェアのベンダによって発行されたソフトウェア識別タグ）を保持する端末４と、第１のソフトウェア識別情報の少なくとも一部を含むソフトウェアに関する第２のソフトウェア識別情報を発行するサーバ６（例えばライセンスサーバが端末４からのソフトウェアに対するライセンス要求に応じて第２のソフトウェア識別情報を発行する）とを備え、端末４は、第１のソフトウェア識別情報と第２のソフトウェア識別情報を用いて、端末４上におけるソフトウェアの起動の許否を制御する。
【００２６】
このとき、ソフトウェアのベンダから独立した、ソフトウェアのユーザ企業による柔軟なライセンス管理が可能となる。なぜなら、インストールに応じて（例えばソフトウェアのベンダによって）発行された第１のソフトウェア識別情報とは別個に、ライセンス付与に応じて（例えばソフトウェアのユーザ企業の管理下で発行された）第２のソフトウェア識別情報を設け、これらの情報を用いてソフトウェアの起動を制御するようにしたからである。
【００２７】
図２は、一実施形態における端末４の構成を例示するブロック図である。図２を参照すると、端末４は、端末４へのソフトウェアのインストールに伴って生成された第１のソフトウェア識別情報（例えばソフトウェアのベンダによって発行されたタグ）と、第１のソフトウェア識別情報の少なくとも一部を含むソフトウェアに関する第２のソフトウェア識別情報（例えば、端末４からのソフトウェアに対するライセンス要求に応じて発行されたソフトウェア識別タグ）を保持する記憶部８（例えばソフトウェア識別タグ保存ディレクトリ）と、第１のソフトウェア識別情報と第２のソフトウェア識別情報を用いて、端末４上におけるソフトウェアの起動の許否を制御する制御部１０と、を備えている。また、端末４は、さらに、ソフトウェアに対するライセンス要求をサーバ６（図１）に送信し、ライセンス要求に応じてサーバ６により発行された第２のソフトウェア識別情報を受信する通信部（非図示）を備えていていもよい。
【００２８】
図３は、一実施形態におけるサーバ６（例えばライセンスサーバ）の構成を例示するブロック図である。図３を参照すると、サーバ６は、端末４（図１参照）へのソフトウェアのインストールに伴って生成された第１のソフトウェア識別情報（例えばソフトウェアのベンダによって発行されたタグ）を保持する端末４から、ソフトウェアに対するライセンス要求を受信する受信部１４と、ライセンス要求に応じて端末４に対して第２のソフトウェア識別情報を発行する発行部１６と、を備えている。ここで、サーバ６は、ソフトウェアのユーザ企業の管理下で第２のソフトウェア識別情報を発行する。
【００２９】
図２の端末４、および、図３のサーバ６によると、ソフトウェアのベンダから独立した、ソフトウェアのユーザ企業による柔軟なライセンス管理が可能となる。なぜなら、インストールに応じて（例えばソフトウェアのベンダによって）発行された第１のソフトウェア識別情報とは別個に、ライセンス付与に応じて（例えばソフトウェアのユーザ企業の管理下で発行された）第２のソフトウェア識別情報を設け、これらの情報を用いてソフトウェアの起動を制御するようにしたからである。
【００３０】
＜実施形態１＞
次に、第１の実施形態に係るライセンス管理システムについて、図面を参照して詳細に説明する。
【００３１】
［構成］
図４は、本実施形態に係るライセンス管理システム２の構成を例示するブロック図である。図４を参照すると、ライセンス管理システム２は、端末１３とライセンスサーバ１８を備えている。図５は、図４に示す端末１３の詳細な構成を例示するブロック図である。
【００３２】
図４を参照すると、端末１３は、記憶部８、制御部１０、および、通信部１２を備えている。なお、図４に示す記憶部８、制御部１０、および、通信部１２は、それぞれ、図５のソフトウェア識別タグ保存ディレクトリ（以下、単に「ディレクトリ」という。）２０、プロセス起動監視部２６、および、ソフトウェアライセンス管理エージェント（以下、単に「エージェント」という。）２８に相当する。
【００３３】
記憶部８（ディレクトリ２０）は、端末１３へのソフトウェアのインストールに伴って生成された第１のソフトウェア識別タグ（以下、「ソフトウェア識別タグ」という。）Ｔ１〜Ｔ３と、端末１３からのソフトウェアに対するライセンス要求に応じて発行された第２のソフトウェア識別タグ（以下、「補足ソフトウェア識別タグ」という。）Ｔｓ１〜Ｔｓ３を保持する。
【００３４】
ここで、インストールに伴って生成されるソフトウェア識別タグＴ１〜Ｔ３は、ソフトウェアのベンダによって発行されたものである。一方、補足ソフトウェア識別タグＴｓ１〜Ｔｓ３は、ソフトウェアのユーザ企業の管理下でライセンスサーバ１８によって発行される。
【００３５】
制御部１０（プロセス起動監視部２６）は、ソフトウェア識別タグＴ１〜Ｔ３と補足ソフトウェア識別タグＴｓ１〜Ｔｓ３を用いて、端末１３上におけるソフトウェアの起動の許否を制御する。
【００３６】
通信部１２（エージェント２８）は、ソフトウェア（例えば、ソフトウェア識別タグＴ１に対応するソフトウェア）に対するライセンス要求をライセンスサーバ１８に送信し、ライセンス要求に応じてライセンスサーバ１８により発行された補足ソフトウェア識別タグ（例えばＴｓ１）を受信する。また、通信部１２は、受信した補足ソフトウェア識別タグＴｓ１を記憶部８に格納する。
【００３７】
図６（ａ）、（ｂ）は、それぞれ、ソフトウェア識別タグＴ１および補足ソフトウェア識別タグＴｓ１の詳細な構成を例示する図である。インストールに伴って付与されるソフトウェア識別タグＴ１〜Ｔ３は、ソフトウェアを一意に識別する識別子を含む。また、ソフトウェア識別タグＴ１〜Ｔ３は、ソフトウェアの実行ファイル名（例えば、図６（ａ）のソフトウェア識別タグＴ１のname="app.exe"）を含む。一方、補足ソフトウェア識別タグＴｓ１〜Ｔｓ３は、ソフトウェアのライセンスが付与された端末の識別子（例えば、図６（ｂ）の補足ソフトウェア識別タグＴｓ１のdeviceId="pc1.aaa.com"）を含む。
【００３８】
制御部１０（プロセス起動監視部２６）は、端末１３上で起動を要求されたソフトウェアの実行ファイル名がソフトウェア識別タグに含まれる実行ファイル名（例えば図６（ａ）のソフトウェア識別タグＴ１のname="app.exe"）に一致し、かつ、端末１３の識別子が補足ソフトウェア識別タグに記載された識別子（例えば、図６（ｂ）に示す補足ソフトウェア識別タグＴｓ１のdeviceId="pc1.aaa.com"）に一致する場合、要求されたソフトウェアの起動を許可する。
【００３９】
ライセンスサーバ１８は、受信部１４と発行部１６を備えている。受信部１４は、端末１３へのソフトウェアのインストールに伴って生成されたソフトウェア識別タグ（例えばＴ１）を保持する端末１３から、ソフトウェアに対するライセンス要求を受信する。発行部１６は、ライセンス要求に応じて端末１３に対して補足ソフトウェア識別タグ（例えば、Ｔ１に対応するＴｓ１）を発行する。ここで、補足ソフトウェア識別タグは、ソフトウェアに対するライセンスが付与された端末の識別子（例えば、図６（ｂ）の補足ソフトウェア識別タグＴｓ１のdeviceId="pc1.aaa.com"）を含む。
【００４０】
本実施形態において、ライセンスチェックの機能と、ライセンス違反時にプロセス起動を阻止する機能は、プロセス起動監視部２６がつかさどる。プロセス起動監視部２６は、端末１３のオペレーティングシステム（ＯＳ：Operating System）２２内部のプロセス起動ルーチン２４に組み込まれ、プロセス起動ルーチン２４の呼び出し直後に実行される。
【００４１】
プロセス起動監視部２６は、実行を要求されたソフトウェアを識別するために、端末１３に保存されているすべてのソフトウェア識別タグＴ１〜Ｔ３を検索する。実行を要求されたソフトウェアに該当するソフトウェア識別タグ（例えばＴ１）を発見した場合には、当該ソフトウェア識別タグ（例えばＴ１）に対応する補足ソフトウェア識別タグ（例えばＴｓ１）を補足ソフトウェア識別タグＴｓ１〜Ｔｓ３の中からを割り出す。
【００４２】
図６（ａ）、（ｂ）を参照すると、アプリケーション（例えばSampleApp-2015）に対するソフトウェア識別タグＴ１と補足ソフトウェア識別タグＴｓ１には、いずれも、当該アプリケーションを識別するためのタグ（例えばtagId="SampleApp-2015"）が含まれている。プロセス起動監視部２６は、かかるタグの記載内容を参照することにより、ソフトウェア識別タグ（例えばＴ１）に対応する補足ソフトウェア識別タグ（例えばＴｓ１）を判別することができる。
【００４３】
なお、ソフトウェア識別タグＴ１〜Ｔ３は、ソフトウェアがインストールされる際に、ディレクトリ２０にコピーされる。なお、ディレクトリ２０の下には、図５に示すようにベンダごとにベンダ別サブディレクトリ２１が設けられるようにしてもよい。このとき、ソフトウェア識別タグＴ１〜Ｔ３は当該ソフトウェアのベンダに対応するベンダ別サブディレクトリ２１にコピーされる。一方、補足ソフトウェア識別タグＴｓ１〜Ｔｓ３は、ソフトウェアを実行する前に、利用者がエージェント２８を介してライセンスサーバ１８にライセンスの払い出しを要求し、払い出し要求が成功した場合にライセンスサーバ１８から返信される。補足ソフトウェア識別タグＴｓ１〜Ｔｓ３も、エージェント２８によって、ディレクトリ２０下の対応するベンダ別サブディレクトリ２１に保存される。
【００４４】
また、図６（ｂ）に示すように、補足ソフトウェア識別タグＴｓ１には、当該タグが補足タグであることを示すフラグ（例えばsupplemental="true"）を立てるようにしてもよい。これにより、単一のソフトウェアに対して複数のタグが検出されても、一方のタグは補助情報であることを明示することが可能となる。したがって、棚卸しの際に、払い出し済のライセンス数と使用中のライセンス数とが一致しなくなるといった問題が生じることを防ぐことができる。
【００４５】
［動作］
次に、本実施形態に係るライセンス管理システムの動作について、図面を参照して説明する。
【００４６】
まず、ディレクトリ２０に格納されている情報（すなわち、ソフトウェア識別タグＴ１〜Ｔ３と補足ソフトウェア識別タグＴｓ１〜Ｔｓ３）は、以下の手続きで作成される。
【００４７】
（ソフトウェア識別タグＴ１〜Ｔ３の生成）
ソフトウェアをインストールすると、インストール手順の一環として、ソフトウェア識別タグ（例えばＴ１）がソフトウェア識別タグ保存ディレクトリ２０にコピーされる。なお、本実施形態においては、規格ではOptionalとなっているPayload属性のFile属性、または、Evidence属性のFile属性に、当該ソフトウェアの実行ファイル名が記載されているものとする。例えば、実行ファイル名が"app.exe"である場合、ソフトウェア識別タグＴ１には図６（ａ）に示す情報が含まれる。
【００４８】
一方、ソフトウェアのアンインストール動作においては、当該ソフトウェアに対応するソフトウェア識別タグ（例えばＴ１）が消去されるか、又は無効化されるとともに、後述の補足ソフトウェア識別タグ（例えばＴｓ１）も消去されるか、又は無効化される。また、ソフトウェアがアンインストールされた旨がライセンスサーバ１８にも通知される。ライセンスサーバ１８は、かかる通知を受けると、当該ソフトウェアの残ライセンス数を１だけインクリメントする。
【００４９】
（補足ソフトウェア識別タグＴｓ１〜Ｔｓ３の生成）
ソフトウェアのインストール後、端末１３の利用者がエージェント２８を呼び出して、補足ソフトウェア識別タグを取得する。作成に至る処理の流れは以下のとおりである。図７は、本実施形態における補足ソフトウェア識別タグの取得に関する動作を例示するフロー図である。
【００５０】
エージェント２８は、端末１３の名称とライセンスを受けたいソフトウェア名とともに、ライセンス要求をライセンスサーバ１８に対して発行する（ステップＡ１）。
【００５１】
ライセンスサーバ１８は、要求されたソフトウェアのライセンス残数を確認し（ステップＡ２）、割り当て不可であれば、その旨を示すメッセージを返却して処理を終了する。
【００５２】
ライセンスサーバ１８は、要求されたソフトウェアのライセンス残数を１だけ減ずる（ステップＡ３）。
【００５３】
ライセンスサーバ１８は、端末１３の名称をEvidence属性内のdeviceId属性に含む補足ソフトウェア識別タグ（例えば、図６（ｂ）の補足ソフトウェア識別タグＴｓ１）を作成し、ライセンスサーバ１８の電子証明書の秘密鍵によって電子署名を行う（ステップＡ４）。
【００５４】
ライセンスサーバ１８は、電子署名済みの補足ソフトウェア識別タグを端末１３に送信する（ステップＡ５）。
【００５５】
エージェント２８は、受信した補足ソフトウェア識別タグを、ディレクトリ２０配下の、対応するソフトウェアのソフトウェア識別タグと同一のディレクトリに保存する（ステップＡ６）。
【００５６】
一方、ライセンスのキャンセル（ないし返却）動作は次のように行われる。端末１３のユーザは、ディレクトリ２０において、ライセンスをキャンセルするソフトウェアに対応する補足ソフトウェア識別タグを消去するか、又は無効化する。エージェント２８は、その旨をライセンスサーバ１８に通知する。ライセンスサーバ１８は、当該ソフトウェアのライセンスの残数を１だけ増加させる。補足ソフトウェア識別タグを消去するか、又は無効化することにより、後述するソフトウェア起動処理において、当該ソフトウェアの起動が不可能となる。これにより、ライセンスコンプライアンスが確保される。
【００５７】
次に、プロセス起動監視部２６がライセンスの有無を判断して、ライセンスのないソフトウェアの起動を阻止する動作について説明する。図８は、本実施形態におけるソフトウェアの起動の動作を例示するフロー図である。
【００５８】
プロセス起動監視部２６は、ＯＳ２２に標準で用意されているプロセス起動ルーチン２４から制御を移される（ステップＢ１）。このとき、プロセス起動監視部２６には、実行ファイル名が情報として引き渡される。
【００５９】
プロセス起動監視部２６は、ソフトウェア識別タグＴ１〜Ｔ３の中からPayload属性内のFile属性内のname属性の値、または、Evidence属性内のFile属性内のname属性の値が、引き渡された実行ファイル名と一致するものを検索する（ステップＢ２）。
【００６０】
ソフトウェア識別タグＴ１〜Ｔ３の中に一致するものがない場合（ステップＢ３のＮｏ）、プロセス起動監視部２６は当該実行ファイルがライセンス管理の対象外であるとみなして、通常の起動ルーチンに制御を戻す（ステップＢ７）。
【００６１】
プロセス起動監視部２６は、検索で合致したソフトウェア識別タグ（例えばＴ１）に対応する補足ソフトウェア識別タグ（例えばＴｓ１）を、同一のディレクトリから取得する（ステップＢ４）。なお、プロセス起動監視部２６は、補足ソフトウェア識別タグが見つからない場合、ライセンスを受けていないものとみなして、当該ソフトウェアの起動を失敗させる。
【００６２】
次に、プロセス起動監視部２６は、補足ソフトウェア識別タグの電子署名を確認する（ステップＢ５）。電子署名がなされていない、または、署名者がライセンスサーバ１８ではない場合（ステップＢ５のＮｏ）、プロセス起動監視部２６はソフトウェアの起動を失敗させる（ステップＢ８）。
【００６３】
補足ソフトウェア識別タグがライセンスサーバ１８により電子署名されている場合（ステップＢ５のＹｅｓ）、プロセス起動監視部２６は補足ソフトウェア識別タグのEvidence属性内のdeviceId属性の値が端末１３の名称と一致するかどうかを確認する（ステップＢ６）。deviceId属性が存在しない、または、deviceId属性が端末の名称と一致しない場合（ステップＢ６のＮｏ）、プロセス起動監視部２６はソフトウェアの起動を失敗させる（ステップＢ８）。
【００６４】
一方、deviceId属性が端末の名称と一致する場合（ステップＢ６のＹｅｓ）、プロセス起動監視部２６は正しくライセンスが払い出された証跡があるものとみなして、通常のプロセス起動ルーチン２４に制御を移し、当該ソフトウェアを起動させる（ステップＢ７）。
【００６５】
［効果］
以上のように、本実施形態のライセンス管理システムによると、国際規格ＩＳＯ／ＩＥＣ  １９７７０−２に定められたソフトウェア識別タグが標準的に保持することのできる属性のみを利用して、容易にライセンスコンプライアンスを実現することができる。
【００６６】
本実施形態では、ソフトウェアの起動を検知するための実行ファイル名を入手するために、PayloadまたはEvidence属性内のFile属性を利用する。なお、国際規格で想定されている本属性の使用目的は、指定されたファイルのサイズやハッシュ値に関して、ソフトウェア識別タグに記載された正しい値と実際のファイルの値を比較することによって、ウイルスなどにより改ざんされていないかを確認することにある。本実施形態では、ＯＳ（Operating System）のプロセス起動の本処理の前に、プロセス起動監視部を設け、本属性に記述されたファイル名を渡して監視させ、一致した場合、本ソフトウェア識別タグの指し示すソフトウェアが起動されようとしていることを認識する。
【００６７】
また、ライセンスが組織（例えば、企業またはその一部門）から配布済みであるか否かについては、Evidence属性内のdeviceId属性を利用して判別する。国際規格で想定されている本属性の使用目的は、インストールを行った後、ソフトウェア棚卸しツールのエージェントが発見したソフトウェア識別タグに対して、補足ソフトウェア識別タグとしてインストール先のマシン名を記載することにある。本実施形態では、ライセンスサーバが端末からのライセンス要求に応じて、当該端末名をdeviceIdに格納した補足ソフトウェア識別タグを作成し、ライセンスサーバの電子証明書の秘密鍵で署名し、端末に返送する。これにより、ライセンスサーバからの承認の下で、特定の端末に対してライセンスが分与されていることを認識させる。
【００６８】
さらに、プロセス起動監視部は、起動されようとするソフトウェアのソフトウェア識別タグを認識し、そのソフトウェア識別タグに対応する補足ソフトウェア識別タグを確認して、自端末名がdeviceId属性に格納されており、補足ソフトウェア識別タグが正しく電子署名されていることが確認できた場合、ＯＳの起動処理に制御を戻す。一方、不一致の場合、起動を失敗させることによって、不正なライセンス状態では起動されないことを確実にして、ライセンスコンプライアンスを実現する。
【００６９】
また、本実施形態によると、インストールに応じて端末に付与される第１のソフトウェア識別タグ（すなわち、ソフトウェアのベンダによって発行されたタグ）と、ライセンス付与に応じて発行される第２のソフトウェア識別タグ（すなわち、補足ソフトウェア識別タグ、ソフトウェアのユーザ企業の管理下で発行されるタグ）を用いてソフトウェアの起動の許否を制御する。かかる構成により、ソフトウェアのインスタンスを改変することなく端末ごとにソフトウェアの起動の許否を制御することが可能となる。また、かかる構成によると、ソフトウェアのベンダから独立した、ソフトウェアのユーザ企業による柔軟なライセンス管理が可能となる。
【００７０】
以上のように、本実施形態では、国際規格ＩＳＯ／ＩＥＣ  １９７７０−２に規定されたソフトウェア識別タグの属性を利用して、組織内で適切にライセンス配布を受けていない場合、ＯＳ（Operating System）のプロセス起動部に判断ルーチンを組み込むことにより、起動できないよう制御する。これにより、ボリュームライセンスを受けた場合のように、ソフトウェアのライセンサから厳密なインストールや起動制御がかけられていない状況においても、容易にライセンスコンプライアンスを実現することができる。
【００７１】
特に、本実施形態に係るライセンス管理システムによると、ライセンスコンプライアンスが確実に遵守される。その理由は、ライセンスの必要なソフトウェアを網羅的に把握し、その実行を監視し、ライセンス不正の状態においては、ソフトウェアの実行を阻止できるからである。また、本実施形態によると、ライセンス情報に特化したリポジトリが不要となる。その理由は、ソフトウェア棚卸しに使用されるソフトウェア識別タグに格納された情報を流用して、起動制御を実現しているからである。
【００７２】
＜変形例＞
次に、上記実施形態の変形例について説明する。ソフトウェアの実行ファイル名（例えば、図６（ａ）のソフトウェア識別タグＴ１のname="app.exe"）は、補足ソフトウェア識別タグＴｓ１〜Ｔｓ３に含まれるように構成してもよい。この場合の差分を以下に示す。
【００７３】
（ソフトウェア識別タグＴ１〜Ｔ３の生成）
変形例においては、インストールに伴って生成されるソフトウェア識別タグＴ１は、ソフトウェアの実行ファイル名を含まなくてもよい。
【００７４】
（補足ソフトウェア識別タグＴｓ１〜Ｔｓ３の生成）
図７のステップＡ４において、ライセンスサーバ１８が作成した補足ソフトウェア識別タグは要求されたソフトウェアの実行ファイル名"app.exe"を含む。ここでは、一例として、規格ではOptionalとなっているPayload属性のFile属性、または、Evidence属性のFile属性に、当該ソフトウェアの実行ファイル名が記載されているものとする。例えば、実行ファイル名が"app.exe"である場合、補足ソフトウェア識別タグＴｓ１には図８に示す情報が含まれる。
【００７５】
プロセス起動監視部２６は、補足ソフトウェア識別タグＴｓ１〜Ｔｓ３の中からPayload属性内のFile属性内のname属性の値、または、Evidence属性内のFile属性内のname属性の値が、引き渡された実行ファイル名と一致するものを検索する（図８のステップＢ２）。
【００７６】
補足ソフトウェア識別タグＴｓ１〜Ｔｓ３の中に一致するものがない場合（ステップＢ３のＮｏ）、プロセス起動監視部２６は当該実行ファイルがライセンス管理の対象外であるとみなして、通常の起動ルーチンに制御を戻す（ステップＢ７）。
【００７７】
プロセス起動監視部２６は、検索で合致した補足ソフトウェア識別タグ（例えばＴｓ１）に対応するソフトウェア識別タグ（例えばＴ１）を、同一のディレクトリから取得する（ステップＢ４）。
【００７８】
次に、プロセス起動監視部２６は、補足ソフトウェア識別タグの電子署名を確認する（ステップＢ５）。電子署名がなされていない、または、署名者がライセンスサーバ１８ではない場合（ステップＢ５のＮｏ）、プロセス起動監視部２６はソフトウェアの起動を失敗させる（ステップＢ８）。
【００７９】
補足ソフトウェア識別タグがライセンスサーバ１８により電子署名されている場合（ステップＢ５のＹｅｓ）、プロセス起動監視部２６は補足ソフトウェア識別タグのEvidence属性内のdeviceId属性の値が端末１３の名称と一致するかどうかを確認する（ステップＢ６）。deviceId属性が存在しない、または、deviceId属性が端末の名称と一致しない場合（ステップＢ６のＮｏ）、プロセス起動監視部２６はソフトウェアの起動を失敗させる（ステップＢ８）。
【００８０】
一方、deviceId属性が端末の名称と一致する場合（ステップＢ６のＹｅｓ）、プロセス起動監視部２６は正しくライセンスが払い出された証跡があるものとみなして、通常のプロセス起動ルーチン２４に制御を移し、当該ソフトウェアを起動させる（ステップＢ７）。
【００８１】
なお、本発明において、下記の形態が可能である。
［形態１］
上記第１の態様に係るライセンス管理システムのとおりである。
［形態２］
前記第１のソフトウェア識別情報は、前記ソフトウェアのベンダによって発行されたものである、
形態１に記載のライセンス管理システム。
［形態３］
前記サーバは、前記端末からの前記ソフトウェアに対するライセンス要求に応じて前記第２のソフトウェア識別情報を発行する、
形態１または２に記載のライセンス管理システム。
［形態４］
前記第１のソフトウェア識別情報は、前記ソフトウェアの実行ファイル名を含み、
前記第２のソフトウェア識別情報は、前記ソフトウェアのライセンスが付与された端末の識別子を含み、
前記端末は、前記端末上で起動を要求されたソフトウェアの実行ファイル名が前記第１のソフトウェア識別情報に含まれる実行ファイル名に一致し、かつ、前記端末の識別子が前記第２のソフトウェア識別情報に記載された識別子に一致する場合、前記要求されたソフトウェアの起動を許可する、
形態１ないし３のいずれか一に記載のライセンス管理システム。
［形態５］
前記第２のソフトウェア識別情報は、前記ソフトウェアの実行ファイル名と前記ソフトウェアのライセンスが付与された端末の識別子を含み、
前記端末は、前記端末上で起動を要求されたソフトウェアの実行ファイル名が前記第１のソフトウェア識別情報に含まれる実行ファイル名に一致し、かつ、前記端末の識別子が前記第２のソフトウェア識別情報に記載された識別子に一致する場合、前記要求されたソフトウェアの起動を許可する、
形態１ないし３のいずれか一に記載のライセンス管理システム。
［形態６］
上記第２の態様に係る端末のとおりである。
［形態７］
前記ソフトウェアに対するライセンス要求をサーバに送信し、前記ライセンス要求に応じて前記サーバにより発行された前記第２のソフトウェア識別情報を受信する通信部を備える、
形態６に記載の端末。
［形態８］
前記第１のソフトウェア識別情報は、前記ソフトウェアのベンダによって発行されたものである、
形態６または７に記載の端末。
［形態９］
前記第１のソフトウェア識別情報は、前記ソフトウェアの実行ファイル名を含み、
前記第２のソフトウェア識別情報は、前記ソフトウェアのライセンスが付与された端末の識別子を含み、
前記制御部は、前記端末上で起動を要求されたソフトウェアの実行ファイル名が前記第１のソフトウェア識別情報に含まれる実行ファイル名に一致し、かつ、前記端末の識別子が前記第２のソフトウェア識別情報に記載された識別子に一致する場合、前記要求されたソフトウェアの起動を許可する、
形態６ないし８のいずれか一に記載の端末。
［形態１０］
前記第２のソフトウェア識別情報は、前記ソフトウェアの実行ファイル名と前記ソフトウェアのライセンスが付与された端末の識別子を含み、
前記制御部は、前記端末上で起動を要求されたソフトウェアの実行ファイル名が前記第２のソフトウェア識別情報に含まれる実行ファイル名に一致し、かつ、前記端末の識別子が前記第２のソフトウェア識別情報に記載された識別子に一致する場合、前記要求されたソフトウェアの起動を許可する、
形態６ないし８のいずれか一に記載の端末。
［形態１１］
上記第３の態様に係るサーバのとおりである。
［形態１２］
前記第１のソフトウェア識別情報は、前記ソフトウェアのベンダによって発行されたものである、
形態１１に記載のサーバ。
［形態１３］
前記ソフトウェアのユーザ企業の管理下で前記第２のソフトウェア識別情報を発行する、
形態１１または１２に記載のサーバ。
［形態１４］
前記第２のソフトウェア識別情報は、前記ソフトウェアに対するライセンスが付与された端末の識別子を含む、
形態１１ないし１３のいずれか一に記載のサーバ。
［形態１５］
前記第２のソフトウェア識別情報は、前記ソフトウェアの実行ファイル名と前記ソフトウェアに対するライセンスが付与された端末の識別子を含む、
形態１１ないし１３のいずれか一に記載のサーバ。
［形態１６］
上記第４の態様に係るライセンス管理方法のとおりである。
［形態１７］
前記端末が、前記ソフトウェアに対するライセンス要求をサーバに送信するステップと、
前記ライセンス要求に応じて前記サーバにより発行された前記第２のソフトウェア識別情報を受信するステップと、を含む、
形態１６に記載のライセンス管理方法。
［形態１８］
前記第１のソフトウェア識別情報は、前記ソフトウェアのベンダによって発行されたものである、
形態１６または１７に記載のライセンス管理方法。
［形態１９］
前記サーバは、前記端末からの前記ソフトウェアに対するライセンス要求に応じて前記第２のソフトウェア識別情報を発行する、
形態１６ないし１８のいずれか一に記載のライセンス管理方法。
［形態２０］
前記第１のソフトウェア識別情報は、前記ソフトウェアの実行ファイル名を含み、
前記第２のソフトウェア識別情報は、前記ソフトウェアのライセンスが付与された端末の識別子を含み、
前記端末上で起動を要求されたソフトウェアの実行ファイル名が前記第１のソフトウェア識別情報に含まれる実行ファイル名に一致し、かつ、前記端末の識別子が前記第２のソフトウェア識別情報に記載された識別子に一致する場合、前記要求されたソフトウェアの起動を許可する、
形態１６ないし１９のいずれか一に記載のライセンス管理方法。
［形態２１］
前記第２のソフトウェア識別情報は、前記ソフトウェアの実行ファイル名と前記ソフトウェアのライセンスが付与された端末の識別子を含み、
前記端末上で起動を要求されたソフトウェアの実行ファイル名が前記第２のソフトウェア識別情報に含まれる実行ファイル名に一致し、かつ、前記端末の識別子が前記第２のソフトウェア識別情報に記載された識別子に一致する場合、前記要求されたソフトウェアの起動を許可する、
形態１６ないし１９のいずれか一に記載のライセンス管理方法。
［形態２２］
上記第５の態様に係るライセンス管理方法のとおりである。
［形態２３］
上記第６の態様に係るライセンス管理方法のとおりである。
［形態２４］
上記第７の態様に係るプログラムのとおりである。
［形態２５］
上記第８の態様に係るプログラムのとおりである。
【００８２】
なお、上記特許文献の全開示内容は、本書に引用をもって繰り込み記載されているものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素（各請求項の各要素、各実施形態の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
【符号の説明】
【００８３】
２    ライセンス管理システム
４    端末
６    サーバ
８    記憶部
１０    制御部
１２    通信部
１３    端末
１４    受信部
１６    発行部
１８    ライセンスサーバ
２０    ソフトウェア識別タグ保存ディレクトリ（ディレクトリ）
２１    ベンダ別サブディレクトリ
２２    オペレーティングシステム（ＯＳ：Operating System）
２４    プロセス起動ルーチン
２６    プロセス起動監視部
２８    ソフトウェアライセンス管理エージェント（エージェント）
Ｔ１〜Ｔ３    ソフトウェア識別タグ
Ｔｓ１〜Ｔｓ３    補足ソフトウェア識別タグ
【図１】
0006662054.tif 000002
【図２】
0006662054.tif 000003
【図３】
0006662054.tif 000004
【図４】
0006662054.tif 000005
【図５】
0006662054.tif 000006
【図６】
0006662054.tif 000007
【図７】
0006662054.tif 000008
【図８】
0006662054.tif 000009
【図９】
0006662054.tif 000010