そろそろTomcatからアプリケーションサーバーへ移行する時期

現在Tomcatで十分(本格的アプリケーションサーバいらね)と思っている層がSpringサーバに流れるなら、大きなマーケットが誕生しますね。これは、大きなビジネスチャンスだと思う。
SpringとJBossの全面対決はじまったな

昔々、AP鯖がお高い商用のものしかほとんどなく、マシンの性能も今と比べるとびっくりするくらい低い時代アプリケーションサーバーは敬遠されました。EJB2.xの悪いうわさ等も手伝ったでしょう。

いまや、アプリケーションサーバーはさほど重くない。オープンソース製品で複数比較できて、それぞれ競争するもんだからいいものに出来上がってきている。

それにGeronimoGlassfishJBOSSってサーブレットコンテナ部分のベースはTomcatですよね。NIO使ったりチューニングはかなりされてると思うけど。Tomcatからの移行が難しいなどという報告はあまり聞いたことがない。

Servletコンテナだけに固執する時代はもう終わったと思っています。そろそろ楽な開発、運用をしてもよろしいのではないでしょうか?


Glassfishの利点を軽く挙げてみます。おそらく他のアプリケーションサーバーも同じでしょう。

  • GUIによる各種設定、デプロイが可能
  • ポートが自由に変更できる(標準で管理用とアプリケーションとポートが違う)
  • 日本語による管理画面
  • JavaEEに必要なライブラリがすでに設定済みなのでデプロイするファイルが小さい(&依存関係に悩まない)
  • バックに大手ベンダがいるので商用サポートが手厚くある

基本的にxmlを書いて設定等をする必要がありません。すべてGUIによる簡単設定です。デプロイだけ見ても両者の違いが面白いほどわかります。たとえばデプロイはtomcatの管理ツールと同じように、ファイルアップロードしてデプロイと、サーバーのローカルファイルをデプロイする、の2つがあります。その後者の設定の仕方はTomcatはパスをあらかじめ覚えておいてそれを入力するだけなのですが、Glassfishはファイル選択ダイアログのような物が出ます。細かいパスの名称を覚えておく必要はないのです。

ほかにもいたせりつくせりなのです。コネクションプーリングの設定にしても敷居はTomcatよりはるかに低いと思っていいでしょう。


Springが独自のアプリケーションサーバーを立ち上げるようですが、JavaEEに準拠していなくてもそれはアプリケーションサーバーだと思います。開発や運用を考えた製品になっていれば。この方向が加速してほしいですね。トランザクションは何も設定せずにJTAでコンテナ管理されるのが当たり前になってほしいし。


軽量な開発ということでSevletコンテナの上で動くDIコンテナがいろいろと生み出されました。これもJavaEEに準拠していない独自のフレームワークですが、扱いやすい環境を提供するということでアプリケーションサーバーとやりたいことは違いません。それが根っこにあるのか、自由にどこでも扱えるようにできているかなどの違いはあるにせよ。Seasar2GUIで開発から運用までできるアプリケーションサーバーがあるといいですね。どうしてもDIコンテナを扱う場合、xmlを作って配備しなおしとかそういう泥臭いところが起こりやすくなってしまうと思います。

ちょっと大げさに言えば、Tomcatだけで開発をするスタイルはIDEをつかわずメモ帳だけでjavaのコードを書いている状態に等しいと思います。メモ帳だけで開発するのならLLじゃないときついかもしれません。

昔のイメージだけでアプリケーションサーバーを食わず嫌いしてる人いませんか?