VNEXTの会社紹介資料
2023/10/11
IT業界に従事している人なら、誰でも聞いたことのある「オープンソース(OSS)」。
一方で、初めてソフトウェア開発をする場合、OSSという言葉が出てきた時「聞いたことがあるけど、よくわからない」という人も多いでしょう。
OSSとは、ソースコードの改変や再配布が自由に認められている無償のソフトウェアです。
近年ではITベンダーが参加するケースも多く見られ、OSSはソフトウェア開発において重要な役割を果たしています。
本記事では、OSSの基礎知識から特徴、メリット・デメリットなどをわかりやすく解説していきます。
目次
|OSS(オープンソース)とは
OSSとは、「オープンソースソフトウェア(Open Source Software)」の略称で、作成者がソースコードを無償で公開しており、利用や改変、再配布が
自由に許可されているソフトウェアのことです。
一言で表すと、「公開された誰でも無償で使えるソースコード」です。
ソースとは、ソフトウェアの動作を指示する「設計図」のようなもので、エンジニアが使うプログラミング言語で書かれています。
「ソフトウェアのコード」で思い浮かべるアルファベットの羅列がソースで、それが広く一般に公開されているものが「オープンソース」です。
オープンソースという言葉は1998年に、Open Source Initiative(OSI)という団体によって作られた言葉です。
それまでは、フリーソフトウェアという言葉が使われていましたが、ユーザーが本来意図していた”フリー”の意味を「自由」ではなく、「無料」という
間違った意味で捉えられてしまう言葉であったために変更されました。
OSSは無償ながら、高性能かつ信頼性が高いものが多く知られており、企業が商用利用としてOSSを基に開発することも多くあります。
今では、OSSは開発者にとってなくてはならない存在といえます。
|OSSの要件・定義
OSSには、上述のOSが提唱したオープンソースの定義(OSD: Open Source Definition) と呼ばれる以下の10項目の要件が存在します。
単にソースコードが公開されているというだけでなく、これらの要件を満たしたソフトウェアが、OSSと名乗ることができるのです。
《10項目の要件》
- 自由に再頒布できること
- 無償(または妥当なコスト)でソースコードを頒布すること
- 同一ライセンスでソフトウェアの変更や派生ソフトウェアの作成、頒布を許可すること
- 作成者のオリジナルのコードかわかるようにすること(作者コードの完全性)
- 個人やグループに対する差別をしないこと
- 利用する分野に対する差別をしないこと
- プログラムに付随する権利はすべての再頒布者に平等に与えられること(ライセンスの分配)
- 特定の製品だけに限定したライセンスにしないこと
- 他のソフトウェアを制限するライセンスにしないこと
- ライセンスは技術的に中立であること
OSIによってライセンスが承認されると、そのソフトウェアはオープンソースであると公式に認められ、「OSI認定マーク」が付与されます。
|OSSとフリーソフトの違い
フリーソフトとは「無料のソフト」のことで、無料というだけで、ソースコードが公開されていません。
また、カスタマイズや再配布が認められていない場合もあります。
一方、OSSはソースコードの再配布が可能であり、またOSやデータベースといった企業の利用を目的とし、 企業が要求する利用環境に耐える性能や
機能、品質を実現しています。
よくあるのは「フリーソフトだから自由にカスタマイズや配布が認められている」と勘違いされていることです。
OSSとフリーソフトは別物なので、気をつけましょう。
|OSSの特徴
OSSの特徴としては、以下の5つが挙げられます。
- 無料で利用できる
- 自由に修正やカスタマイズが可能
- 開発元のサポートは基本的にない
- 攻撃されやすいが対処も早い
- 開発元がサービスを終了しても使い続けられる
では、それぞれの特徴を詳しくご紹介していきます。
|無料で利用できる
オープンソースのソフトウェアは、公開されているものであれば無料で使うことができます。
一定のレベルまで出来上がっているものを無料で使うことができるので、追加でカスタマイズする場合でも開発コストが抑えられます。
|自由に修正やカスタマイズが可能
OSSは無料で公開されているソフトウェアなので、開発元のサポートなどは基本的にありません。
利用する際には自己責任で、疑問や不明点があればオンライン上で公開されている様々な情報を活用しながら自力で解決していく必要があります。
|開発元のサポートは基本的にない
OSSは無料で公開されているソフトウェアなので、開発元のサポートなどは基本的にありません。
利用する際には自己責任で、疑問や不明点があればオンライン上で公開されている様々な情報を活用しながら自力で解決していく必要があります。
|攻撃されやすいが対処も早い
有償のソフトウェアや、ソースが非公開となっているものよりも、ソースが公開されているため脆弱性が見つかりやすく、攻撃を受けやすいのも
オープンソースの特徴です。
一方で、ソースが公開されているからこそ、不正プログラムや脆弱性に事前に気づくこともできるのがオープンソースの強みでもあります。
自分でソースを修正もでき、また同じオープンソースを利用している人が修正やアップデートの情報を公開してくれる場合も多いです。
|開発元がサービスを終了しても使い続けられる
通常、開発元が提供するサービスは、開発元が倒産したりサービスを終了したりしてしまうとソフトウェアがアップデートされなくなり、
使えなくなってしまいます。
しかし、OSSはソースが公開されているため、自分でメンテナンスしながら使い続けることができます。利用者が多いオープンソースなら、
他の利用者も様々なアップデートや修正を公開してくれることもあります。
ただし、サービス終了後に、そのまま重要なシステム上で稼働させることはおすすめしません。
OSSの最大の特徴は、誰でも自由に改良、再配布することができる点です。
そのため、誰かがソースコードのバグを見つけたり、改良して修正したりといったサイクルが世界中のユーザーによって行われます。
このような理由から、ソフトウェアの安定性が高くなり、低コストで高品質な開発を行えるため、OSSは近年開発者の中で広まっています。
|OSSのメリット・デメリット
OSSにはメリットもあれば、反対にデメリットもあります。以下では、それぞれについて説明していきます。
|OSSのメリット
OSSのメリットは主に以下の3つが挙げられます。
◆ 自由度が高い
OSSは、誰でもソースコードの表示・変更・公開ができるので、新しいテクノロジーによる変化に対して柔軟に対応することが可能になります。
また、不具合が発生した場合でも、ソースコードの修正や編集が自由自在になります。
セキュリティに不安がある場合でも、自分の用途・要件を満たす形でカスタマイズができるので、安心して利用することができます。
◆ 信頼性がある
ソースコードがユーザーやコミュニティに公開されているため、不正なコードやプログラムの脆弱性などが多くの人の目に触れることで、
監視することができます。
また、常にアップデートされることから、安定性も高まります。
◆ コストの削減が可能
OSSは、ライセンスを無償で利用することができます。
そのため、ライセンスを管理するための業務やライセンスの不正利用に対するセキュリティの強化にかかる費用を削減できるので、トータルで
かかる費用の大幅な削減効果が期待できます。
|OSSのデメリット
OSSのデメリットは主に以下の3つが挙げられます。
◆ 知識のあるエンジニアが必要
OSSのデメリットとしては、プログラミングの知識がないと問題が発生した時に対処するのが難しいことが挙げられます。
他ユーザーやコミュニティがすぐにコードの不備を修正してくれるとは限らないため、自分でコードの不備を発見して修正できる知識が必要になります。
◆ ライセンスに準規する必要がある
OSSを導入する際は、対象となるライセンス形態を確認することが重要です。
OSSは、ソフトウェアごとに個別にライセンスが宣言されています。
OSSの代表的なライセンスは以下が挙げられます。
ライセンスの形態はさまざまで、70種類以上あるともいわれています。
上図のように、ライセンス名を明記するだけで使用・改変・複製・再配布できるものもあれば、用途を制限するようなものもあります。
ユーザーは、ライセンスに準拠した利用が求められるため、使用する前には必ずOSSのライセンスを確認しましょう。
◆ サポートが基本的にない
OSSは無償で公開されていることから、サービスに対するサポートが基本的にありません。
マイクロソフトなどの有償ソフトは、使い方マニュアルが用意されているのでそれを活用することができますが、OSSはほとんどの場合、
マニュアルが用意されていないので、自分で使い方を調べる必要があります。
また、開発コミュニティはサービスに対する責任がないので、不具合が発生しても対応してもらえないため、自分で解決するしかありません。
|OSSで注意すべき点
OSSで注意すべき点は、派生物もOSSとなることです。
OSSを改良・再配布した二次的著作物を「派生物」と呼びます。
OSSのライセンス形態の中で特に注意しなくてはいけないのが、「コピーレフト型」と呼ばれるライセンスです。
コピーレフトとは、「著作権は保持しつつも、二次的な著作物も含めて、すべての人が利用、改変、再配布できるべきである」という考え方を
表す言葉です。
コピーレフト型のOSSライセンスでは、「改良・再配布された派生物も元の著作物と同じ条件で配布しなければならない」とされています。
たとえば、開発者がOSSを基にソフトウェアを改良した場合でも、自由に他のライセンスや条件に変えることはできません。
また、コピーレフト型ライセンスを持つOSSを改変した場合には、ソースコードを公開することが義務付けられています。
|有名なOSS
OSSは現在さまざまなものが公開されていますが、中でも有名なOSSを4つご紹介します。
|WordPress
WordPressは、OSSのCMS(コンテンツ管理システム)です。
PHP言語で開発されたサービスで、ユーザビリティに優れた動的なサイトを構築することができます。UX(ユーザーエクスペリエンス)に焦点を
合わせたサービスで、Webサイトの知識がない人でも作成することができ、個人ブログから企業のサイトまで幅広く利用されています。
|MySQL
MySQLは、世界中で利用されているOSSのデータベース管理システムのことです。
優れた拡張性と柔軟性を備えているので、大きなシステムにも対応することができるため、GoogleやYahoo!にも利用されています。
|Linux
Linuxは、オペレーティングシステム(OS)の1つでスーパーコンピューターやゲーム機、携帯電話など、幅広いハードウェアで使用されているOSSです。
Linuxのソースコードは無償で利用することができ、利用規約書に基づき、誰でも自由に使用・修正・公開することができます。
また、Linuxは世界中のエンジニアの力を借りて、あらゆる機能を追加して柔軟性に優れたサービスを実現しており、順次発生した問題をユーザーと
解決していきます。
|EC-CUBE
EC-CUBEは、2006年に生まれた日本発のECサイト制作に特化したOSSです。
企業やお店が商品紹介を行うページや、ユーザーが実際に商品の注文を行うページの制作など、ECサイトに不可欠なWebページを作るための機能が
網羅されており、自由にインストールをして使用できるほか、プラグインを利用して好みの機能を後から追加することも可能です。
大手のディスカウントストアの「ドン・キホーテ」や、書店チェーンとして知られる「ジュンク堂書店」など、EC-CUBEを導入している著名な
ECサイトも数多く存在します。
|AI(人工知能)のOSSも存在する
AI開発にも、AIプラットフォームとしてのOSSが公開されています。
AIプラットフォームとは、AI開発に必要な環境が事前に用意された土台のことです。
以下では、さまざまなAIのOSSをご紹介します。
|TensorFlow
TensorFlowは、2015年にGoogleが開発したオープンソースフレームワークです。無料で個人、商用どちらでも利用が許可されています。
特徴としては、世界最大規模のシェアを持ちニューラルネットワーク*を構築することができます。
*ニューラルネットワーク:人間の脳の動きを模倣したもので、それにより人間と同じような論理的思考や学習を行うこと
|HuggingChat
昨今話題の生成AIでも、OSSのチャットAIが急速に進化を遂げています。
OSのLinux、ウェブブラウザのFirefox、3DソフトウェアのBlenderなどが代表的なOSSですが、昨今生成AIのOSSとして注目されているのが、「HuggingChat」です。
HuggingChat は、2016年にフランスの起業家らが立ち上げた米ニューヨークを拠点とするスタートアップである「Hugging Face」が公開した
チャットAIです。
2023年4月末に「HuggingChat」をリリースし、基本的な機能はChatGPTと同じで、自然言語によるプロンプトに対し、Eメールの草稿、コード、歌詞
などが生成可能です。
現時点でのパフォーマンスはChatGPTに及ばないと言われていますが、OSSであることから、今後さらなる改良が加えられ、それに伴うパフォーマンスの
改善が期待されています。
|Chainer
Chainerは2015年にリリースされた日本発のPythonベースのディープラーニング向けのフレームワークです。
ニューラルネットワークを使用した学習を行うための機能がOSSで公開されています。
初心者でもスタートしやすく、計算グラフが動的であることが特徴です。
|まとめ
OSSは、誰でも無償で利用できるというメリットから、信頼性や安定性に優れた高い品質のものが開発され、多くの人に利用されています。
また、自社のサービスに合わせて自由にカスタマイズできることや、コーディングやテストに関わる時間の削減が実現できるのでコストの削減も
可能になる点もメリットです。
一方で、ライセンスに準規する必要がある点やサポート手薄といったデメリットも存在します。
OSSを利用する際は、ライセンス形態や内容をしっかりと理解し、メリットを最大限活かしながら利用しましょう。
VNEXTでも、Magento、EC-CUBE、Wordpress、LiferayといったOSSを利用した開発実績があります。
自社が開発したいシステム、ソフトウェアなどに最適なOSSの選定からご相談できますので、お悩みの方はVNEXTまでお問い合わせください!
▶︎ お問い合わせ:https://vnext.co.jp/contact.html?view=contact