SPDX 【Software Package Data Exchange】
概要
SPDX(Software Package Data Exchange)とは、システムを構成するソフトウェアについての情報を収集して管理するためのデータ形式の標準の一つ。ソフトウェア部品表(SBOM)の作成に用いられる。現代の大規模な情報システムの開発では、自社開発のプログラムに加え、他社が販売しているソフトウェア製品、オープンソースソフトウェアなど、様々な種類のソフトウェアやソフトウェア部品を組み合わせて用いることが増えている。
これらはそれぞれ個別の利用許諾条件(ソフトウェアライセンス)に基づいて提供されており、自社製品の一部として組み込む際には条件を逸脱しないよう注意しなければならない。また、脆弱性などが発見された際には素早く対処しなければならず、何が組み込まれているのかすぐに参照できる必要がある。
利用するソフトウェアの数が増えると管理が煩雑になるため、大規模開発の現場では「ソフトウェア部品表」(SBOM:Software Bills Of Material)と呼ばれるリストを整備して、どのソフトウェアのどのバージョンを組み込み、そのライセンス条件はどうなっているか即座に把握できるようにしている。
SPDXは主にライセンス管理を行うためのSBOMのデータ形式の一つで、対象のシステムに含まれるソフトウェアとそのライセンスについての情報をリストすることができる。記述形式として、「属性:値」というキーバリューペアを列挙したタグ形式、XML、JSON、YAML、RDF、Excelスプレッドシート(XLS/XLSX)を選択することができる。
SPDX形式のデータの作成、読み込み、編集などを支援するツールなども整備されており、オープンソースソフトウェアのソースコードにコメントの形でSPDXに組み込めるライセンス情報が埋め込まれることも増えている。SPDXの仕様はLinuxカーネルの開発を推進するLinux Foundationが取りまとめており、2021年にはISO/IEC 5962として国際標準化された。