(57)【要約】      （修正有）【課題】有償ソフトウェアのライセンスを有効に活用することで、ソフトウェアライセンスの必要本数を最小限に減少させる。【解決手段】ソフトウエアのユーザ毎の利用日時を記録するログから、ユーザ毎の利用実績を集計し、利用実績テーブルに書き込む。その後、利用実績チェック部が所定期間内におけるユーザの利用実績に応じて、ライセンス削除対象ユーザのリストを出力し、長期間使っていないユーザについては、当該ライセンスを剥奪する。【選択図】図２
2008123048.tif 000002
【特許請求の範囲】
【請求項１】
ユーザ毎のライセンス付与状態を格納するライセンス管理テーブルと、
有償ソフトウェアのユーザ毎の利用日時を記録するログから、ユーザ毎の利用実績を集計するログ解析部と、
前記ログ解析部によってユーザ毎の利用実績が記録される利用実績テーブルと、
前記ライセンス管理テーブルと前記利用実績テーブルを読み込み、所定期間内におけるユーザの利用実績に応じて、ライセンス削除対象ユーザのリストを出力する利用実績チェック部と
よりなることを特徴とする、ソフトウェアライセンス運用管理装置。
【請求項２】
前記ログ解析部は、第１の利用期間と、前記第１の利用期間より長い期間である第２の利用期間について集計を行い、その結果を前記利用実績テーブルに記録するものであり、
前記利用実績チェック部は、前記第１の利用期間にかかるライセンス警告対象ユーザのリストを出力し、前記第２の利用期間にかかるライセンス削除対象ユーザのリストを出力することを特徴とする、請求項１記載のソフトウェアライセンス運用管理装置。
【請求項３】
ソフトウェアのユーザ毎の利用日時を記録するログから、ユーザ毎の利用実績を集計し、利用実績テーブルに書き込む第１のステップと、
ユーザ毎のライセンス付与状態を格納するライセンス管理テーブルと、前記利用実績テーブルを読み込み、所定期間内におけるユーザの利用実績に応じて、ライセンス削除対象ユーザのリストを出力する第２のステップと
よりなることを特徴とする、ソフトウェアライセンス運用管理方法。
【請求項４】
前記第１のステップは、前記ユーザ毎の利用実績を、第１の利用期間と、前記第１の利用期間より長い期間である第２の利用期間のそれぞれについて集計を行うものであり、
前記第２のステップは、前記第１の利用期間にかかるライセンス警告対象ユーザのリストを出力すると共に、前記第２の利用期間にかかるライセンス削除対象ユーザのリストを出力することを特徴とする、請求項３記載のソフトウェアライセンス運用管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、主に企業等の組織内で複数人が複数のソフトウェアを使用する環境において、ソフトウェアの利用実績の情報を基に、未使用ユーザのライセンスを削除することができる、ソフトウェアライセンス運用管理装置及び方法に関する。
【背景技術】
【０００２】
有償ソフトウェアを複数人が利用する場合のライセンス体系として、ＣＰＵライセンスとネームドライセンスが多く用いられる。
ＣＰＵライセンスとは、利用ユーザの数に関わらず、ソフトウェアがインストールされるコンピュータのＣＰＵの数に応じてライセンス価格が決定されるライセンス体系である。
ネームドライセンスとは、利用ユーザの数に応じてライセンス価格が決定されるライセンス体系である。
なお、ライセンスに関する先行技術文献を特許文献１に示す。
【特許文献１】特開２００６−２７９９３５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ネームドライセンスをベースに、複数のライセンス体系を採用する有償ソフトウェアがある。
このソフトウェアは、提供される機能に応じて、ライセンスの価格が異なる。
一例として、アプリケーションＡ、アプリケーションＢそしてアプリケーションＣよりなる有償ソフトウェアを説明する。
アプリケーションＡは最も高価であり、最も多くの機能が提供される。
アプリケーションＢはアプリケーションＡよりやや安価であり、提供される機能はアプリケーションＡよりやや少ない。
アプリケーションＣは最も安価であり、提供される機能はアプリケーションＢよりも少ない。
アプリケーションＡのライセンスを持つ者は、アプリケーションＢ及びアプリケーションＣも利用できる。
アプリケーションＢのライセンスを持つ者は、アプリケーションＣも利用できる一方、アプリケーションＡは利用できない。
アプリケーションＣのライセンスを持つ者は、アプリケーションＣだけ利用でき、アプリケーションＡ及びアプリケーションＢは利用できない。
このような構成の有償ソフトウェアに対し、企業内の社員が利用する場合、各アプリケーションの利用頻度が問題になる。
高額なアプリケーションＡのユーザが全くアプリケーションＡを利用していない場合は、ライセンスが有効利用されていない。
もし、そのようなユーザがアプリケーションＣのみを使用しているのであれば、アプリケーションＡのライセンスを剥奪する代わりに、アプリケーションＣのライセンスを付与すれば、ライセンスの有効活用に繋がる。
また、そのように管理できれば、高額なライセンスの本数を減らすことが期待できる。
【０００４】
本発明はかかる点に鑑みてなされたものであり、ソフトウェアライセンスの有効利用を促進する、ソフトウェアライセンス運用管理装置及び方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するための本発明は、ソフトウェアのユーザ毎の利用日時を記録するログから、ログ解析部にてユーザ毎の利用実績を集計し、利用実績テーブルに書き込む。その後、利用実績チェック部がユーザ毎のライセンス付与状態を格納するライセンス管理テーブルと、利用実績テーブルを読み込み、所定期間内におけるユーザの利用実績に応じて、ライセンス削除対象ユーザのリストを出力するものである。
【０００６】
定期的にソフトウェアの利用状態を集計し、全く使用していないユーザを見つけたら、当該ユーザはもはやそのライセンスを所有する必要がないものと判断して、削除処理を実行する。
なお、削除処理に先立ち、削除の予告として警告を行う処理を含めるとよい。
【発明の効果】
【０００７】
本発明により、高額なソフトウェアライセンスを企業内で有効に活用することができる、ライセンス管理装置及び方法を提供できる。
【発明を実施するための最良の形態】
【０００８】
以下、本発明の実施の形態を、図１〜図１２を参照して説明する。
【０００９】
図１は、本発明の実施の形態である、ライセンス管理プログラムが稼動するライセンス管理パソコン（以下「パソコン」を「ＰＣ」と略す）を中心とする、社内ネットワークのブロック図である。
ある会社の建物の中には、ＬＡＮ１０２が敷設されている。ＬＡＮ１０２には、各社員毎にＰＣ（社員Ａ用クライアントＰＣ１０３、社員Ｂ用クライアントＰＣ１０４、社員Ｃ用クライアントＰＣ１０５等）があてがわれている。
一方、ＬＡＮ１０２には有償ソフトウェア提供サーバ１０６も接続されている。有償ソフトウェア提供サーバ１０６は社員が利用する業務アプリケーションソフトウェア開発ツールである、アプリケーションＡ１０７、アプリケーションＢ１０８及びアプリケーションＣ１０９が格納されている。
アプリケーションＡ１０７、アプリケーションＢ１０８及びアプリケーションＣ１０９は夫々、ユーザである社員毎に利用の可否が管理されている。これがユーザ認証テーブル１１０である。ユーザ認証テーブル１１０には、ユーザである社員のＩＤと、対応するライセンスの有無が記録されている。
また、アプリケーションＡ１０７、アプリケーションＢ１０８及びアプリケーションＣ１０９は、ユーザが利用した日時をログＡ１１１、ログＢ１１２そしてログＣ１１３にそれぞれ追記録する。
ログＡ１１１、ログＢ１１２そしてログＣ１１３はテキストファイルである。これらの詳細は後述する。
【００１０】
各社員は、各々のＰＣ（社員Ａ用クライアントＰＣ１０３、社員Ｂ用クライアントＰＣ１０４、社員Ｃ用クライアントＰＣ１０５等）を通じて、アプリケーションＡ１０７、アプリケーションＢ１０８及びアプリケーションＣ１０９を利用する。プロトコルは例えばＨＴＴＰ（Hyper Text Transfer Protocol）である。社員はｃｏｏｋｉｅ（クッキー：ｗｅｂサイトの提供者が、ｗｅｂブラウザを通じて訪問者のコンピュータに一時的にデータを書き込んで保存させるしくみ。殆どの場合、アルファベット及び数字の１バイト文字列にて構成される。）を用いた認証を経た後、アプリケーションＡ１０７、アプリケーションＢ１０８及びアプリケーションＣ１０９を利用する。なお、有償ソフトウェア提供サーバ１０６の中にはＡｐａｃｈｅ(http://www.apache.org/)等のｗｅｂサーバソフトウェアが存在するが、アプリケーションＡ等を利用するプロトコルは発明の主要部分ではないので、図示を省略している。
各社員は、ユーザ認証テーブル１１０にて管理されている、各社員毎に割り当てられているライセンスに応じて、アプリケーションの利用の可否が設定されている。
図１中、アプリケーションＡ１０７は「ＡＡライセンス」を持つ者だけが利用できる。
アプリケーションＢ１０８は「ＡＢライセンス」を持つ者と、「ＡＡライセンス」を持つ者が利用できる。
アプリケーションＣ１０９は「ＡＣライセンス」を持つ者と、「ＡＢライセンス」を持つ者と、「ＡＡライセンス」を持つ者が利用できる。
すなわち、最上位のライセンスがＡＡライセンスであり、次にＡＢライセンス、最下位のライセンスがＡＣライセンスである。各ライセンスは下位のライセンスを包含する。
したがって、ＡＡライセンス保有者はアプリケーションＡ１０７、Ｂ及びＣの全てが利用できる。
ＡＢライセンス保有者はアプリケーションＢ１０８及びＣが利用できる代わりに、アプリケーションＡ１０７は利用できない。
ＡＣライセンス保有者はアプリケーションＣ１０９だけが利用でき、アプリケーションＡ１０７及びＢは利用できない。
【００１１】
一方、ライセンス管理ＰＣ１１４は社員の一人である社員Ｙが利用するＰＣであり、社員Ａ用クライアントＰＣ１０３、社員Ｂ用クライアントＰＣ１０４、社員Ｃ用クライアントＰＣ１０５等と同様に、ＬＡＮ１０２に接続されている。その中身のハードウェアは他のＰＣと殆ど変わらない。但し、ソフトウェアについては、本実施形態にかかるライセンス管理プログラムが、内蔵する図示しないＨＤＤ等の不揮発性ストレージに格納されている。
社員Ｙはライセンス管理業務として、毎月一回ライセンス管理ＰＣ１１４のライセンス管理プログラムを稼動して、ライセンス管理業務を行う。各社員毎にアプリケーションの利用回数をログＡ１１１、Ｂ及びＣから取得し、利用実績に応じて以下の処理をする。
三ヶ月の間一度も利用していない社員に対しては、「あと三ヶ月利用実績がない場合は、当該ライセンスを削除します。」という内容の警告メールを送信する。
六ヶ月の間一度も利用していない社員に対しては、「一週間以内に弁明の返信をお願いします。さもなくば、当該ライセンスを削除します。」という内容の削除予告メールを送信する。
そして、利用を申請している社員に対し、削除したりすることで余っているライセンスを付与し直す。
こうして、月毎にチェックを行うことで、保有するライセンスの有効利用を図るものである。
なお、ＬＡＮ１０２に接続されているメールサーバ１１５は、本実施形態においては、警告メールと削除予告メールを該当社員に一括送信する目的で用いられる。
【００１２】
以下、説明の便宜上、ライセンス管理ＰＣ１１４のＯＳはマイクロソフト社のＷｉｎｄｏｗｓ（登録商標）であること、そして有償ソフトウェア提供サーバ１０６はＰＯＳＩＸ（Portable Operating System Interface for UNIX）（ＵＮＩＸは登録商標）系ＯＳであることを前提として説明する。勿論、本発明の技術思想は当該ＯＳに限定されるものではない。
ライセンス管理ＰＣ１１４の図示しない不揮発性ストレージには、マイクロソフト社の表計算ソフトウェアであるＥｘｃｅｌのワークシートにて作成されたライセンスチェックプログラムが格納されている。また、ライセンスチェックプログラムはこれだけではなく、ＳＳＨクライアントソフトウェアとＳＣＰクライアントソフトウェアが協調動作する。
ＳＳＨはSecure SHellの略で、主にＰＯＳＩＸ系ＯＳで利用される、ＴＥＬＮＥＴを暗号化したようなものである。ネットワークを介して別のコンピュータにログインしたり、遠隔地のマシンでコマンドを実行したり、他のマシンへファイルをコピーしたり（ＳＣＰ：Secure COpy）することができる。
ＳＳＨクライアントソフトウェアは、ライセンス管理ＰＣ１１４が有償ソフトウェア提供サーバ１０６にＳＳＨ接続するためのものである。ＳＳＨ接続した後は、ログＡ１１１、ログＢ１１２そしてログＣ１１３から所定のフィルタリング処理を施して、後述する利用実績テーブルを作成するコマンドを実行する。コマンドの詳細は後述する。
ＳＣＰクライアントソフトウェアは、ＳＳＨプロトコルを用いて、作成された利用実績テーブルをライセンス管理ＰＣ１１４にダウンロードするためのソフトウェアである。
つまり、有償ソフトウェア提供サーバ１０６にはＳＳＨデーモンが稼動しており、所定のアカウントを所有する許可されたユーザだけがライセンス管理ＰＣ１１４にＳＳＨ接続できる。
【００１３】
図２はライセンス管理ＰＣ１１４の機能ブロック図である。
ライセンス管理ＰＣ１１４の、本実施形態における主要な機能はライセンス管理プログラムによって提供される。
ライセンス管理プログラムはどのような実装形式でもよい。本実施形態では一例として、前述のようにＥｘｃｅｌのワークシートと幾つかの外部コマンド等にて構成されるものとする。
ワークシート２０２内にはライセンス管理テーブル２０３と利用実績テーブル２０４とチェックプログラム２０５が格納されている。そして、この二つのテーブルをチェックプログラム２０５がチェックすることで、先に述べた警告対象社員と削除予告対象社員のリストを作成する。これが一括送信メール対象者リスト２０６である。
ＡＡライセンス保有者のうち、直近三ヶ月間一度も利用していない社員のリストが、ＡＡ警告リスト２０７である。
ＡＢライセンス保有者のうち、直近三ヶ月間一度も利用していない社員のリストが、ＡＢ警告リスト２０８である。
ＡＣライセンス保有者のうち、直近三ヶ月間一度も利用していない社員のリストが、ＡＣ警告リスト２０９である。
ＡＡライセンス保有者のうち、直近六ヶ月間一度も利用していない社員のリストが、ＡＡ削除リスト２１０である。
ＡＢライセンス保有者のうち、直近六ヶ月間一度も利用していない社員のリストが、ＡＢ削除リスト２１１である。
ＡＣライセンス保有者のうち、直近六ヶ月間一度も利用していない社員のリストが、ＡＣ削除リスト２１２である。
これら一括送信メール対象者リスト２０６はメールサーバ１１５にて警告メール或は削除予告メールの一括送信に用いられる。
ログ解析部２１３はログＡ１１１、ログＢ１１２及びログＣ１１３に所定のフィルタリング処理を行って、利用実績テーブル２０４に各社員毎の利用実績集計結果を記録する機能を提供する。一例としては、ＳＳＨクライアントとＳＣＰクライアント、そして有償ソフトウェア提供サーバ１０６上で実行するコマンドよりなる。したがって、ログ解析部２１３は必ずしもライセンス管理ＰＣ１１４内で完結している訳ではない。
【００１４】
図３はライセンス管理テーブル２０３と利用実績テーブル２０４の内容を概略的に示すものである。
ライセンス管理テーブル２０３は、フィールド名に
社員名、社員ＩＤ、
ＡＡライセンスフラグ、ＡＡ例外期間、ＡＡ見直し、
ＡＢライセンスフラグ、ＡＢ例外期間、ＡＢ見直し、
ＡＣライセンスフラグ、ＡＣ例外期間、ＡＣ見直し
の各フィールドを備える。
ＡＡライセンスフラグは二値のフィールドであり、１でライセンスあり、０でライセンスなしを意味する。
ＡＡ例外期間は月単位を意味する数値フィールドであり、０で例外期間なし、１で例外期間一ヶ月、６で例外期間六ヶ月…を意味する。社員によっては役員クラス等の重役は、滅多に当該ライセンスを利用しないものの、いざというときに使える状態にしておきたいと要望する場合もあるので、そのような社員には”９９９９”等の極大値を設定したりする。
ＡＡ見直しは利用実績集計の際のマーキングを行うフィールドである。
集計処理に先立ってこのフィールドを全て空に初期化しておき、実績判定の結果、三ヶ月未使用の場合には「３」を、六ヶ月未使用の場合には「６」を、ここに記入する。
集計処理では、このフィールドに「３」が記録されている社員ＩＤを集計して、ＡＡ警告リスト２０７を作成すると共に、「６」が記録されている社員ＩＤを集計して、ＡＡ削除リスト２１０を作成する。
ＡＢライセンスフラグ、ＡＢ例外期間、ＡＢ見直し、ＡＣライセンスフラグ、ＡＣ例外期間、ＡＣ各フィールドも上述のＡＡライセンスフラグ、ＡＡ例外期間、ＡＡ見直しと意味は同じである。
【００１５】
利用実績テーブル２０４は、フィールド名に
社員ＩＤ、
ＡＡ６ヶ月利用実績、
ＡＡ３ヶ月利用実績、
ＡＢ６ヶ月利用実績、
ＡＢ３ヶ月利用実績、
ＡＣ６ヶ月利用実績、
ＡＣ３ヶ月利用実績
の各フィールドを備える。
夫々のフィールドには、直近三ヶ月或は六ヶ月の間の、当該ライセンスに対応するアプリケーションの利用回数を記録する。
【００１６】
図４（ａ）はログの一例である。ログＡ１１１には西暦による４桁の年、２桁の月、２桁の日、２桁の時間よりなる１２桁の日時フィールドと、社員ＩＤフィールドよりなるテキストファイルである。
カンマがフィールドセパレータ（フィールド区切り子）として用いられている。
社員Ｙはライセンス管理ＰＣ１１４を用いて有償ソフトウェア提供サーバ１０６にＳＳＨログインして、以下のコマンドを発行する。
〔数１〕
awk'BEGIN{FS=","}/^2006(0[89]|10)/{print $2}' /var/log/app/ＡＡ.log|sort|uniq -c > /tmp/ＡＡ_list.txt
【００１７】
「awk」「sort」「uniq」はＰＯＳＩＸ系ＯＳにおいて周知のフィルタコマンドである。ＭＳ−ＤＯＳ（登録商標）他多くのＯＳに移植されており、Ｗｉｎｄｏｗｓでも利用可能である。
awkはテキストフィルタ機能に特化されたインタプリタである。上述のコマンドラインでは、
テキストの入力に先立ち（BEGINステートメント）、
入力文字列のフィールドセパレータをカンマに設定し（システム変数FS）、
正規表現にて、行頭から「200608」「200609」「200610」のいずれかの文字列を含む行について（/^2006(0[89]|10)/）、
二番目のフィールドを標準出力に出力する（print $2）
ことを、 /var/log/app/ＡＡ.log に対して実行している。
こうして、２００６年８月、９月及び１０月中にアプリケーションＡ１０７を利用したユーザ（社員）のＩＤだけが標準出力に出力される。
この出力を、sortで並び替えて、uniqで重複分をまとめると共に、重複している行を計数して、 /tmp/ＡＡ_list.txt へリダイレクト出力する。なお、uniqのコマンド文字列中、"-c"はオプションスイッチであり、重複行を計数した数を出力する機能を意味する。
この出力結果が図４（ｂ）である。つまり、指定した期間内の社員ＩＤの出現回数が利用回数となる。
こうして、 /tmp/ＡＡ_list.txt に出力された集計結果のテキストファイルを、ＳＣＰクライアントにてダウンロードし、利用実績テーブル２０４に読み込ませる。
【００１８】
図５は、ライセンス管理ＰＣ１１４内における、最初のライセンス管理業務である、ライセンス管理プログラムのフローチャートである。
ここで「最初の」と記しているのは、この一連の処理の後、一週間後に後述する図６の作業があることによる。
処理を開始すると（Ｓ５０１）、先ず有償ソフトウェア提供サーバ１０６にＳＳＨログインし、各ライセンス毎のログから前述のコマンドを実行して、利用実績テーブル２０４の更新を行う（Ｓ５０２）。
次に、ライセンス管理テーブル２０３中のＡＡ例外期間、ＡＢ例外期間、ＡＣ例外期間について、１以上のフィールドについて、１減じる。また、全ユーザのＡＡ見直し、ＡＢ見直し及びＡＣ見直しの各フィールドを空にする（Ｓ５０３）。
そして、ライセンス管理テーブル２０３中の各ユーザ毎に、６ヶ月未使用か否か、ライセンスチェック処理を行う（Ｓ５０４）。
更に、ライセンス管理テーブル２０３中の各ユーザ毎に、３ヶ月未使用か否か、ライセンスチェック処理を行う（Ｓ５０５）。
これらライセンスチェック処理によって、一括送信メール対象者リスト２０６が得られる。
次に、６ヶ月チェック処理の一括送信メール対象者リスト２０６と、３ヶ月チェック処理の一括送信メール対象者リスト２０６とを照合して、重複する社員ＩＤを、３ヶ月チェック処理の一括送信メール対象者リスト２０６から削除する処理を行う（Ｓ５０６）。つまり、６ヶ月未使用の社員は３ヶ月未使用であることは明白であり、そのような社員に３ヶ月未使用の警告メールを送る必要はないからである。
最後に、メールサーバ１１５にて一括メール送信処理を行い（Ｓ５０７）、一連の処理を終了する（Ｓ５０８）。
【００１９】
図６は、ライセンス管理業務の最終処理である、ライセンスの削除処理のフローチャートである。但し、フローとはいうものの、その判断処理の殆どは人間による処理である。
図５の一連の処理から一週間を経過したら（Ｓ６０１）、６ヶ月未使用による削除対象社員（ユーザ）から弁明のメールが来ているかを検証する（Ｓ６０２）。
弁明の返信メールが来ていないユーザはこの時点でライセンスを削除する（Ｓ６０３）。
弁明の返信メールが来てれば、弁明理由が妥当であるか否か、その内容を吟味する（Ｓ６０４）。
弁明理由が明記されていない、或は妥当でない場合は、ライセンスを削除する（Ｓ６０３）。
弁明理由が妥当である場合は、更に猶予を持たせるために、当該ユーザの該当ライセンスにおける例外期間に、「６」を記入する（Ｓ６０５）。すなわち、当該ユーザの該当ライセンスについて、６ヶ月の猶予を与えるのである。そして、一連の処理を終了する（Ｓ６０６）。
以上に述べた、図５の処理と図６の処理が、大まかなライセンス削除処理の流れである。
【００２０】
これ以降、図７から図１２までは、主に図５の処理内容を詳述するものである。
図７及び図８は、６ヶ月未使用社員のチェック処理を示すフローチャートである。図５のステップＳ５０４に相当する。すなわち、社員がライセンスを所持するアプリケーションについて６ヶ月使用していないか否かをチェックし、ライセンス削除予告メール送信対象者のリストを作成する処理である。
処理を開始すると（Ｓ７０１）、ライセンス管理テーブル２０３の最初のレコードについて注目する（Ｓ７０２）。つまり、最初のレコードから順番に最後のレコードまで処理を行う、ループ処理の最初のステップである。
これ以降はＡＡライセンス、ＡＢライセンス、ＡＣライセンスの順に、各ライセンス毎の利用実績のチェックを行う処理である。
最初に、ＡＡライセンス所有者について、除外期間が１以上か、或は利用実績があるかを検証する（Ｓ７０３）。
ライセンス管理テーブル２０３を見て、ＡＡライセンス所有者で、且つＡＡ除外期間が１以上の場合は、まだ削除対象ではない。
また、利用実績テーブル２０４の当該ユーザＩＤのレコードを見て、ＡＡ６ヶ月利用実績のフィールドが１以上であれば、少なくとも６ヶ月のうちに一回以上は利用していることとなるので、削除対象外となる。
次に、ＡＡライセンス所有者について、利用実績がないユーザを見つける処理を行う（Ｓ７０４）。
ライセンス管理テーブル２０３を見て、
ＡＡライセンス所有者且つＡＡ除外期間が０であり、且つ、
利用実績テーブル２０４の当該ユーザＩＤのレコードを見て、
ＡＡ６ヶ月利用実績のフィールドが０
であれば、ＡＡライセンス所有者でありながら、６ヶ月のうちに一回も利用していないこととなる。
このようなユーザは、ＡＡライセンス削除対象となる。そこで、目印として「ＡＡ見直し」フィールドに「６」を記入する（Ｓ７０５）。
なお、この分岐判断において「Ｎ」である場合は、当該ユーザはＡＡライセンスを保有していないこととなる。
【００２１】
次に、ＡＢライセンス所有者について、先のＡＡライセンス所有者について同様の処理を行う。
先ず、ＡＢライセンス所有者の除外期間が１以上か、或は利用実績があるかを検証する（Ｓ７０６）。
ライセンス管理テーブル２０３を見て、ＡＢライセンス所有者で、且つＡＢ除外期間が１以上の場合は、まだ削除対象ではない。
また、利用実績テーブル２０４の当該ユーザＩＤのレコードを見て、ＡＢ６ヶ月利用実績のフィールドが１以上であれば、少なくとも６ヶ月のうちに一回以上は利用していることとなるので、削除対象外となる。
次に、ＡＢライセンス所有者について、利用実績がないユーザを見つける処理を行う（Ｓ７０７）。
ライセンス管理テーブル２０３を見て、
ＡＢライセンス所有者且つＡＢ除外期間が０であり、且つ、
利用実績テーブル２０４の当該ユーザＩＤのレコードを見て、
ＡＢ６ヶ月利用実績のフィールドが０
であれば、ＡＢライセンス所有者でありながら、６ヶ月のうちに一回も利用していないこととなる。
このようなユーザは、ＡＢライセンス削除対象となる。そこで、目印として「ＡＢ見直し」フィールドに「６」を記入する（Ｓ７０８）。
なお、この分岐判断において「Ｎ」である場合は、当該ユーザはＡＢライセンスを保有していないこととなる。
【００２２】
次に、ＡＣライセンス所有者について、先のＡＡライセンス所有者及びＡＢライセンス所有者について同様の処理を行う。
先ず、ＡＣライセンス所有者の除外期間が１以上か、或は利用実績があるかを検証する（Ｓ８０９）。
ライセンス管理テーブル２０３を見て、ＡＣライセンス所有者で、且つＡＣ除外期間が１以上の場合は、まだ削除対象ではない。
また、利用実績テーブル２０４の当該ユーザＩＤのレコードを見て、ＡＣ６ヶ月利用実績のフィールドが１以上であれば、少なくとも６ヶ月のうちに一回以上は利用していることとなるので、削除対象外となる。
次に、ＡＣライセンス所有者について、利用実績がないユーザを見つける処理を行う（Ｓ８１０）。
ライセンス管理テーブル２０３を見て、
ＡＣライセンス所有者且つＡＣ除外期間が０であり、且つ、
利用実績テーブル２０４の当該ユーザＩＤのレコードを見て、
ＡＣ６ヶ月利用実績のフィールドが０
であれば、ＡＣライセンス所有者でありながら、６ヶ月のうちに一回も利用していないこととなる。
このようなユーザは、ＡＣライセンス削除対象となる。そこで、目印として「ＡＣ見直し」フィールドに「６」を記入する（Ｓ８１１）。
なお、この分岐判断において「Ｎ」である場合は、当該ユーザはＡＣライセンスを保有していないこととなる。
【００２３】
上述したライセンスチェック処理によって、６ヶ月間の利用実績がないライセンスについては、各ライセンス毎の「見直し」フィールドに「６」が付される。逆に、利用実績があったり、除外期間が１以上であれば、「見直し」フィールドは空欄のままとなる。
【００２４】
あるレコード（ユーザ）について一連のライセンスチェック処理が終わったら、次のレコードの存在の有無を検証する（Ｓ８１２）。次のレコードがあれば、次のレコードについて再度一連のライセンスチェック処理を行う（Ｓ８１３）。
【００２５】
全てのレコードについてライセンスチェック処理を行った後は（Ｓ８１２のＹ）、「見直し」フィールドを注目して、各ライセンス毎に削除リストを作成する。
ＡＡ見直しフィールドに「６」が記入されているレコードは、ＡＡライセンス削除対象ユーザである。そこで、このレコードのユーザＩＤを、ＡＡ削除リスト２１０に出力する（Ｓ８１４）。
ＡＢ見直しフィールドに「６」が記入されているレコードは、ＡＢライセンス削除対象ユーザである。そこで、このレコードのユーザＩＤを、ＡＢ削除リスト２１１に出力する（Ｓ８１５）。
ＡＣ見直しフィールドに「６」が記入されているレコードは、ＡＣライセンス削除対象ユーザである。そこで、このレコードのユーザＩＤを、ＡＣ削除リスト２１２に出力する（Ｓ８１６）。
こうして、一連の６ヶ月未使用社員のチェック処理を終了する（Ｓ８１７）。
【００２６】
図９及び図１０は、３ヶ月未使用社員のチェック処理を示すフローチャートである。図５のステップＳ５０５に相当する。すなわち、社員がライセンスを所持するアプリケーションについて３ヶ月使用していないか否かをチェックし、ライセンス警告メール送信対象者のリストを作成する処理である。
処理を開始すると（Ｓ９０１）、ライセンス管理テーブル２０３の最初のレコードについて注目する（Ｓ９０２）。つまり、最初のレコードから順番に最後のレコードまで処理を行う、ループ処理の最初のステップである。
これ以降はＡＡライセンス、ＡＢライセンス、ＡＣライセンスの順に、各ライセンス毎の利用実績のチェックを行う処理である。
最初に、ＡＡライセンス所有者について、除外期間が１以上か、或は利用実績があるかを検証する（Ｓ９０３）。
ライセンス管理テーブル２０３を見て、ＡＡライセンス所有者で、且つＡＡ除外期間が１以上の場合は、まだ警告対象ではない。
また、利用実績テーブル２０４の当該ユーザＩＤのレコードを見て、ＡＡ３ヶ月利用実績のフィールドが１以上であれば、少なくとも３ヶ月のうちに一回以上は利用していることとなるので、警告対象外となる。
次に、ＡＡライセンス所有者について、利用実績がないユーザを見つける処理を行う（Ｓ９０４）。
ライセンス管理テーブル２０３を見て、
ＡＡライセンス所有者且つＡＡ除外期間が０であり、且つ、
利用実績テーブル２０４の当該ユーザＩＤのレコードを見て、
ＡＡ３ヶ月利用実績のフィールドが０
であれば、ＡＡライセンス所有者でありながら、３ヶ月のうちに一回も利用していないこととなる。
このようなユーザは、ＡＡライセンス警告対象となる。そこで、目印として「ＡＡ見直し」フィールドに「３」を記入する（Ｓ９０５）。
なお、この分岐判断において「Ｎ」である場合は、当該ユーザはＡＡライセンスを保有していないこととなる。
【００２７】
次に、ＡＢライセンス所有者について、先のＡＡライセンス所有者について同様の処理を行う。
先ず、ＡＢライセンス所有者の除外期間が１以上か、或は利用実績があるかを検証する（Ｓ９０６）。
ライセンス管理テーブル２０３を見て、ＡＢライセンス所有者で、且つＡＢ除外期間が１以上の場合は、まだ警告対象ではない。
また、利用実績テーブル２０４の当該ユーザＩＤのレコードを見て、ＡＢ３ヶ月利用実績のフィールドが１以上であれば、少なくとも３ヶ月のうちに一回以上は利用していることとなるので、警告対象外となる。
次に、ＡＢライセンス所有者について、利用実績がないユーザを見つける処理を行う（Ｓ９０７）。
ライセンス管理テーブル２０３を見て、
ＡＢライセンス所有者且つＡＢ除外期間が０であり、且つ、
利用実績テーブル２０４の当該ユーザＩＤのレコードを見て、
ＡＢ３ヶ月利用実績のフィールドが０
であれば、ＡＢライセンス所有者でありながら、３ヶ月のうちに一回も利用していないこととなる。
このようなユーザは、ＡＢライセンス警告対象となる。そこで、目印として「ＡＢ見直し」フィールドに「３」を記入する（Ｓ９０８）。
なお、この分岐判断において「Ｎ」である場合は、当該ユーザはＡＢライセンスを保有していないこととなる。
【００２８】
次に、ＡＣライセンス所有者について、先のＡＡライセンス所有者及びＡＢライセンス所有者について同様の処理を行う。
先ず、ＡＣライセンス所有者の除外期間が１以上か、或は利用実績があるかを検証する（Ｓ１００９）。
ライセンス管理テーブル２０３を見て、ＡＣライセンス所有者で、且つＡＣ除外期間が１以上の場合は、まだ警告対象ではない。
また、利用実績テーブル２０４の当該ユーザＩＤのレコードを見て、ＡＣ３ヶ月利用実績のフィールドが１以上であれば、少なくとも３ヶ月のうちに一回以上は利用していることとなるので、警告対象外となる。
次に、ＡＣライセンス所有者について、利用実績がないユーザを見つける処理を行う（Ｓ１０１０）。
ライセンス管理テーブル２０３を見て、
ＡＣライセンス所有者且つＡＣ除外期間が０であり、且つ、
利用実績テーブル２０４の当該ユーザＩＤのレコードを見て、
ＡＣ３ヶ月利用実績のフィールドが０
であれば、ＡＣライセンス所有者でありながら、３ヶ月のうちに一回も利用していないこととなる。
このようなユーザは、ＡＣライセンス警告対象となる。そこで、目印として「ＡＣ見直し」フィールドに「３」を記入する（Ｓ１０１１）。
なお、この分岐判断において「Ｎ」である場合は、当該ユーザはＡＣライセンスを保有していないこととなる。
【００２９】
以上に述べたライセンスチェック処理によって、３ヶ月間の利用実績がないライセンスについては、各ライセンス毎の「見直し」フィールドに「３」が付される。逆に、利用実績があったり、除外期間が１以上であれば、「見直し」フィールドは空欄のままとなる。
【００３０】
あるレコード（ユーザ）について一連のライセンスチェック処理が終わったら、次のレコードの存在の有無を検証する（Ｓ１０１２）。あれば、次のレコードについて再度一連のライセンスチェック処理を行う（Ｓ１０１３）。
【００３１】
全てのレコードについてライセンスチェック処理を行った後は、「見直し」フィールドを注目して、各ライセンス毎に警告リストを作成する。
ＡＡ見直しフィールドに「３」が記入されているレコードは、ＡＡライセンス警告対象ユーザである。そこで、このレコードのユーザＩＤを、ＡＡ警告リスト２０７に出力する（Ｓ１０１４）。
ＡＢ見直しフィールドに「３」が記入されているレコードは、ＡＢライセンス警告対象ユーザである。そこで、このレコードのユーザＩＤを、ＡＢ警告リスト２０８に出力する（Ｓ１０１５）。
ＡＣ見直しフィールドに「３」が記入されているレコードは、ＡＣライセンス警告対象ユーザである。そこで、このレコードのユーザＩＤを、ＡＣ警告リスト２０９に出力する（Ｓ１０１６）。
こうして、一連の３ヶ月未使用社員のチェック処理を終了する（Ｓ１０１７）。
【００３２】
図１１は、ＡＡ削除リスト２１０とＡＡ警告リスト２０７を比較して、重複するユーザＩＤをＡＡ警告リスト２０７からの削除する処理内容を概念的に示す図である。
図１１中、ＡＡ警告リスト２０７中のＩＤ「１０２３」は、ＡＡ削除リスト２１０にも存在する。そこで、ＡＡ警告リスト２０７中のＩＤ「１０２３」は削除する。
同様に、ＡＡ警告リスト２０７中のＩＤ「１０３８」は、ＡＡ削除リスト２１０にも存在する。そこで、ＡＡ警告リスト２０７中のＩＤ「１０３８」は削除する。
図１２はこの重複削除処理のフローチャートである。これらはＡＡ警告リスト２０７のみならず、ＡＢ警告リスト２０８、ＡＣ警告リスト２０９のいずれにも同様に適用される。
処理を開始すると（Ｓ１２０１）、先ず警告リストの先頭を見る（Ｓ１２０２）。そして、当該ユーザＩＤが同種の削除リストにあるか否かを検証する（Ｓ１２０３）。
もし、当該ユーザＩＤが同種の削除リスト中にあれば、当該ＩＤは重複しているので、当該ユーザＩＤを警告リストから削除する（Ｓ１２０４）。
そして、次のユーザの有無を見て（Ｓ１２０５）、あれば再度重複チェック処理を行い（Ｓ１２０３）、なければ処理を終了する（Ｓ１２０６）。
【００３３】
本実施形態には、以下のような応用例が考えられる。
（１）図５の、６ヶ月未使用社員チェック処理と３ヶ月未使用社員チェック処理の順番を逆にすると、６ヶ月未使用社員チェック処理を実行することによって重複レコードの削除が自動的に行われるので、改めて重複レコード削除処理を行う必要がなくなる。つまり、最初に３ヶ月チェックを行った後に６ヶ月チェックを行えば、「見直し」フィールドに記載した「３」を「６」に上書きすることで、重複レコード削除処理と等しい動作になる。
【００３４】
（２）有償ソフトウェア提供サーバ１０６にＳＳＨログインする代わりに、所定のコマンドをｃｒｏｎ（ＰＯＳＩＸ系ＯＳにおいて、登録したコマンドを指定した日時にて定期的に実行するデーモンプログラム）に登録して、毎月一回のライセンス管理ＰＣ１１４におけるライセンスチェック処理に先立って、ログ集計処理を自動実行させることができる。ライセンス管理ＰＣ１１４はＳＣＰクライアントにて集計処理がなされたファイルをダウンロードするだけでよい。
【００３５】
（３）上述の実施形態では、ライセンスの削除処理等は最終的に手作業であった。これを、ワークシートから直接ユーザ認証テーブル１１０内のライセンスフィールドを操作するように構成することもできる。
【００３６】
本実施形態においては、高額なソフトウェアライセンスを企業内で有効に活用することができる、ライセンス管理装置を提供できる。この管理手法により、高額なソフトウェアライセンスの必要本数を減少させることが可能になる。
【００３７】
以上、本発明の実施形態例について説明したが、本発明は上記実施形態例に限定されるものではなく、特許請求の範囲に記載した本発明の要旨を逸脱しない限りにおいて、他の変形例、応用例を含むことは言うまでもない。
【図面の簡単な説明】
【００３８】
【図１】本発明の一実施の形態によるライセンス管理プログラムが稼動するライセンス管理パソコンを中心とする、社内ネットワークのブロック図である。
【図２】ライセンス管理パソコンの機能ブロック図である。
【図３】ライセンス管理テーブルと利用実績テーブルの内容を示す概略図である。
【図４】ログの一例と出力結果の内容を示す概略図である。
【図５】ライセンス管理プログラムのフローチャートである。
【図６】ライセンスの削除処理のフローチャートである。
【図７】６ヶ月未使用社員のチェック処理を示すフローチャートである。
【図８】６ヶ月未使用社員のチェック処理を示すフローチャートである。
【図９】３ヶ月未使用社員のチェック処理を示すフローチャートである。
【図１０】３ヶ月未使用社員のチェック処理を示すフローチャートである。
【図１１】ＡＡ削除リストとＡＡ警告リストを比較して、重複するユーザＩＤをＡＡ警告リストから削除する処理内容を示す概念図である。
【図１２】重複削除処理のフローチャートである。
【符号の説明】
【００３９】
１０２…ＬＡＮ、１０３…社員Ａ用クライアントＰＣ、１０４…社員Ｂ用クライアントＰＣ、１０５…社員Ｃ用クライアントＰＣ、１０６…有償ソフトウェア提供サーバ、１０７…アプリケーションＡ、１０８…アプリケーションＢ、１０９…アプリケーションＣ、１１０…ユーザ認証テーブル、１１１…ログＡ、１１２…ログＢ、１１３…ログＣ、１１４…ライセンス管理ＰＣ、１１５…メールサーバ、２０２…ワークシート、２０３…ライセンス管理テーブル、２０４…利用実績テーブル、２０５…チェックプログラム、２０６…一括送信メール対象者リスト、２０７…ＡＡ警告リスト、２０８…ＡＢ警告リスト、２０９…ＡＣ警告リスト、２１０…ＡＡ削除リスト、２１１…ＡＢ削除リスト、２１２…ＡＣ削除リスト、２１３…ログ解析部
【図１】
2008123048.tif 000003
【図２】
2008123048.tif 000004
【図３】
2008123048.tif 000005
【図４】
2008123048.tif 000006
【図５】
2008123048.tif 000007
【図６】
2008123048.tif 000008
【図７】
2008123048.tif 000009
【図８】
2008123048.tif 000010
【図９】
2008123048.tif 000011
【図１０】
2008123048.tif 000012
【図１１】
2008123048.tif 000013
【図１２】
2008123048.tif 000014