Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

軽量・高速・安価で、安定性と信頼性も兼ね備えたWebSphere Application Serverの「Liberty Core」を使ってみた

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2014/03/31 14:00

ダウンロード PostalCodeJSF.zip (2.1 MB)
ダウンロード PostalCodeService.zip (2.1 MB)
ダウンロード PostalCodeServlet.zip (2.1 MB)

 IBMが開発・提供している「WebSphere Application Server」のラインナップに、v8.5.5より新しく「Liberty Core」が加わった。本稿では、Liberty CoreおよびベースとなっているLibertyプロファイルについて、そのメリットや誕生した背景を紹介する。その上で、実際に簡単なWebアプリケーションを作って使い勝手をレビューしたい。

目次

 なお、本稿で紹介する作例は記事にサンプルコードを添付しているため、そちらも併せて参照して欲しい。

1. Webアプリケーションに特化した軽量版WebSphere「Liberty Core」

 IBMが提供するアプリケーションサーバ「WebSphere Application Server」(以下、WAS)に、v8.5.5より新しいエディションとして「Liberty Core」が追加された。Liberty Coreは、フルスタックのJava EEを必要としない、 Webアプリケーション向けに設計された軽量なアプリケーションサーバである。Webアプリケーションの開発や実行に特化しているため、WASの他のエディションに比べて少ないリソースで高速な動作を実現している点が特徴だ。

 Liberty CoreはWAS v8.5から追加されたLibertyプロファイルをベースに構成されている。LibertyプロファイルはJava EEに定義されたWebプロファイルをサポートしたアプリケーションランタイムで、当初はWASの一機能として、主に開発やテストの用途向けに提供されていたもの。そのLibertyプロファイルをベースに、実運用を想定した独立したエディションとして完成させたのがLiberty Coreということだ。

 Liberty Coreの最大の利点は、Webアプリケーションの開発および運用に特化した軽量さにあるが、その他にもEclipseの拡張機能として利用できる開発環境の導入の手軽さ、デプロイメントに向けたパッケージ化の容易さ、拡張性の高さなども特徴として挙げることができる。一方で、WASの他のエディションで利用可能なLibertyプロファイルの一部の機能が、Liberty Coreではサポートされていないという注意点もある。例えばJMSやJAXB、JAX-WSなどといったJava EE Webプロファイルに含まれない一部のAPIは、Libertyプロファイルではサポートされているが、Liberty Coreには含まれていない。Liberty Coreを含むWASの各エディションでサポートされる機能の一覧は、Libertyフィーチャーのページにまとめられている。

2. なぜLiberty Coreが必要なのか

 Libertyプロファイルが生まれた背景には、WASでの開発をもっと高速でストレスなく行いたいという開発現場の声があるという。Webアプリケーションの開発では、アプリケーションサーバの再起動を頻繁に繰り返しながらデバッグやチューニングを行うことが多い。迅速な開発スピードを求められる現場では、このアプリケーションサーバの再起動にかかる時間を縮小することには大きな意味がある。Tomcatをはじめとするオープンソースのアプリケーションサーバが人気を誇っているのは、簡単に使える手軽さもさることながら、軽量で起動が速く開発時のストレスが少ないという理由も大きい。

 その一方で、それらのオープンソース系のアプリケーションサーバには、大規模なアプリケーションの開発では機能が十分でないという問題もある。エンタープライズ規模のアプリケーションを安定して動作させるためには、クラスタリングや統合管理機能などフル活用して大量のトランザクションに耐えるシステム基盤を用意しなければならない。オープンソースのプロダクトを組み合わせてそのようなシステムを組むことも不可能ではないが、幅広いノウハウが必要であり、敷居は決して低くない。

 その点、WASであればあらゆる規模のアプリケーションにおいて信頼性の高いシステム基盤を構築することができる。しかしながら、これまでのWASは機能拡張を続けた結果、導入にディスクを何枚も使って1時間以上かかるほどに拡大化しており、素早い開発というニーズに対応することが難しくなっていた。

 そこで登場したのがWASのLibertyプロファイルというわけだ。Libertyプロファイルは、WASの安定性や信頼性の高さを維持しながら、軽量で起動が速いという開発フェーズでのニーズを満たす、言わば「いいところ取り」をした製品と言える。従って、Libertyプロファイルの利用シーンとしては、その軽量さを活かしてアプリケーション開発の効率を上げつつ、完成したアプリケーションを信頼性の高いWAS環境で実行するというシナリオが想定されている。

 とはいえ、最近のWebアプリケーションではJava EEのフル機能までは必要ないというケースも少なくないだろう。そこで、WASからLibertyプロファイルを稼働させるのに必要十分な機能を抽出し、単独のアプリケーションサーバとして利用できるようにしたのが新エディション「Liberty Core」である。Liberty Coreは、他のWASエディションのようにJava EEのフルスタックを利用できるわけではなく、あくまでもWebアプリケーションの実行基盤に特化されたものだ。その代わりに、極めて安価で提供されているので手軽に利用できるほか、上位エディションにも容易に移行することができるという強みがある。初期コストを押さえつつ、事業の成長に応じてシームレスに規模を拡大していくことが可能なため、リーンスタートアップにも向いた製品ということができる。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 杉山 貴章(スギヤマ タカアキ)

    有限会社オングスにて、Javaを中心としたソフトウェア開発や、プログラミング関連書籍の執筆、IT系の解説記事やニュース記事の執筆などを手がけている。そのかたわら、専門学校の非常勤講師としてプログラミングやソフトウェア開発の基礎などを教えている。著書に『Javaアルゴリズム+データ構造完全制覇』『Ja...

All contents copyright © 2005-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5