OSS(オープンソフトウェア)とは、ソースコードを公開し、改変や再配布が認められているソフトウェアのことです。今日では単なるフリーソフトではなく、高度なアプリケーションやプログラム言語などがOSSとして提供されることも増えてきました。
この記事では、そのOSSの特徴やメリット、デメリットについて解説します。
OSS(オープンソースソフトウェア)とは?
OSSは、Open Source Softwareの頭文字をとったもので、オーエスエスと発音されます。プログラムの作成者が、そのソースコードを公開し、改変や再配布を許諾しているプログラムのことです。
オープンソースについては次の10の定義が定められており、これらに則ったものだけがOSSのソフトウェアとしてみなされます。
1.再配布を自由に認めること
2.ソースコードを無償で配布すること
3.派生ソフトウェアの配布を許可すること
4.ソースコードのどの部分が、作者オリジナルのコードかわかるようにすること(作者コードの完全性)
5.個人やグループに対する差別をしないこと
6.使用分野に対する差別をしないこと
7.プログラムに付随する権利はすべての再頒布者に平等に与えられること(ライセンスの分配)
8.特定の製品に限定したライセンスにしないこと
9.他のソフトウェアを制限するライセンスにしないこと
10.ライセンスは技術的に中立であること
反対に、プログラムのソースコードが公開されておらず、作成者や作成した企業が商用ソフトウェアとして販売・配布しているものを「プロプライエタリ・ソフトウェア」と呼びます。これらのソースコードは知的財産であり、その改変は認められていません。
OSSは無償で使えるものでありながら、非常に高度なソフトウェアがたくさん存在し、商用ソフトウェアの基盤になっていたり、ビジネスで利用するシステムの中核に採用されたりすることも少なくありません。
OSS(オープンソースソフトウェア)の種類
OSSは、以下のようなOSやアプリケーション、プログラミング言語など多岐に渡る領域で提供されています。
OS(CentOS、Ubuntu、Androidなど)
主にサーバー用途のOSであるLinuxはOSSの代表的な存在であり、LinuxのディストリビューションであるCentOSやUbuntuなどもOSSとして提供されています。また、スマホのOSであるAndroidも、Linuxから派生したOSです。
アプリケーション(Firefox、Thunderbird、LibreOfficeなど)
PCにインストールして使用するソフトウェアにも、OSSのものが存在します。無料で利用できるWebブラウザのFirefoxや、メールソフトのThunderbirdなどはOSSです。また、オフィススイートの無料版LibreOfficeも、OSSとして提供されています。
Webサーバー(Apache、nginxなど)とデータベース(MySQL、PostgreSQL、SQLiteなど)
今やWebサイトに欠かせない存在となったWebサーバーとデータベースですが、これらの領域にもそれぞれ多くのOSSが提供されています。WebサーバーのApache、nginx、データベースのMySQL、PostgreSQL、SQLiteなどは、OSSのプロダクトです。
CMS(WordPress、EC-CUBEなど)
CMSもまた、Webサイトには欠かせない技術です。ブログCMSであるWordPress、日本産ECサイトCMSのEC-CUBEなど、CMSにはたくさんのOSS製品が存在します。
フレームワーク(Ruby on Rails、Laravelなど)
Webシステムを開発するのに欠かせないフレームワークも、多数のOSSが提供されています。Ruby向けのRuby on Rails、PHP向けのLaravelなどです。
プログラム言語(PHP、Ruby、Pythonなど)
開発に用いられるプログラム言語自身も、OSSとして提供されるものがあります。主にWeb設計のPHP、Ruby、Pythonなどです。
セキュリティ(Apache SpamAssasin、IPCoo Firewall、OpenSSLなど)
ますます加速するIT化の流れの中で無視できないのがセキュリティです。スパム対策のApache SpamAssasinや、フィアやーウォールのIPCoo Firewall、暗号化のOpenSSLなどがOSSとして提供されています。
ビッグデータ収集・解析
近年注目されるビッグデータの領域でも、OSSが提供されています。Logstash、Fluent、Apache Hadoopなどがそれです。
OSSを利用するメリット
さて、このように広範な領域において活用されているOSSですが、その利用のメリットはどういったところにあるのでしょうか?以下にまとめてみました。
技術を採用する前に自由に試すことができる
OSSの製品は無料で提供されるため、その製品(技術)を採用する前に、十分時間をかけて試すことができます。プロプライエタリの製品では試用期間が短かったり、そもそも試用ができなかったりすることなどもあります。
技術情報が豊富
優れたOSS製品は利用者も多いため、その情報がネット上でたくさん提供されています。そのため、利用者が限定されがちな商用ソフトウェアよりも、技術情報が得やすいという利点があります。
特定のベンダーに囲い込まれない
商用ソフトウェアの場合、ベンダー(開発企業)は顧客を囲い込んで固定客化しようとします。そのため、ユーザーはその製品と開発企業に依存してしまうことになり、ソフトウェアの開発方針に従わなくてはいけなくなったり、価格面で弱い立場になったりすることがあります。OSSにはそういうしがらみがないため、囲い込まれるという心配がありません。
低価格で導入できる
通常の商用ソフトウェアではライセンス制を取ることが多く、ソフトウェアの利用に費用が発生することが一般的です。しかし、OSSは無料で提供されるため、このライセンス費用に相当する価格が不要になります。その分、システム全体に要するコストを低減することになります。
乗り換えやリプレイスが可能
OSSはソースコードが公開されているため、そこに入力されるデータ形式なども容易に把握できます。従って、ソフトウェアを乗り換えたい場合などでも、データの変換などで乗り換えが簡単にできる可能性があります。また、OSS自体を改変してリプレイスしたい場合なども、やはりソースコードが参照できるので、自由な改変が可能です。
OSSを利用する際のデメリットと注意点
一方で、OSSを利用する上ではデメリットや注意点も存在します。
アップデートのスピードが早い
OSSの利用者が多い場合、そのOSS製品自体の改良サイクルが早くなりがちです。そのため、頻繁にアップデートをする必要があります。
ある程度の技術力が必要
ベンダーがすべて構築してくれるプロプライエタリの製品とは異なり、OSS製品は自分でインストールを行う必要があります。従って、ある程度はプログラミングやソフトウェアに対する知識が必要です。また、トラブルが生じた時なども自己責任となるため、自分で解決する必要があります。
コミュニティのトラブルや終息
OSSは基本的に利用者コミュニティの議論で開発方針が決まるため、方針に対立が生じたり、揉め事などのトラブルが発生したりすると、開発のスピードが遅くなることがあります。また、そのOSSに誰も興味を示さなくなってしまうと、開発もサポートも行われなくなるため、その後はOSS製品自体がアップデートされなくなるケースも考えられます。
これらのことから、OSSを利用するには、以下に留意しておくことが重要です。
- 社内に技術的知見を持つ人物がいること(複数いることが望ましい)
- すべてを自社で実装するのではなく、難しい部分はOSSに詳しいベンダーに依頼する
- 本当にOSSを採用すべきかを事前に熟考する
現在では、SaaSなどのサービスも複数存在し、自社でOSSを利用しなくても、安価でサービスを利用できる環境も整ってきています。OSSにメリットがあるのは事実ですが、デメリットも踏まえて、本当に採用すべきかじっくり考える必要があります。
まとめ
以上、OSSの概要やメリットとデメリット、導入の注意点などについて解説しました。
OSS自体は無料で提供され、ライセンス費用もかからないことから、そのコストメリットから採用に至ることが多くあります。しかし、OSSを長く運用する際には、社内体制の維持などの課題もあります。
それだけに安易に飛びつくのではなく、本当にOSSが自社の課題解決に貢献してくれるのかどうか、慎重に検討する必要があるでしょう。