JBossの歴史と単体での性能比較
オープンソースのアプリケーションサーバであるJBoss Enterprise Application Platform 6(EAP)がリリースされてから、約2年経ちました。アップデートを重ねて現在は6.3となっており、本番環境での利用も着実に増えているように感じます。本連載ではJBoss EAPとApache Tomcatについて、性能という観点から比較してみたいと思います。
今回はJBossの歴史と基礎知識について振り返ったあと、アプリケーションサーバの単体での性能比較結果について紹介します。
JBossの歴史
アプリケーションサーバであるJBoss Enterprise Application Platform(EAP)は、Red HatのJBoss Middlewareという製品群の1プロダクトです。JBoss Middlewareに含まれる製品には、EAPの他にもJSP/Servlet実行環境を提供するJBoss Web Serverや、分散インメモリ環境を提供するJBoss Data Gridなどがありますが、本稿では取り上げません。
JBossにはコミュニティ版のJBoss Application Server(以下、AS)と商用版のJBoss EAPがあります。2つのプロダクトの関係を整理してみましょう(図1)。
JBossの開発は1999年にスタートしました。2006年に開発元のJBoss Inc. がRed Hatに買収されてからは、コミュニティ版がJBoss AS、商用サポート付きの製品がJBoss EAPというように住み分けられていました。しかし、コミュニティ版と商用版の名前が紛らわしいということから、2013年にJBoss ASの方はWildFlyへと改名されています。JBoss AS(WildFly)の最新安定版は、2014年5月にリリースされた8.1です。2014年9月には9.0のアルファ版がリリースされましたので、現在は9.x系に開発主体が移っているようです。
JBoss EAPの方は、JBoss ASの安定版をベースにRed Hatが再パッケージングし、製品検査をした上でリリースするという形態をとっています。バージョン番号が一致していなくて混乱するのですが、EAP 5.xはAS 5.xを、EAP 6.xはAS 7.xをベースに開発されました。まだリリースされていませんがJBoss EAPの次期バージョンになる7.xは、WildFly 8.xを元に開発されています。2014年時点ではJBoss EAP 6.xがフルサポート期間、EAP 5.xはメンテナンスサポート期間となっていますので、JBoss EAP 6.xを利用している方が多いのではないでしょうか。
JBossの基礎知識
JBossを利用するために必要となる基礎知識を簡単に説明します。JBossには「スタンドアロンモード」と「ドメインモード」という2つの管理モードがあります。
スタンドアロンモード
1つのJavaVMプロセスで1つのJBossサーバを起動する方法です(図2)。それぞれのJBossサーバを個別に管理する必要がありますが、複数のJBossサーバでクラスタを構成することも可能です。
ドメインモード
ドメインモードでは、「ドメインコントローラ」と呼ばれる管理プロセスによって複数のホストを管理することができます。サーバの起動・停止やアプリケーションのデプロイといったオペレーションは、ドメインコントローラから行えます。
スタンドアロンモードでもドメインモードでも、JBoss EAPの機能面に差はありませんので、どちらの管理方法が適しているかによって選択することになります。多数のJBossホストを管理ホストから一元管理する運用であればドメインモード、小~中規模の環境であればスタンドアロンモードを選択することが多いようです。
どちらの管理モードでも、管理方法は以下の3つになります。
- 管理コンソール(Web)
- CLI(コマンドラインインターフェース)
- XML構成ファイル
管理コンソールまたはCLIからの変更は、即座にXML構成ファイルに反映されますが、XMLを直接変更した場合はサーバの実行中には動的に反映されません。よってサーバ実行中は、基本的に管理コンソールもしくはCLIで管理を行うことになります。