1998年4月にエリック・レイモンド氏とブルース・ペレンズ氏が設立した「オープンソースイニシアチブ」(OSI)が、1997年に発表されたDebianのフリーソフトウェアガイドラインに基づいて、『オープンソースの定義』を作成しました。これが2020年現在も使用されています。
このオープンソースの定義は、大きく2つに分けることができます。前半の1〜3は、「オープンソースの権利」について、後半の4〜10は、「オープンソースライセンスが備える条件」について記述されていると考えることができます。
最も重要な点は、オープンソースは単にソースコードが入手できるだけではないということです。オープンソースとは、オープンソースの定義に記された全ての条項を順守するものでなければいけないのです。
OSIは定義に基づきライセンスのレビューを実施しており、現在100以上のライセンスを認定しています。ただ、OSIが多くのライセンスを認証した結果、ライセンスが乱立する「ライセンスの氾濫」という事態を引き起こしたため、現在は、既存のライセンスの利用を推奨しています。
代表的なライセンスは、次回以降で紹介します。
オープンソースを理解する上で欠かせないのが「コピーレフト」という考え方です。リチャード・ストールマン氏がフリーソフトウェア運動の中で、熱心に普及を推進している考え方です。リチャード・ストールマン自身は、「オープンソース」という用語に必ずしも賛同していないため「フリーソフトウェア」と「オープンソース」を使い分けなければいけません。この「コピーレフト」という考え方が「オープンソース」に深く関係するので紹介したいと思います。
コピーレフトの定義をまとめると以下のようになります。
一般的には、コピーレフトという表現は、コピーライトの反対の用語ということで、パブリックドメインのように著作権を放棄しているように誤解される可能性もありますが、決してそうではなく、あくまでも著作権は保持した状態です。著作権を保持したままにすることにより、そのソフトウェアが自由(フリー)な状態を維持できるという考え方です。
この考え方を具体的に実装したのが、「GPL」(GNU Public License)です。GPLも次回以降でご紹介したいと思います。
では、ソフトウェアをオープンソースとして公開することにどのようなメリットがあるのでしょうか? 趣味でコードを書く技術者、実験結果の集計や研究のためにコードを書く研究者など、ソフトウェア開発の動機はさまざまです。そのソースコードを公開することで得られるものには、何があるのでしょうか?
前述のNetscapeのように、コミュニティーの力を利用することが、近年特に増えてきているかと思います。一時期大変盛り上がった「OpenStack」も、最初はNASAとRackspaceの共同プロジェクトとして始まったものですが、オープンソース化することで、企業のエンジニアの協力を得ながら、洗練されたソフトウェアへ変身を遂げました。
OSSを利用する際は、ソースコードそのものを利用する場合と、ソースコードに手を入れずに利用する場合の大きく2つに分けることができます。
OSSの使い方には、以下のようにおよそ4つの使い方が存在します。それぞれ説明します。
開発者が自社ソフトウェアの全てのソースコードをスクラッチで開発するのではなく、OSSのソースコードの全体または一部をコピーして活用することがあります。
OSSのソースコードに変更を加えて使用する場合です。OSSのコンポーネントにコードを追加したり、不具合の修正や機能追加をしたり、コードを削除したりするケースがあります。
開発者が自社で開発したソフトウェアのソースコードとOSSをリンクすることで目的の機能を実現するケースです。実行形式に全てのモジュールを含む静的リンクと実行時にのみ呼び出される動的リンクがあります。
システム構築時にOSSの機能を変更せずに標準的なインタフェースを使用して、その機能を利用するケースです。OSの標準機能やデータベースなどが該当します。
最後に、企業がOSSを活用するメリットとデメリットを下記にまとめてみました。
新しい技術は商用ソフトウェア製品ではなく、OSSとして登場することが少なくありません。新しい技術を採用するために、OSSを採用することが不可欠となる場面があります。ソフトウェアの開発量、構造が複雑になることも関係していますが、一企業の開発力だけでは、新しい課題に立ち向かえるソフトウェアを開発することは困難になってきています。
商用ソフトウェアは前提となるOSやミドルウェアに制約が付いています。例えばDBMS(データベース管理システム)を稼働させるためには、OSのバージョンや接続のためのインタフェースが定められているなどです。OSSにも稼働させるための前提条件はありますが、検証してこれらの壁を突破できます。全ての商用ソフトウェアベンダーがこのようなビジネスを展開しているわけではありませんが、OSSの場合は、柔軟に対応できる可能性があります。
商用ソフトウェアではなくOSSを活用することで導入コストを削減できる可能性があります。ただしOSSのデメリットもあるため、コスト削減を期待して導入しても意味がない可能性もあります。
OSSは、基本的に保証がある状態で提供されません。品質の保証や技術サポートがないので、採用に当たっては、評価や検証が必要不可欠です。技術的な問題だけではなく、第三者の権利を侵害している場合も、利用者が自ら解決し、責任を取らなければいけません。
外部公開するWebサイトにOSSを採用する場合、悪意を持った攻撃者がOSSの脆弱性を利用することがあります。利用しているOSSの脆弱性の最新動向を常にチェックし、バージョンの更新や、脆弱性を解消する修正が必要です。
「OSSを開発するコミュニティーがいつまで存続するか不安だ」という声をよく聞きます。以前はロードマップなどが用意されていないことがほとんどでしたが、著名なOSSにおいてはコミュニティーが新しい技術の発信地となり、企業活動も進んでいます。
OSSを活用する際は、OSSの定義や理念はもちろんメリットやデメリットを十分理解した上で利用する必要があります。次回は、企業がOSSを公開する場合、どのライセンスを選べばよいのか解説します。
2000年ごろからメーカー系SIerにて、Linux/OSSのビジネス推進、技術検証、OSS全般の活用を目指したビジネスの立ち上げに従事。社内外でOSS活用に関する講演、執筆活動を行ってきた。2019年から独立し、さまざまな会社や団体の顧問として活動。OSSの活用やコンプライアンス管理などを支援している。
SaaSやWebサービスを通じて利用者に価値を提供する中で、もはや必要不可欠となっているOSS(オープンソースソフトウェア)。近年はクラウド事業者が提供するAI(人工知能)やデータ分析系サービスと、OSSを組み合わせた活用事例も出ているなど、実ビジネスを支える存在となっている。実ビジネスである以上、安全・信頼を保証することが前提条件だが、果たしてOSSを本当に安全に使いこなせているだろうか。社会的信頼失墜のリスクをしっかりと認識した上で扱えているだろうか。本特集では、企業や開発者がOSSを活用するに当たってどのようなリスクとチャンスがあるのか、AI、クラウドネイティブ時代のオープンソースのマナーとリスクを徹底解説する。
Copyright © ITmedia, Inc. All Rights Reserved.