[OSSを理解する]

Web/APサーバー、DBMS、開発支援ソフトウェアのOSS鳥瞰図【第4回】

2017年5月19日(金)小磯 俊一郎(日本OSS推進フォーラム クラウド技術部会)

IT Leadersは2012年5月に「OSS鳥瞰図」を作成・公開した。様々あり多岐にわたるOSSを鳥の目で俯瞰的に理解できるように、という意図で作成したものだ。しかしOSSの進化は急ピッチである。そこに問題意識を持った日本OSS推進フォーラム クラウド技術部会が完全リニューアルし、「OSS鳥瞰図2017年α版」を作成した。今回は「Web/AP サーバー、データベース」および「開発支援」のカテゴリを解説する。

 OSS(Open Source Software)に関心のある方なら、LAMPやLAPPという言葉を耳にしたことがあるでしょう。Webアプリケーション構築に利用する主要なOSSの頭文字をとって作られた造語です。

  • LAMP=Linux(OS)+Apache(Webサーバー)+MySQL/MariaDB(データベース)+PHP/Perl/Python(開発言語)
  • LAPP=Linux(OS)+Apache(Webサーバー)+PostgreSQL(データベース)+PHP/Perl/Python(開発言語)

 今回は、これらの「Web/APサーバー、データベース」「開発支援」カテゴリに該当するOSSにスポットを当てます。かなり以前からある定番的なOSSが数多く並ぶ一方で、特にデータベースのカテゴリでは近年のビッグデータ技術の発展に伴い新しいOSSも目立ってきています。

Web/AP サーバー、データベース

 2017年α版のOSS鳥瞰図(http://ossforum.jp/node/1332)では、「Web/AP サーバー、データベース」を以下の8つのサブカテゴリに分けています。

  • Web/APサーバー
  • EAI/ESB
  • データベース
  • DBクラスタリング
  • DB管理
  • BPM
  • KVS
  • NoSQL
「OSS鳥瞰図2017年α版」より、「Web/APサーバー、データベース」の部分を抜粋
拡大画像表示

 今回は、この中からWeb/APサーバー、データベース、KVS、NoSQLのOSSを中心に紹介します。

Web/APサーバー

 Web/APサーバーのサブカテゴリの中で最も有名なのは「Apache HTTP Server」でしょう。1995年の誕生から20年以上にわたり開発が継続しているOSSです。商用ソフトウェアに組み込まれて利用されているケースも多く、世の中に最も広く普及しているWebサーバーソフトウェアの1つです。

 開発を担うのはApacheソフトウェア財団(ASF:Apache Software Foundation)。同じASFが開発している「Apache Tomcat」(HTMLなどのWebページを動的に生成するJavaサーブレットを動作させるコンテナ)と組み合わせて利用している企業やエンジニアも多いでしょう。TomcatにはWebサーバーの機能もありますが、HTTP Serverに比べ簡易的なものだからです。

 周知のようにASFは、HTTP ServerやTomcat以外にも多くのOSSプロジェクトを保有しています。今回のOSS鳥瞰図の中だけでも、実に40個近くのOSSにApacheの冠がついています。またASFが作成したソフトウェアライセンス規定は「Apache License」として提供され、Apache以外のソフトウェアでも多く利用されています。

 当然、Apache HTTP Server以外のWeb/APサーバーもあります。オラクル(旧サン・マイクロシステムズ)によってコミュニティ開発がされている「GlassFish」、レッドハット社の商用製品「JBoss」のオープンソース版である「WildFly」などが有名です。

 「OSS鳥瞰図に、近年急速に利用が増えている「nginx」の名前が無いぞ?」と思った人もいるかもしれません。nginxはWebサーバーの機能を持っていますが、OSS鳥瞰図では「セキュリティ」カテゴリのサブカテゴリ「プロキシ/ ファイアウォール」に分類したため、ここでは対象外とします。

リレーショナルデータベース

 次にデータベースのサブカテゴリを見ていきましょう。ここでいうデータベースとは、いわゆるリレーショナルデータベース管理システム(RDBMS)を指しています。代表的なOSSといえば「PostgreSQL」「MySQL」「MariaDB」の3つです。これらはAmazon Web Services(AWS)でもサービスが提供されており、これら3製品の人気度が分かると思います。

 まずPostgreSQLは、これまで企業システム向けの性能改善や機能強化が繰り返し行われ、現在では大規模な基幹系システムへの採用ももはや当たり前になりました。Webブラウザからデータベースを管理する「phpPgAdmin」などのツールも充実し、OSSのRDBMSに慣れていない人にも使いやすいRDBMSです。米国のEnterpriseDB社がOracle Databaseとの互換性を持った商用サポート付きの「Postgres Plus Advanced Server」という製品を提供しています。

 OSSのRDBMSの中で最も多く使われているのがMySQLです。大規模システムでの導入実績もPostgreSQL同様に豊富で、商用のRDBMSと遜色ない機能や使い勝手を備えています。当然、同様に管理ツールも充実しています。なおMySQLは現在、商標権などはオラクル社の所有物となっており開発もオラクル社が主体で行っています。

 MariaDBは、そのMySQLのソースコードを元にして新たに立ち上げられたOSSのDBMSです。商用DBMS最大手のオラクルとは考え方の異なるエンジニアが、プロジェクトを担っています。このような根元が1つで先が分岐しているOSSを開発することを、フォーク(fork)になぞらえて“フォークする”と表現します。MariaDBの歴史はまだ浅いですが、MySQLをベースとしていることから、もともとのMySQLユーザーを中心に、ここ数年で利用が拡大しています。管理ツールなどもMySQL向けと同じものが利用できます。

KVSとNoSQLのサブカテゴリ

 続いて、KVSとNoSQLのサブカテゴリです。KVSは「Key Value Store」の略で、あるKeyに対してその値であるValueの組み合わせでデータを管理する構造を持ったデータベースの総称であり、代表的なものとして「Apache Cassandra」があります。

 NoSQLは「Not only SQL」の解釈とされますが、一般的にはRDBMS以外のデータベースを指す言葉です。大まかな分類では、KVSもNoSQLの一種とされることも多いですが、今回のOSS鳥瞰図ではKVSを切り出して別カテゴリとしています。ここでは、KVSとその他NoSQLくらいの分類として読み取っていただければ幸いです。

 NoSQLの中で最も人気が高く、利用も多いのが「MongoDB」です。Webのアクセスログや機器の稼働ログ、様々なセンサーが生み出すデータなどをJSONという標準的なドキュメント形式で蓄積します。こうしたデータは、時間とアクセスがあったページ位置など単純な数字や文字の羅列(=ドキュメント)であり、RDBMSには馴染みにくい問題があります。

 MongoDBでは、ドキュメントを「コレクション」と呼ばれる集合でまとめて管理する構造をとっています(図1)。SNSのデータなども含め、ドキュメント形式のデータが急増していますから、MongoDBの採用が広がっているのです。ここでは詳細は述べませんが、関心を持った方はぜひ、調べてみて下さい。

図1 MongoDBのデータ管理構造
拡大画像表示

 なおMongoDBはビッグデータ専用のDBMSではありませんが、KVSやNoSQLは大量のデータを蓄積するビッグデータ分野で急速に利用が拡大しています。OSS鳥瞰図のこのカテゴリにもMongoDBやCassandraを含んだサブカテゴリがありますので、BigDataの回で詳しい説明を行う予定です。

バックナンバー
OSSを理解する一覧へ
関連記事

Web/APサーバー、DBMS、開発支援ソフトウェアのOSS鳥瞰図【第4回】IT Leadersは2012年5月に「OSS鳥瞰図」を作成・公開した。様々あり多岐にわたるOSSを鳥の目で俯瞰的に理解できるように、という意図で作成したものだ。しかしOSSの進化は急ピッチである。そこに問題意識を持った日本OSS推進フォーラム クラウド技術部会が完全リニューアルし、「OSS鳥瞰図2017年α版」を作成した。今回は「Web/AP サーバー、データベース」および「開発支援」のカテゴリを解説する。

PAGE TOP