「MITライセンス」とOSSとは?商用利用は可能?
ITエンジニアの皆さんは、OSS(Open Source Software)「 オープンソースソフトウェア」を利用してアプリ開発をすることがあるかと思います。OSSは無償のソフトウェアですが、その利用にはライセンス(使用許諾)があり、さまざまな権利・義務・制約・リスクがあるということを忘れてはなりません。ここでは、「OSSライセンス」中でも最も多く利用されている「MITライセンス」の商用利用にスポットを当てながら、OSSライセンスの利用方法・注意点などについて考察していきます。
オープンソースソフトウェア(OSS)とは
オープンソースソフトウェア"Open Source Software"は、その頭文字から「OSS」と略して使用されています。OSSはそのソフトウェア自身のソースコードの公開と、その利用・改変、再配布などを自由に行うことが許可された点が特徴のソフトウェアです。
OSSの中でも皆さんがよく利用されているものに、「Linux OS」、DBMSの「MySQL」、プログラム言語の「Java」「Perl」「PHP」「Python」やブラウザソフトの「Firefox」などが知られています。
ご存知の通り、OSSは無償利用が可能なソフトですが、その性能の高さや信頼性が評価され、ビジネス利用においてもOSSをベースにした開発が多く見られます。エンジニアの皆さんも、これらのソースを元にアプリ開発を行った方も少なくないでしょう。今さら、OSSかと思われるかも知れませんが、改めてご自身の知識を再確認する記事になれば幸いです。
OSIの認定とは
OSSは無償で提供されているソフトウェアですが、改変が禁止されているフリーソフトとは異なり、改変して利用することができます。しかし、誰もが好き勝手に使って良いものではありません。OSSライセンスは非営利団体のOSI(正式名称:The Open Source Initiative)がその管理や認定を行っています。また、OSIはライセンスのレビューなどを通じてOSSの普及にも力を入れています。ソフトウェアがOSSとして認められるためには、そのライセンス(利用条件など)がOSIが定めた「オープンソースの定義」にマッチしていることが認定の条件です。
「MITライセンス」は商用利用できる
「MITライセンス」は、マサチューセッツ工科大学で考案・作成された代表的なOSSライセンスで、利用における制約や制限が少なく、無料で商用利用などに自由に使えるのが特徴です。
MITライセンスの規定は大変シンプルで、「ソフトウェアを自由に扱ってよい」「再配布の際に著作権とライセンスの表示を含める」の2点だけが利用条件です。また、「作者や著作権者はいかなる責任も負わない」ことを定めています。
さらに、MITライセンスのソフトウェアをベースにして新たに作成したプロダクトは、その「ソースコードを公開しない」配布が可能である点が、ソースコードの開示が前提となるGPLライセンスなどとの違いであり、その簡便さがMITライセンスに人気が集まる理由の1つです。
MITライセンスのシェアは、OSSライセンス中では最も高い4割前後の利用となっています。
「OSSライセンス」に関する3つのポイント
OSSライセンスにはさまざまな種類のライセンスがありますが、OSSライセンスに共通の重要ポイントが3つあります。ここでは、その3つの重要ポイントについて解説していきます。
動作結果に対する保障がない
OSSライセンスでは「OSSの正常動作の保障がなく、発生した結果について作成者は一切の責任を負わない」という免責があります。
つまり、「利用して何かあっても責任は負わない」という条件付で無償配布がされていると理解しましょう。責任を負わないという点に不安を感じますが、OSSにはLinuxやJAVAのように良く知られたメジャーなソフトが多く、サポート関連サイトもあり、仮にバグなどのトラブルがあってもソースコードを触ることができるため、直ちに対応できるのが特徴です。ここがフリーウェアなどとの大きな違いです。
著作権の表示義務がある
OSSライセンスにはさまざまのタイプがありますが、オリジナルOSSから派生したソフトウェアの配布の当たり、オリジナルのOSSに関する「ライセンスに関する文」「著作権」「免責事項」などに関する表示の義務が生じるという点が共通しています。
それらを具体的に表示する場所・表示の方法・表示内容などについては、各ライセンスによって多少異なるため、詳細はそれぞれのライセンスを個別に確認する必要があります。
MITライセンスでは記載事項として、「著作権表示」と「本許諾(ライセンス)に関する文」の2つが定められています。
具体的には、「Copyright (c)2021 Taro Yamada」(例)と、このライセンスの全文(The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.)をソースコードの中に記載、もしくはソースコードとは別にテキストファイルなどを利用した形での掲載、提供が求められます。
■ソースコード形式での配布の場合
ソースコードでの配布の場合は、オリジナルのソースコードの中に「著作権」や「ライセンスに関する文章」が既に入っているため、著作権に関して特別に何かをする必要はないでしょう。
■バイナリ形式での配布の場合
このパターンでは、コンパイル時にソースに記載された「ライセンスに関する文」が消えてしまうため、バイナリとは別に「ライセンスなどを表示する専用ファイル」を作成して、ソフトウェアを配布します。
コピーレフト型と非コピーレフト型
OSSライセンスには3つの型のライセンス方式があります。「コピーレフト型」「準コピーレフト型」「非コピーレフト型」のいずれかに分類されます。ちなみにレフトというのは、Leftは「残す」といの意味です。
■「コピーレフト型ライセンス」
「コピーレフト」は”コピーを残す”という意味なため、「オリジナルOSSから派生するプロダクトを作成して配布する場合、元のOSSと同様に、そのプロダクトなどのソースコードを公開しなければならない」ということを意味しています。コピーレフト型ライセンスとしては「GPLライセンス」などがあります。
■「非コピーレフト型ライセンス」
オリジナルOSSに手を加えて新たに作成したプロダクトに関しては、オリジナルと同じライセンスを適用する必要がないことが特徴で、そのプロダクトを自社商品として販売することが可能です。非コピーレフト型ライセンスには、MITライセンス以外に「BSDライセンス」が有名です。
■「準コピーレフト型ライセンス」
オリジナルOSSに関する制限は「コピーレフト型」と全く同一ですが、OSSをベースにして新たに作成したプロダクトはソースコードの開示義務がないという点が特徴です。
GitHubについて
開発者としては外せないサービスの1つに、GitHubがあります。GitHubは、簡単に言うとソフトウェア開発プロジェクトにおけるソースコードの管理サービスです。GitHubでは、ソースコードのバージョン管理・閲覧・バグの追跡機能・SNS機能などを備え、開発者にとって必要不可欠とも言えるサービスです。OSSライセンスの確認もGitHub上で簡単に行えるようになっているため、GitHubを上手く活用してみてください。
「OSSライセンス」利用のメリット
OSSの最大の利用メリットは「コストメリット」だと考える方が多いでしょう。しかし、OSSには「コストメリット」以外にもさまざまなメリットがあるからこそ、広く利用されているのです。これからコストメリット以外のメリットについても見ていきましょう。
1.ソースコードの信頼性
ソースコードが公開されているため、不正プログラムや脆弱性などの監査が可能であり、ソフトウェアの信頼性を担保できます。また、発見されたバグや脆弱性に対して、迅速に対応することが可能です。
2.長期にわたって使い続けられる
商用ソフトは「プロプライエタリ・ソフトウェア」タイプが大半で、ソースを開示せず、ソフトウェアそのものの改変や複製などを制限し、サポート終了の際にアップグレードが必須となるのが普通です。Windows OSをイメージするとよく分かるでしょう。これに対して、OSSはそのソースコードがオープンになっている、継続してメンテナンスを行うことができて長期間安定して利用することが可能です。
3.柔軟性に優れている
OSSライセンスの特徴の3つ目は、非常に柔軟性がある点です。OSSには国際標準規格のプロトコルやAPIが備えられているため、システム間の連携やプラグイン開発が容易に行えます。さらには、ソースコードそのものの修正も可能であり、業務の変更や市場の変化などに柔軟に対応することができます。
「MITライセンス」のOSSを商用利用に活かそう
「OSSライセンス」に関し、ITエンジニアとして押えておくべきポイントについて「MITライセンス」を取り上げて確認をしてきました。
MITライセンスは数多くあるOSSライセンスの中でも、最も活用されています。利用の際に守るべきことは「著作権表示」と「ライセンス文の記載」の2点だけという制約の少なさ、商用利用のしやすさが人気の理由です。
ITエンジニアの皆さんは、OSS開発においてMITライセンスに触れる機会があることでしょう。また、自身でOSSを用いて独自アプリを開発する局面もあるはず。
MITライセンスは簡単な条件をクリアさえすれば、多種多様なニーズに合わせて対応することが可能です。しかし、これからOSS開発に携わっていけば、MITライセンス以外のOSSライセンスに触れる機会が増えることでしょう。
MITライセンスをOSSライセンスの1つの例として採り上げましたが、エンジニアの皆さんは、さらに他のタイプのOSSライセンスについても学び、OSSの達人を目指してみてください。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから