Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP6937589B2 - ライセンス管理装置、ライセンス管理方法、及びプログラム - Google Patents
[go: Go Back, main page]

JP6937589B2 - ライセンス管理装置、ライセンス管理方法、及びプログラム - Google Patents

ライセンス管理装置、ライセンス管理方法、及びプログラム Download PDF

Info

Publication number
JP6937589B2
JP6937589B2 JP2017033559A JP2017033559A JP6937589B2 JP 6937589 B2 JP6937589 B2 JP 6937589B2 JP 2017033559 A JP2017033559 A JP 2017033559A JP 2017033559 A JP2017033559 A JP 2017033559A JP 6937589 B2 JP6937589 B2 JP 6937589B2
Authority
JP
Japan
Prior art keywords
license
source code
unit
dependency
software
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2017033559A
Other languages
English (en)
Other versions
JP2018139054A (ja
Inventor
紀之 小宮
紀之 小宮
雅和 天明
雅和 天明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2017033559A priority Critical patent/JP6937589B2/ja
Publication of JP2018139054A publication Critical patent/JP2018139054A/ja
Application granted granted Critical
Publication of JP6937589B2 publication Critical patent/JP6937589B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明は、ライセンス管理装置、ライセンス管理方法、及びプログラムに関する。
近年、オープン・ソース・ソフトウェア(OSS)を利用したソフトウェアの開発が盛んとなっている。OSSの中には、OSSを利用した場合に、一定の条件を課すライセンスを伴うものが多い。従って、OSSを利用する場合、そのライセンスの調査や管理に多大な工数が必要となる。特許文献1は、この多大な工数を減らすため、OSSのライセンスをチェックするシステムを開示している。具体的には、特許文献1に開示されたシステムは、ユーザがOSSをインターネットからダウンロードした際、そのOSSのライセンスをチェックする。そして、ユーザがそのOSSを用いて作成したソフトウェアをビルドする際、そのシステムは、そのソフトウェアが、そのOSSのライセンスに違反していないかを判定し、その結果を出力する。
特開2008−191889号公報
OSSの中には、そのライセンスが、そのOSSを直接的に用いたソフトウェアだけでなく、そのOSSを間接的に用いたソフトウェアに伝播するものがある。例えば、OSSのライセンスの1つであるGPL(GNU General Public License)では、GPLを有するプログラムAを用いたプログラムBだけでなく、プログラムBを用いたプログラムCにも、GPLの影響が及ぶ。特許文献1に開示されたシステムでは、ユーザによるOSSの改変や、そのOSSへのリンクがそのOSSのライセンスに違反しているか否かを判定できるが、そのOSSを間接的に用いたソフトウェアについては、そのOSSのライセンスに違反しているか否かを判定することは、困難である。
本発明は、上記実情に鑑みてなされたものであり、ソフトウェアを構成する複数のプログラムのソースコードのライセンスを漏れなく管理することが可能なライセンス管理装置、ライセンス管理方法、及びプログラムを提供することを目的とする。
上記目的を達成するため、本発明のライセンス管理装置は、
ソフトウェアをビルドする際のログであるビルド情報に基づいて、前記ソフトウェアを構成する複数のプログラムのソースコード間の依存関係を判別する依存関係判別部と、
ライセンスの種類毎に、当該ライセンスを特定するためのライセンス特定情報と、当該ライセンスを有するソースコードに依存する他のソースコードにも当該ライセンスが伝播するか否かを示す伝播フラグと、を記憶するライセンス情報記憶部と、
前記ライセンス情報記憶部に記憶されているライセンス特定情報を参照して前記複数のプログラムのソースコードそれぞれが有するライセンスを判別するとともに、判別したライセンスの前記伝播フラグが伝播することを示している場合には、前記依存関係判別部による判別結果に基づいて、当該ライセンスを有するソースコードに依存する他のソースコードを特定し、該他のソースコードに対しても当該ライセンスを有すると判別するライセンス調査部と、
前記ライセンス調査部による判別結果を出力する結果出力部と、
を備える。
本発明によれば、ソフトウェアを構成する複数のプログラムのソースコードのライセンスを漏れなく管理することができる。
本発明の実施形態に係るライセンス管理システムの構成例を示す図 本発明の実施形態に係るライセンス管理装置の構成例を示す図 ライセンス情報テーブルに格納されるデータの一例を示す図 調査結果格納テーブルに格納されるデータの一例を示す図 制御部の機能構成の一例を示す概略ブロック図 依存関係取得部により取得されたソースコード間の依存関係の一例を模式的に表す図 ライセンス診断処理のフローチャート
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付す。
本発明の実施形態に係るライセンス管理システム1の構成例を図1に示す。ライセンス管理システム1は、利用者端末100と、開発環境サーバ200と、ライセンス管理装置300と、を備える。利用者端末100と開発環境サーバ200とライセンス管理装置300とは、インターネット400を介して、互いに通信可能に接続されている。
利用者端末100は、ユーザによって操作されるパーソナルコンピュータ、タブレット端末等である。ユーザは、利用者端末100を操作して、ソフトウェアのビルドの指示、ライセンス診断の指示等を行う。
開発環境サーバ200は、利用者端末100又はライセンス管理装置300からの指示に基づいてソフトウェアのビルドを実行するサーバである。なお、ソフトウェアのビルドとは、ソフトウェアを構成する複数のプログラムのソースコードを正規の手順でコンパイル及びリンクして実行可能なソフトウェア生成物に変換することをいう。開発環境サーバ200には、ビルドを行うために必要なコンパイラ、リンケージエディタ、スクリプト、ビルドコマンド等が予めインストールされている。
ライセンス管理装置300は、ソフトウェアのライセンスを管理する。具体的には、ライセンス管理装置300は、診断対象のソフトウェアを構成する複数のプログラムのソースコード各々のライセンスをチェックし、その結果を出力する。
ランセンス管理装置300の構成を図2に示す。ライセンス管理装置300は、制御部310と、記憶部320と、通信部330と、入力部340と、出力部350と、を備える。これらの各部は、バス360により接続されている。
制御部310は、例えば、CPU(Central Processing Unit)、CPUが実行するプログラムを格納するROM(Read Only Memory)、CPUが生成したデータを一時的に格納するRAM(Random Access Memory)等を備え、ライセンス管理装置300全体の制御を行う。
記憶部320は、ハードディスクドライブや、フラッシュメモリ、SSD(Solid State Drive)のような書き込み可能な記憶装置を備える。記憶部320は、ライセンス情報テーブル321と、調査結果格納テーブル322と、を記憶する。
ライセンス情報テーブル321は、ライセンス情報記憶部に対応し、ライセンスの種類毎に、ライセンスに関する各種の情報が登録されるテーブルである。
図3に、ライセンス情報テーブル321に格納される情報の一例を示す。図3に示すライセンス情報テーブル321には、ライセンスの種類毎に、ライセンス特定情報と、ライセンス種別と、伝播フラグと、公開フラグと、バージョンと、URI(Uniform Resource Identifier)と、を表す情報が対応付けて格納されている。ライセンス情報テーブル321に格納される各種データは、定期的にインターネット400を介して収集され、最新のものに更新される。
なお、ライセンス特定情報は、ライセンスを特定するための情報である。ライセンス特定情報は、例えば、そのライセンスを有するプログラムのソースコード中に一般的に記述されるキーワードである。
ライセンス種別は、ライセンスの種類を表す。具体的なライセンスの種類は、例えば、GPL、BSD(Berkeley Software Distribution License)等である。
伝播フラグは、あるソースコードに付与されているライセンスが、そのソースコードに依存する他のソースコードにも伝播(ライセンス伝播)するか否かを示すフラグである。伝播フラグ「1」は、ライセンス伝播することを示す。伝播フラグ「0」は、ライセンス伝播しないことを示す。
公開フラグは、そのソースコードの公開が義務づけられているか否かを示すフラグである。公開フラグ「1」は、ソースコードの公開が義務づけられていることを示す。公開フラグ「0」は、ソースコードの公開が義務づけられていないことを示す。
URIは、そのライセンスがインターネット400のウェブ上で公開されている場合のそのウェブページのアドレスである。
ここで、GPLは、あるOSSを利用したソフトウェア全体に対して、そのソースコードを公開する必要がある。すなわち、GPLは、そのOSSのライセンスの影響が伝播するライセンスである。例えば、あるOSSが、GPLを有する場合、そのOSSを改変することにより作成されたプログラム、そのOSSへのリンクを含むプログラム等も、GPLを有することとなる。従って、それらのプログラムも、そのソースコードを公開することが義務づけられる。そのため、ライセンス情報テーブル321において、GPLの伝播フラグは「1」、公開フラグは「1」に設定されている。
これに対し、BSDライセンスは、BSDライセンスを有するOSSの利用、再配布にあたり、予め定められている条件を満たせばよく、制限が少ないライセンスである。また、BSDライセンスを有するOSSを改変したプログラムは、そのソースコードを非公開にすることができる。そのため、図3に示すライセンス情報テーブル321において、BSDライセンスの伝播フラグは「0」、公開フラグは「0」に設定されている。
図2に戻り、調査結果格納テーブル322には、ソフトウェアを構成する各プログラムのソースコードのライセンスを調査した結果を示す情報が格納される。具体的には、図4に示すように、調査結果格納テーブル322には、ソースコード毎に、ソースコードのファイル名と、ソースコードに課せられているライセンスの種別と、伝播元ファイル名と、を示す情報が格納される。伝播元ファイル名は、そのソースコードがライセンス伝播の影響を受ける場合、そのソースコードに影響を与える原因であるソースコードのファイル名である。
図2に戻り、通信部330は、インターネット400を介して、利用者端末100及び開発環境サーバ200と、無線または有線による通信を行うためのインターフェースである。
入力部340は、ボタン、タッチパネル、キーボード等の入力装置を備える。入力部340は、ユーザからの操作入力を受け付け、受け付けた操作入力に対応する操作入力信号を制御部310に出力する。
出力部350は、CRT(Cathode Ray Tube)、液晶ディスプレイ等の表示装置を備える。出力部350は、制御部310から供給される文字、画像等のデータを表示する。
次に、ライセンス管理装置300の制御部310の機能について説明する。図5は、制御部310の機能構成の一例を示す概略ブロック図である。制御部310は、機能的な構成として、プログラム取得部311と、依存関係判別部312と、ライセンス調査部313と、結果出力部314と、アーカイブ作成部315と、を備える。
プログラム取得部311は、開発環境サーバ200から、ライセンス診断の対象とするソフトウェアを構成する複数のプログラムのソースコードと、このソフトウェアをビルドした際のビルド情報とを取得する。
依存関係判別部312は、プログラム取得部311により取得されたビルド情報に基づいて、プログラム取得部311により取得された複数のプログラム間の依存関係を判別する。プログラム間の依存関係は、例えば、あるプログラムが、他のプログラムをリンク(利用、参照等)するという形式で利用している関係である。リンクには、動的リンクや静的リンクが含まれる。
図6は、依存関係判別部312により判別されたソースコード間の依存関係の一例を模式的に表す図である。この依存関係は、プログラム取得部311により取得された複数のプログラムのソースコードそれぞれを表すノードと、依存関係があるプログラムを表すノード間を結ぶ矢印線と、から構成される木構造で表される。矢印線の始点に接続するノードのソースコードは、この矢印線の終点に接続するノードのソースコードに依存していることを示す。例えば、図6から、ソースコード「aa.c」は、2つのソースコード「bb.c」、「dd.c」に依存していることが分かる。さらに、ソースコード「bb.c」は、ソースコード「cc.h」に依存していることが分かる。そのため、ソースコード「aa.c」は、間接的にソースコード「cc.h」にも依存していることが分かる。
なお、以下の説明では、直接及び間接的に他のソースコードに依存する回数が多いソースコードほど、依存関係が上位のソースコードであると定義する。例えば、図6の例では、どのソースコードにも依存していないソースコード「cc.h」、「dd.c」、「ff.c」、「hh.c」、「ii.c」、「jj.c」は、依存関係が最下位のソースコードとなる。また、ソースコード「main.c」は、依存関係が最上位のソースコードとなる。
図5に戻り、ライセンス調査部313は、ライセンス情報テーブル321に記憶されているライセンス情報及び依存関係判別部312によって判別されたソースコード間の依存関係に基づいて、調査対象とするプログラムのソースコード各々のライセンスを判別し、判別結果を調査結果格納テーブル322に登録する。
具体的には、まず、ライセンス調査部313は、調査対象とする複数のプログラムのソースコードのうち、ライセンス情報テーブル321に記憶されたライセンス特定情報を含むソースコードを特定してそのライセンスの種類を判別する。そして、ライセンス調査部313は、判別結果を調査結果格納テーブル322に登録する。
例えば、ライセンス情報テーブル321に図3に示すような情報が記憶されており、調査対象とする複数のプログラムのソースコードの中から、ライセンス特定情報「GNU General Public License」が記述されているソースコードを特定した場合、ライセンス調査部313は、当該ソースコードのライセンスは「GPL」であると判別する。そして、ライセンス調査部313は、特定したソースコードのファイル名と判別したライセンス種別とを対応付けたエントリを調査結果格納テーブル322に登録する。なお、ここで登録されるエントリの伝播元ファイル名は「無し」とする。
続いて、ライセンス調査部313は、ライセンス情報テーブル321を参照して、判別したソースコードのライセンスの伝播フラグが「1」であるか否かを判別する。伝播フラグが「1」である場合、ライセンス調査部313は、依存関係判別部312が判別した依存関係に基づいて、このソースコードに直接又は間接的に依存する他のソースコードを全て特定する。そして、ライセンス調査部313は、特定した他のソースコードに対しても、同様のライセンス種別を有すると判別し、判別結果を調査結果格納テーブル322に登録する。
例えば、ソースコード間に図6に示すような依存関係が有り、ソースコード「ii.c」のライセンスが「GPL」であると判別された場合を考える。図3より、「GPL」は他のソースコードに伝播するため、ライセンス調査部313は、このソースコード「ii.c」に依存するソースコード「gg.c」も、ライセンス種別が「GPL」であると判別する。さらに、ライセンス調査部313は、このソースコード「gg.c」に依存する「ee.c」も、ライセンス種別が「GPL」であると判別する。さらに、ライセンス調査部313は、このソースコード「ee.c」に依存する「main.c」も、ライセンス種別が「GPL」であると判別する。よって、最終的にライセンス調査部313は、ソースコード「ii.c」に直接又は間接的に依存するソースコードとして「gg.c」、「ee.c」、「main.c」の3つのソースコードを判別する。そして、ライセンス調査部313は、ファイル名「gg.c」、ライセンス種別「GPL」、伝播元ファイル名「ii.c」としたエントリと、ファイル名「ee.c」、ライセンス種別「GPL」、伝播元ファイル名「ii.c」としたエントリと、ファイル名「main.c」、ライセンス種別「GPL」、伝播元ファイル名「ii.c」としたエントリと、を調査結果格納テーブル322に登録する。
図5に戻り、結果出力部314は、ライセンス調査部313による調査結果として、調査結果格納テーブル322に格納されたデータを出力部350から出力させる。
アーカイブ作成部315は、調査結果格納テーブル322を参照して、ライセンスを調査したソースコードの中から公開が義務づけられているソースコードを特定し、特定したソースコードを、コンポーネント毎にまとめたアーカイブファイルを作成する(アーカイブする)。なお、コンポーネントとは、機能毎のまとまりを意味し、予めどのソースコードがどのコンポーネントに属するかが定義されている。なお、コンポーネントの単位をライブラリの単位と一致させてもよい。また、アーカイブ作成部315は、コンポーネント毎ではなく、特定した全てのソースコードを1つにまとめたアーカイブファイルを作成してもよく、アーカイブファイルを作成する単位は種々のものが採用可能である。
次に、本実施形態に係るライセンス管理装置300の制御部310が実施するライセンス診断処理の動作について、図7のフローチャートを用いて説明する。
ライセンス診断処理は、ユーザからの操作により入力部340を介してライセンス診断処理の実行開始を表す旨の指示情報を受け取った場合、若しくは、インターネット400を介して利用者端末100からライセンス診断処理の実行開始を示す指示情報を通信部330が受信した場合に開始される。なお、この指示情報には、調査対象とするソフトウェアを特定する情報と、このソフトウェアを構成する複数のプログラムのソースコードのうち、実際にライセンスを調査するソースコードを指定するための調査対象指定情報とが含まれている。調査対象指定情報は、ライブラリ、ヘッダファイル、スクリプトファイルのようにソースコードの種類を指定するものでもよいし、ファイル名でライセンス調査対象のソースコードを直接指定するものでもよい。
まず、ライセンス調査部313は、調査結果格納テーブル322に格納されているデータ(前回の調査結果)が有ればこのデータを消去する(ステップS101)。
続いて、プログラム取得部311は、開発環境サーバ200から、ライセンスの管理対象であるソフトウェアを構成する複数のプログラムのソースコードと、当該ソフトウェアのビルド情報とを取得する(ステップS102)。
次に、依存関係判別部312は、取得したビルド情報に基づいて、取得した複数のプログラム間の依存関係を判別する(ステップS103)。
続いて、ライセンス調査部313は、判別した依存関係を参照して、調査対象指定情報で指定されているソースコードとこのソースコードが直接又は間接的に依存するソースコードとを、調査対象モジュールとして特定する(ステップS104)。
例えば、ステップS103で図6に示すようなソースコード間の依存関係が判別され、調査対象指定情報としてソースコード「ee.c」が指定されている場合を考える。この場合、ライセンス調査部313は、調査対象モジュールとして、このソースコード「ee.c」と、このソースコード「ee.c」が直接又は間接的に依存するソースコード「ff.c」、「gg.c」、「hh.c」、「ii.c」、「jj.c」とを特定する。
図7に戻り、続いて、ライセンス調査部313は、判別した調査対象モジュールに含まれる未選択のソースコードの中から、ステップS103で判別した依存関係が最下位のソースコードを1つ選択する(ステップS105)。
そして、ライセンス調査部313は、ライセンス情報テーブル321のライセンス特定情報をキーワードに選択したソースコードを検索することにより、当該ソースコードのライセンスの有無及び、ライセンスを有する場合はその種類を判別し、判別結果を調査結果格納テーブル322に登録する(ステップS106)。
続いて、ライセンス調査部313は、ライセンス情報テーブル321の伝播フラグを参照して、ステップS106で判別したソースコードのライセンスが、このソースコードを利用する他のソースコードにも伝播するか否かを判別する(ステップS107)。伝播しないと判別した場合(ステップS107;No)、ステップS109に処理は移る。
一方、ソースコードのライセンスが伝播すると判別した場合(ステップS107;Yes)、ライセンス調査部313は、ステップS103で判別した依存関係に基づいて、そのソースコードが直接又は間接的に依存する他のソースコードを判別する。そして、ライセンス調査部313は、判別した他のソースコードに対しても、ステップS106で判別したものと同じライセンスを有すると判別し、判別結果を調査結果格納テーブル322に登録する(ステップS108)。
続いて、ライセンス調査部313は、調査対象モジュールに含まれる全てのソースコードをステップS105で選択したか否かを判別する(ステップS109)。未選択のソースコードがある場合(ステップS109;No)、ステップS105に処理は戻る。
全てのソースコードを選択した場合(ステップS109;Yes)、結果出力部314は、ライセンスの調査結果を出力する。具体的には、結果出力部314は、調査結果格納テーブル322に格納されているデータを出力部に出力(表示)させる(ステップS110)。なお、利用者端末100からの指示によってライセンス診断処理が開始された場合は、結果出力部314は、調査結果格納テーブル322に格納されているデータをこの利用者端末100に送信して、利用者端末100の図示せぬ表示部に調査結果を出力させてもよい。
続いて、アーカイブ作成部315は、ライセンスを調査したソースコードのうち、公開が義務づけられているソースコードを特定する。例えば、ライセンス調査部313は、調査結果格納テーブル322を参照して、ライセンス情報テーブル321の公開フラグが「1」であるライセンス(例えばGPL)を有するソースコードを特定すればよい。そして、ライセンス調査部313は、特定した公開が義務づけられているソースコードをコンポーネント毎にまとめたアーカイブファイルを作成する(アーカイブする)(ステップS111)。以上でライセンス診断処理は終了する。
以上説明したように、本実施形態のライセンス管理装置300は、ソフトウェアをビルドする際のログであるビルド情報に基づいて、ライセンス管理対象であるソフトウェアを構成する複数のプログラムのソースコード間の依存関係を判別する。そして、ライセンス管理装置300は、ライセンス特定情報を用いて予め定めたライセンスを有するソースコードを判別する。そして、判別したライセンスが伝播する場合、ライセンス管理装置300は、判別した依存関係に基づいて、このソースコードに依存する他のソースコードを特定し、特定した他のソースコードに対しても同じライセンスを有すると判別する。従って、ライセンス管理装置300は、ライセンス伝播も考慮して、プログラムのソースコードのライセンスを調査することができ、ライセンスを漏れなく管理することができる。
以上、本発明の実施形態について説明したが、本発明は本実施形態によって限定されるものではない。
例えば、上記実施形態では、調査対象モジュールに含まれるソースコードのライセンスを調査したが、ソフトウェアを構成する全てのプログラムのソースコードを対象に、ライセンスを調査してもよい。
例えば、ビルドを実行するビルドコマンドとは別に、ビルドコマンドをラッパーしたラッパーコマンドを開発環境サーバ200に用意しておく。このラッパーコマンドは、通常のビルドとは異なり、ソフトウェア生成物を生成せずにビルドのログ(ビルド情報)の出力を目的とした擬似ビルドを実行するためのコマンドである。そして、ライセンス管理装置300は、このラッパーコマンドを用いて擬似ビルドが実行された際のログ情報を開発環境サーバ200から取得し、取得したログ情報を用いてソースコード間の依存関係の判別(図7のステップS103)をしてもよい。擬似ビルドでは、ソフトウェア生成部が生成されずに通常のビルドよりも短時間でビルド情報が出力されるため、ライセンス診断処理の実行速度を向上させることが可能となる。なお、擬似ビルド時に出力されるビルド情報を通常のビルド時で出力されるビルド情報よりも詳細な内容で出力させたり、ソースコード間の依存関係の判別が容易になる形式でビルド情報を出力させたりしてもよい。
例えば、ライセンス管理装置300は、開発環境サーバ200からビルド情報を取得したが、ライセンス管理装置300にビルド又は擬似ビルドを実行できる環境を構築し、ライセンス管理装置300でビルド又は擬似ビルドを実行してビルド情報を取得してもよい。
また、ライセンス診断処理の各ステップを複数の装置で分担して実行してもよい。例えば、依存関係の判別までのステップ(ステップS101〜S103)を利用者端末100又は開発環境サーバ200で実行して結果をライセンス管理装置300に送信し、以降のステップS104〜S111をライセンス管理装置300が実行してもよい。
また、上記実施形態では、ライセンス管理装置300の依存関係判別部312が、ビルド情報を用いてソースコード間の依存関係を判別したが、他の情報を用いて依存関係を判別してもよい。例えば、依存関係判別部312は、ビルドによって生成されるソフトウェア生成物を開発環境サーバ200から取得し、ソフトウェア生成物の内容を解析してソースコード間の依存関係を判別してもよい。また、依存関係判別部312は、依存関係のうち静的リンクはビルド情報を用いて判別し、動的リンクはソフトウェア生成物を用いて判別してもよい。
また、上記実施形態では、ライセンス診断処理において、調査対象モジュールに含まれる未選択のソースコードから、依存関係が下位のものを順に選択してライセンスを判別したが(図7のステップS105、S106)、ソースコードをどのような順で選択するかは任意であり、例えば、調査対象モジュールに含まれる未選択のソースコードから、ランダムに1つを選択してもよい。
例えば、上記実施形態では、結果出力部314は、ライセンスの調査結果として、調査結果格納テーブル322に格納されているデータを出力したが(図7のステップS110)、これ以外のデータを出力してもよい。例えば、結果出力部314は、ライセンスを調査したソースコードのうち、公開が義務づけられているラインセンスを有するものや、非推奨のライセンスを有するものが有る場合に、ソフトウェア全体にライセンスに関する問題があるとして、警告メッセージを出力部350に出力してもよい。
また、例えば、結果出力部314は、判別したライセンスの条文をインターネット400を介して取得し、付加情報としてライセンス結果とともに出力させてもよい。また、結果出力部314は、予め定めた形式(PDF形式、HTML形式、XML形式等)で取得したライセンスの条文を1つにまとめたファイルを出力させてもよい。
また、上記実施形態では、ライセンス管理装置300と利用者端末100と開発環境サーバ200とが、別々の機器により実現されている例が記載されているが、各装置の上述した機能が、1つのパーソナルコンピュータ、サーバ等の機器によって実現されてもよい。
例えば、本実施形態に係るライセンス管理装置300の動作を規定する動作プログラムを既存のパーソナルコンピュータや情報端末機器等に適用することで、当該パーソナルコンピュータ等を本発明に係るライセンス管理装置300として機能させることも可能である。
また、このようなプログラムの配布方法は任意であり、例えば、CD−ROM(Compact Disk Read-Only Memory)、DVD(Digital Versatile Disk)、MO(Magneto Optical Disk)、メモリカードなどのコンピュータ読み取り可能な記録媒体に格納して配布してもよいし、インターネット400などの通信ネットワークを介して配布してもよい。
1 ライセンス管理システム、100 利用者端末、200 開発環境サーバ、300 ライセンス管理装置、400 インターネット、310 制御部、320 記憶部、321 ライセンス情報テーブル、322 調査結果格納テーブル、330 通信部、340 入力部、350 出力部、360 バス、311 プログラム取得部、312 依存関係判別部、313 ライセンス調査部、314 結果出力部、315 アーカイブ作成部

Claims (7)

  1. ソフトウェアをビルドする際のログであるビルド情報に基づいて、前記ソフトウェアを構成する複数のプログラムのソースコード間の依存関係を判別する依存関係判別部と、
    ライセンスの種類毎に、当該ライセンスを特定するためのライセンス特定情報と、当該ライセンスを有するソースコードに依存する他のソースコードにも当該ライセンスが伝播するか否かを示す伝播フラグと、を記憶するライセンス情報記憶部と、
    前記ライセンス情報記憶部に記憶されているライセンス特定情報を参照して前記複数のプログラムのソースコードそれぞれが有するライセンスを判別するとともに、判別したライセンスの前記伝播フラグが伝播することを示している場合には、前記依存関係判別部による判別結果に基づいて、当該ライセンスを有するソースコードに依存する他のソースコードを特定し、該他のソースコードに対しても当該ライセンスを有すると判別するライセンス調査部と、
    前記ライセンス調査部による判別結果を出力する結果出力部と、
    を備えるライセンス管理装置。
  2. 前記依存関係判別部は、
    前記ビルド情報に基づいて、前記複数のプログラムのソースコード間の静的な依存関係を判別し、
    前記ソフトウェアをビルドすることによって生成されるソフトウェア生成物に基づいて、前記複数のプログラムのソースコード間の動的な依存関係を判別する、
    請求項1に記載のライセンス管理装置。
  3. 前記ビルド情報は、ソフトウェア生成物を生成しないビルドである擬似ビルドを実行した際のログである、
    請求項1又は2に記載のライセンス管理装置。
  4. 前記予め定めたライセンスがソースコードの公開を義務づけるライセンスである場合に、前記ライセンス調査部が判別した前記予め定めたライセンスを有するソースコードのアーカイブを作成するアーカイブ作成部をさらに備える、
    請求項1から3の何れか1項に記載のライセンス管理装置。
  5. 前記結果出力部は、前記ライセンス調査部が判別したライセンスの条文の一覧を出力する、
    請求項1からの何れか1項に記載のライセンス管理装置。
  6. コンピュータが、
    ソフトウェアをビルドする際のログであるビルド情報に基づいて、前記ソフトウェアを構成する複数のプログラムのソースコード間の依存関係を判別する依存関係判別ステップと、
    ライセンスの種類毎に、当該ライセンスを特定するためのライセンス特定情報と、当該ライセンスを有するソースコードに依存する他のソースコードにも当該ライセンスが伝播するか否かを示す伝播フラグと、を記憶するライセンス情報記憶ステップと、
    前記ライセンス特定情報を参照して前記複数のプログラムのソースコードそれぞれが有するライセンスを判別するとともに、判別したライセンスの前記伝播フラグが伝播することを示している場合には、前記依存関係判別ステップでの判別結果に基づいて、当該ライセンスを有するソースコードに依存する他のソースコードを特定し、該他のソースコードに対しても当該ライセンスを有すると判別するライセンス調査ステップと、
    実行するライセンス管理方法。
  7. コンピュータを、
    ソフトウェアをビルドする際のログであるビルド情報に基づいて、前記ソフトウェアを構成する複数のプログラムのソースコード間の依存関係を判別する依存関係判別部、
    ライセンスの種類毎に、当該ライセンスを特定するためのライセンス特定情報と、当該ライセンスを有するソースコードに依存する他のソースコードにも当該ライセンスが伝播するか否かを示す伝播フラグと、を記憶するライセンス情報記憶部、
    前記ライセンス情報記憶部に記憶されているライセンス特定情報を参照して前記複数のプログラムのソースコードそれぞれが有するライセンスを判別するとともに、判別したライセンスの前記伝播フラグが伝播することを示している場合には、前記依存関係判別部による判別結果に基づいて、当該ライセンスを有するソースコードに依存する他のソースコードを特定し、該他のソースコードに対しても当該ライセンスを有すると判別するライセンス調査部、
    として機能させるプログラム。
JP2017033559A 2017-02-24 2017-02-24 ライセンス管理装置、ライセンス管理方法、及びプログラム Expired - Fee Related JP6937589B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017033559A JP6937589B2 (ja) 2017-02-24 2017-02-24 ライセンス管理装置、ライセンス管理方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017033559A JP6937589B2 (ja) 2017-02-24 2017-02-24 ライセンス管理装置、ライセンス管理方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2018139054A JP2018139054A (ja) 2018-09-06
JP6937589B2 true JP6937589B2 (ja) 2021-09-22

Family

ID=63451391

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017033559A Expired - Fee Related JP6937589B2 (ja) 2017-02-24 2017-02-24 ライセンス管理装置、ライセンス管理方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP6937589B2 (ja)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001075896A (ja) * 1999-09-02 2001-03-23 Hitachi Ltd ソフトウェアの配布方法
JP2006079385A (ja) * 2004-09-10 2006-03-23 Fuji Xerox Co Ltd ソフトウエア処理装置
US7747588B2 (en) * 2005-09-12 2010-06-29 Microsoft Corporation Extensible XML format and object model for localization data
JP4901561B2 (ja) * 2006-04-14 2012-03-21 パナソニック株式会社 設計支援システム、設計支援方法及び設計支援プログラム
JP2008293486A (ja) * 2007-04-25 2008-12-04 Hitachi Ltd ソースコード解析機器、解析プログラムおよび解析方法
US8359655B1 (en) * 2008-10-03 2013-01-22 Pham Andrew T Software code analysis and classification system and method
JP6045707B2 (ja) * 2013-09-02 2016-12-14 三菱電機株式会社 ライセンス管理装置、ライセンス管理方法、及びプログラム
KR101648047B1 (ko) * 2014-11-10 2016-08-16 엘에스웨어(주) 호환 오픈소스 소프트웨어 추천 시스템 및 방법

Also Published As

Publication number Publication date
JP2018139054A (ja) 2018-09-06

Similar Documents

Publication Publication Date Title
US11868231B2 (en) System and method for evaluating code by a hybrid of local and cloud-based computers
US9367305B1 (en) Automatic container definition
US8856724B2 (en) Systems and methods for incremental software development
JP5350428B2 (ja) 自動プログラム生成装置、方法及びコンピュータプログラム
CN111158674A (zh) 组件管理方法、系统、设备及存储介质
US20160335368A1 (en) Managing a display of results of a keyword search on a web page by modifying attributes of a dom tree structure
US20160380915A1 (en) Rules-Based Workflow Messaging
US10489124B2 (en) Method and system for providing software containers supporting executable code created from computational algorithms described in printed publications
US20220405196A1 (en) Operation pattern generation apparatus, operation pattern generation method and program
CN107608672A (zh) 一种ui模块管理器、ui模块管理方法和系统
JP6045707B2 (ja) ライセンス管理装置、ライセンス管理方法、及びプログラム
JP6937589B2 (ja) ライセンス管理装置、ライセンス管理方法、及びプログラム
US20220206934A1 (en) Test apparatus, test method and program
JP2013145443A (ja) テストコード生成装置、テストコード生成方法、テストコード生成プログラム
JP7168532B2 (ja) 情報処理システム、情報処理方法、開発装置、および開発装置用のプログラム
JP2019179383A (ja) Api処理方法、端末、api処理プログラム
JP5500968B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
Edan et al. Usage one of Reverse Engineering Application (Node. js Web) to Construct Software Engineering Documents.
US11960560B1 (en) Methods for analyzing recurring accessibility issues with dynamic web site behavior and devices thereof
JP2011113298A (ja) 流用ソースコード解析システム及びプログラム並びに記録媒体
JP4895373B2 (ja) ソフトウェア成果物再利用方法及びそのシステム
US20120047354A1 (en) Information processing apparatus and information processing method
CN119045804A (zh) 可视化脚本处理方法、装置、设备、存储介质和程序产品
CN120216001A (zh) 一种组件的动态配置方法、装置、设备及存储介质
WO2025042894A1 (en) System and method for automated continuous source code improvement

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191216

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201020

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20201216

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210205

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210803

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210831

R150 Certificate of patent or registration of utility model

Ref document number: 6937589

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees