情報技術・IT

オープンソース

Webサイト制作

オープンソースとは、ソースコード(コンピューターのプログラム)を一般に公開し、不特定多数の有志の開発者によってプログラムを開発していくという、ソフトウェアの開発手法です。
オープンソースによって開発されたソフトウェアのことをOSS(Open Source Software)と呼びます。
ソフトウェアのソースコードは、技術力やノウハウの結晶であるため、通常は企業によって秘匿されることがほとんどです。例えば、Appleのソフトウェアのソースコートの多くはオープンにはされていません。
一方、OSSは多くの場合で無料で利用することができ、プログラムの改変や再配布も許可されています。そして有志の開発者たちによって日々改善されており、代表例としてはOSのLinuxやAndroid、ブラウザのFirefox、プログラミング言語であるRubyやPythonなどが挙げられます。
オープンソースという考えが普及したきっかけは、Linuxに刺激を受けたエレック・レイモンド氏による著書「伽藍とバザール」という本です。のちに同氏を中心として、オープンソースを啓蒙する非営利団体「OSI(Open Source Initiative)」が設立されました。

 

 

フリーソフトとオープンソースの違い

世の中には、無料・無償で利用できる「フリーソフト」もありますが、OSSとフリーソフトは異なるため注意が必要です。フリーソフトはソースコードがオープンになっていない場合もありますし、基本機能以外は有料であることもあります。一方、OSSは、原則として「ソースコードが公開されている」「再配布が可能」です。さらに、OSSはOSやデータベースといった企業の利用を目的としており、ユーザーが要求する利用環境に耐える性能や機能、品質を持っています。
また、フリーソフトは開発元のみしか脆弱性対策やバグ修正、機能追加・拡張などを行えないことに対し、OSSは脆弱性対策やバグ修正、機能追加・拡張などを常に継続・維持するために、世界中の多くの開発者が参加するコミュニティや開発元企業で開発しています。
このようにOSSとフリーウェアは全く異なるソフトウェアと言えます。
 

オープンソースであることの条件

有志の開発者・ユーザーの協力が得られるOSSであること

OSSはその発展が、開発者やユーザーの自主性に委ねられているプロジェクトと言えます。そのため、企業は彼ら・彼女らの協力を得られるようなインセンティブを設計することが必要です。特にソフトウェアの活用に対するモチベーションや、他開発者との交流といった心理的なコミットメントをユーザーに持たせることが重要です。その際、活用範囲の広いOSSであることも重要と言えます。
 

利用承諾の範囲を明示すること

OSSは公開されているとはいえ、利用者に無限の権利が与えられているわけではありません。通常、OSSの利用にあたっては、オープンライセンスと呼ばれる利用承諾契約を遵守する必要があります。例えばLinuxはGPL(GNUパブリックライセンス)と呼ばれるライセンスに基づいています。また、TensorflowはApacheライセンスに基づいているものです。OSSの提供企業は、こういった利用承諾の範囲を明確化し、ユーザーに提供する必要があります。

オープンソースの3種類のライセンス

OSSを取り扱ううえではいくつかの注意点があります。まず、OSSを導入する際は、ライセンス形態を確認することが大事です。ユーザーはライセンスに準拠した利用が求められるため、使用前には必ずOSSのライセンスを確認しておきましょう。
ライセンスは数多くあり、ソフトウェアによって扱いに違いがあります。中には使用目的に制限があることもあるため、使用前に内容を確認しておく必要があります。
オープンソースは大きく分けて3つのライセンスが存在しており、それが、「GPL」「MPL」「BSD」です。

GPL

「GPL」は、主にWordPressやLinuxで採用されているライセンスであり、オープンソース・ソフトウェアの中で一般的に採用されているライセンスです。「著作権表示」「複製や改変、頒布の自由」「GPLのソフトウェアを利用したプログラムを提供する場合GPLでなければならない」というルールがありますが、基本的にGPLは「自由なソフトウェア」を、有償・無償に関係なく、頒布できるようにした、という単純な意味だけでなく、「ソフトウェアは自由であるべき」という思想が存在することを一般に認知させたという意味において極めて重要な意味を持っているライセンスと言えます。
 

BSD License

「BSD License」は、カルフォルニア大学バークリー校から誕生したライセンスです。PHPやApacheなどに採用されているライセンスで「再頒布時の著作権表示」というルールのみで利用できます。BSDライセンスにはいくつか種類があり、ライセンスの条文内の条項によって区分分けされていますが、「無保証」であることの明記と著作権およびライセンス条文自身の表示を再頒布の条件とするライセンス規定です。この条件を満たせば、BSDライセンスのソースコードを複製・改変して作成したオブジェクトコードを、ソースコードを公開せずに公開できることになります。
 

MPL

「MPL」は、「Mozilla Public License」の略称で「Firefox」「Thunderbird」などMozilaソフトで採用されるライセンスです。再頒布を自由に行うことができ、ソースコードも自由に取得できます。MPLの下では、該当ソフトウェアの開発者は、再配布自由の保証やソースコードの入手可能性の保証、派生バージョンに対する制限付与の禁止の義務を持っているなど、基本的にGPLに似た性格を持っているといえます。
一方で、法令などの制約によってライセンス条項の遵守が難しい場合には、可能な限りで条項を遵守する努力を果たした上で、遵守範囲に制限がある趣旨を文書に記すことによって再ライセンスを行えるようにするなど、GPLに比べてライセンスの適用をより柔軟に行えるように考慮されています。
 

 

オープンソースの制作者側のメリット

企業が無料でソースコードを公開することは一見メリットがないように見えますが、オープンソースによって外部の開発者を巻き込むことは以下のようなメリットがあります。

ユーザーニーズに基づいたソフトウェア開発や機能改善が行える

オープンソースのOSSにおいては、カスタマイズの自由度というのは大きなメリットの一つです。通常、商用のソフトウェアではソースコードを修正するようなカスタマイズはできませんが、オープンソースのソフトウェアであれば可能です。
オープンソースのソフトウェアは、このようにソースコードを自由に改変したりソフトウェアのカスタマイズが行えることがメリットであり、自社のシステム要件に合わせたり、利用者自身が求める仕様に改変できるため、市販のソフトウェアでは対応できない場合に活用でき、開発してくれるユーザーや企業もどんどん増えていきます
OSSは国際標準規格のプロトコル及びAPIを備えており、システム間での連携やプラグインの開発が容易に実現でき、さらにソースコード自体に修正を行う事も可能なため、ユーザーニーズに基づいたソフトウェア開発や機能改善を行えます。

 

 

自社が専門とはしない分野へも参入できる

オープンソースは、開発するユーザーが増えるほど、新しい分野への開発の可能性も増加していきます。そのため、開発するユーザーや企業に新しい分野を開拓していってもらうと、オープンソースの開発元もその分野へのサポートを強化したり、新しいソースコードを追加したりして新分野へ進出することができます。そのため開発するユーザーが増えるほど新しい分野の事業を設立する可能性が高まり、たとえ自社が専門ではない分野へのビジネスチャンスが生まれることになります。

 

 

OSSの利用に関するユーザーサポートで収益化できる

オープンソースのOSSのサポートには「コミュニティ版をサポートするサービス無償版)」と「商用版のサブスクリプション契約に基づくサポート(有償版)」の2種類があります。コミュニティ版は導入から運用まで全て自己責任となりますが、それを支援サポートするのがコミュニティ版のサポートです。サブスクリプション(商用版)は商用ソフトウェアと同様にバグ・脆弱性への対応、法的保証、サポートレベルなどをコミットしており、そこでオープンソースの開発元は収益を得ることができます。ユーザーはシステムの重要度や利用用途に応じて「コミュニティ版」や「商用版」の選択を行う事ができます。

 

 

オープンソースの利用者側のメリット

信頼性がある

オープンソースではソースコードが公開されていることによって、不正なプログラムや脆弱性などを常に確認することができるため、高い信頼性を誇ります。また、脆弱性が発見されても、修正が速いのが特徴であり、オープンソースは誰でも閲覧することができるので、不正プログラムや脆弱性を監査することができます。さらに、脆弱なプログラムやバグを発見した場合すぐに修正することができ、また、特定の企業がサービスを提供しているわけではないので、倒産や閉鎖によって使用できなくなるリスクが小さいこともメリットの一つです。

 

 

安定性が高い

プロプライエタリーコードの更新やパッチ適用、および動作を維持するには、そのコードを制御する作成者や企業に頼ることになりますが、一方で、オープンソースは、アクティブなオープンソース・コミュニティを通じて絶えず更新されているため、元の作成者に頼る必要がありません。
そのため、プロプライエタリ・ソフトウェアは、提供企業の事情でサービスの終了やサポートの打ち切りといったことが起こる可能性がありが、OSSはユーザーがいる限り、メンテナンスを継続することができます。そのため、長期にわたる安定した利用と継続を見込めます。
 

コスト削減が可能

OSSはライセンスのコストが無料なので、全体的なコスト削減が期待できます。初期費用だけでなく、導入後のライセンス管理や定期的なリプレース費用なども削減できるため、ソフトウェア開発においてはこれは大きなメリットです。オープンソースは、ライセンスを無償で利用することができるため、ライセンスを管理するための業務削減や、ライセンスの不正利用に対するセキュリティの強化にかかる費用を削減できるので、トータルでかかる費用の大幅な削減効果を期待できます。

 

 

カスタマイズが自由

オープンソースのOSSにおいては、カスタマイズの自由度というのは大きなメリットの一つです。通常、商用で利用できるOSSはソースコードを修正するようなカスタマイズはできませんが、オープンソースであればカスタマイズが可能になります。
OSSは、誰でも二次利用できるというメリットから、信頼性や安定性に優れた高い品質のものが開発されており、多くの人に利用されています。
また、自社のサービスに合わせて自由にカスタマイズできるため、既存のソフトウェアよりも汎用性が高いのもOSSのメリットの一つであり、近年では企業も商用利用可能なOSSを元に自社製品を開発しています。
 

ベンダーロックインされない

オープンソースのOSSは、そのOSS自体のソースコードがオープンになっていることはもちろん、他のオープンソースを活用して実装されている事もしばしばあります。オープンな技術を利用して、ソースコードをオープンにしているため、ユーザーや企業にこれまで行われていた、不利益になるようなベンダーロックインはされにくくなっています。
 

オープンソース利用者側のデメリット

ライセンスに準拠する必要がある

OSSを導入する際は、対象となるライセンス形態を確認する必要があります。OSSは、ソフトウェアごとに個別にライセンスが宣言されており、ユーザーは、ライセンスに準拠した利用が求められるため、使用する前には必ずOSSのライセンスの種類を確認しなければなりません。
ただライセンスと言ってもその形態はさまざまで、70種類以上のライセンスがあり、例えば、ソフトウェアを再配布する際に、ソースコードの公開を義務付けるかどうか、ソースコードの変更を行った旨を示すかどうかなどソフトウェアによって違いがあります。ライセンスの中には、「研究目的なら無償、商用利用であれば有償」という形で使用目的を限定するものもあるため、使用前にライセンスの概要を正確に把握することが必要です。

 

 

「無料=OSS」ではない

OSSは基本的に無償で公開されていますが、無償で入手できるすべてのソフトウェアがOSSというわけではなく、特に「OSS」と明示されていない限りOSSではありません。OSSでなければ、無償であっても自由に改変や再配布することはできないため、利用する際は十分に注意する必要があります。特に「オープンソース=自由で無料で、好きなように使って良い」といったイメージではなく、あくまでもライセンスを踏まえた正確な理解が重要だと言えます。

 

 

派生物もOSSになる

OSSを改良または再配布した二次的著作物を「派生物」と呼びます。オープンソースは基本的に、無償で自由に利用することができますが、それにも著作権者が存在します。基本的に著作権者の意思のもと、オープンソースとしてのライセンスが付与されているにすぎないので、一定の制約が課されている場合もあります。
例えばオープンソースに付与されるライセンスには、よく「コピーレフト条項」と呼ばれる条項があり、コピーレフトとは、「著作権は保持しつつも、二次的な著作物も含めて、すべての人が利用、改変、再配布できるべきである」という考え方を意味しています。代表的なコピーレフト型ライセンスとしては、「GPL」や「LGPL」、「CPL」などのライセンスがあります。
コピーレフト型のOSSライセンスでは、「改良・再配布された派生物も元の著作物と同じ条件で配布しなければならない」とされており、例えば、エンジニアがOSSを元にソフトウェアを改良した場合も、自由にほかのライセンスや条件に変えることはできませんし、また、コピーレフト型ライセンスを持つOSSを改変した場合には、そのソースコードを公開することが義務付けられています。
 

知識のあるエンジニアが必要

OSSのデメリットとして、プログラミング知識が無ければ利用しにくいということがあります。また、開発元や開発コミュニティに不具合の責任がないため、問題が起こっても自分で解決しなければならないこともあります。
OSSのメンテナンスは日々行われていますが、利用はあくまで利用者側の責任によって行われるため、バグが修正されないこともあります。また、いつどんな変更がされるか分からないため、マニュアルは用意されていないことが多く、また、開発コミュニティがすぐにコードの不備を修正してくれるとは限りません。そのため、自分でコードの不備を発見して修正できる知識が必要になります。
 

サポートが手薄

オープンソースは基本無料で公開されていることから、サービスに対するサポートが基本的に存在しません。マイクロソフトなどの有償ソフトは、マニュアルが用意されているのでそれを活用することができますが、オープンソースのOSSはほとんどの場合、マニュアルが用意されていないため、自分で使い方を調べる必要があります。
また、開発コミュニティではサービスに対する責任がないため、不具合が発生しても基本的に対応してもらうことは困難で、全て自分で解決しなければいけません。
ただし、オープンソースコミュニティで公開されている情報や、コミュニティへの質問を通じて問題解決できる事もあります。しかし、自分が探している情報が見つからなかったり、質問をしてもサポートの回答が遅い、または回答自体を得られないこともあります。
 

オープンソースの例

Linux

LinuxはコンピューターのOSであり、OSSの代表的存在の一つです。Linuxはリーナス・トーバルズ(Linus Benedict Torvalds)によって開発され、1991年に公開されました。もともとはWindowsやmacOSのようなパーソナルコンピューター用のOSとして開発されましたが、現在では主にサーバーやスーパーコンピューターのOSや携帯電話やテレビなどの組込みシステムなど、さまざまなシステムで用いられています。
Linuxはほぼすべてのバージョンを無料で利用でき、また商用利用も可能であったため、ユーザーが自分の利用目的に合うように調整・カスタマイズしやすく、世界中の開発者に普及しました。Linuxの開発にはこれまで1,500を超える企業の15,000人超の開発者が携わっています。
Linuxを利用して企業が開発、配布するソフトウェアは「Linuxディストリビューション」と呼ばれ、例えば、企業のデータセンターでの活用がされるRed Hat Enterprise Linuxや、Amazon Web Services用のAmazon Linuxなどはその代表例です。Red Hat Enterprise Linuxは、技術サポートやセキュリティ管理でライセンス料を得るモデルであり、無料のOSSであるLinuxを商用利用している代表例です。
 

Tensorflow

Tensorflowは、AI(人工知能)の基礎技術である機械学習のOSSです。(2015年公開)
ユーザーはこのOSSを利用することで、画像認識や音声認識、画像検索、翻訳、アート作品の生成などを行うことができます。
Tensorflowを公開しているのは、営利企業であるGoogleです。Tensorflowは、同社のメールサービスである「Gmail」に搭載されているスマートリプライ機能(自動返信機能)やGoogle翻訳にも用いられています。
Tensorflowは他社にもOSSとして提供されており、例えば、フランスのゲームソフト会社「UBISOFT」はTensorflowを活用することで「The Hieroglyphics Initiative」という、エジプトの古代象形文字の解読プロジェクトに挑んでいます。
さらにGoogleは、このTensorflowをベースとしたTensorFloe Enterpriseという有料版を企業向けに提供しています。
今後、ネットビジネスのみならず、外食産業や自動運転分野など、各産業においてAI活用が進んでいくものと想定されている中、GoogleがTensorflowをオープンソースとして提供している背景には、Tensorflowを通じて各産業の有力プロジェクトに協力することでAI(人工知能)の技術的進化を図り、当該分野における主導権を自社が握ることで、将来的にAI周辺での収益化を行おうとする狙いがあると考えられます。
 

WordPress

WordPressはオープンソースの世界中で最も使用されているCMS(Content Management System、コンテンツ管理システム)です。WordPressはPHPというプログラミング言語で開発されたCMSで、ユーザビリティに優れた動的なサイトを簡単に構築することができ、ユーザーのより優れた体験に焦点を合わせたサービスで、ウェブサイトの知識がない人でも簡単に作成することができ、現在では個人ブログから企業のサイトまで幅広く利用されているサービスです。
2003年に誕生し、オープンソース開発という特性を活かして、世界中のエンジニアによって付属のプラグインなどが制作されアップデートされています。
また世界中で広く利用されていて、全世界のCMSのサイトのうち40%がWordPressによって作られているというデータが公表されています。日本においていえば、8割以上のCMSがWordPressであり、New York TimesやCNNなどのサイトでも利用されているなど、豊富な利用実績もあります。
 

オープンソースの社会的意義

オープンソースを活用することは企業側から見ても様々なメリットや意義がありますが、他方で、十分な資金力や開発力を持たないユーザーや企業がOSSを利用することでシステムを構築できたり、特定の商用ソフトウェアによる囲い込みを避けたりすることができるなど、社会的に見てもオープンソースには存在意義があります。

関連コンテンツ

iOS
iOSとは、Apple社が開発したモバイルオペレーティングシステムです。iPhone、iP ...
Linux
Linuxとは、オープンソースのオペレーティングシステムであり、世界中の多くのコンピュータ ...
macOS
macOSとは、Apple社が開発したオペレーティングシステムです。macOSは、パワフル ...
Windows
Windowsとは、コンピューターのオペレーティングシステム(OS)の世界で最も人気がある ...
BASIC
BASICとは、コンピュータプログラミング言語の1つです。1960年代に開発され、コンピュ ...
Ruby
Rubyは、オープンソースのスクリプト言語であり、簡単に書けて高い生産性を持つことが特徴で ...
Erlang
Erlangとは、高い可用性と安定性を実現するために開発された革新的なプログラミング言語で ...
Haskell
Haskellとは、関数型プログラミング言語の一つです。この言語は、プログラミングをより効 ...