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