クラウド時代に重要なアプリケーション・サーバーをどう選ぶか
いまや、クラウドコンピューティングという言葉を耳にしない日はない。そのクラウドコンピューティングを実現する要素として注目されている技術の1つに、サーバー仮想化がある。さらに、NoSQLなどと呼ばれるKey-Value型のデータベースにも注目が集まっている。
これらに加え、忘れてならないのがアプリケーション・サーバーだ。プライベートでもパブリックでも、クラウド上で様々なアプリケーションを稼働させ、それをネットワーク越しに利用するには、アプリケーション・サーバーは必須だ。ところが、重要な構成要素であるにも関わらず、アプリケーション・サーバーについてはあまり詳細な情報が提供されていないと思えるのは気のせいだろうか。
多くのベンダーから、アプリケーション・サーバー製品が提供されている。それぞれに、どのような違いがあり、どのようなポイントで製品を選択すればいいのか。ちなみに、2009年のアプリケーション・サーバー製品の、国内市場における売上シェアを見てみると、IBMのWebSphere Application Serverが2008年に続き連続で1位を獲得している。
「この採用実績の多さがWebSphereが選ばれている理由の1つです」と、日本アイ・ビー・エム ソフトウェア事業 WebSphere第一CTPの須江信洋氏は語る。もちろん、この実績のベースとなるものとしてITコスト削減効果、運用管理の効率化、高いパフォーマンス、先進的な技術なども、選択される理由だと説明する。
さらに、WebSphereでは、他社製アプリケーション・サーバーが混在する環境でも一元的に管理できる機能や、仮想化技術と融合しクラウドコンピューティング環境に最適化されたソリューションなども提供しているとのことで、ユーザーの要望に対しこれらが適材適所に評価され、シェア1位という実績につながっているのだろう。(次ページへ続く)
●業界をリードするアプリケーション基盤と先進的なソリューションでWebアプリケーションの課題を解決!
Forrester ConsultingのレポートおよびIBMのホワイトペーパー資料の無料ダウンロード実施中!!
●「業界を代表するJavaベースのWebアプリケーションサーバー」
●WebSphere Application Serverのスキルアップに役立つオンラインセミナーをライブ中継 WebSphereライブ!WAS道場
WebSphere Application Server なら様々な周辺機能が標準装備
とはいえ、Javaプログラムを単純に動かすだけでは、各社製品の差を見いだすのは難しいかもしれない。処理性能のベンチマーク結果を見ても、WebSphereが1位を獲得していることもあれば、他社製品がそれを脅かすこともある。性能ベンチマークについては、各社が切磋琢磨し競い合っている部分でもあり、現状で圧倒的にどこかが優位性を持っているとは言いにくい。
製品の差が現れやすいものに、アプリケーション・サーバーの周辺機能がある。例えば、レスポンス性能に大きな影響を与える機能に、キャッシュがある。他社製品の多くは、キャッシュは別製品かオプショナル機能として、別途ライセンス費用が必要なものも多い。
これに対し、WebSphereではキャッシュ機能は標準で用意されている(図1)。WebSphereのキャッシュ機能は、HTTPサーバーやProxyサーバーで静的コンテンツをキャッシュすることはもちろん、アプリケーション・サーバー部分で動的コンテンツのキャッシュも可能だ。もちろん、これらを組み合わせ、多段階のキャッシュの仕組みも構築できる。
「キャッシュ機能は初期設定ではオフになっています。これをオンにしただけで大幅なレスポンス向上が実現できたサイトもあります」と須江氏は言う。この他にも、ソフトウェア・ロードバランサー機能も標準とのことだ。さらに、他社製品では上位版でしか提供していないようなクラスタリング機能も、WebSphereなら廉価版のExpressやBaseエディションでも、5ノードまでのクラスター構成が可能となっている。これにより、追加費用なしで障害発生時にHTTPセッションを引き継ぐ、高可用性機能が実現できる。
さらに、Feature Pack(拡張機能を追加するための無償のアドオンパッケージ)という形で新たな機能も追加できる。SIPへの対応や、WebSphereの上でJavaによるバッチ処理を行う機能などが拡張機能として用意されており、これらについてもWebサイトからダウンロードして機能追加が可能だ。Feature Packの利用は製品サポートの対象となり、追加のライセンス費用も必要ない。
「アプリケーション・サーバーの様々な周辺機能が、WebSphereには標準で装備されています」と須江氏。WebSphereは、本体に多くの周辺機能のライセンスも含まれているので、クラウドで必要となる様々な機能を組み合わせた、トータルな構成の場合に他社製品よりもかなり安価になる可能性があるとのことだ。ライセンス費用が削減できれば、運用コストとなる保守費用の圧縮にもつながる。
(次ページへ続く)
●業界をリードするアプリケーション基盤と先進的なソリューションでWebアプリケーションの課題を解決!
Forrester ConsultingのレポートおよびIBMのホワイトペーパー資料の無料ダウンロード実施中!!
●「業界を代表するJavaベースのWebアプリケーションサーバー」
●WebSphere Application Serverのスキルアップに役立つオンラインセミナーをライブ中継 WebSphereライブ!WAS道場
64bit環境を最大限に活用する
Javaプログラムを動かす際に、大きなヒープメモリ空間を利用したいことがある。この要望を実現するには、今ならJVMを64bit化することになるだろう。ところが、国産のアプリケーション・サーバー製品などでは、そもそも64bit環境に対応しておらず、大きなヒープサイズの利用が難しいものもある。また、JVMが64bit対応さえしていればいいのかと言えば、実はそう簡単な話でもない。
須江氏は「JVMを64bitにすると処理が遅くなることがあります」と指摘する。JVMのヒープは、性能に影響を与えるガベージコレクションの対象となるメモリ空間だ。64bit化すればメモリ空間は広がるのだが、オブジェクトを参照するポインタも32bitから64bitと2倍になるため、同じ数のオブジェクトを扱うために必要なメモリ量が増加してしまう。こうなると、1回のガベージコレクションの処理時間が増えてしまい、結果的にはアプリケーション停止時間が長くなってしまうのだ。
これに対しWebSphere Application Server V7.0では、最新のIBM SDK for Java 6を利用することで、オブジェクトポインタの圧縮が可能となる。この圧縮機能の利用でヒープ利用量とガベージコレクションのオーバーヘッドを削減して、32bit JVMと数パーセントしか違わない性能を実現している(図2)。そのため、WebSphereでは実用的なパフォーマンスを維持しつつ、ヒープサイズは約25GBまで拡大可能だ。業務アプリケーションなど大きなヒープサイズを利用したい場合には、WebSphereの利用を検討するといいだろう。
この他にもWebSphereではメモリを有効活用する機能として、ランタイム・プロビジョニングも提供されている。これは、稼働させるアプリケーションに必要なコンテナ・サービスのみを選択して起動する機能で、メモリ空間を有効に活用でき、起動時間の短縮や管理負荷の低減などを実現する。
通常のアプリケーション・サーバーでは、アプリケーションが必要としていなくても、様々なコンテナ・サービスを起動しているのが普通だ。ランタイム・プロビジョニングは、必要な機能を自動的に判断し、必要なコンテナ・サービスだけを起動する。新たなアプリケーションを動かす際に別の機能が必要であれば、それを判断し自動で追加起動されるのだ。
「WebSphereでは、Javaで作られたモジュールの動的な追加や削除を可能にするための仕様であるOSGi化を、V6.1から進めており、内部がすべてモジュール化されているため、このような柔軟な対応が可能なのです。ランタイム・プロビジョニング機能はV7.0から提供しており、V8.0ではユーザーアプリケーションもOSGi化が可能になり、さらにリソースを効率的に利用できるようになる予定です」(須江氏)。(次ページへ続く)
●業界をリードするアプリケーション基盤と先進的なソリューションでWebアプリケーションの課題を解決!
Forrester ConsultingのレポートおよびIBMのホワイトペーパー資料の無料ダウンロード実施中!!
●「業界を代表するJavaベースのWebアプリケーションサーバー」
●WebSphere Application Serverのスキルアップに役立つオンラインセミナーをライブ中継 WebSphereライブ!WAS道場
クラウド時代に重要となるアプリケーション連携機能
様々なアプリケーションをクラウド化し利用するような場合、それぞれのアプリケーションを相互に連携する要望が出てくる。その際には、Webサービス(SOAP)を利用し連携させることになる。単にデータ連携するならば、どのアプリケーション・サーバーでも大きな差はないかもしれない。
しかし、SOAPを使ってアプリケーション連携をする際に、分散トランザクションを行いたければ注意が必要だ。通常は、分散トランザクションのためのロジックを、プログラミングで作り込まなければならず、この手間はかなり大きなものになる。これに対しWebSphereでは、分散トランザクション機能が標準で用意されており、この機能をオンにするだけでいいのだ。
「WebSphereでは、Webサービスにおける分散トランザクションの3つの仕様をすべてサポートしています。3つともサポートしているのはWebSphereだけです」と須江氏。クラウド化が進めばよりSOAP/HTTPを利用した分散トランザクション要求は増えてくると思われる。その際に、WebSphereのこのWebサービス・トランザクション機能はかなり有効なものとなるだろう。この他にもWebSphereでは簡易ESB機能(SIBus)が内蔵されており、SOA環境でシステムを相互接続する基盤として豊富な実績を持つメッセージング製品WebSphere MQとの相互接続もサポートしている。
WebSphereで用意されているこれら様々な機能をユーザーが試すために、IBMでは他社製品からの移行キャンペーンを実施している(図3)。マイグレーションツールの無償配布をするだけでなく、移行のためのアセスメントサービスも無償で提供しているのだ。 「通常、WebサービスやServlet、EJBなどのプログラムであれば、9割程度はほぼそのままで移行できます。移行の手間はほぼテストに関わるもので、これは通常の製品バージョンアップと大差ありません」と須江氏は言う。
もちろん、アプリケーション開発のためならば、WebSphere Application Server for Developerという開発者向け無償版も用意されており、すぐにWebSphereの豊富な機能を試すことが可能だ。自分たちがクラウド上で何をしたいかを改めて見つめ直し、そのために最適なアプリケーション・サーバーの機能は何かを考え、最適な製品選択をお薦めする。
●業界をリードするアプリケーション基盤と先進的なソリューションでWebアプリケーションの課題を解決!
Forrester ConsultingのレポートおよびIBMのホワイトペーパー資料の無料ダウンロード実施中!!
●「業界を代表するJavaベースのWebアプリケーションサーバー」
●WebSphere Application Serverのスキルアップに役立つオンラインセミナーをライブ中継 WebSphereライブ!WAS道場