フリーのWebコンテナ/J2EEコンテナを整理する
Javaオープンソースセンターでは、Java開発に関連するさまざまなオープンソースを紹介してきます。また、開発者に便利なリンク集も今後充実させていく予定です。(編集局) |
クロノス
米山学/奥清隆
2005/2/19
|
Tomcat |
|
Tomcatは「The Apache Jakarta Project」(http://jakarta.apache.org/)で開発されているサーブレット・コンテナであり、JCPおよび米サン・マイクロシステムズによって策定されているServlet APIとJSP APIを実装する公式のRI(Reference Implementation)である。Tomcatの歴史をひもとくと、1999年6月にサンフランシスコで開催されたJavaOneにまでさかのぼる。当時Sunが開発していたJSWDK(Java Server Web Development Kit)とServlet/JSPのライセンスをApache Software Foundationが譲り受けJakarta Projectが誕生する。そしてその年の12月にTomcat 3.0がリリースされることとなった。
Tomcatは無償であるにもかかわらず高い性能を誇る実績あるサーブレット・コンテナである。簡易HTTPサーバも同梱しているためServlet/JSPのみを使うWebアプリケーションであればTomcatとデータベースを用意するだけで十分構築可能だ。また、EJBコンテナであるJBossに標準でバンドルされており、サーブレット・コンテナのデファクト・スタンダードとしての地位を確保している。最新バージョンは5.5.7(2005年2月現在)である。
Tomcat 3系
最初に一般公開されたのがこの「3.x」系である。HTTPサーバとのコネクタ機能やセキュリティ関連に問題はあったものの、当時としては画期的であった。バージョン3.3を最後に3系の開発は終了している。
Tomcat 4系
3系のコードを大きく改変し「Catalina」と呼ばれるアーキテクチャをベースにCraig.R.McClanahan氏(StrutsやJSFの開発でも知られる米サン・マイクロシステムズの“J2EE
Web Layer Architect”)をリーダーとして開発が行われ、2000年8月に4.0.1がリリースされた。Servlet 2.3とJSP
1.2をサポートする4系の発展とともにServlet/JSPによるWebアプリケーションの構築も一気に普及していくこととなる。
Tomcat 5系
ガベージ・コレクションの軽減およびパフォーマンスにかかわるコードが大きく改善され、セッション・クラスタリングもサポートされたことによって商用アプリケーションや企業システムでの使用に十分耐え得るプロダクトとなった。サーバの監視機能にはJMXがフルに採用されている。2003年12月にリリースされたJ2EE
1.4に含まれるServlet 2.4とJSP 2.0をサポートする。また、5.5系もリリースされており、こちらはJ2SE 5.0対応版である。
|
JBoss |
|
JBossはJBoss Inc.(http://www.jboss.org/)によって開発されている100%Pure Javaの軽量なEJBコンテナであり、世界中で高い評価を得ている。
JBoss単体ではEJBコンテナとしての機能しか持たないが、WebコンテナであるTomcatやJettyをバンドルしているためJ2EEアプリケーション・サーバとして利用することが可能である。また、HSQLDBという軽量なデータベースも含まれており、簡単な開発環境を手軽に構築することができる。これらはJMXをベースにしたマイクロ・カーネルと呼ばれるアーキテクチャを採用してコンポーネント化されている。
JBoss 4.0ではJBoss AOPと呼ばれるAOP(Aspect Oriented Programming))フレームワークを提供しておりJCA 1.5やEJB Timer、J2SE 1.5 Beta1などにも対応している。
JBossプロダクト自体は無償であるが、JBoss Inc.による有償のサポートを受けることができ、多くの企業での実績がある。日本国内でも代理店による日本語でのサポートを受けることが可能となっている。最新のバージョンは4.0.1(2005年2月現在)である。
|
JOnAS |
|
JOnASはオープンソース・ソフトウェアのコミュニティであるObjectWebが提供しているJ2EEアプリケーション・サーバである。100%Pure Javaで開発され、米サン・マイクロシステムズによるJ2EEのライセンスを受けている。現時点での最新バージョンである4.3.2ではJ2EE 1.4をサポートし、EJB 2.1やJCA 1.5などが利用可能である。EJBが使用可能な無償のJ2EEサーバが少ない中、その選択肢としてJOnASを加えることができるだろう。フロントのサーブレット・コンテナとしてはTomcat 5.0.30もしくはJetty 5.1.1をバンドルするビルドがリリースされており、好みに応じて使い分けることもできる。
またRDBMSのHSQLDB、トランザクション・マネージャのJOTMが同梱されているため、J2EEアプリケーション開発のオールインワン・パッケージとして即座に活用することが可能となっている。JBossに比べてまだまだ情報が少ないが、今後発展が期待されるプロダクトの1つである。
|
Seasar |
|
Seasar(シーサー「沖縄の狛犬」)はその名前からも分かるとおり純国産のオープンソースのアプリケーションサーバであり、Seasarプロジェクト(http://www.seasar.org/)によって開発されている。このアプリケーション・サーバは「軽量コンテナ」とも呼ばれており、AOP(Aspect-Oriented Programming)やDI(Dependency Injection)、IoC(Inversion of Control)といった最新のプログラミング・パラダイムを採用していることが大きな特徴だ(同様に軽量コンテナと呼ばれるプロダクトにPicoContainer(http://www.picocontainer.org/)やSpring Framework(http://www.springframework.org/)などがある)。また国内で日本人を中心に開発されているという点も注目すべきであろう。
従来のアプリケーション・サーバでは、実装すべき仕様や機能が肥大化、複雑化する過程においてメンテナンス性や開発およびテストの容易性を犠牲にしてきた。軽量コンテナはそれらの問題点を解決すべく普通のJavaオブジェクトであるPOJOを利用し、多くの機能をプラグイン可能な個別モジュールとして実装している。
現在はWebコンテナのJettyやRDBであるHSQLDBなどがバンドルされたSeasar 2(2005年2月現在)が公開されており、今後の発展が楽しみなプロダクトだ。
Java Solution全記事一覧 |
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (2017/5/9)
ログ基盤の構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。今回は、実案件を事例とし、ログ管理基盤の有用性を、障害対応時間比較も交えて紹介 - Chatwork、LINE、Netflixが進めるリアクティブシステムとは何か (2017/4/27)
「リアクティブ」に関連する幾つかの用語について解説し、リアクティブシステムを実現するためのライブラリを紹介します - Fluentd+Elasticsearch+Kibanaで作るログ基盤の概要と構築方法 (2017/4/6)
ログ基盤を実現するFluentd+Elasticsearch+Kibanaについて、構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。初回は、ログ基盤の構築、利用方法について - プログラミングとビルド、Androidアプリ開発、Javaの基礎知識 (2017/4/3)
初心者が、Java言語を使ったAndroidのスマホアプリ開発を通じてプログラミングとは何かを学ぶ連載。初回は、プログラミングとビルド、Androidアプリ開発、Javaに関する基礎知識を解説する。
|
|