[製品紹介]

大規模システム開発を意識したAPサーバ
hp blustone


編集局
2001/11/22

Hewlett-Packard社(以下HP)のアプリケーションサーバ「hp bluestone」は、もともと1997年に設立されたBluestone Software Inc.(以下Bluestone社)が誕生させた製品だ。HPは、Bluestone社を2000年10月に買収した。その後、hp bluestoneとして新生することになった。アプリケーションサーバとしては歴史があるだけに、アメリカン航空の座席予約システムやドイツ・ファイナンシャル・サービスの法人顧客システムなどへの導入実績がある。hp bluestoneは、よりエンタープライズでクリティカルなマーケットを意識して設計された製品である。本稿では、hp bluestoneが持つエンタープライズ・プラットフォームとしての特徴にフォーカスを合わせて解説しよう。 (編集局)


1.大規模システムを意識した機能

hp blustoneの構成

 hp bluestoneは、「Total-e-Server」「Total-e-Transactions」「Total-e-Mobile」「Total-e-Syndication」の4つの製品で構成される。まず、それぞれの役割を以下に整理する。

プロダクツ 役割
Total-e-Server アプリケーションサーバ本体。J2EE 1.2に完全準拠し、JCA 1.0、EJB 2.0のMessage Driven BeanなどのJ2EE 1.3の最新仕様の一部をサポートする

Total-e-Transactions
JTS 1.0およびOTS 1.0に準拠した分散型トランザクション管理を実現するサーバ製品。2フェーズコミットもサポートする
Total-e-Mobile PDAや携帯電話などのモバイル機器に向けてコンテンツを配信するためのサーバ製品。1つのコンテンツをダイナミックに変換し、デバイスの違いを意識することなく提供できる。また、モバイルコンピューティング向けのPIM機能も提供する
Total-e-Syndication コンテンツ配信を実現するサーバ製品。コンテンツ課金のための監査記録や使用記録など、多数の管理機能を持つ

 さて、アプリケーションサーバとしての基本機能を持つTotal-e-Server 7.3(以下TeS)は、高可用性を実現するために、以下のような特徴を持つ。

  • アプリケーションの複数ノードへの柔軟な配置
  • オーバーヘッドの少ないクラスタリング
  • アプリケーションを停止することなくバージョンアップ

アプリケーションの柔軟な配置

 TeSの、Servlet/JSPやEJBのコンテナとなる「Universal Business Server」(UBS)は、複数のホストに分散が可能である。さらに、1台のホスト(ノード)上での複数のUBSインスタンスを同時起動することも可能だ(図1)。1つのアプリケーションを複数のUBSインスタンスで並列稼働させることによって、負荷分散を実現する。逆に、複数のアプリケーションを1つのUBSインスタンスで実行することも可能で、複数のアプリケーションサーバ上に、UBSとアプリケーションを自由に配置することができる。

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

 また、UBSへの処理の振り分けは、Load Balance Broker(LBB)と呼ばれるWebサーバのプラグイン・モジュールによって行われる。

 以上のような、アプリケーションの柔軟な配置機能は、以下のような効果をもたらす。

  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へ振り分けることもできる。

アプリケーションを止めずにバージョンアップ

 hot versioning機能によって、アプリケーションを稼働させたままのバージョンアップが可能だ。クライアントのステート情報はバージョンアップの前後で維持されるため、ユーザーはバージョンアップ後のアプリケーションを継続して利用できることになる。

高可用性を実現するそのほかの機能

 そのほかにも、以下のような機能でTeSはエンタープライズに対応している。

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

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

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

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

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

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

2.BtoB、モバイルへの対応


Index
1. 大規模システムを意識した機能
■hp bluestoneの構成
■アプリケーションの柔軟な配置
■クラスタリング自体のオーバーヘッドを削減
■アプリケーションを止めずにバージョンアップ
■高可用性を実現するそのほかの機能
  2. BtoB、モバイルへの対応
■XMLゲートウェイサーバを実装
■MVCモデルをサポートするstrutsフレームワークをバンドル
■マルチデバイスへの対応
■他社開発ツールとの親和性は高い
■ライセンス形態は2種類

  Application Server Center
アプリケーション・サーバ情報へのリンク集 (2001/12/3更新)
    各社アプリケーション・サーバ製品紹介
BEA
WebLogic
Borland
AppServer
IONA
iPortal
IBM
WebSphere
Oracle
Oracle9iAS
Macromedia
JRun
(旧Allaire)
hp
bluestone
日立製作所
Cosminexus
iPlanet
Application
Server

 



Java Agile フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Java Agile 記事ランキング

本日 月間