ソフトウェアについて調べていると、目にすることも多い「オープンソース」・「OSS」という言葉。OSSとは「オープンソースソフトウェア(Open Source Software)」の略で、ソースが公開されたソフトウェアです。無料で利用でき、開発期間を短縮できるなどのメリットがある一方、信頼性やリスクなどのデメリットが心配な人もいるでしょう。そこでオープンソースの特徴、メリットとデメリット、使い方や利用時の注意点など、知っておくべきポイントを初心者にもわかりやすく解説します。
オープンソース(OSS)とは?
オープンソースとは、ソース(ソースコード)が公開されているソフトウェアのことを指します。
ソースとは、ソフトウェアの動作を指示する「設計図」のようなもので、エンジニアが使うプログラミング言語で書かれています。私たちが「ソフトウェアのコード」といわれて思い浮かべるアルファベットの羅列がソースで、それが広く一般に公開されているものが「オープンソース」です。 またソースが公開されているだけなく、無料で使えて、かつ自由にカスタマイズや編集ができるのもオープンソースの特徴です。(ただし利用にあたっては守るべき規約があるので注意しましょう。(詳しくは第3章へ)
例えるなら、有名レストランのレシピが公開されているような状態です。レシピが公開されているので、誰でも自由に再現やアレンジができます。
またレシピが公開されているからこそ「子どもが食べられない材料を使っている」などの欠点も見つかりやすいのですが、それに対応したアレンジレシピを公開してくれる人も出て来ます。
Q&A オープンソースじゃない例ってどんなものがある?
オープンソースではないソフトの一例として、iPhoneのiOSが挙げられます。ソースは公開されていないですし、勝手に公開やカスタマイズ、再配布などをしたら訴えられる可能性があります。
他方で同じスマートフォンのOSでもGoogleが提供しているAndroid OSはオープンソースです。例えばIoT家電を開発する家電メーカーにとっては、このOSを利用すれば自分たちで一から開発する必要がないため、コストを抑え開発スピードを上げることができます。またGoogleにとっても、Android利用者が増えればアプリストアでの売上アップが期待できるなどのメリットがあります。
Q&A フリーソフトとどう違う?
フリーソフトとは、フリーという言葉が示す通り「無料のソフト」です。無料であるだけで、ソースが公開されているとは限りません。またカスタマイズや再配布が認められていない例も少なくないです。 オープンソースも基本的には無料なので「フリーソフトの一種」と捉えることもできますが、フリーソフトの全てがオープンソースではありません。「フリーソフトだから自由にカスタマイズや配布が認められている」わけではないので、勘違いしないように気を付けましょう。
押さえておくべき5つのポイント
オープンソースを理解する上で押さえておくべきなのは、以下の5つのポイントです。
ポイント① 無料で使うことができる ポイント② 開発元サポートなどは基本的にない ポイント③ ライセンスの形式によっては自由に修正やカスタマイズが可能 ポイント④ 攻撃されやすいが対処も早い ポイント⑤ 開発元がサービス終了してもソフトは生き残る |
ポイント① 無料で使うことができる
オープンソースのソフトウェアは、公開されているものであれば、無料で使うことができます。
既に一定のレベルまで出来上がっているものを無料で使うことができるので、追加でカスタマイズする場合でも開発コストが抑えられます。
ポイント② 開発元サポートなどは基本的にない
無料で公開されているソフトウェアなので、開発元のサポートなどは期待できません。マニュアルなどが整備されていない場合もあるでしょう。
利用する際には自己責任が基本で、疑問や不明点があればオンライン上で公開されている様々な情報を活用しながら自力で解決していく必要があります。
ポイント③ ライセンスの形式によっては自由に修正やカスタマイズが可能
ソフトウェアの設計図ともいえるソースが公開されているため、それをコピーして利用するのはもちろんのこと、自由に変更することも可能です。
バグがあれば勝手に修正しても構わないですし、自分たちの目的や使い方に合わせたカスタマイズもできます。※原稿や再配布が可能なライセンス体系に限る。
ポイント④ 攻撃されやすいが対処も早い
有償のソフトウェアや、ソースが非公開となっているものよりも、ソースが公開されているため脆弱性が見つかりやすく、それを利用した攻撃を受けやすいのもオープンソースの特徴です。 しかしソースが公開されているからこそ、不正プログラムや脆弱性に事前に気付くこともできるのがオープンソースの一つの強みでもあります。自分たちでソースを修正することもできますし、同じオープンソースを利用している人が修正やアップデートの情報を公開してくれる場合も多いです。
ポイント⑤ 開発元がサービス終了してもソフトは生き残る
オープンソースではない場合、開発元が倒産したりサービス終了したりしてしまうとソフトウェアがアップデートされなくなり、いずれは使えなくなってしまいます。
しかしオープンソースであれば、ソースが公開されているために自分たちでメンテナンスしながら使い続けることができます。利用者が多いオープンソースなら、他の利用者も様々なアップデートや修正を公開してくれることも期待できます。
※ただしサポート期限を過ぎた場合に、そのまま重要なシステム上で稼働させることは避けるべきです。
Q&A 無料で公開されているものだと信頼性が低いのでは?
無料で公開されているオープンソースだからといって、一概に「品質が低い」とは限りません。オープンソースを提供している企業の中にはGoogleやOracleのような大手企業もおり、信頼され、世界中で広く利用されているオープンソースもあります。
またポイント④でご紹介した通り、攻撃されやすい一方で対処も早いため、結果としては高い信頼性を備えるものに仕上がっていることも多いです。
ただし信頼性は開発元や利用者数、リリースからの期間によっても大きく変わるので「オープンソースだから心配/安心」と決めつけるのではなく、「どんなオープンソースを使うのか」「信頼できるオープンソースなのか」を見極めるのが重要です。
Q&A メリット・デメリットは?
オープンソースの特徴はポイント①~⑤でご紹介しましたが、それをメリット・デメリットで分類すると以下のように分けられるでしょう。
メリット | デメリット |
---|---|
ポイント① 無料で公開されている ポイント③ 自由に修正やカスタマイズが可能 ポイント⑤ 開発元がサービス終了してもソフトは生き残る | ポイント② 開発元サポートなどは基本的にない |
ポイント④ 攻撃されやすいが対処も早い | ポイント④ 攻撃されやすいが対処も早い |
「ポイント② 開発元サポートなどは基本的にない」といったデメリットはあるものの、エンジニアが自発的に公開している情報などである程度はカバーすることができます。トータルで見るとメリットが大きいため、オープンソースを活用する流れは強くなっています。
利用時の注意点・リスクと対処法
メリットが多いオープンソースですが、以下のようなリスクもあるので利用時には注意が必要です。
リスク① バグが放置されてしまう場合も リスク② 使い方を定めたライセンス契約・規約がある |
リスク① バグが放置されてしまう場合も
ポイント⑤でご紹介した通り、開発元がサービスを終了しても、自分たちで修正したり、同じソフトを使っている利用者がアップデートをしてくれたりして、使い続けることができるのがオープンソースの特徴です。
しかし「誰もメンテナンスに責任を持っていない」という状態になりやすく、更新が放置されてしまうこともあります。特に利用者が少ないオープンソースの場合、「継続的なメンテナンス」も期待しにくいので、自分たちで修正する力が求められます。
リスク② 使い方を定めたライセンス契約・規約がある
オープンソースは誰でも使うことができますが、だからといって「使い方に制約がない」という訳ではありません。オープンソースにも使い方を定めたライセンス契約があり、利用時にはその契約を遵守しなくてはなりません。
特に再配布に当たっては「同じようにオープンソースにすること」が求められることが多く、その他にも「ライセンス表示が必須」など細かなルールがあることも珍しくありません。代表的なライセンス契約として以下のようなものがあり、違反した場合は訴訟に発展する可能性もあるので注意が必要です。
ライセンス | 制約 |
---|---|
GPL | カスタマイズして再配布する際には著作権表示が必要。まだ再配布する際には、同様のライセンス形成としなくてはならない。 |
BSD License | カスタマイズして再配布する際には著作権表示が必要。逆にこれさえ守れば再配布は自由。 |
MPL | カスタマイズして再配布する際には著作権表示が必要。逆にこれさえ守れば再配布は自由。 |
対処のためには社内で利用確認の徹底を
一口にオープンソースといえども、開発元・利用者数・ライセンス契約など様々です。
「どんなオープンソースでも自由に使っていい」という社内環境にしてしまうと、信頼性の低いオープンソースを勝手に使ってしまったり、さらには知らないうちにライセンス契約違反になっている可能性もあります。
情報収集をする時はソースコードの中身に関心が向かいがちで、ライセンスにまで充分注意を払いきれないことも多いでしょう。だからこそ、社内で「どんなオープンソースを使うのか」「制約をきちんと守っているのか」など確認を徹底する仕組みがあると安心です。
有名なオープンソース事例
オープンソースの中には、以下のように世界的に有名であったり、実は日常生活で多く利用しているものも少なくありません。
・Android OS(スマートフォン等に使えるOS) ・WordPress(コンテンツ管理システム) ・Firefox(ウェブブラウザ) ・EC-Cube(通販サイト用のコンテンツ管理システム) |
WordPressはサイトやブログを作成することができる人気の高いCMS(コンテンツ管理システム)の一つです。使いやすくデザインなども自由に変えられるため、日本の上場企業などでも利用されています。
またEC-Cubeは日本発の通販サイト用コンテンツ管理システムです。日本国内の通販サイトでは多く利用されており、取扱商品などに応じてカスタマイズが重ねられています。
まとめ
コストや開発工数が抑えられ、しかも目的や使い方に合わせて自由にカスタマイズができるオープンソース。その一方で、特に「修正やカスタマイズができるエンジニアが自社にいる」という場合には、非常に貴重な存在です。
日頃から注意していなければ、ライセンス意識が希薄になりがちで「気づいたらライセンス契約違反をおかしていた」といったこともありえます。そのようなことが無いように、社内でしっかりと確認する体制を作っていきましょう。
開発・検証・プログラミング学習に。無駄なコストもかけたくないあなたにおすすめのVPS
カゴヤのVPSは初期費用無料でアカウント登録さえしておけば、必要なときだけ日額課金でサーバーを立ち上げ可能!料金は使った分だけ。