特許第6045707号(P6045707)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 三菱電機株式会社の特許一覧

特許6045707ライセンス管理装置、ライセンス管理方法、及びプログラム
<>
  • 特許6045707-ライセンス管理装置、ライセンス管理方法、及びプログラム 図000002
  • 特許6045707-ライセンス管理装置、ライセンス管理方法、及びプログラム 図000003
  • 特許6045707-ライセンス管理装置、ライセンス管理方法、及びプログラム 図000004
  • 特許6045707-ライセンス管理装置、ライセンス管理方法、及びプログラム 図000005
  • 特許6045707-ライセンス管理装置、ライセンス管理方法、及びプログラム 図000006
  • 特許6045707-ライセンス管理装置、ライセンス管理方法、及びプログラム 図000007
  • 特許6045707-ライセンス管理装置、ライセンス管理方法、及びプログラム 図000008
  • 特許6045707-ライセンス管理装置、ライセンス管理方法、及びプログラム 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6045707
(24)【登録日】2016年11月25日
(45)【発行日】2016年12月14日
(54)【発明の名称】ライセンス管理装置、ライセンス管理方法、及びプログラム
(51)【国際特許分類】
   G06F 21/10 20130101AFI20161206BHJP
   G06F 9/44 20060101ALI20161206BHJP
【FI】
   G06F21/10
   G06F9/06 620K
【請求項の数】8
【全頁数】12
(21)【出願番号】特願2015-533909(P2015-533909)
(86)(22)【出願日】2013年9月2日
(86)【国際出願番号】JP2013073485
(87)【国際公開番号】WO2015029242
(87)【国際公開日】20150305
【審査請求日】2015年12月1日
(73)【特許権者】
【識別番号】000006013
【氏名又は名称】三菱電機株式会社
(74)【代理人】
【識別番号】100095407
【弁理士】
【氏名又は名称】木村 満
(74)【代理人】
【識別番号】100131152
【弁理士】
【氏名又は名称】八島 耕司
(74)【代理人】
【識別番号】100147924
【弁理士】
【氏名又は名称】美恵 英樹
(72)【発明者】
【氏名】小宮 紀之
【審査官】 岸野 徹
(56)【参考文献】
【文献】 米国特許出願公開第2002/0188608(US,A1)
【文献】 米国特許出願公開第2010/0223592(US,A1)
【文献】 米国特許出願公開第2008/0209399(US,A1)
【文献】 米国特許出願公開第2010/0242028(US,A1)
【文献】 大須賀 俊憲 Toshinori Osuka,ソフトウェア統合検索を利用した再利用支援システム Reuse Support System based on Software Integral Se,レクチャーノート/ソフトウェア学33 ソフトウェア工学の基礎XIV,日本,株式会社近代科学社,2007年11月30日,pp.203-208
【文献】 中田 敦,OSSが実現する“呉越同舟”,日経コンピュータ no.807 NIKKEI COMPUTER,日本,日経BP社 Nikkei Business Publications,Inc.,2012年 4月26日,pp.28-33
【文献】 江端 俊昭 Toshiaki Ebata,組み込みLinuxエンジニアになるための基本学習帳,SoftwareDesign No.160,日本,(株)技術評論社,2004年 2月18日,pp.180〜190
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/10
G06F 9/44
(57)【特許請求の範囲】
【請求項1】
ソフトウェアを構成する複数のプログラムのソースコードのライセンスを管理するライセンス管理装置であって、
前記複数のプログラムのソースコードを取得するプログラム取得部と、
前記プログラム取得部により取得された前記複数のプログラムのソースコード間の依存関係を表す依存関係情報を取得する依存関係取得部と、
前記プログラム取得部により取得された前記複数のプログラムのソースコードのうちから、予め定められたライセンスが必要なプログラムのソースコードを特定する特定部と、
前記複数のプログラムのソースコードのうち、前記特定部により特定されたプログラムのソースコード以外のプログラムのソースコードについて、前記依存関係取得部により取得された前記依存関係情報に基づいて、前記予め定められたライセンスが必要なプログラムのソースコードと依存関係があるか否かを判定する判定部と、
を備えるライセンス管理装置。
【請求項2】
前記特定部により特定されたプログラムのソースコードについて、そのプログラムのソースコードに関連する情報をインターネットから取得する情報収集部と、
前記判定部により依存関係があると判定されたプログラムのソースコードと、そのプログラムのソースコードと依存関係がある前記予め定められたライセンスが必要なプログラムのソースコードとを表す情報と、前記情報収集部により取得された情報と、を出力する出力部と、をさらに備える、
請求項1に記載のライセンス管理装置。
【請求項3】
前記情報収集部は、前記特定されたプログラムのソースコードに関する情報として、前記プログラムのソースコードを利用している会社に関する情報、又は前記プログラムのソースコードが利用されている機器に関する情報のいずれか一つを含む利用実績情報を取得し、
前記出力部は、前記取得した利用実績情報をさらに出力する、
請求項2に記載のライセンス管理装置。
【請求項4】
前記情報収集部は、前記特定されたプログラムのソースコードに関する情報として、前記プログラムのソースコードの前記インターネット上の公開元に関する情報を取得し、
前記出力部は、前記取得した公開元に関する情報をさらに出力する、
請求項2又は3に記載のライセンス管理装置。
【請求項5】
前記予め定められたライセンスを特定するキーワードを記憶するライセンス情報記憶部をさらに備え、
前記特定部は、前記プログラム取得部により取得された前記複数のプログラムのソースコードのうちから、前記ライセンス情報記憶部に記憶された前記キーワードを含むプログラムのソースコードを、前記予め定められたライセンスが必要なプログラムのソースコードとして特定する、
請求項1から4のいずれか1項に記載のライセンス管理装置。
【請求項6】
前記予め定められたライセンスは、その予め定められたライセンスが必要なプログラムのソースコードと依存関係があるプログラムのソースコードのライセンスに影響を与える、
請求項1から5のいずれか1項に記載のライセンス管理装置。
【請求項7】
ソフトウェアを構成する複数のプログラムのソースコードのライセンスを管理するライセンス管理装置が実行するライセンス管理方法であって、
前記ライセンス管理装置が、前記複数のプログラムのソースコードを取得するプログラム取得ステップと、
前記ライセンス管理装置が、取得された前記複数のプログラムのソースコード間の依存関係を表す依存関係情報を取得する依存関係取得ステップと、
前記ライセンス管理装置が、取得された前記複数のプログラムのソースコードのうちから、予め定められたライセンスが必要なプログラムのソースコードを特定する特定ステップと、
前記ライセンス管理装置が、前記複数のプログラムのソースコードのうち、特定されたプログラムのソースコード以外のプログラムのソースコードについて、取得された前記依存関係情報に基づいて、前記予め定められたライセンスが必要なプログラムのソースコードと依存関係があるか否かを判定する判定ステップと、
を有するライセンス管理方法。
【請求項8】
コンピュータに
ソフトウェアを構成する複数のプログラムのソースコードを取得するプログラム取得ステップと、
取得された前記複数のプログラムのソースコード間の依存関係を表す依存関係情報を取得する依存関係取得ステップと、
取得された前記複数のプログラムのソースコードのうちから、予め定められたライセンスが必要なプログラムのソースコードを特定する特定ステップと、
前記複数のプログラムのソースコードのうち、特定されたプログラムのソースコード以外のプログラムのソースコードについて、取得された前記依存関係情報に基づいて、前記予め定められたライセンスが必要なプログラムのソースコードと依存関係があるか否かを判定する判定ステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ソフトウェアを構成する複数のプログラムのライセンスを管理するライセンス管理装置、ライセンス管理方法、及びプログラムに関する。
【背景技術】
【0002】
近年、オープン・ソース・ソフトウェア(OSS)を利用した、ソフトウェアの開発が盛んとなっている。OSSの中には、そのOSSを利用した場合に、一定の条件を課すライセンスを伴うものが多い。従って、OSSを特に商用で利用する場合、そのライセンスの調査や管理に多大な工数が必要となる。特許文献1は、この多大な工数を減らすため、OSSのライセンスをチェックするシステムを開示している。具体的には、特許文献1に開示されたシステムは、ユーザがOSSをインターネットからダウンロードした際、そのOSSのライセンスをチェックする。そして、ユーザがそのOSSを用いて作成したソフトウェアをビルドする際、そのシステムは、そのソフトウェアが、そのOSSのライセンスに違反していないか判定し、その結果を出力する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−191889号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
OSSの中には、そのライセンスが、そのOSSを直接的に用いたソフトウェアだけでなく、そのOSSを間接的に用いたソフトウェアに伝播するものがある。例えば、OSSのライセンスの1つであるGPL(GNU General Public License)では、GPLを有するプログラムAを用いたプログラムBだけでなく、プログラムBを用いたプログラムCにも、GPLの影響が及ぶ。しかし、特許文献1に開示されたシステムは、ユーザによるOSSの改変、そのOSSへのリンクが、そのOSSのライセンスに違反しているか否かを判定できるが、そのOSSを間接的に用いたソフトウェアについては、そのOSSのライセンスに違反しているか判定することは、困難である。
【0005】
本発明は、上記実情に鑑みてなされたものであり、ソフトウェアを構成する複数のプログラムのライセンスを漏れなく管理することが可能なライセンス管理装置、ライセンス管理方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本発明に係るライセンス管理装置では、プログラム取得部が、ソフトウェアを構成する複数のプログラムのソースコードを取得する。依存関係取得部は、プログラム取得部により取得された複数のプログラムのソースコード間の依存関係を表す依存関係情報を取得する。特定部は、プログラム取得部により取得された複数のプログラムのソースコードのうちから、予め定められたライセンスが必要なプログラムのソースコードを特定する。判定部は、複数のプログラムのソースコードのうち、特定部により特定されたプログラムのソースコード以外のプログラムのソースコードについて、依存関係取得部により取得された依存関係情報に基づいて、予め定められたライセンスが必要なプログラムのソースコードと依存関係があるか否かを判定する。
【発明の効果】
【0007】
本発明によれば、ソフトウェアを構成する複数のプログラム間の依存関係に基づいて、ライセンスが伝播する範囲を特定することができるため、ソフトウェアを構成する複数のプログラムのライセンスを漏れなく管理することができる。
【図面の簡単な説明】
【0008】
図1】実施形態に係るライセンス管理システムの構成例を示す概略ブロック図である。
図2】本実施形態に係るライセンス管理装置のハードウェア構成の一例を示す概略ブロック図である。
図3】ライセンス情報テーブルに格納されるデータの一例を示す図である。
図4】OSS情報テーブルに格納されるデータの一例を示す図である。
図5】非OSS情報テーブルに格納されるデータの一例を示す図である。
図6】制御部の機能構成の一例を示す概略ブロック図である。
図7】依存関係取得部により取得された依存関係の一例を模式的に表す図である。
図8】ソフトウェア診断処理のフローチャートの一例である。
【発明を実施するための形態】
【0009】
本発明の実施の形態について、図面を参照して詳細に説明する。
【0010】
(実施形態)
図1は、本発明の実施形態に係るライセンス管理システム1の構成例を示す概略ブロック図である。図1に示すように、ライセンス管理システム1は、ライセンスの管理対象であるソフトウェアが生成される情報処理装置100と、情報処理装置100により生成されたソフトウェアのライセンスを管理するライセンス管理装置200と、ライセンス管理装置200と有線または無線により通信可能に接続されたネットワーク300と、を備える。
【0011】
情報処理装置100は、パーソナルコンピュータ等の一般的な情報処理装置から構成される。情報処理装置100において生成されるソフトウェアは、複数のプログラムから構成される。複数のプログラムは、ユーザが独自に作成したプログラムと、インターネット等の外部から取得されたOSSと、を含む。ここで、OSSは、一般に公開され、誰でも、無償で、利用や再配布、改変することができ、また、派生ソフトウェアの作成や配布を行うことができるプログラムである。情報処理装置100において生成されたソフトウェアは、情報処理装置100において実行されるものであってもよいし、例えば、図示しない機器に組み込まれ、その機器を動作させるものであってもよい。
【0012】
ライセンス管理装置200は、情報処理装置100により生成されたソフトウェアのライセンスを管理する。具体的には、ライセンス管理装置200は、情報処理装置100により生成されたソフトウェアを構成する複数のプログラムに含まれるOSSのライセンスをチェックし、その結果を出力する。
【0013】
ネットワーク300は、例えば、インターネットから構成される。
【0014】
次に、本実施形態におけるライセンス管理装置200の構成について詳細に説明する。
【0015】
図2に本実施形態に係るライセンス管理装置200のハードウェア構成の一例を示す。図2に示すように、ライセンス管理装置200は、制御部210と、記憶部220と、通信部230と、入力部240と、出力部250と、を備え、各部はバス260により接続されている。
【0016】
制御部210は、例えば、CPU(Central Processing Unit)、CPUが実行するプログラムを格納するROM(Read Only Memory)、CPUが生成したデータを一時的に格納するRAM(Random Access Memory)から構成され、ライセンス管理装置200全体の制御を行う。
【0017】
記憶部220は、ハードディスクドライブや、フラッシュメモリ、SSD(Solid State Drive)のような、書き込み可能な記憶装置から構成される。記憶部220は、ライセンス情報テーブル221と、OSS情報テーブル222と、非OSS情報テーブル223と、を記憶する。
【0018】
ライセンス情報テーブル221は、ライセンスを特定するための情報と、そのライセンスの種別とを表す情報を格納する。
【0019】
図3に、ライセンス情報テーブル221に格納されるデータの一例を示す。図3に示すライセンス情報テーブル221には、ライセンス特定情報と、ライセンス種別と、を表す情報が対応付けて格納されている。ライセンス特定情報は、ライセンスを特定するための情報であって、例えば、そのライセンスを有するプログラムのソースコード中に一般的に記述されるキーワードである。ライセンス種別は、ライセンスの種類を表す。具体的なライセンスの種類は、例えば、GPL、BSD(Berkeley Software Distribution License)等である。ライセンス情報テーブル221に格納される各種データは、予め、例えばライセンス管理を担当するユーザにより、入力され、ライセンス情報テーブル221に格納される。
【0020】
ここで、GPLは、あるOSSを利用したソフトウェア全体に対して、そのソースコードの公開等、そのOSSのライセンスの影響が及ぶ、すなわち、そのOSSのライセンスの影響が伝播するライセンスである。例えば、あるOSSが、GPLを有する場合、そのOSSを改変することにより作成されたプログラム、そのOSSが組み込まれたプログラム、そのOSSへのリンクを含むプログラム等のプログラムも、GPLを有することとなる。従って、それらのプログラムも、そのソースコードを公開することが義務付けられる。
【0021】
これに対し、BSDライセンスは、BSDライセンスを有するOSSの利用、再配布にあたり、所定の条件を満たせばよく、制限が少ないライセンスである。BSDライセンスを有するOSSを改変したプログラムは、そのソースコードを非公開にすることができる。
【0022】
従って、本実施形態に係るライセンス管理装置200は、GPLは伝播性があり、BSDライセンスは伝播性がないとして、ライセンス管理対象であるソフトウェアを構成する複数のプログラムにおいて、GPLが伝播する範囲を特定する。
【0023】
OSS情報テーブル222は、ライセンス管理対象であるソフトウェアを構成する複数のプログラムに含まれるOSSに関する情報を格納する。
【0024】
図4に、OSS情報テーブル222に格納されるデータの一例を示す。図4に示すOSS情報テーブル222には、OSS毎に、OSSのファイル名と、OSSのバージョン情報と、OSSのライセンス種別と、OSSのURI(Uniform Resource Identifier)と、OSSの利用実績と、を表す情報が対応付けて格納されている。OSSのURIは、具体的には、そのOSSがインターネットのウェブ上で公開されている場合、そのウェブページのアドレスである。また、OSSの利用実績は、具体的には、そのOSSを利用している会社、そのOSSを利用している機器、その機器の型番等を表す情報である。OSS情報テーブル222に格納される各種データは、後述する処理により、インターネットを介して収集され、OSS情報テーブル222に格納される。
【0025】
非OSS情報テーブル223は、ライセンス管理対象であるソフトウェアを構成する複数のプログラムに含まれる、OSS以外のプログラム(非OSS)に関する情報を格納する。
【0026】
図5に、非OSS情報テーブル223に格納されるデータの一例を示す。図5に示す非OSS情報テーブル223には、非OSS毎に、非OSSのファイル名と、ライセンス伝播の有無と、伝播元ライセンス種別と、伝播元ファイル名と、を表す情報が対応付けて格納されている。ライセンス伝播の有無は、その非OSSが、ライセンス伝播の影響を受けるか否かを表す。図5において、ライセンス伝播の有無が"Y"である場合、その非OSSはライセンス伝播の影響を受ける。また、ライセンス伝播の有無が"N"である場合、その非OSSはライセンス伝播の影響を受けない。伝播元ライセンス種別は、その非OSSがライセンス伝播の影響を受ける場合、その非OSSに影響を与える原因であるOSSのライセンス種別である。また、伝播元ファイル名は、その非OSSがライセンス伝播の影響を受ける場合、その非OSSに影響を与える原因であるOSSのファイル名である。非OSS情報テーブル223に格納される各種データは、後述する処理において生成され、非OSS情報テーブル223に格納される。
【0027】
通信部230は、情報処理装置100及びネットワーク300と、無線または有線による通信を行うためのインターフェースから構成される。
【0028】
入力部240は、ボタン、タッチパネル、キーボード等の入力装置から構成される。入力部240は、ユーザからの操作入力を受け付け、受け付けた操作入力に対応する操作入力信号を制御部210に出力する。
【0029】
出力部250は、CRT(Cathode Ray Tube)や液晶ディスプレイ等の表示装置から構成され、制御部210から供給される文字や画像等のデータを表示する。
【0030】
次に、ライセンス管理装置200の制御部210の機能について説明する。図6は、制御部210の機能構成の一例を示す概略ブロック図である。図6に示すように、制御部210は、プログラム取得部211、依存関係取得部212、特定部213、情報収集部214、判定部215、結果出力部216として機能する。
【0031】
プログラム取得部211は、情報処理装置100から、情報処理装置100において生成されたソフトウェアを構成する複数のプログラムを取得する。また、プログラム取得部211は、そのソフトウェアに利用されている、少なくとも1つのOSSから構成されるOSSアーカイブを、情報処理装置100から取得する。
【0032】
依存関係取得部212は、プログラム取得部211により取得された複数のプログラム間の依存関係を取得する。プログラム間の依存関係は、例えば、あるプログラムが、他のプログラムをリンクするという形式で利用している関係である。リンクには、動的リンクや静的リンクが含まれる。具体的には、依存関係取得部212は、プログラム取得部211により取得された複数のプログラムに含まれる"makefile"の参照、または、ソフトウェアに実装されている依存関係を抽出するためのコマンドの使用等、一般的に知られている手法により、依存関係を取得する。
【0033】
図7は、依存関係取得部212により取得された依存関係の一例を模式的に表す図である。図7に示す依存関係は、プログラム取得部211により取得された複数のプログラムそれぞれを表すノードと、依存関係があるプログラムを表すノード間を結ぶリンクと、から構成される木構造で表される。例えば、プログラム"xxx.c"が、"abc.c"と"xxxx.c"との2つのプログラムをリンクすることにより利用している場合、プログラム"xxx.c"を表すノードは、"abc.c"と"xxxx.c"を表すノードそれぞれと、リンクにより結ばれる。
【0034】
特定部213は、プログラム取得部211により取得された複数のプログラムのうちから、所定のライセンスを有するプログラムを特定する。具体的には、特定部213は、ライセンス情報テーブル221を参照し、複数のプログラムのうちから、ライセンス情報テーブル221に格納されたライセンス特定情報を含むプログラムを特定する。例えば、特定部213は、プログラム取得部211により取得された複数のプログラムのソースコード毎に、ライセンス特定情報として、"GNU General Public License"というキーワードが含まれているか否か判定する。そして、特定部213は、そのキーワードが含まれるプログラムを、ライセンス種別が"GPL"であるOSSとして、特定する。そして、特定部213は、OSSとして特定したプログラムのファイル名を、OSS情報テーブル222に格納する。
【0035】
また、特定部213は、ソフトウェアを構成する複数のプログラムのうちからOSSを特定する際に、プログラムのテキストファイルであるソースコードの他、プログラムのバイナリ形式のファイルについても、所定のライセンスを有するプログラムか否かを判定してもよい。
【0036】
なお、特定部213は、プログラム取得部211により取得された複数のプログラムのうち、プログラム取得部211により取得されたOSSアーカイブにすでに格納されているプログラムについては、ライセンス情報テーブル221を参照して、OSSか否か判定しなくてもよい。すなわち、特定部213は、そのプログラムがOSSか否かの判定を行わずに、そのプログラムのファイル名をOSS情報テーブル222に格納してもよい。
【0037】
また、特定部213は、プログラム取得部211により取得された複数のプログラムのうちから、所定のライセンスを有するプログラムを特定しなかったプログラムを、非OSSとして特定する。そして、特定部213は、非OSSとして特定したプログラムのファイル名を、非OSS情報テーブル223に格納する。
【0038】
情報収集部214は、特定部213により特定されたプログラムに関連する各種情報を、ネットワーク300を介して収集する。具体的には、情報収集部214は、特定部213により特定されたプログラム毎に、そのプログラムのファイル名、またはそのプログラムのソースコードと一致、または部分一致するプログラムをキーワードとして、インターネット上で検索する。そして、情報収集部214は、検索されたプログラムのURI、及び、その検索されたプログラムと関連付けて公開されている利用実績を収集し、OSS情報テーブル222に格納する。
【0039】
判定部215は、特定部213により非OSSとして特定されたプログラムについて、依存関係取得部212により取得された依存関係に基づいて、所定のライセンスを有するプログラムと依存関係があるか否かを判定する。具体的には、判定部215は、非OSS情報テーブル223に格納されている非OSS毎に、依存関係取得部212により取得された依存関係を辿って、OSS情報テーブル222に格納されているOSSのうち、例えばライセンス種別が"GPL"であるOSSと依存関係があるか否かを判定する。例えば、非OSS情報テーブル223に格納されているファイル名"MThij.c"について、判定部215は、図7に示す依存関係から、"MThij.c"を表すノードの下位のノードの中に、OSS情報テーブル222に格納されている、ライセンス種別が"GPL"の"abc.c"を表すノードが存在することを特定する。そして、判定部215は、非OSS情報テーブル223に、"MThij.c"と対応付けて、ライセンス伝播の有無に"Y"、伝播元ライセンス種別に"GPL"、伝播元ファイル名に"abc.c"を格納する。
【0040】
結果出力部216は、OSS情報テーブル222及び非OSS情報テーブル223に格納されたデータを、出力部250に出力する。
【0041】
次に、本実施形態に係るライセンス管理装置200の動作について説明する。
【0042】
ライセンス管理装置200の制御部210が実行するソフトウェア診断処理について説明する。ソフトウェア診断処理は、例えば制御部210のCPUがROMに記憶されたプログラムを読み込むことにより実行される。
【0043】
図8は、ライセンス管理装置200の制御部210が実行するソフトウェア診断処理のフローチャートの一例である。ソフトウェア診断処理は、例えば、ユーザにより、入力部240を介して、ソフトウェア診断処理の実行開始を表す旨の操作入力を受け取ったことを契機として、開始する。
【0044】
まず、プログラム取得部211は、情報処理装置100から、ライセンスの管理対象であるソフトウェアを構成する複数のプログラムと、OSSアーカイブと、を取得する(ステップS101)。
【0045】
次に、依存関係取得部212は、ステップS101において取得された複数のプログラム間の依存関係を表す依存関係情報を取得する(ステップS102)。
【0046】
次に、特定部213は、ステップS101において取得された複数のプログラムのうち、ステップS101において取得されたOSSアーカイブに格納されていないプログラムについて、ライセンス情報テーブル221を参照して、OSSであるプログラムを特定する(ステップS103)。また、特定部213は、ステップS101において取得された複数のプログラムのうち、ステップS101において取得されたOSSアーカイブに格納されているプログラムと同じプログラムを、OSSとして特定する。そして、特定部213は、OSSとして特定したプログラムのファイル名を、OSS情報テーブル222に格納する。
【0047】
次に、情報収集部214は、OSS情報テーブル222に格納されている各OSSについて、インターネットを介して、そのOSSのURIや利用実績を収集し、OSS情報テーブル222に格納する(ステップS104)。
【0048】
次に、特定部213は、ステップS101において取得された複数のプログラムのうち、ステップS103においてOSSとして特定されなかったプログラムを非OSSとして特定する(ステップS105)。そして、特定部213は、非OSSとして特定したプログラムのファイル名を、非OSS情報テーブル223に格納する。
【0049】
次に、判定部215は、非OSS情報テーブル223に格納されている各非OSSについて、ステップS102において取得された依存関係情報に基づいて、ライセンス伝播の有無を判定する(ステップS106)。ライセンス伝播が有ると判定した場合、判定部215は、その非OSSのファイル名と対応付けて、ライセンス伝播が有る旨と、その伝播元のライセンス種別と、伝播元のOSSのファイル名とを表す情報を、非OSS情報テーブル223に格納する。
【0050】
次に、結果出力部216は、OSS情報テーブル222に格納されている各種情報、及び非OSS情報テーブル223に格納されている各種情報を、出力部250に出力表示する(ステップS107)。例えば、結果出力部216は、OSS情報テーブル222及び非OSS情報テーブル223に格納された各種情報を、それぞれ図4及び図5に示すような表形式で出力する。この際、結果出力部216は、予め設定された条件に合致する情報を、強調表示してもよい。例えば、結果出力部216は、非OSS情報テーブル223に格納されたライセンス伝播の有無が"Y"である非OSSの各種情報を強調表示してもよい。そして、ソフトウェア診断処理は終了する。
【0051】
以上説明したように、本実施形態のライセンス管理装置200は、ライセンス管理対象であるソフトウェアを構成する複数のプログラムについて、OSSと非OSSのうちいずれか特定する。そして、ライセンス管理装置200は、特定された非OSSについて、依存関係があるOSSによるライセンス伝播が有るか否かを判定する。従って、ライセンス管理装置200は、ライセンスの影響が伝播するOSSと依存関係があるプログラムを特定でき、ライセンスを漏れなく管理することができる。
【0052】
以上、本発明の実施形態について説明したが、本発明は本実施形態によって限定されるものではない。
【0053】
例えば、上記の実施形態において、ライセンス管理装置200は、情報処理装置100から、ライセンスの管理対象であるソフトウェアを構成する複数のプログラムと、OSSアーカイブと、を取得するが、ライセンスの管理対象であるソフトウェア等の取得方法はこれに限られない。例えば、ライセンスの管理対象であるソフトウェア等のデータをDVD(Digital Versatile Disk)等のメディアに記録し、そのDVDをライセンス管理装置200に読み取らせることで、そのソフトウェア等のデータを取得してもよい。
【0054】
また、上記の実施形態では、ライセンス管理装置200と情報処理装置100とが、別々の機器により実現されている例が記載されているが、その両方の装置の上述した機能が、1つのパーソナルコンピュータ等の機器によって実現されてもよい。また、情報処理装置100の機能のうち、ライセンスの管理対象であるソフトウェアの開発環境と、ライセンス管理装置200の機能とが、同一の機器により実現され、その機器が、OSSが組み込まれた機器と通信可能に接続されるように構成されてもよい。これらの場合において、ライセンス管理装置200の機能を実現するソフトウェアは、必要な場合に、情報処理装置100の機能が組み込まれた機器にインストールされ、不要になった場合に、アンインストールされてもよい。
【0055】
また、上記の実施形態では、情報処理装置100において、ライセンスの管理対象であるソフトウェアの開発環境としての機能と、前記ソフトウェアの実行環境としての機能との両方が、1つの機器により実現されている例が記載されているが、その両方の機能が、通信可能に接続されている別々の機器によって実現されてもよい。
【0056】
なお、上記実施の形態において、ライセンス管理装置200が実行するプログラムは、フレキシブルディスク、CD−ROM(Compact Disk Read-Only Memory)、DVD、MO(Magneto-Optical Disk)等のコンピュータ読み取り可能な記録媒体に格納されて配布されてもよい。そして、そのプログラムがパーソナルコンピュータ等の情報処理装置にインストールされることにより、上述の処理を実行する装置が構成されてもよい。
【0057】
また、プログラムは、インターネット等の通信ネットワーク上の所定のサーバ装置が有するディスク装置等に格納されてもよい。そして、プログラムは、例えば、搬送波に重畳されて、ダウンロードされてもよい。
【0058】
また、上述の機能を、OS(Operating System)が分担して実現する場合またはOSとアプリケーションとの協働により実現する場合、OSの機能を実現する部分以外のプログラムのみが、記録媒体に格納されて配布されてもよく、また、ダウンロードされてもよい。
【0059】
本発明は、本発明の広義の精神と範囲に逸脱することなく、様々な実施の形態及び変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施の形態ではなく、特許請求の範囲によって示される。そして、特許請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。
【産業上の利用可能性】
【0060】
本発明は、ソフトウェアを構成する複数のプログラムのライセンス管理に適する。
【符号の説明】
【0061】
1 ライセンス管理システム、100 情報処理装置、200 ライセンス管理装置、210 制御部、211 プログラム取得部、212 依存関係取得部、213 特定部、214 情報収集部、215 判定部、216 結果出力部、220 記憶部、221 ライセンス情報テーブル、222 OSS情報テーブル、223 非OSS情報テーブル、230 通信部、240 入力部、250 出力部、260 バス、300 ネットワーク
図1
図2
図3
図4
図5
図6
図7
図8