[プロダクトレビュー]
CORBA基盤の優位性と開発効率がアドバンテージ
Borland AppServer 4.5
藤井等
ボーランド
2001/2/24
2月27日に出荷予定のBorland AppServer 4.5は、Inprise Application Server 4.1の次期バージョンである。ボーランドはDelphi、JBuilderなどの代表的な製品に象徴されるように、ビジュアルツールとコンポーネント技術によって開発の効率化と簡素化を目指してきた。今回のAppServer 4.5も例外ではない。アプリケーションサーバでありながら敷居を高く感じさせないビジュアルな管理ツールと、CORBAベースの実装が特長だ。ここでは、実際の製品の到着前に、この最新バージョンの新機能と特長についてボーランドのマーケティング部 部長 藤井等氏に紹介していただく。(編集局) |
|
CORBA技術を基盤としたJ2EE完全対応 |
Borland AppServer 4.5は、J2EEバージョン1.2 CTS(互換性テスト)にパスし、最新のJ2EE仕様に対応している。EJB、JDBC、JNDI、JMS、JavaMailなどの機能を利用できるのはもちろんであるが、これらの技術がCORBA技術と統合されているのが大きな特長だ。
Borland AppServerの基盤技術には、実績あるCORBA ORB製品のVisiBrokerが使われている。VisiBrokerは、CORBA 2.31仕様に準拠した分散オブジェクト間の通信基盤を提供するものだが、VisiBrokerによってアプリケーションサーバを実装することで、CORBA技術の上にJ2EE機能を実装することが可能になった。
VisiBrokerを用いると、ハイパフォーマンスで信頼性の高い分散アプリケーションを構築できるが、インターネットアプリケーション特有の処理を実装するには、J2EEのフレームワークを利用した方が生産性や再利用性に優れている。Borland AppServerは、VisiBrokerを基盤としているため、J2EEのアプリケーション開発の高い生産性、再利用性を享受しながら、CORBAベースの性能を維持できるのである。
また、CORBAは言語やプラットフォームに依存しないという特長もある。そのため、Borland AppServerで稼働するEJBは、Java以外の言語からも透過的にアクセスできる。これは、Borland AppServer上のEJBオブジェクトは、CORBAオブジェクトでもあるからだ。ほかのアプリケーションサーバと異なり、クライアントおよびサーバサイドの異種言語との接続に、専用のブリッジクラスなどを必要としない。
図1 Borland AppServerのクライアント |
高速なEJB処理の実現 |
Borland AppServerのEJBコンテナは、インターネットアプリケーションの実行に最適化されたパフォーマンスが発揮できるように、多くの機能が搭載されている。
■コネクションリサイクリング
有限のコネクション数で、最大の効果が得られるように、洗練されたコネクションリサイクリング機能が搭載されている。カスタマイズ可能な接続数の上限を超えた接続要求があると、過去に最も使用されていない接続が解除されて新しい接続に割り当てられる。これによって、限られたリソースを活用しながら、インターネットアプリケーションの特長であるランダムな処理要求を膨大に処理することが可能になる。
■スレッドプーリング
クライアントリクエストは、あらかじめサーバに作成されたスレッドに割り当てられる。サーバには、少なくとも最小スレッド数のスレッドが用意されており、これをリサイクルすることで、スレッドの生成、破棄のオーバーヘッドを解消できる。また、一時的に処理要求が増加しても、最大スレッド数までスレッドを追加作成して対応する。追加作成したスレッドは、アイドル状態になってから破棄される。
■最適化されたセッションBeanプール
セッションBeanは、CORBAのPOA機能を使用した洗練されたライフサイクル管理によって最適化されている。メモリ使用量、Beanインスタンスの必要数を最小に抑え、膨大なクライアント処理要求に対応できるようになっている。
■EJB 1.1仕様準拠のエンティティBeanキャッシュ
エンティティBeanのパフォーマンスを最大化するために、EJB 1.1仕様で定められたすべてのキャッシュモードをサポートしている。これによって、アプリケーションの形態、配布形態などに応じて、最大のパフォーマンスを発揮できるデータベースキャッシュ機構を利用できる。
■データ更新を最適化する洗練されたCMPエンジン
Borland AppServerのCMPエンジンは、データ更新の最適化機能を持っており、データ更新のために最小限のRPCのみを生成するようになっている。膨大なデータに対する一部のデータ更新に対して、CMPエンジンは、更新されたレコードの更新されたフィールドのみを判別して更新する。これによって、特別なコードを記述することなく、最適化されたデータ更新アプリケーションの実装が可能になる。
さらに、EJBコンテナの可用性を高める、次のような機能が搭載されている。
■セッションステートサービス
EJB仕様では、ステートフルセッションBeanは、コンテナがダウンすると、そのステート情報は失われる。しかし、実際のアプリケーションで、例えば、商品購入中のショッピングカートの情報が失われてしまうと、クライアントは障害の影響を受けてしまう。Borland
AppServerのEJBコンテナには、独立して動作可能なセッションステートサービスが搭載されており、この問題を解決する。セッションステートサービスを複数コンテナで共有することによって、障害が発生したコンテナで稼働していたBeanの情報をほかのコンテナで復元できるようになる。これによって、クライアントはサーバ側の障害に一切気付くことなく、処理を継続できる。
■透過的なフェイルオーバー
EJBコンテナに障害が発生したときには、クライアントを透過的にフェイルオーバーする。クライアントは、EJB参照またはIOR文字列を使用することで、同一のインスタンスに継続してアクセスできる。この機能は、クッキーを使用できないモバイルクライアントなどにも有効である。
■分散トランザクションマネージャ
JTS/OTS準拠の分散トランザクションマネージャVisiTransactが提供されており、2フェーズコミットに対応する。EJBコンテナ自身も、1フェーズコミットのみに対応したJTS準拠の高速な軽量トランザクションサービスを搭載しており、構成に応じた最適なトランザクションサービスの選択が可能である。
アプリケーション開発者は、これらの機能を業界標準のEJB実装方法によって利用でき、なおかつCORBAの性能によって実行させることが可能なのだ。
オブジェクトクラスタリング |
Borland AppServerを特長づける機能の1つに、オブジェクトクラスタリングがある。Borland AppServerの各機能は、VisiBrokerによって実装されており、その上で稼働するオブジェクトもJ2EE準拠でありながらCORBAオブジェクトである。そのため、すべての機能は、VisiBrokerアプリケーションの完全な位置透過性という特長を備える。クライアントアプリケーションは、EJBコンテナやトランザクションサービス、さらにはネーミングサービスの位置もあらかじめ知っている必要はなく、サーバの位置を特定するコードを記述しなくてよい。クライアントは、必要な機能を提供するサーバを動的に知り、これにアクセスするのである。
このような位置透過性を備えていることで、極めて柔軟なシステム構成が可能になるのである。例えば、アクセスが集中する機能のみをレプリケートしたり、高可用性が求められる機能を物理的に分散させたりできる。もちろん、パフォーマンスを高めるために、頻繁に呼び出される機能同士は、同じサーバに配置するなどの配慮も行われている。
開発から配布、管理までを簡素化 |
Borland AppServerの魅力は、なんといっても効率的な開発、配布、管理機能である。特に、業界標準のJava開発ツールとの緊密な統合は、単一ベンダならではの機能である。Borland AppServerには、J2EE XML形式の配布ディスクリプタをビジュアルに編集できる配布ディスクリプタエディタが用意されている。この機能は、JBuilderに完全に統合され、JBuilderのビジュアル機能のように利用できる。
図2 配布ディスクリプタエディタの統合 (クリックすると拡大) |
また、Borland AppServerのEJBコンテナは、JBuilder環境内でスタンドアロンEJBコンテナとして実行できる。もちろんJBuilderのビジュアルデバッガを使って、ソースコードレベルのデバッグが可能だ。この機能を用いれば、開発者は開発したEJBをサーバに配布する前に、ローカル環境で容易に実行、テストできる。
Borland AppServerは、JAR、WAR、EARなどのJ2EEアーカイブファイルに対応しており、EJB、サーブレット、JSP、HTML、データソース、ライブラリなどをパッケージ化して、ビジュアル操作で簡単に配布できる。
図3 J2EE配布ウィザード (クリックすると拡大) |
サーバの管理には、AppServerコンソールを用いる。AppServerコンソールは、ローカルおよびリモートで稼働するBorland AppServerを検出し、ビジュアル表示する。コンソールでは、Borland AppServerの各サービスの起動、停止、稼働状況のモニタ、実行ログ/エラーログの表示、パラメータの設定などが行える。
図4 AppServerコンソール (クリックすると拡大) |
AppServerコンソールでは、EJBの詳細な稼働状況もモニタできる。コンテナに配布されたBeanの参照関係、各Beanの状態遷移、メモリの使用状況などをビジュアルに表示する。
図5 Bean状態のモニタ (クリックすると拡大) |
AppServerコンソールやJ2EE配布ウィザードは、100%ピュアJavaで実装されており、Borland AppServerの実行をサポートするすべてのプラットフォームで、同じ操作性によって利用できる。
Borland AppServerが提供するソリューション |
Borland AppServerは、J2EEやCORBAといった業界標準仕様に準拠し、高いオープン性を備えている。こうしたオープン仕様の上に、実用的なソリューションが用意されており、迅速なシステム構築が可能になっている。
eWins for Javaは、eビジネスアプリケーション構築のためのEJBコンポーネント群を提供する。顧客管理やEC機能、暗号化、検索などの機能を再利用可能なEJBとして提供し、短期開発を可能にする。さらに、コンサルティング、設計、構築、運用、サポートまでのサービスを一貫して提供するeWinsサービスを、ボーランドのビジネスパートナーである株式会社シーイーシーを通じて実施する。
図6 eWins for Javの構成 |
WebWorkBenchは、Webアプリケーションの構築に必要な基本機能を、分散アーキテクチャを使用して提供するフレームワークである。これらの基本機能の上に、携帯電話コンテンツ提供サービスや帳票機能など、実用的な機能が実装されている。WebWorkBenchは、株式会社テンアートニが提供し、Borland AppServerのバンドル製品のほか、ソースコードの販売やヘルプデスクサポートなども行う。
[関連リンク]
ボーランド株式会社
テンアートニ(WebWorkBench紹介ページ)
[関連記事]
EJBアーキテクチャの基礎(Java
Solution)
サーバーサイドJavaテクノロジの重点キーワード「EJB」(Java
Solution)
|
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (2017/5/9)
ログ基盤の構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。今回は、実案件を事例とし、ログ管理基盤の有用性を、障害対応時間比較も交えて紹介 - Chatwork、LINE、Netflixが進めるリアクティブシステムとは何か (2017/4/27)
「リアクティブ」に関連する幾つかの用語について解説し、リアクティブシステムを実現するためのライブラリを紹介します - Fluentd+Elasticsearch+Kibanaで作るログ基盤の概要と構築方法 (2017/4/6)
ログ基盤を実現するFluentd+Elasticsearch+Kibanaについて、構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。初回は、ログ基盤の構築、利用方法について - プログラミングとビルド、Androidアプリ開発、Javaの基礎知識 (2017/4/3)
初心者が、Java言語を使ったAndroidのスマホアプリ開発を通じてプログラミングとは何かを学ぶ連載。初回は、プログラミングとビルド、Androidアプリ開発、Javaに関する基礎知識を解説する。
|
|