WebSphere(IBMのアプリケーションサーバ)に関する本。 原著は2001年5月に出版。 この本の一番のポイントは、マーチンファウラーがエンタープライズ アプリケーションアーキテクチャパターンの中で言及していること。
本書の扱うテーマ
概要
目次を見ると、半分以上はWebSphereとVisualAge for Javaの話。 サーブレット、JSP、Java Beanを使ったJ2EEアプリケーションという点は共通しているので TomcatとstrutsでWebアプリケーションを設計する人にも参考になる点は多い。 今でも、一つのアプリケーションサーバで機能ごとに違うプロセスをバンバン立てたいときは、一通りの道具が揃っていて設計や管理のしやすいためJ2EEアプリケーションを使う人もいるでしょう。 ただ、そういうプロセス間連携の話はあんまり載っていない。
目次
- インターネット・ビジネス環境
- Webベースのクライアント/サーバー・ソリューション
- MVCと階層化アーキテクチャー
- サーブレットの紹介
- VisualAge for Javaによるサーブレット開発
- IBM WebSphereアプリケーション・サーバー(アドバンスド版)の使用
- IBM WebSphere Studioの使用
- セッション管理
- サーブレット設計の考慮点
- JavaServer Pageの概念〔ほか〕
- JSPアクション、MVC、およびツール
- サーブレットとJSPのケース・スタディー
- エンタープライズJavaBeanアーキテクチャー
- VisualAge for Javaでの基本的なEJBの構築
- VisualAge for JavaでのEJBのテストおよびデバッグ
- 簡単なEJBクライアントのコーディング
- 簡単なコンテナー管理 パーシスタンス・エンティティーBean
- EJBトランザクション
- VisualAge for JavaとWebSphereを使用したエンティティーBeanの構築
- 拡張CMPマッピング
- Bean管理パーシスタンス
- EJBシステムでの階層化アーキテクチャの構築
- WebSphereへのEJBの配置
- 最後に
マーチンファウラーの言及
マーチンファウラーが言及しているのは9章。
引用
エンタープライズ アプリケーションアーキテクチャパターンの4章より
Web サーバ技術に関する書籍のほとんどは、優れたサーバ設計の解説に1、2 章を割いている。 とは言っても、技術的な説明に埋没しがちなものが多い。[Brown et al.]の第9章には、Java Web デザインに関する素晴らしい解説がある。
[Brown et al.]が本書のこと。
第9章 サーブレット設計の考慮点 の目次
9章の目次は次の通り
第9章の内容
内容と感想など
9-1 サーブレットの数
一番おもしろい章。 当時*1のサーブレットの設計に関する次の二つの方針に対して
本書は「一つのサーブレット」推し。利点と作り方をサンプルソースコードを使って説明している。 (本書の主張が正しかったことはその後のstrutsの興隆を見れば明らか。)
実装方法
実装方法はAbstract Factory パターン*2を使って、リクエストのパラメータに応じて必要なControllerを生成して、処理を委譲。 strutsの設計と一緒なのでstrutsのActionServletのソースコードを読むときの手引きとして使うのも面白そう。
利点
利点は次の引用を
従来の方法では、(中略)、ログイン要求とユーザー・プロファイル要求を処理できるようにした ければ、機能ごとにサーブレットを実装し、アプリケーション・サーバーを構成して二つのサーブ レットを認識させるようにしなければなりません。ここで取り上げた、解決策では、アプリケーシ ョン機能をコントローラーとして分類し、そのコントローラーを作成し、抽象的に処理することが できる抽象サーブレットを用意します。これにより、管理者はサーバー自身を構成しなくとも、ア プリケーション・サーバーに機能を追加、変更、削除することができるようになります。
デザインパターンを適用してあらかじめ変更できる箇所を用意するところが、オブジェクト指向的な設計でとても面白い。
9-2 状態パターン
Stateパターン*3を使えと書いてあるだけで方法を書いてない。
9-3 例外処理
サーブレットでグローバル例外ハンドラーを作る方法。StrutsではExcetpionHandlerを使うので設計方針が違う。
9-4 サーブレットの連携とフィルター
WebSphereの機能、サーブレット連鎖とMIMEタイプ・フィルターを使って複数のサーブレットを連携させる方法。
9-5 XMLの使用
データが Java ドメイン・オブジェクトとそのプロパティーを表現していれば、SAX が選択さ れます。(中略) 反対に、DOM を使って最終的にアプリケーションにデータを収容するのであ れば、SAX は必要ありません
まとめ
やはりWebアプリケーションの世界にMVCパターンを持ち込んだstrutsは偉大*4。 本書自体は歴史的な資料として面白いけど「9-1 サーブレットの数」の11p半のために1000円以上出す価値は無いかなぁ。