OSS(オープンソースソフトウェア)は、システム開発において重要な役割を果たしています。現在のITシステムは、もはやOSS抜きでは構築できないといわれるほどです。
この記事では、OSSについて詳しく紹介します。得られる情報は以下の通りです。
- OSSとはどのようなものなのか
- OSSはどこで利用されているのか
- OSSを利用するメリット・デメリット
- OSSを利用するときの注意点
- OSSのライセンスについて
- OSSを一切使わないでシステム構築するとどうなるのか
この記事がお役に立ちましたら幸いです。
OSS(オープンソースソフトウェア)とは
OSSとはその名のとおり、オープンソース(=ソースコードが公開されている)のソフトウェアのことです。
自由に無料でダウンロードして利用でき、複製・再頒布・改変が可能であることが特徴です。公開されたOSSを独自に機能拡張したり、また場合によっては不具合を修正することも可能です。
ソースコードが公開されていることから、不正なプログラムや脆弱性などを常に確認できるといった透明性も持ち合わせています。
OSSは営利目的ではない団体のエンジニアによって開発、保守されていることが多い傾向にあります。そのため、予告なく提供やメンテナンスが停止されることもあります。OSSを利用する場合は自己責任で利用する必要があります。
オープンソースで提供されるソフトウェアの幅は広く、OSやミドルウェア、ソフトウェア、各種プラグインなど多岐にわたります。
実際の開発費用・期間をまとめた資料を無料で差し上げます。資料請求はこちら>>
OSSが利用される例
前述したようにOSSは幅がとても広く、さまざまな分野で使われています。
OS
Linux系のOSは、オープンソースで提供されていることがほとんどです。身近な例ではAndroidが挙げられます。
ミドルウェア
LinuxOSで利用可能な、Webサーバー、DBサーバー、メールサーバーなどオープンソースで提供されていることが多く、Webアプリケーションを構成するミドルウェアはOSSを利用して構築することが多いです。
有名なものとしてWebサーバーではApacheやNGINX、DBサーバーではMySQLやPostgreSQLなどがあります。
ソフトウェア
ソフトウェアとして、単体で機能するものです。WordPressやOpenOfficeなどが挙げられます。インストール後のアップデートは自分で行わなくてはなりません。
開発言語、開発フレームワーク
PHPやJavaやRubyなど、オープンソースで提供されている開発言語もあります。
また、これらの開発言語において、開発を効率的に進めるための枠組み(フレームワーク)の多くがOSSで提供されています。Spring、Ruby on Rails、Node.jsなどが代表的です。
各種プラグイン、拡張機能など
WordPressのプラグインやGoogleChromeの拡張機能などの多くがオープンソースで提供されています。
その他のOSS
分野ごとの代表的なOSSを抜粋して紹介してきましたが、OSSは本当に多くの種類があります。日本OSS推進フォーラムが公開している「OSS鳥瞰図」が分野ごとにまとめていてわかりやすいので、さらに詳しく知りたい方はぜひご覧になってください。
http://ossforum.jp/index.php/choukanzu-wg/
実際の開発費用・期間をまとめた資料を無料で差し上げます。資料請求はこちら>>
OSSを利用するメリット・デメリット
OSSを利用するメリットとデメリットをまとめました。
メリット
OSSを利用するメリットは、無料で利用できることです。
購入手続きも不要で、ダウンロードしてすぐに使えるようになります。
また、有償版より高機能である場合もあります。OSSの種類によってはその分野の最先端を走っていることがあり、その場合、有償版の同種類のソフトウェアより高機能でかつ、高性能にできています。
OSSは誰でも改変や再頒布が可能なため、「ソースコードのバグを発見したら修正して改良する」というサイクルが世界中のユーザーによって行われます。
このような背景から、ソフトウェアの安定性やセキュリティが高くなり、低コストで高品質な開発を行うことができます。
デメリット
デメリットは、多くのOSSではサポート体制が充実していないため、バージョンアップや何か問題が起きた時には自己解決しなくてはなりません。
導入がうまくいかなかったり、思うように動作しなかったりした際に、有償のソフトウェアであればサポートが受けられることが多いですが、OSSは自己解決しなければなりません。
OSSのコミュニティの掲示板に投稿できる場合がありますが、ただ単に「動きません」と書くだけでは誰もコメントしてくれません。返答をもらうには、起きている問題(エラーの内容や実行環境の詳細)を正しく伝える必要があります。
また、突然サポートが終了し、提供されなくなることがまれにあります。不具合が発生し、修正しきれないので提供を終了する……といったこともあります。その場合は、代替のOSSを探すか利用を停止する必要があります。
実際の開発費用・期間をまとめた資料を無料で差し上げます。資料請求はこちら>>
OSSを利用するときの注意点
OSSを利用するときは、以下の3つに気をつけましょう。
- OSSのバージョンアップなどに気を付ける
- メンテナンスが継続的に行われる見込みがあるか、そのOSSの導入数が多いかを確認した上で導入する
- OSSライセンスに従って使用する
OSSのバージョンアップなどに気を付ける
デメリットでお話ししたとおり、OSSを導入する場合はバージョンアップや問題解決を自分で行う必要があります。このため、OSS導入後の保守も考慮に入れておく必要があります。
また、導入しているOSSのサポート期間(EOL:EndOfLifeの略)を確認しておき、メジャーバージョンアップについても計画的に実施するようにしましょう。
メンテナンスが継続的に行われる見込みがあるか、そのOSSの導入数が多いかを確認した上で導入する
OSSを選ぶ際には導入数や今後のメンテナンスが継続的に行われる見込みがあるかをよく見極めて導入を決定しましょう。導入数が多いOSSは信頼性が高いため、突如開発が停止するなどのリスクが低くなります。
ただし、見極めて導入したとしても開発が継続される保証はないことをご留意ください。
OSSライセンスに従って利用する
OSSは基本的に自由に無料で利用できますが、それぞれ著作者が存在します。そのため、複製・再頒布・改変の範囲は「OSSライセンス」によって制限されています。
OSSは非常に多くの種類があり、そのライセンスも多岐に渡ります。指定されたライセンスに従って正しく使用をしないと、知らずのうちに著作権法に違反してしまう、などといった重大なコンプライアンスの問題につながりかねません。
OSSを利用する場合、使用するOSSがどのライセンスの種類であるのかは最低限把握しておいた方がよいでしょう。OSSの改変を行う場合や、OSSを他のソースコードと組み合わせて派生したソフトウェアを作成する場合は特に注意が必要です。
実際の開発費用・期間をまとめた資料を無料で差し上げます。資料請求はこちら>>
OSSのライセンスの種類について
OSSは複製・再頒布・改変可能です。改変部分の公開要否や、他のソースコードと組み合わせた場合に他のソースコードを公開する必要があるか、についてはライセンスの種類によって異なります。OSSライセンスは大きく3つのカテゴリに分類されます。
- コピーレフト型ライセンス
- 準コピーレフト型ライセンス
- 非コピーレフト型ライセンス
コピーレフトとは著作権に対する考え方で、著作権を保持したまま、2次的著作物も含めて、すべての者が著作物を利用・再配布・改変できなければならないという考え方です。コピーレフトのソフトウェアは、複製・改変して再頒布する場合も同様にコピーレフトであることが義務付けられます。
端的にいうと、「著作物の利用・コピー・改良・改良した2次的著作物の再配布は制限しません。その代わりに、コピーと再配布の際には同じライセンスをつけて、2次的著作物もコピーや改良、再配布ができるようにしてください。3次的著作物を作るときにも同じようにコピーや改良、再配布ができるように、2次的著作物には全ての情報を含めてください。」となります。
話を戻します。ライセンスを3つのカテゴリに分類する基準は以下の2つです。
1. 著作物のソースコードを改変した際に、改変部分のソースコードの公開までを義務づけるか
2. 著作物のソースコードを他のソフトウェアのソースコードと組み合わせた際に、他のソースコードの公開までを義務づけるか
それぞれ詳しく見ていきましょう。
コピーレフト型ライセンスについて
コピーレフト型ライセンスの特徴としては、以下が挙げられます。
- ライセンステキストの添付が必要
- 改変したソースコードの開示(コピー&ペーストも含む)
- 組み合わせて利用した場合、対応する部分のソースコードの開示
最も制限が厳しいライセンスで、伝播性が強いことが特徴です。ソフトウェア利用者がソースコードを他のソフトウェアのソースコードと組み合わせた際には、組み合わせた他のソフトウェアにも同じライセンスを適用しなくてはなりません。
コピーレフト型ライセンスの代表的なものとして、GNU General Public License(GPL)が挙げられます。
複製・再頒布可能か | 改変は可能か | 改変部分のソース公開は必要か | 他のソースコードと組み合わせた場合、他のソースコードの公開が必要か | |
コピーレフト型 | ○ | ○ | ○ | ○ |
準コピーレフト型ライセンスについて
準コピーレフト型ライセンスの特徴としては、以下が挙げられます。
- ライセンステキストの添付が必要
- 改変したソースコードの開示(コピー&ペーストも含む)
コピーレフト型よりも制限を緩められたライセンスです。ソフトウェア利用者がソースコードを他のソフトウェアのソースコードと組み合わせた際には、組み合わせた他のソフトウェアには同じライセンスの適用を要求しません。
準コピーレフト型ライセンスの代表的なものとしては、Mozilla Public License(MPL)があります。
複製・再頒布可能か | 改変は可能か | 改変部分のソース公開は必要か | 他のソースコードと組み合わせた場合、他のソースコードの公開が必要か | |
準コピーレフト型 | ○ | ○ | ○ | × |
非コピーレフト型ライセンスについて
非コピーレフト型ライセンスの特徴としては、以下が挙げられます。
- ライセンステキストの添付が必要
- ソースコードを改変したとしても、ソースコードを開示する必要はない
2次的著作物にまで同じライセンスの適用を要求しないことと、2次的著作物のソースコードの公開義務は発生しないことが特徴です。非コピーレフト型ライセンスの代表的なものは、BSD Licenseです。
複製・再頒布可能か | 改変は可能か | 改変部分のソース公開は必要か | 他のソースコードと組み合わせた場合、他のソースコードの公開が必要か | |
非コピーレフト型 | ○ | ○ | × | × |
実際の開発費用・期間をまとめた資料を無料で差し上げます。資料請求はこちら>>
OSSを一切使わないでシステム構築するとどうなる?
以前、あるシステム開発会社が「OSSで構築しているシステムは不可」という要件を盛り込むように発注側に働きかけ、競合他社を妨害した疑いがあるというニュースが取り上げられました。そこで、OSSを一切使わないでシステム構築を行うとどうなるのかを考えました。
まず、OSSには先人のエンジニアの経験・知恵が詰まっているものが多いです。世界中で利用されているものもありとあらゆるパターンでの不具合が検出され、日々改善されているものもあります。このような莫大な人の労力の結晶がOSSといえます。
OSSを利用せずに同じ機能を開発しようとすると、莫大な労力(コスト)が必要になります。また、その結果出来上がったものは世に既にあるものの再構築となるため、「車輪の再発明」と揶揄されることがあります。
webサーバー(Apache、NGINXなど)やDBサーバー(MySQL、PostgreSQL)などは世界中で膨大な数の導入がありますので、突如開発が停止するなどのリスクは低めで、これらを利用しない開発はナンセンスといえます。
実際の開発費用・期間をまとめた資料を無料で差し上げます。資料請求はこちら>>
OSSとは?まとめ
OSSは世界中で利用されており、誰でも利用することができるソフトウェアです。ソースコードが公開されていることから、不正なプログラムや脆弱性などを常に確認できるといった透明性も持ち合わせています。
このような利便性と透明性を持つことから、開発される製品やサービスに積極的に用いられており、今やOSSはシステム開発に欠かせない存在です。
誰でも利用できますが、自己責任で利用すること(自分で対応することがむずかしい場合は保守を検討すること)、ライセンスをしっかりと確認して範囲内で正しく使用することが求められます。
OSSの特徴と注意点を踏まえた上で、開発に役立てていきましょう。最後までお読みいただき、ありがとうございました。