![]() |
![]() |
@IT|@IT自分戦略研究所|QA@IT|イベントカレンダー+ログ |
Loading
|
@IT > 「Webアプリケーションサーバの本命 hp bluestoneの実力を探る」 |
![]() |
|
|
TeSの、Servlet/JSPやEJBのコンテナとなる「Universal Business Server」(UBS)は、複数のホストに分散が可能で、さらに1台のホスト(ノード)上でも複数のインスタンスを同時起動することが可能だ(図1)。 1つのアプリケーションを複数のUBSインスタンスで並列稼動させることによって、負荷分散を実現できる。逆に、複数のアプリケーションを1つのUBSインスタンスで実行することも可能で、複数のアプリケーションサーバ上に、UBSとアプリケーションを自由に配置することができる。
Webサーバに来たリクエストは、Load Balance Broker(LBB)と呼ばれるWebサーバへのプラグイン・モジュールによって、自動的に適切なUBSへ振り分けられる。これらの特徴から生まれるメリットを整理すると、以下のようになる。
クリティカルな環境での運用では、どれもが非常に魅力的な特徴といえるだろう。 (※LBBは、ISAPI、NSAPI、Apacheモジュールをはじめ、CGIやServletとしても提供されており、ほとんどのWebサーバに対応している)
Webサーバへのリクエストは、LBBによってUBSへ振り分けられる(図2)。LBBは各UBSインスタンスが現在処理中のリクエスト数の情報を保持しており、処理中のリクエスト数が最も少ない、すなわち最も空いているUBSへ次のリクエストを振り分ける。
処理性能の異なるサーバ群にUBSが分散されている場合、処理性能の高いサーバは処理性能の低いサーバに比べて速くリクエストを処理し、処理中のリクエストが少なくなるため、より多くのリクエストをLBBによって振り分けることができ、その結果、効率良くリソースを活用できることになる(図3)。
また、アルゴリズムによって自動的に最適な配分が行われるため、サーバ毎に配分の重み付け設定をするなどの必要がないのも特徴だ。 クラスタ方式を採用するアプリケーションサーバでは、ハートビートポーリング、負荷の調整、レプリケーションなど、サーバ間でのさまざまな処理を伴い、これらはサーバ台数が増加するにつれ、より大きなオーバーヘッドとなり、スケーラビリティに影響を与えてしまう。しかし、TeSはLBBが負荷分散処理を担い、しかもその動作アルゴリズムがシンプルなため、UBSを増やしても、ほぼリニアにスケーラビリティを確保できる。もちろん、セッションを管理するためにユーザーを毎回同じUBSへ振り分けることもできる。
ミッションクリティカルなアプリケーションでは、24時間365日サービスを提供することが求められる。一般的にアプリケーションが停止する原因としては、ソフトウェアのバージョンアップなどのメンテナンス時における人為的な停止と、ハードウェア障害やアプリケーションのクラッシュなどの障害による停止がある。TeSでは、ミッションクリティカルな環境に求められる高可用性を実現するために、さまざまな機能が提供されている。 ●アプリケーションの負荷分散、冗長化 ●サーバプロセスの自動起動 ●多様なセッション管理メカニズム (1) Inprocess State Server (2) External State Server (3) Persistent State Server
●アプリケーションを止めずにバージョンアップ 昨今の変化が激しいビジネス環境においては、Webサイトで提供するサービスを、ユーザーに不便をかけずに迅速かつ柔軟に変更できることは、非常に大きなメリットになる。 ●使いやすい運用管理ツール
TeSはJ2EEプラットフォームとしての機能のほかに、企業間でXML文書を送受信するXMLゲートウェイサーバとしての機能ももっている。一般に、XMLを使ってBtoBを実現するには、以下の2点が必要になる。
1.に関してはUBSにパーサやXSLTなどのXML処理エンジンが実装されているだけではなく、XMLサーバと呼ばれるXMLを処理するためのフレームワークが提供されている。さらには、ウィザード形式で処理方法を指定するだけでJavaコードを自動生成するVisual-XMLという開発ツールも用意されるなど、XMLを処理するアプリケーションの実行環境と開発環境を兼ね備えている。 また、2.のXMLの送受信にはUniversal Listener Framework(ULF)と呼ばれるプロトコルゲートウェイがある(図7)。これはHTTP、SMTP、FTP、MQ、JMS、Socketなど多様なプロトコルでデータの送受信をサポートしており、相手側システムの環境に合わせてプロトコルを使い分けることができる。ULFはシステム間通信のためのフレームワークであり、カスタマイズ可能なため、新しいプロトコルをサポートしたり、データの圧縮や解凍、暗号化や複合化など、独自の機能を追加することが可能だ。
さらに、TeSはJCA1.0仕様に準拠しているため、ERPなどEnterprise Information System(EIS)へのアクセス、またULFのJMS ListenerやEJB2.0のMessage Driven Bean(MDB)による非同期メッセージ通信など、EAIの分野においても利用可能だ。
オープンソースのWebアプリケーション開発のフレームワークとしてApache JakartaプロジェクトによるStrutsフレームワークがある。Strutsの開発にはhp bluestoneの開発チームも参画し積極的に支援している。 Strutsは、MVCモデル2に基づいたJSP、ServletによるWebアプリケーション開発のフレームワークで、とくにJSP1.1のtag libraryや処理制御フローのXML定義などが特徴となっている。Strutsはアプリケーションの国際化(I18N)に対応しており、マルチ言語に対応したアプリケーションを構築することができる。TeSにはStrutsがバンドルされているだけでなく、Strutsを使ってアプリケーション開発を行うためのチュートリアルが付属している。 さらに、TeSはDynamic Stylesheet Engine(DXSE)というブラウザやPDA、携帯電話といったクライアントのデバイスタイプに応じてXMLコンテンツをXSLTにより自動フォーマット変換する機能をもっている(図8)。DXSEはHTTPのメタ属性であるHTTP_USER_AGENTをもとにクライアントのデバイスタイプを判別し適切なスタイルシート(XSL)を選択、XSLTによるフォーマット変換を行い、その結果をクライアントに返す。対応するデバイスの種類を増やすときには、アプリケーションコードやコンテンツには手を入れることなく、XSLファイルを新たに追加するだけで済むことになり、マルチデバイス対応のサービスでのコンテンツとアプリケーションの生産性、メンテナンス性を飛躍的に高めることができる。つまり、1つのアプリケーションコード(1つのURL)でマルチ言語、マルチデバイスをサポートすることができる。
TeSには、以下の開発ツールが用意されていて、アプリケーション開発を効率的に行うことができる。
また、WebGain VisualCafe、Macromedia UltraDev、Sun Forteほか、他社の開発ツールとのインテグレーションモジュールを使うことにより、これらの開発ツールを使いTeSで動作するアプリケーションを開発することもできる。
いかがだっただろうか?次は実際に、hp bluestoneの無償ダウンロード版でTeSの実力を確かめていただきたい。 TeSには、Enterprise EditionとDeveloper Editionの2つのライセンス形態がある。Developer版ではDALが使えない、BAMが付属しないなどの一部の制限があるが、EJBを含めたJ2EEアプリケーション開発が可能だ。対応プラットフォームは、Windows、Solaris、Linux、HP-UXなど、JDK1.2.2以上が稼動するプラットフォームであれば動作する。また、Developer版にはTrail-mapと呼ばれるチュートリアルが付属しているので、このチュートリアルにしたがってTeSの諸機能をすぐに試してみることができる。
|
|