システム開発でオープンソースを活用するメリット・デメリットは?
オープンソースは正しく使えばシステム開発に大変役立ちます。正確な理解を踏まえて、システム開発の実務にどう役立てていくのかを考えていきましょう。
オープンソースは正しく使えばシステム開発に大変役立ちます。正確な理解を踏まえて、システム開発の実務にどう役立てていくのかを考えていきましょう。
知識・情報
2020/02/17 UP
- 技術
- メリット
エンジニアの仕事では、必ずしもすべての素材を0から自作する必要はありません。すでにある素材を活かし、極力工数を減らすことも実力のうちです。誰もが自由に使用可能なソフトウェアであるオープンソースはその良い例です。この記事では以下の流れに沿って紹介していきます。
・よく聞くオープンソースってなに?
・オープンソースをシステム開発に役立てるメリットは?
・オープンソースを使用する際の注意点やデメリットは?
オープンソースは正しく使えばシステム開発に大変役立ちます。正確な理解を踏まえて、システム開発の実務にどう役立てていくのかを考えていきましょう。
オープンソースソフトウェア(OSS)とは?わかりやすく説明
オープンソースソフトウェア(OSS)とは、ソフトの中身であるソースコードが公開されたソフトウェアのことです。複製や再配布が自由にできるため、現在ではソフトウェア開発の多くの場面でOSSが使用されています。
代表的なOSSは以下のとおりです。
・Linux
・MySQL
・PHP
・Java
OSSは、信頼性が高く、仮に脆弱性が発見されても、参加者の多いOSSの場合、早期の修正が期待できます。
また、OSSのライセンス費用は無料です。同等のものを開発しようとすると時間とコストの両方がかかるうえに、メンテナンス費用もかかるため、大きくコストを削減できる魅力もあります。
OSSの注意点として、複製や再配布ができる「範囲」は、ライセンスによって決められています。OSSを利用する場合は、ライセンスの内容を確認することが大切です。
オープンソースライセンスとは
OSSに設定されているライセンスのことを、「オープンソースライセンス」と呼びます。オープンソースライセンスの種類はさまざまあり、作者名を明示しなければならないものや、商標を明示しなければならないものがあります。
ライセンスごとで、複製や再配布などの制限範囲は異なるため、事前の確認が重要です。
オープンソースとフリーソフトの違い
オープンソースについてより正確な知識を得るためにも、まずフリーソフトとの違いを意識しておきましょう。
オープンソースとは、ソースコードに着目した、著作権法上の概念である
オープンソースとよく似た言葉に、フリーソフトという言葉があります。両者の意味はよく似ていますが、フリーソフトという場合、一般にソフトウェアの利用がフリー(無償)であることを意味します。
一方、オープンソースという場合、著作物としてのソースコードがオープン、つまり不特定多数にソースコードが開示され、包括的に利用が許可されていることになります。
そもそも著作権とは法律上の概念であり、著作権者の許諾なしに著作物の利用(例えば複製や再配布)をおこなえば、著作権侵害となりえます。利用の許諾を得たい場合は、ライセンス契約という合意文書の締結をすることになるでしょう。
この利用許諾を不特定多数にむけて一括でおこなうのが、オープンソースライセンスです。「オープンソースは著作権を気にせず利用ができる」などとよくいわれる理由もここにあります。
オープンソースは定義上、ソースコードの改変や再配布も利用者に認められます。しかし、単にフリーソフトという場合には、そこまでの意味は含んでいないこともあります。
なお、フリーソフトもオープンソースも結局は無償という点に着目すれば、重なり合う概念だといえます。しかし、フリーソフトはソースコードが必ずしも開示されているわけではないため、両者は似て非なるものといえるでしょう。
ソースコードの開示がもたらすオープンソースの特徴とは
オープンソースは、ソースコードの改変や再配布が自由におこなえるため、魅力的なプロダクトの場合、世界中の開発者に支援してもらえることがあります。こうしたものの中には、百人以上の巨大なコミュニティを形成しているものもあります。
オープンソースは、ソースコードが公開されているという性質上、攻撃者が脆弱性を見つけやすいという特徴があります。一方で、たくさんの人がソースコードを修正できるため、脆弱性を直すのも早く、結果的に活発に更新されているオープンソースのプロダクトはセキュリティが高いといわれています。
オープンソースを利用するメリット
ではオープンソースをシステム開発で利用するメリットを詳しく見ていきましょう。
無料でソースコードを利用できる
オープンソースを利用するメリットの一つは、著作権に基づくライセンス料が発生せず、無料でソースコードが利用できることです。コストを抑えて開発をしたい場合にはオープンソースの利用にはメリットがあります。
不都合があっても、ソースコードを修正して対応できる
金銭的な面以外でも、オープンソースの利用にはメリットがあります。それはライセンスの確認が必要であるものの、多くの場合、自由にソースコードの修正可能であることです。既存のソースコードをもとに、カスタマイズしたプロダクトを完成させることができます。
セキュリティ面でも安心できるプログラムが多い
バグがあるプログラムのソースコードでも、自由に修正がおこなるので、活発に更新されているオープンソースには、セキュリティ面でも安心して活用できるものが多くあります。
倒産や吸収合併によるプロダクトの消滅がない
権利を有する企業がアフターサポートを提供しているような場合と異なり、提供元の事業者の倒産や吸収合併などの影響を受けることなく、コミュニティによってプロダクトの信頼が担保されている場合が多いのもオープンソースの特徴です。
オープンソースを利用するデメリット
しかし、オープンソースを利用する際にも、注意しておくべき点はあります。
サポート体制には注意が必要
ライセンス料で収益をあげる企業の場合、通常その対価としてサポート体制を充実させています。しかし利益を得ないオープンソースは、企業によるサポート体制が十分でない場合も少なくありません。そのため、企業によるカスタマーサポートだけでなく、技術者同士の情報共有も重要になります。
ただ、オープンソース自体にサポート体制がない場合でも、オープンソースのサポートを代行する企業は存在します。導入支援から年間サポートまで幅広いサービスを受けることが可能です。
また、オープンソースはソースコードを世界中に普及させるため、英語で情報提供されている場合が多いのも特徴です。日本語で手に入る情報は少なかったり、古い情報であったりすることがあります。
オープンソースにも一定の制約がある
オープンソースは基本的に、「自由に無償で利用」できますが、それにも著作権者が存在します。あくまで著作権者の意思のもと、オープンソースとしてのライセンスが付与されているにすぎないので、一定の制約が課される場合もあります。
例えばオープンソースに付与されるライセンスには、よくコピーレフト条項と呼ばれる条項が付与されています。
コピーレフト
この条項が付与されているオープンソースを利用した場合、それによって新たに作られたプロダクトも元のプロダクトと同条件にすることが義務づけられます。コピーレフト条項が付与されているオープンソースライセンスで代表的なものはGPLライセンスです。GPLライセンスが付与されたソフトウェアの代表には、Webサイトの開設でよく用いられるWordPressがあります。
ほかにも商用利用を禁じているオープンソースもあります。一口にオープンソースといっても、ライセンスごとにさまざまな制約があるのです。
「オープンソース=自由で無料で、好きなように使って良い」といったイメージではなく、ライセンスを踏まえた正確な理解が重要だといえるでしょう。
オープンソースを利用する際の注意点
オープンソースは便利である一方、利用時には注意点も存在します。
まず、上記で解説したように、ライセンスには一定の制約があります。制約を超えた利用は禁止されているため、注意してください。
また、OSSのライセンスにはさまざまな種類があります。実際に使用する場合は、ライセンスの中身を把握することが必要です。
ここでは、よく使われている4つのライセンスを紹介します。
Creative Commons
Creative Commonsとは、作者の意思を反映させたうえで、作品が広まるように活動している団体や活動そのものを指します。
Creative Commonsを利用すれば、作者が認める範囲内で、自身の作品を広めることが可能です。自身の作品をより多くの人に知って欲しい場合には、有効な手段となります。
Apache License
Apache Licenseとは、Apacheという団体が開発したソフトウェアを、無償で提供するために取り決められた利用規約です。GitHubやWordPressのテーマなど、幅広い場面でApache Licenseを見かける機会があります。
修正BSD ライセンス
修正BSDライセンスとは、初期のBSDライセンスで決められていた「作成物に開発者名を明示する」制限がなくなった、ライセンスのことです。
初期のBSDライセンスには、開発者名を明示する決まりがありました。しかし、さまざまな経緯を得て、現在はその決まりがなくなっています。
MIT License
MIT Licenseとは、マサチューセッツ工科大学が起源のライセンスです。制限がほとんどないため、簡単に使用できる特徴があります。
それぞれのライセンスにおいて、どこまで制約がかけられているのかなど、確認しておきましょう。
オープンソースの制約をしっかり理解して活用しよう!
オープンソースは改変や再配布などを自由におこなえる便利さから、さまざまな領域で普及が進んでいます。無償とはいっても、必ずしも有償のソフトウェアに劣るわけではありません。むしろ、世界中の開発者によって高品質なプロダクトが絶えず生産されているため、高品質なオープンソースも数多く存在します。
オープンソースの利用にあたっては、サポート体制やライセンスについての理解も求められます。これらの理解を踏まえたうえで、オープンソースを開発に役立てていきましょう。