アットマーク・アイティ @IT@IT自分戦略研究所QA@ITイベントカレンダー+ログ
 @IT > 「Webアプリケーションサーバの本命 hp bluestoneの実力を探る」
 
@IT[FYI]

 

Webアプリケーションサーバの本命
hp bluestoneの実力を探る


目次
前編
hp bluestoneが提供する次世代ソリューション
hp bluestoneの系譜と未来を語る
後編 [テクニカルレビュー]
hp bluestoneの先進機能全紹介
Javaをミッションクリティカルに適用するための、hp bluestoneの最新技術を全公開
 hp bluestone total-e-server 7.3(以下TeS)は、J2EE1.2に完全準拠し、さらにJCA1.0、EJB2.0のMessage Driven BeanなどのJ2EE1.3の最新仕様のサポート、最新のXML対応を実現したアプリケーションサーバだ。その特徴は、シンプルかつ柔軟なアーキテクチャにより、高可用性、高拡張性、高信頼性を実現し、大規模ミッションクリティカル環境に対応するハイエンドなアプリケーションサーバである。ここでは、TeSのテクニカルレビューを通し、TeSのエンタープライズ・アプリケーション構築におけるポテンシャルを具体的に紹介しよう。

後編 [テクニカルレビュー]

次世代のeインテグレーションをサポートする
hp bluestoneの先進機能全紹介

クリティカルな運用環境に対応する
ロードバランシング機能

 TeSの、Servlet/JSPやEJBのコンテナとなる「Universal Business Server」(UBS)は、複数のホストに分散が可能で、さらに1台のホスト(ノード)上でも複数のインスタンスを同時起動することが可能だ(図1)

 1つのアプリケーションを複数のUBSインスタンスで並列稼動させることによって、負荷分散を実現できる。逆に、複数のアプリケーションを1つのUBSインスタンスで実行することも可能で、複数のアプリケーションサーバ上に、UBSとアプリケーションを自由に配置することができる。

図1 UBSは複数のホストに分散可能である。また、1台のホストで複数のインスタンスを起動することも可能だ

 Webサーバに来たリクエストは、Load Balance Broker(LBB)と呼ばれるWebサーバへのプラグイン・モジュールによって、自動的に適切なUBSへ振り分けられる。これらの特徴から生まれるメリットを整理すると、以下のようになる。

  1. あるアプリケーションの不具合が他のアプリケーションへ影響しない(アプリケーションの独立性)
  2. 複数のアプリケーションや異なるバージョンの共存が可能(クラスパスの衝突がない)
  3. 各インスタンスのヒープサイズを適切に設定できる(ガベージコレクション)
  4. アプリケーション毎のアクセス数や処理量に応じてサーバへの適切な配置ができる

 クリティカルな環境での運用では、どれもが非常に魅力的な特徴といえるだろう。

(※LBBは、ISAPI、NSAPI、Apacheモジュールをはじめ、CGIやServletとしても提供されており、ほとんどのWebサーバに対応している)

クラスタ自体のオーバーヘッドを削減
リニア・スケーラビリティを実現

 Webサーバへのリクエストは、LBBによってUBSへ振り分けられる(図2)。LBBは各UBSインスタンスが現在処理中のリクエスト数の情報を保持しており、処理中のリクエスト数が最も少ない、すなわち最も空いているUBSへ次のリクエストを振り分ける。

図2 LBBは、処理中のリクエスト数が最も少ないUBSへリクエストを振り分ける

 処理性能の異なるサーバ群にUBSが分散されている場合、処理性能の高いサーバは処理性能の低いサーバに比べて速くリクエストを処理し、処理中のリクエストが少なくなるため、より多くのリクエストをLBBによって振り分けることができ、その結果、効率良くリソースを活用できることになる(図3)

図3 さらにLBBは、処理性能の高いサーバに優先的にリクエストを振り分ける

 また、アルゴリズムによって自動的に最適な配分が行われるため、サーバ毎に配分の重み付け設定をするなどの必要がないのも特徴だ。

 クラスタ方式を採用するアプリケーションサーバでは、ハートビートポーリング、負荷の調整、レプリケーションなど、サーバ間でのさまざまな処理を伴い、これらはサーバ台数が増加するにつれ、より大きなオーバーヘッドとなり、スケーラビリティに影響を与えてしまう。しかし、TeSはLBBが負荷分散処理を担い、しかもその動作アルゴリズムがシンプルなため、UBSを増やしても、ほぼリニアにスケーラビリティを確保できる。もちろん、セッションを管理するためにユーザーを毎回同じUBSへ振り分けることもできる。

止まらないWebシステムを支える
5つの特徴的な機能

 ミッションクリティカルなアプリケーションでは、24時間365日サービスを提供することが求められる。一般的にアプリケーションが停止する原因としては、ソフトウェアのバージョンアップなどのメンテナンス時における人為的な停止と、ハードウェア障害やアプリケーションのクラッシュなどの障害による停止がある。TeSでは、ミッションクリティカルな環境に求められる高可用性を実現するために、さまざまな機能が提供されている。

●アプリケーションの負荷分散、冗長化
 前述の通り、UBSを複数のサーバ上に分散配置し、アプリケーションを負荷分散させることができる。あるUBS稼動サーバがダウンすると、LBBはそのUBSを自動的に負荷分散対象から外し、アクティブなUBSにリクエストを振り替える。

●サーバプロセスの自動起動
 アプリケーションサーバ上ではDynamic Application Launcher(DAL)と呼ばれるデーモン(Windows NT/2000の場合はサービス)が常駐している。DALはUBSを起動する役割をもっており、LBBはUBSが起動していないことを認識すると、LBBからの指示によってDALがUBSを起動する。つまりリクエストの処理に必要なプロセスは、DALによって自動起動されることになる。

●多様なセッション管理メカニズム
 一般的に、ショッピングカートなどの複数のWebページをまたがってユーザー固有の状態を保持する必要がある場合にセッション管理機構が用いられる。TeSには、セッション情報を保持するメカニズムとして3種類のState Serverが用意されている(図4)。セッション情報の重要性、パフォーマンス、永続化の必要性など、アプリケーションの特性に応じて最適なセッション管理を行うことができる。

(1) Inprocess State Server
 UBSインスタンスのメモリ内にセッションオブジェクトを保持する。他のUBSインスタンスと共有することができず、UBSがダウンするとセッション情報は失われるが、セッション情報はアプリケーションと同じプロセスにあるため、高速にアクセスすることができる。

(2) External State Server
 UBSインスタンスとは別のセッション保持専用JVMにセッションオブジェクトを保存する。UBSのサーバとは別のサーバ上で稼動させたり、複数のUBSから共有することが可能だ。複数のUBSから参照することにより、UBSがダウンしてもセッション情報は他のUBS経由で引き続きアクセスすることができる。ただし、External State Server自身がダウンするとセッション情報は失われる。

(3) Persistent State Server
 セッション情報をJDBCでデータベースに保存することにより永続化する。複数のUBSから共有可能だ。UBSにキャッシュ昨日をもつことにより、データベースアクセスにともなうパフォーマンス低下を防ぐ。

図4 3種類のセッション管理のメカニズム

●アプリケーションを止めずにバージョンアップ
 止まらないビジネスを支えるもう1つの大きな特徴が、hot versioning機能だ。これはアプリケーションを稼動させたまま、そのアプリケーションのバージョンアップができる機能だ。クライアントのステート情報はバージョンアップ前後で維持されるため、ユーザーはバージョンアップ後のアプリケーションに引き続きアクセスできる。

 昨今の変化が激しいビジネス環境においては、Webサイトで提供するサービスを、ユーザーに不便をかけずに迅速かつ柔軟に変更できることは、非常に大きなメリットになる。

●使いやすい運用管理ツール
 TeSには、Bluestone Application Manager(BAM)という運用管理ツールが用意されている。Swing GUI版(図5)とブラウザで動作するWebConsole版(図6)がある。BAMは以下に示すような豊富な機能をもっており、大規模なサイトでも効率的に一元管理することができる。

  • UBS、アプリケーションの起動・停止や状態監視
  • UBSホストの追加・削除
  • アプリケーションのデプロイやバージョン管理
  • 統計情報の収集やレポート
  • アラート設定
  • 障害などイベント発生時の管理者へのメール通知
  • QoS機能によるリクエストの処理優先順位制御
  • 設定ファイルの編集
図5 Swing GUI版のBAM (クリックすると拡大します)

図6 WebConsole版のBAM  (クリックすると拡大します)

高度なBtoBインテグレーションを実現する
XMLゲートウェイサーバを実装

 TeSはJ2EEプラットフォームとしての機能のほかに、企業間でXML文書を送受信するXMLゲートウェイサーバとしての機能ももっている。一般に、XMLを使ってBtoBを実現するには、以下の2点が必要になる。

  1. XMLデータの処理(XMLの生成、フォーマット変換、データベースやバックエンドシステムとの接続など)
  2. 企業間でのXMLデータの送受信

 1.に関してはUBSにパーサやXSLTなどのXML処理エンジンが実装されているだけではなく、XMLサーバと呼ばれるXMLを処理するためのフレームワークが提供されている。さらには、ウィザード形式で処理方法を指定するだけでJavaコードを自動生成するVisual-XMLという開発ツールも用意されるなど、XMLを処理するアプリケーションの実行環境と開発環境を兼ね備えている。

 また、2.のXMLの送受信にはUniversal Listener Framework(ULF)と呼ばれるプロトコルゲートウェイがある(図7)。これはHTTP、SMTP、FTP、MQ、JMS、Socketなど多様なプロトコルでデータの送受信をサポートしており、相手側システムの環境に合わせてプロトコルを使い分けることができる。ULFはシステム間通信のためのフレームワークであり、カスタマイズ可能なため、新しいプロトコルをサポートしたり、データの圧縮や解凍、暗号化や複合化など、独自の機能を追加することが可能だ。

図7 プロトコルゲートウェイである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)でマルチ言語、マルチデバイスをサポートすることができる。

図8 マルチ言語、マルチデバイスをサポートする

充実した開発ツール、
他社ツールとの親和性も高い

 TeSには、以下の開発ツールが用意されていて、アプリケーション開発を効率的に行うことができる。

用途 ツール 主な機能
EJB開発 J2EE Developer

・EJBのセキュリティやトランザクションといったデプロイ時設定のウィザードによる設定
・CMP EntityBeanのプロパティとRDBとのマッピング
・Homeインターフェイス、Remoteインターフェイス、Stub/Skeltonの自動コード生成
・EJBのビルド、jarアーカイブ作成

XMLアプリケーション開発
Visual-XML ・XMLからデータベースの検索や更新を行うJavaクラスの自動生成
・XMLタグハンドらのJavaクラス自動生成
・XSLTによるXMLのフォーマット変換
・XMLとRDBとのマッピング
ULF設定 ULF Console ・ULFの設定
セキュリティ設定 Security Console ・ユーザーやグループの編集、認可権限の設定

 また、WebGain VisualCafe、Macromedia UltraDev、Sun Forteほか、他社の開発ツールとのインテグレーションモジュールを使うことにより、これらの開発ツールを使いTeSで動作するアプリケーションを開発することもできる。

図9 Visual-XMLの画面 (クリックすると拡大します)


■JTS準拠のトランザクション・マネージャ

 別途提供されるTotal-e-Transaction 2.1(以下TeT)を使うとJTS1.0.1準拠のトランザクション・マネージャにより分散トランザクションや2フェーズコミットを行うことができる。TeTは100% Pure Javaで実装されており、TeSと同じJVM内で実行することができる。つまり、アプリケーションサーバ自体がトランザクション・マネージャとして機能する。



無償ダウンロード可能なDeveloper版で
ぜひ、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の諸機能をすぐに試してみることができる。

Developer版ダウンロード:
http://www.jpn.hp.com/software/bluestone/down/index.html



Webアプリケーションサーバの本命
hp bluestoneの実力を探る
  前編
完成されたJ2EEプラットフォーム
hp bluestoneが提供する次世代ソリューション
後編 [テクニカルレビュー]
次世代のeインテグレーションをサポートする
hp bluestoneの先進機能全紹介

 
関連リンク集

@IT 関連記事

HP、アプリサーバ市場で勝負へ

.NETとJavaに対応が特徴、HPのECプラットフォーム

[hp world 2001開催]端末、インフラ、e-servicesで巻き返しを図るHP

e-servicesでサービス中心のコンピューティングを実現、HP

HPが初のappサーバを発表、Webサービス市場へ本格進出

Javaの先を見据えるWebアプリサーバベンダー


hp bluestone

製品情報INDEX

hp bluestone導入事例

ダウンロード

Developer Gallery

トレーニング&コンサルティング

hp netaction

問合せ先


</comment> <tr> <td bgcolor="#EEEEEE"><font size="2"><a href="javascript:KeepIt();"> <img src="/club/keepoint/images/ico_kpt.gif" alt="kee&lt;p&gt;oint保存" border="0" align="absmiddle" width="24" height="18">kee&lt;p&gt;ointで保存</a></font></td> </tr> <comment>

 
@ITトップ@IT Special インデックス会議室利用規約プライバシーポリシーサイトマップ