(57)【特許請求の範囲】
【請求項１】
ソフトウェアを構成する複数のプログラムのソースコードのライセンスを管理するライセンス管理装置であって、
前記複数のプログラムのソースコードを取得するプログラム取得部と、
前記プログラム取得部により取得された前記複数のプログラムのソースコード間の依存関係を表す依存関係情報を取得する依存関係取得部と、
前記プログラム取得部により取得された前記複数のプログラムのソースコードのうちから、予め定められたライセンスが必要なプログラムのソースコードを特定する特定部と、
前記複数のプログラムのソースコードのうち、前記特定部により特定されたプログラムのソースコード以外のプログラムのソースコードについて、前記依存関係取得部により取得された前記依存関係情報に基づいて、前記予め定められたライセンスが必要なプログラムのソースコードと依存関係があるか否かを判定する判定部と、
を備えるライセンス管理装置。
【請求項２】
前記特定部により特定されたプログラムのソースコードについて、そのプログラムのソースコードに関連する情報をインターネットから取得する情報収集部と、
前記判定部により依存関係があると判定されたプログラムのソースコードと、そのプログラムのソースコードと依存関係がある前記予め定められたライセンスが必要なプログラムのソースコードとを表す情報と、前記情報収集部により取得された情報と、を出力する出力部と、をさらに備える、
請求項１に記載のライセンス管理装置。
【請求項３】
前記情報収集部は、前記特定されたプログラムのソースコードに関する情報として、前記プログラムのソースコードを利用している会社に関する情報、又は前記プログラムのソースコードが利用されている機器に関する情報のいずれか一つを含む利用実績情報を取得し、
前記出力部は、前記取得した利用実績情報をさらに出力する、
請求項２に記載のライセンス管理装置。
【請求項４】
前記情報収集部は、前記特定されたプログラムのソースコードに関する情報として、前記プログラムのソースコードの前記インターネット上の公開元に関する情報を取得し、
前記出力部は、前記取得した公開元に関する情報をさらに出力する、
請求項２又は３に記載のライセンス管理装置。
【請求項５】
前記予め定められたライセンスを特定するキーワードを記憶するライセンス情報記憶部をさらに備え、
前記特定部は、前記プログラム取得部により取得された前記複数のプログラムのソースコードのうちから、前記ライセンス情報記憶部に記憶された前記キーワードを含むプログラムのソースコードを、前記予め定められたライセンスが必要なプログラムのソースコードとして特定する、
請求項１から４のいずれか１項に記載のライセンス管理装置。
【請求項６】
前記予め定められたライセンスは、その予め定められたライセンスが必要なプログラムのソースコードと依存関係があるプログラムのソースコードのライセンスに影響を与える、
請求項１から５のいずれか１項に記載のライセンス管理装置。
【請求項７】
ソフトウェアを構成する複数のプログラムのソースコードのライセンスを管理するライセンス管理装置が実行するライセンス管理方法であって、
前記ライセンス管理装置が、前記複数のプログラムのソースコードを取得するプログラム取得ステップと、
前記ライセンス管理装置が、取得された前記複数のプログラムのソースコード間の依存関係を表す依存関係情報を取得する依存関係取得ステップと、
前記ライセンス管理装置が、取得された前記複数のプログラムのソースコードのうちから、予め定められたライセンスが必要なプログラムのソースコードを特定する特定ステップと、
前記ライセンス管理装置が、前記複数のプログラムのソースコードのうち、特定されたプログラムのソースコード以外のプログラムのソースコードについて、取得された前記依存関係情報に基づいて、前記予め定められたライセンスが必要なプログラムのソースコードと依存関係があるか否かを判定する判定ステップと、
を有するライセンス管理方法。
【請求項８】
コンピュータに
ソフトウェアを構成する複数のプログラムのソースコードを取得するプログラム取得ステップと、
取得された前記複数のプログラムのソースコード間の依存関係を表す依存関係情報を取得する依存関係取得ステップと、
取得された前記複数のプログラムのソースコードのうちから、予め定められたライセンスが必要なプログラムのソースコードを特定する特定ステップと、
前記複数のプログラムのソースコードのうち、特定されたプログラムのソースコード以外のプログラムのソースコードについて、取得された前記依存関係情報に基づいて、前記予め定められたライセンスが必要なプログラムのソースコードと依存関係があるか否かを判定する判定ステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアを構成する複数のプログラムのライセンスを管理するライセンス管理装置、ライセンス管理方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、オープン・ソース・ソフトウェア（ＯＳＳ）を利用した、ソフトウェアの開発が盛んとなっている。ＯＳＳの中には、そのＯＳＳを利用した場合に、一定の条件を課すライセンスを伴うものが多い。従って、ＯＳＳを特に商用で利用する場合、そのライセンスの調査や管理に多大な工数が必要となる。特許文献１は、この多大な工数を減らすため、ＯＳＳのライセンスをチェックするシステムを開示している。具体的には、特許文献１に開示されたシステムは、ユーザがＯＳＳをインターネットからダウンロードした際、そのＯＳＳのライセンスをチェックする。そして、ユーザがそのＯＳＳを用いて作成したソフトウェアをビルドする際、そのシステムは、そのソフトウェアが、そのＯＳＳのライセンスに違反していないか判定し、その結果を出力する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−１９１８８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＯＳＳの中には、そのライセンスが、そのＯＳＳを直接的に用いたソフトウェアだけでなく、そのＯＳＳを間接的に用いたソフトウェアに伝播するものがある。例えば、ＯＳＳのライセンスの１つであるＧＰＬ（GNU General Public License）では、ＧＰＬを有するプログラムＡを用いたプログラムＢだけでなく、プログラムＢを用いたプログラムＣにも、ＧＰＬの影響が及ぶ。しかし、特許文献１に開示されたシステムは、ユーザによるＯＳＳの改変、そのＯＳＳへのリンクが、そのＯＳＳのライセンスに違反しているか否かを判定できるが、そのＯＳＳを間接的に用いたソフトウェアについては、そのＯＳＳのライセンスに違反しているか判定することは、困難である。【０００５】
本発明は、上記実情に鑑みてなされたものであり、ソフトウェアを構成する複数のプログラムのライセンスを漏れなく管理することが可能なライセンス管理装置、ライセンス管理方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明に係るライセンス管理装置では、プログラム取得部が、ソフトウェアを構成する複数のプログラムのソースコードを取得する。依存関係取得部は、プログラム取得部により取得された複数のプログラムのソースコード間の依存関係を表す依存関係情報を取得する。特定部は、プログラム取得部により取得された複数のプログラムのソースコードのうちから、予め定められたライセンスが必要なプログラムのソースコードを特定する。判定部は、複数のプログラムのソースコードのうち、特定部により特定されたプログラムのソースコード以外のプログラムのソースコードについて、依存関係取得部により取得された依存関係情報に基づいて、予め定められたライセンスが必要なプログラムのソースコードと依存関係があるか否かを判定する。
【発明の効果】
【０００７】
本発明によれば、ソフトウェアを構成する複数のプログラム間の依存関係に基づいて、ライセンスが伝播する範囲を特定することができるため、ソフトウェアを構成する複数のプログラムのライセンスを漏れなく管理することができる。
【図面の簡単な説明】
【０００８】
【図１】実施形態に係るライセンス管理システムの構成例を示す概略ブロック図である。
【図２】本実施形態に係るライセンス管理装置のハードウェア構成の一例を示す概略ブロック図である。
【図３】ライセンス情報テーブルに格納されるデータの一例を示す図である。
【図４】ＯＳＳ情報テーブルに格納されるデータの一例を示す図である。
【図５】非ＯＳＳ情報テーブルに格納されるデータの一例を示す図である。
【図６】制御部の機能構成の一例を示す概略ブロック図である。
【図７】依存関係取得部により取得された依存関係の一例を模式的に表す図である。
【図８】ソフトウェア診断処理のフローチャートの一例である。
【発明を実施するための形態】
【０００９】
本発明の実施の形態について、図面を参照して詳細に説明する。
【００１０】
（実施形態）
図１は、本発明の実施形態に係るライセンス管理システム１の構成例を示す概略ブロック図である。図１に示すように、ライセンス管理システム１は、ライセンスの管理対象であるソフトウェアが生成される情報処理装置１００と、情報処理装置１００により生成されたソフトウェアのライセンスを管理するライセンス管理装置２００と、ライセンス管理装置２００と有線または無線により通信可能に接続されたネットワーク３００と、を備える。
【００１１】
情報処理装置１００は、パーソナルコンピュータ等の一般的な情報処理装置から構成される。情報処理装置１００において生成されるソフトウェアは、複数のプログラムから構成される。複数のプログラムは、ユーザが独自に作成したプログラムと、インターネット等の外部から取得されたＯＳＳと、を含む。ここで、ＯＳＳは、一般に公開され、誰でも、無償で、利用や再配布、改変することができ、また、派生ソフトウェアの作成や配布を行うことができるプログラムである。情報処理装置１００において生成されたソフトウェアは、情報処理装置１００において実行されるものであってもよいし、例えば、図示しない機器に組み込まれ、その機器を動作させるものであってもよい。
【００１２】
ライセンス管理装置２００は、情報処理装置１００により生成されたソフトウェアのライセンスを管理する。具体的には、ライセンス管理装置２００は、情報処理装置１００により生成されたソフトウェアを構成する複数のプログラムに含まれるＯＳＳのライセンスをチェックし、その結果を出力する。
【００１３】
ネットワーク３００は、例えば、インターネットから構成される。
【００１４】
次に、本実施形態におけるライセンス管理装置２００の構成について詳細に説明する。
【００１５】
図２に本実施形態に係るライセンス管理装置２００のハードウェア構成の一例を示す。図２に示すように、ライセンス管理装置２００は、制御部２１０と、記憶部２２０と、通信部２３０と、入力部２４０と、出力部２５０と、を備え、各部はバス２６０により接続されている。
【００１６】
制御部２１０は、例えば、ＣＰＵ（Central Processing Unit）、ＣＰＵが実行するプログラムを格納するＲＯＭ（Read Only Memory）、ＣＰＵが生成したデータを一時的に格納するＲＡＭ（Random Access Memory）から構成され、ライセンス管理装置２００全体の制御を行う。
【００１７】
記憶部２２０は、ハードディスクドライブや、フラッシュメモリ、ＳＳＤ（Solid State Drive）のような、書き込み可能な記憶装置から構成される。記憶部２２０は、ライセンス情報テーブル２２１と、ＯＳＳ情報テーブル２２２と、非ＯＳＳ情報テーブル２２３と、を記憶する。
【００１８】
ライセンス情報テーブル２２１は、ライセンスを特定するための情報と、そのライセンスの種別とを表す情報を格納する。
【００１９】
図３に、ライセンス情報テーブル２２１に格納されるデータの一例を示す。図３に示すライセンス情報テーブル２２１には、ライセンス特定情報と、ライセンス種別と、を表す情報が対応付けて格納されている。ライセンス特定情報は、ライセンスを特定するための情報であって、例えば、そのライセンスを有するプログラムのソースコード中に一般的に記述されるキーワードである。ライセンス種別は、ライセンスの種類を表す。具体的なライセンスの種類は、例えば、ＧＰＬ、ＢＳＤ（Berkeley Software Distribution License）等である。ライセンス情報テーブル２２１に格納される各種データは、予め、例えばライセンス管理を担当するユーザにより、入力され、ライセンス情報テーブル２２１に格納される。
【００２０】
ここで、ＧＰＬは、あるＯＳＳを利用したソフトウェア全体に対して、そのソースコードの公開等、そのＯＳＳのライセンスの影響が及ぶ、すなわち、そのＯＳＳのライセンスの影響が伝播するライセンスである。例えば、あるＯＳＳが、ＧＰＬを有する場合、そのＯＳＳを改変することにより作成されたプログラム、そのＯＳＳが組み込まれたプログラム、そのＯＳＳへのリンクを含むプログラム等のプログラムも、ＧＰＬを有することとなる。従って、それらのプログラムも、そのソースコードを公開することが義務付けられる。
【００２１】
これに対し、ＢＳＤライセンスは、ＢＳＤライセンスを有するＯＳＳの利用、再配布にあたり、所定の条件を満たせばよく、制限が少ないライセンスである。ＢＳＤライセンスを有するＯＳＳを改変したプログラムは、そのソースコードを非公開にすることができる。
【００２２】
従って、本実施形態に係るライセンス管理装置２００は、ＧＰＬは伝播性があり、ＢＳＤライセンスは伝播性がないとして、ライセンス管理対象であるソフトウェアを構成する複数のプログラムにおいて、ＧＰＬが伝播する範囲を特定する。
【００２３】
ＯＳＳ情報テーブル２２２は、ライセンス管理対象であるソフトウェアを構成する複数のプログラムに含まれるＯＳＳに関する情報を格納する。
【００２４】
図４に、ＯＳＳ情報テーブル２２２に格納されるデータの一例を示す。図４に示すＯＳＳ情報テーブル２２２には、ＯＳＳ毎に、ＯＳＳのファイル名と、ＯＳＳのバージョン情報と、ＯＳＳのライセンス種別と、ＯＳＳのＵＲＩ（Uniform Resource Identifier）と、ＯＳＳの利用実績と、を表す情報が対応付けて格納されている。ＯＳＳのＵＲＩは、具体的には、そのＯＳＳがインターネットのウェブ上で公開されている場合、そのウェブページのアドレスである。また、ＯＳＳの利用実績は、具体的には、そのＯＳＳを利用している会社、そのＯＳＳを利用している機器、その機器の型番等を表す情報である。ＯＳＳ情報テーブル２２２に格納される各種データは、後述する処理により、インターネットを介して収集され、ＯＳＳ情報テーブル２２２に格納される。
【００２５】
非ＯＳＳ情報テーブル２２３は、ライセンス管理対象であるソフトウェアを構成する複数のプログラムに含まれる、ＯＳＳ以外のプログラム（非ＯＳＳ）に関する情報を格納する。
【００２６】
図５に、非ＯＳＳ情報テーブル２２３に格納されるデータの一例を示す。図５に示す非ＯＳＳ情報テーブル２２３には、非ＯＳＳ毎に、非ＯＳＳのファイル名と、ライセンス伝播の有無と、伝播元ライセンス種別と、伝播元ファイル名と、を表す情報が対応付けて格納されている。ライセンス伝播の有無は、その非ＯＳＳが、ライセンス伝播の影響を受けるか否かを表す。図５において、ライセンス伝播の有無が"Ｙ"である場合、その非ＯＳＳはライセンス伝播の影響を受ける。また、ライセンス伝播の有無が"Ｎ"である場合、その非ＯＳＳはライセンス伝播の影響を受けない。伝播元ライセンス種別は、その非ＯＳＳがライセンス伝播の影響を受ける場合、その非ＯＳＳに影響を与える原因であるＯＳＳのライセンス種別である。また、伝播元ファイル名は、その非ＯＳＳがライセンス伝播の影響を受ける場合、その非ＯＳＳに影響を与える原因であるＯＳＳのファイル名である。非ＯＳＳ情報テーブル２２３に格納される各種データは、後述する処理において生成され、非ＯＳＳ情報テーブル２２３に格納される。
【００２７】
通信部２３０は、情報処理装置１００及びネットワーク３００と、無線または有線による通信を行うためのインターフェースから構成される。
【００２８】
入力部２４０は、ボタン、タッチパネル、キーボード等の入力装置から構成される。入力部２４０は、ユーザからの操作入力を受け付け、受け付けた操作入力に対応する操作入力信号を制御部２１０に出力する。
【００２９】
出力部２５０は、ＣＲＴ（Cathode Ray Tube）や液晶ディスプレイ等の表示装置から構成され、制御部２１０から供給される文字や画像等のデータを表示する。
【００３０】
次に、ライセンス管理装置２００の制御部２１０の機能について説明する。図６は、制御部２１０の機能構成の一例を示す概略ブロック図である。図６に示すように、制御部２１０は、プログラム取得部２１１、依存関係取得部２１２、特定部２１３、情報収集部２１４、判定部２１５、結果出力部２１６として機能する。
【００３１】
プログラム取得部２１１は、情報処理装置１００から、情報処理装置１００において生成されたソフトウェアを構成する複数のプログラムを取得する。また、プログラム取得部２１１は、そのソフトウェアに利用されている、少なくとも１つのＯＳＳから構成されるＯＳＳアーカイブを、情報処理装置１００から取得する。
【００３２】
依存関係取得部２１２は、プログラム取得部２１１により取得された複数のプログラム間の依存関係を取得する。プログラム間の依存関係は、例えば、あるプログラムが、他のプログラムをリンクするという形式で利用している関係である。リンクには、動的リンクや静的リンクが含まれる。具体的には、依存関係取得部２１２は、プログラム取得部２１１により取得された複数のプログラムに含まれる"makefile"の参照、または、ソフトウェアに実装されている依存関係を抽出するためのコマンドの使用等、一般的に知られている手法により、依存関係を取得する。
【００３３】
図７は、依存関係取得部２１２により取得された依存関係の一例を模式的に表す図である。図７に示す依存関係は、プログラム取得部２１１により取得された複数のプログラムそれぞれを表すノードと、依存関係があるプログラムを表すノード間を結ぶリンクと、から構成される木構造で表される。例えば、プログラム"xxx.c"が、"abc.c"と"xxxx.c"との２つのプログラムをリンクすることにより利用している場合、プログラム"xxx.c"を表すノードは、"abc.c"と"xxxx.c"を表すノードそれぞれと、リンクにより結ばれる。
【００３４】
特定部２１３は、プログラム取得部２１１により取得された複数のプログラムのうちから、所定のライセンスを有するプログラムを特定する。具体的には、特定部２１３は、ライセンス情報テーブル２２１を参照し、複数のプログラムのうちから、ライセンス情報テーブル２２１に格納されたライセンス特定情報を含むプログラムを特定する。例えば、特定部２１３は、プログラム取得部２１１により取得された複数のプログラムのソースコード毎に、ライセンス特定情報として、"GNU General Public License"というキーワードが含まれているか否か判定する。そして、特定部２１３は、そのキーワードが含まれるプログラムを、ライセンス種別が"GPL"であるＯＳＳとして、特定する。そして、特定部２１３は、ＯＳＳとして特定したプログラムのファイル名を、ＯＳＳ情報テーブル２２２に格納する。
【００３５】
また、特定部２１３は、ソフトウェアを構成する複数のプログラムのうちからＯＳＳを特定する際に、プログラムのテキストファイルであるソースコードの他、プログラムのバイナリ形式のファイルについても、所定のライセンスを有するプログラムか否かを判定してもよい。
【００３６】
なお、特定部２１３は、プログラム取得部２１１により取得された複数のプログラムのうち、プログラム取得部２１１により取得されたＯＳＳアーカイブにすでに格納されているプログラムについては、ライセンス情報テーブル２２１を参照して、ＯＳＳか否か判定しなくてもよい。すなわち、特定部２１３は、そのプログラムがＯＳＳか否かの判定を行わずに、そのプログラムのファイル名をＯＳＳ情報テーブル２２２に格納してもよい。
【００３７】
また、特定部２１３は、プログラム取得部２１１により取得された複数のプログラムのうちから、所定のライセンスを有するプログラムを特定しなかったプログラムを、非ＯＳＳとして特定する。そして、特定部２１３は、非ＯＳＳとして特定したプログラムのファイル名を、非ＯＳＳ情報テーブル２２３に格納する。
【００３８】
情報収集部２１４は、特定部２１３により特定されたプログラムに関連する各種情報を、ネットワーク３００を介して収集する。具体的には、情報収集部２１４は、特定部２１３により特定されたプログラム毎に、そのプログラムのファイル名、またはそのプログラムのソースコードと一致、または部分一致するプログラムをキーワードとして、インターネット上で検索する。そして、情報収集部２１４は、検索されたプログラムのＵＲＩ、及び、その検索されたプログラムと関連付けて公開されている利用実績を収集し、ＯＳＳ情報テーブル２２２に格納する。
【００３９】
判定部２１５は、特定部２１３により非ＯＳＳとして特定されたプログラムについて、依存関係取得部２１２により取得された依存関係に基づいて、所定のライセンスを有するプログラムと依存関係があるか否かを判定する。具体的には、判定部２１５は、非ＯＳＳ情報テーブル２２３に格納されている非ＯＳＳ毎に、依存関係取得部２１２により取得された依存関係を辿って、ＯＳＳ情報テーブル２２２に格納されているＯＳＳのうち、例えばライセンス種別が"GPL"であるＯＳＳと依存関係があるか否かを判定する。例えば、非ＯＳＳ情報テーブル２２３に格納されているファイル名"MThij.c"について、判定部２１５は、図７に示す依存関係から、"MThij.c"を表すノードの下位のノードの中に、ＯＳＳ情報テーブル２２２に格納されている、ライセンス種別が"GPL"の"abc.c"を表すノードが存在することを特定する。そして、判定部２１５は、非ＯＳＳ情報テーブル２２３に、"MThij.c"と対応付けて、ライセンス伝播の有無に"Y"、伝播元ライセンス種別に"GPL"、伝播元ファイル名に"abc.c"を格納する。
【００４０】
結果出力部２１６は、ＯＳＳ情報テーブル２２２及び非ＯＳＳ情報テーブル２２３に格納されたデータを、出力部２５０に出力する。
【００４１】
次に、本実施形態に係るライセンス管理装置２００の動作について説明する。
【００４２】
ライセンス管理装置２００の制御部２１０が実行するソフトウェア診断処理について説明する。ソフトウェア診断処理は、例えば制御部２１０のＣＰＵがＲＯＭに記憶されたプログラムを読み込むことにより実行される。
【００４３】
図８は、ライセンス管理装置２００の制御部２１０が実行するソフトウェア診断処理のフローチャートの一例である。ソフトウェア診断処理は、例えば、ユーザにより、入力部２４０を介して、ソフトウェア診断処理の実行開始を表す旨の操作入力を受け取ったことを契機として、開始する。
【００４４】
まず、プログラム取得部２１１は、情報処理装置１００から、ライセンスの管理対象であるソフトウェアを構成する複数のプログラムと、ＯＳＳアーカイブと、を取得する（ステップＳ１０１）。
【００４５】
次に、依存関係取得部２１２は、ステップＳ１０１において取得された複数のプログラム間の依存関係を表す依存関係情報を取得する（ステップＳ１０２）。
【００４６】
次に、特定部２１３は、ステップＳ１０１において取得された複数のプログラムのうち、ステップＳ１０１において取得されたＯＳＳアーカイブに格納されていないプログラムについて、ライセンス情報テーブル２２１を参照して、ＯＳＳであるプログラムを特定する（ステップＳ１０３）。また、特定部２１３は、ステップＳ１０１において取得された複数のプログラムのうち、ステップＳ１０１において取得されたＯＳＳアーカイブに格納されているプログラムと同じプログラムを、ＯＳＳとして特定する。そして、特定部２１３は、ＯＳＳとして特定したプログラムのファイル名を、ＯＳＳ情報テーブル２２２に格納する。
【００４７】
次に、情報収集部２１４は、ＯＳＳ情報テーブル２２２に格納されている各ＯＳＳについて、インターネットを介して、そのＯＳＳのＵＲＩや利用実績を収集し、ＯＳＳ情報テーブル２２２に格納する（ステップＳ１０４）。
【００４８】
次に、特定部２１３は、ステップＳ１０１において取得された複数のプログラムのうち、ステップＳ１０３においてＯＳＳとして特定されなかったプログラムを非ＯＳＳとして特定する（ステップＳ１０５）。そして、特定部２１３は、非ＯＳＳとして特定したプログラムのファイル名を、非ＯＳＳ情報テーブル２２３に格納する。
【００４９】
次に、判定部２１５は、非ＯＳＳ情報テーブル２２３に格納されている各非ＯＳＳについて、ステップＳ１０２において取得された依存関係情報に基づいて、ライセンス伝播の有無を判定する（ステップＳ１０６）。ライセンス伝播が有ると判定した場合、判定部２１５は、その非ＯＳＳのファイル名と対応付けて、ライセンス伝播が有る旨と、その伝播元のライセンス種別と、伝播元のＯＳＳのファイル名とを表す情報を、非ＯＳＳ情報テーブル２２３に格納する。
【００５０】
次に、結果出力部２１６は、ＯＳＳ情報テーブル２２２に格納されている各種情報、及び非ＯＳＳ情報テーブル２２３に格納されている各種情報を、出力部２５０に出力表示する（ステップＳ１０７）。例えば、結果出力部２１６は、ＯＳＳ情報テーブル２２２及び非ＯＳＳ情報テーブル２２３に格納された各種情報を、それぞれ図４及び図５に示すような表形式で出力する。この際、結果出力部２１６は、予め設定された条件に合致する情報を、強調表示してもよい。例えば、結果出力部２１６は、非ＯＳＳ情報テーブル２２３に格納されたライセンス伝播の有無が"Y"である非ＯＳＳの各種情報を強調表示してもよい。そして、ソフトウェア診断処理は終了する。
【００５１】
以上説明したように、本実施形態のライセンス管理装置２００は、ライセンス管理対象であるソフトウェアを構成する複数のプログラムについて、ＯＳＳと非ＯＳＳのうちいずれか特定する。そして、ライセンス管理装置２００は、特定された非ＯＳＳについて、依存関係があるＯＳＳによるライセンス伝播が有るか否かを判定する。従って、ライセンス管理装置２００は、ライセンスの影響が伝播するＯＳＳと依存関係があるプログラムを特定でき、ライセンスを漏れなく管理することができる。
【００５２】
以上、本発明の実施形態について説明したが、本発明は本実施形態によって限定されるものではない。
【００５３】
例えば、上記の実施形態において、ライセンス管理装置２００は、情報処理装置１００から、ライセンスの管理対象であるソフトウェアを構成する複数のプログラムと、ＯＳＳアーカイブと、を取得するが、ライセンスの管理対象であるソフトウェア等の取得方法はこれに限られない。例えば、ライセンスの管理対象であるソフトウェア等のデータをＤＶＤ（Digital Versatile Disk）等のメディアに記録し、そのＤＶＤをライセンス管理装置２００に読み取らせることで、そのソフトウェア等のデータを取得してもよい。
【００５４】
また、上記の実施形態では、ライセンス管理装置２００と情報処理装置１００とが、別々の機器により実現されている例が記載されているが、その両方の装置の上述した機能が、１つのパーソナルコンピュータ等の機器によって実現されてもよい。また、情報処理装置１００の機能のうち、ライセンスの管理対象であるソフトウェアの開発環境と、ライセンス管理装置２００の機能とが、同一の機器により実現され、その機器が、ＯＳＳが組み込まれた機器と通信可能に接続されるように構成されてもよい。これらの場合において、ライセンス管理装置２００の機能を実現するソフトウェアは、必要な場合に、情報処理装置１００の機能が組み込まれた機器にインストールされ、不要になった場合に、アンインストールされてもよい。
【００５５】
また、上記の実施形態では、情報処理装置１００において、ライセンスの管理対象であるソフトウェアの開発環境としての機能と、前記ソフトウェアの実行環境としての機能との両方が、１つの機器により実現されている例が記載されているが、その両方の機能が、通信可能に接続されている別々の機器によって実現されてもよい。
【００５６】
なお、上記実施の形態において、ライセンス管理装置２００が実行するプログラムは、フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disk Read-Only Memory）、ＤＶＤ、ＭＯ（Magneto-Optical Disk）等のコンピュータ読み取り可能な記録媒体に格納されて配布されてもよい。そして、そのプログラムがパーソナルコンピュータ等の情報処理装置にインストールされることにより、上述の処理を実行する装置が構成されてもよい。
【００５７】
また、プログラムは、インターネット等の通信ネットワーク上の所定のサーバ装置が有するディスク装置等に格納されてもよい。そして、プログラムは、例えば、搬送波に重畳されて、ダウンロードされてもよい。
【００５８】
また、上述の機能を、ＯＳ（Operating System）が分担して実現する場合またはＯＳとアプリケーションとの協働により実現する場合、ＯＳの機能を実現する部分以外のプログラムのみが、記録媒体に格納されて配布されてもよく、また、ダウンロードされてもよい。
【００５９】
本発明は、本発明の広義の精神と範囲に逸脱することなく、様々な実施の形態及び変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施の形態ではなく、特許請求の範囲によって示される。そして、特許請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。
【産業上の利用可能性】
【００６０】
本発明は、ソフトウェアを構成する複数のプログラムのライセンス管理に適する。
【符号の説明】
【００６１】
１  ライセンス管理システム、１００  情報処理装置、２００  ライセンス管理装置、２１０  制御部、２１１  プログラム取得部、２１２  依存関係取得部、２１３  特定部、２１４  情報収集部、２１５  判定部、２１６  結果出力部、２２０  記憶部、２２１  ライセンス情報テーブル、２２２  ＯＳＳ情報テーブル、２２３  非ＯＳＳ情報テーブル、２３０  通信部、２４０  入力部、２５０  出力部、２６０  バス、３００  ネットワーク
【図１】
0006045707.tif 000002
【図２】
0006045707.tif 000003
【図３】
0006045707.tif 000004
【図４】
0006045707.tif 000005
【図５】
0006045707.tif 000006
【図６】
0006045707.tif 000007
【図７】
0006045707.tif 000008
【図８】
0006045707.tif 000009