サイト内の現在位置
OSS(オープンソースソフトウェア)導入のメリットと注意点
組込みシステムサーバの構築やアプリケーション開発の分野では、いかにしてコストを抑えつつ、高品質なシステムを設計するかが大きな課題となります。そこで、重要な役割を担うものが「OSS(オープンソースソフトウェア)」です。本記事では、OSSの概要とメリットについて解説するとともに、導入時の注意点やおすすめのソリューションを紹介します。
目次
システム開発で重宝されるOSS(オープンソースソフトウェア)とは
OSSは「Open Source Software」の略称で、ユーザーにソースコードが公開されている再配布可能なソフトウェアを指します。通常のソフトウェアは、ソースコードが記述されたテキストファイルを作成し、コンピュータが実行可能な形式に変換するコンパイルを経て、実行ファイルが作成されます。そして、公開されるのは実行ファイルのみで、原則として開発者でなければソースコードの改変や不具合の修正はできません。それに対して、OSSは基本的に無料でソースコードが公開されており、誰でも利用・改変・再配布できる点が大きな特徴です。
一般的にOSSと呼ばれるソフトウェアは、米国の「OSI(Open Source Initiative)」が定めた定義に当てはまるものを指します。
OSIが定めるOSSの定義
OSIは、OSSの発展や普及を目的として、ライセンス管理やプロモーション活動を展開する非営利団体です。オープンソースを以下の10項目に基づいて定義しており、そのガイドラインを満たすOSSには「OSI認定マーク」が付与されます。
-
Free Redistribution(再頒布の自由)
-
Source Code(ソースコード)
-
Derived Works(派生ソフトウェア)
-
Integrity of The Author’s Source Code(作者のソースコードの完全性)
-
No Discrimination Against Persons or Groups(個人や団体に対する差別の禁止)
-
No Discrimination Against Fields of Endeavor(利用する分野に対する差別の禁止)
-
Distribution of License(ライセンスの分配)
-
License Must Not Be Specific to a Product(特定製品のみ有効なライセンスの禁止)
-
License Must Not Restrict Other Software(他のソフトウェアを制限するライセンスの禁止)
-
License Must Be Technology-Neutral(ライセンスは技術中立的でなければならない)
代表的なOSSの種類
現代では、デジタル技術が加速度的に進歩・発展しており、それに伴ってさまざまな分野でOSSがリリースされています。中でも代表的なOSSとして挙げられるものが、サイト構築などによく活用される「WordPress」、データベースの管理に活用される「MySQL」、アプリケーションの機能強化や制御に活用される「OpenCL」「Acumos AI」「Linux」などがあります。
WordPress
WordPressは、CMS(Contents Management System)の分野において、圧倒的なシェアを誇るOSSです。一般的なWebサイトは、HTMLやCSSでソースコードを記述したHTMLファイルを作成し、FTPを介してWebサーバと接続するプロセスが欠かせません。それに対して、WordPressはWebサーバにパッケージをインストールするだけで、Webサイトの大枠が完成します。
HTMLやCSSの知識を有していなくてもWebサイトを構築できるとともに、プラグインによる拡張性の高さやテンプレートの豊富さが魅力です。また、HTMLとCSS、PHPさえ扱えれば、テンプレートのカスタマイズやオリジナルテーマの作成も実現します。
MySQL
MySQLは、オープンソースのRDBMS(Relational Database Management System)です。データベース管理システムのリーディングカンパニーとして知られるOracle社が開発したOSSであり、WordPressのデータベース構造にもMySQLが採用されています。
データの一貫性や独立性を担保する「ACID特性」を有しており、比較的大きなデータセットでも、高速かつ信頼性の高い検索や集計が可能です。ただし、あらかじめ定義されたスキーマに基づいてデータを管理するため、多様かつ複雑な構造をもつビッグデータの取り扱いには適していません。
OpenCL
OpenCLは、多くのソフトウェア、ハードウェア企業が集まるオープンコンソーシアムであるKhronos Groupが発表しているオープンソースです。ジェネリックプログラミングやメタプログラミングを使った並列プログラミングの生産性を高めることができるプログラムで、C++言語の利点であるオブジェクト指向プログラミングの手法を活用することができます。主な用途は科学技術計算や画像処理などの高性能計算の高速化です。自動車関連技術の開発やシミュレーション可視化に活用され、リアルタイム3次元コンピュータグラフィックスなどの高度な処理をスムーズに実行することができるようになります。スーパーコンピュータやサーバ、ワークステーションの他、携帯電話などでの利用が想定されたオープンソースプログラムです。
Acumos AI
Acumos AIはOSS推進団体のThe Linux Foundationが公開をしているAIモデルの開発を容易に実現するためのオープンソースフレームワークです。
AIアプリケーションの構築や共有、デプロイを容易にします。AI活用が広まり、様々なライブラリが公開されていますが、ライブラリごとにAPIが異なるため、学習モデルを組み合わせる横断的な開発は困難です。こうした複数の学習モデルを活用する際の課題を解決し、APIの共通化や学習モデルの共有を可能にし、より発展的な開発の実現と、作業工数の圧縮を可能にします。
Acumos AIは自動運転やドローン、統計解析、データ分析などに関連するAIの開発など、様々な分野の開発で注目をされています。
Linux
Linuxは、世界で最も普及されているオープンソースのOS(Operating System)です。
Microsoft WindowsやmacOSと同じくコンピュータ全体の操作や運用を司る役割を担っており、サーバの構築やOSの設計、アプリケーション開発などの分野で重宝されています。
Microsoft WindowsやmacOSはPC向けのOSですが、Linusはオープンソースでカスタマイズ性に優れることから、スーパーコンピュータやメインフレーム、デジタル家電、家庭用ゲーム機、ロボティクス、組込みシステムなど、さまざまな分野のOSとして活用されている点が大きな特徴です。
OSSを導入するメリット
OSSの導入によって得られる主なメリットとして、以下の4点が挙げられます。
信頼性が高く、安定して利用できる
ソースコードが公開されているOSSは、第三者機関に監査を依頼することで、信頼性や透明性の担保が可能です。ソースコードが公開されていない一般的なソフトウェアの場合、どのようなプログラムが動作しているのかを監査できず、さらに開発企業の倒産や合併などにより、サービスが終了するリスクがあります。
また、ユーザーやコミュニティがソースコードを修正・改良することで、安定的な稼働と継続的な改善を図れます。
柔軟性・自由度が高い
OSSは、ソースコードの構造や仕組みを誰でも閲覧できる上、状況や必要に応じて、自由にカスタマイズを行える特性があります。プログラミングの知識を有していなくてもプラグインを利用する、あるいは既存システムや最新技術との連携を図ることで、さまざまなニーズに対応可能です。
例えば、WordPressはプラグインの活用により、問い合わせフォームやショッピングカートを実装する、または各種SNSやGoogleのツールと連携するなど、柔軟かつ自由度の高いカスタマイズが叶います。
導入コストを抑えられる
OSSは基本的に無償でソースコードが公開されており、多くのサービスを無料で利用できることから、ソフトウェアの導入やシステムの設計・実装にかかるコストの大幅な削減が実現します。
Linuxを例に挙げるなら、オープンソースとしてのライセンス規定に則ることで、無償での商用利用もあります。また、ライセンスの管理費やシステム交換などの維持費も抑えられるため、イニシャルコストとランニングコストの両面において、自社に適したコストモデルの設計が可能です。
情報が豊富でカスタマイズしやすい
OSSは、ユーザー数の多いサービスほど公開されている情報が多く、バグや脆弱性を発見した場合は、コミュニティ内で迅速に共有されます。
例えば、オーストリアの第三者調査機関「W3Techs」の調査によると、全世界のWebサイトの43.1%はWordPressで作成されており、世界中のユーザーが情報交換を行うコミュニティを構成しています。CMSとして圧倒的なシェアを誇り、有志のエンジニアからプラグインやテンプレートが豊富に提供されているため、優れたカスタマイズ性が特筆すべきポイントです。
OSSを導入する際の注意点
OSSを導入する際の主な注意点として、以下の3点が挙げられます。
人材の育成が難しい
OSSはオープンソースでカスタマイズ性が高く、ソフトウェアの導入やシステムの設計・実装にかかるコストを削減できるものの、そのメリットを活かすためには、相応の技術と知識を有するエンジニアが必要です。
例えば、Linuxはサーバを構築したり、組込みシステム向けのOSを設計したりできますが、それにはネットワークやデータベース、ハードウェアアーキテクチャ、プログラミング言語などに関する深い理解が求められます。
また、OSSは世界中のコミュニティで情報が共有されている一方、基本的にマニュアルやアフターサポートが存在しないので、情報システム部門の負担が大きい点に要注意です。
セキュリティ対策が必要になる
OSSのメリットは、ソースコードが公開されており、世界中で情報が共有されている点にありますが、裏を返せばマルウェアや不正アクセスの標的になりやすい、というデメリットに転じます。
一例としては、その市場占有率の高さゆえに、サイバー攻撃の標的になりやすいものがWordPressです。WordPressで構築されたWebサイトでは、データベースに対して不正なSQLクエリを実行する「SQLインジェクション(SQL Injection)」や、フォームに悪意あるスクリプトを埋め込む「クロスサイトスクリプティング(XSS)」などの被害が多発しています。
一方で、人気のないOSSはコミュニティが縮小していく可能性が高く、バグや脆弱性などの情報収集が困難な場合があります。
ライセンス契約や規約を確認する必要がある
OSSは原則として著作権で保護されており、著作権者はオープンソースライセンスを遵守することで利用を許諾します。代表的なライセンスとして挙げられるものが、「MPL(Mozilla Public License)」と「GPL(General Public License)」です。
MPLは複製や再配布に著作権表示が必要なライセンスで、Firefoxのような「Mozillaソフト」で用いられます。GPLはLinuxやWordPressで採用されており、著作権表示を保持するとともに、再配布の際は同様のライセンスを構成しなければなりません。
OSSのライセンスによっては、商用利用不可の場合があるので、事業領域で利用する場合は必ず規約を確認すべきです。
OSSを導入するなら技術支援サービスの活用がおすすめ
OSSのメリットを最大限に活用するためには、IT分野に関して高度な技術と知識を有する人材が不可欠であり、そのリソースを自社のみで確保することは容易ではありません。
そこでおすすめしたいのが、NECソリューションイノベータが提供する「組込みシステム支援サービス」です。本サービスはソフトウェアの要件定義や仕様の策定、設計・開発、技術支援、ソースコードの検証、コンサルティングなどをワンストップで提供します。Linuxによるシステム開発に向けた、技術支援や組込みAIの設計・開発など、多数の実績をもつNECソリューションイノベータが、OSSの導入・運用を総合的に支援します。
人材の採用・育成に要するコストと時間を削減するとともに、OSSのスムーズな導入を推進したい方は、以下のリンクより詳細を参考にしてみてください。
まとめ
OSS(Open Source Software)は、オープンソースの再配布可能なソフトウェアです。ソースコードの構造や仕組みが公開されているため、設計・開発コストを抑えながら独自性の高いシステムを開発できるとともに、プラグインの開発や機能の拡張、脆弱性の発見、商用製品への組込みなどをユーザーが自由に実行できます。
代表的なOSSとして、WordPressやMySQL、OpenCL、Acumos、Linuxなどがあり、特に人気の高いサービスは、世界中で情報を共有するコミュニティが構成されています。それによって、世界中のエンジニアからフィードバックを獲得できるので、ソフトウェアの継続的な改善と品質の向上に期待を抱ける点がOSSのメリットです。