ガイドライン: サーブレットの識別
トピック
概論
このガイドラインでは、サーブレットの識別を中心に説明します。サーブレットに関する補足ガイダンスは、『ガイドライン: サーブレット』で提供されます。
サーブレットの識別
サーブレットは、Web ベースのクライアントと相互作用するサーバー・クラスです。
主に、 Web アーキテクチャーでコントロール・クラス (『ガイドライン: 分析クラス』を参照) から識別されます。プレゼンテーション目的の Web ページの生成に使用されることもありますが、これは一般に、JSP (『ガイドライン: JavaServer Page』を参照) のほうが適しています。Web 中心の導入構成でデータベースとの対話に使用される場合もあります (『概念: J2EE 導入構成』を参照)。J2EE 1.4 以降、サーブレットは、JAX-RPC 仕様で定義された Web サービスの実装にも使用できます。
ただし、重要なビジネス論理を持つアプリケーションや EJB で提供される機能を必要とするアプリケーションの場合には、多層の導入構成 (『概念: J2EE 導入構成』を参照) のほうが適しています。この場合、サーブレットは通常、プレゼンテーション論理の調整に使用され、ビジネス論理と、EJB から提供されるデータとの間のブリッジの役割を果たします。
サーブレットは通常、フロント・コントローラーとして使用されます。フロント・コントローラーは、アプリケーションへの単一のエントリー・ポイントを提供するため、セキュリティー、アプリケーションの状態、プレゼンテーションが統一され、管理が容易になります。フロント・コントローラーは、 ユーザーの要求を受け取って処理し、次にその要求を渡すプレゼンテーション・コンポーネントを判別します。詳しくは、「Core J2EE Design Patterns - Front Controller」
(参考資料 ALU01) を参照してください。
設計に類似のコントロール・コードを持つ数多くの JSP が含まれる場合、サーブレットを導入し、この論理を整理して 1 つにまとめることを検討してください。
サーブレットのモデリング
サーブレットは RUP で『成果物: 設計クラス』によって表され、クラスとしてモデリングされます。HTTP 要求を処理するサーブレットは、<<HTTPServlet>> としてステレオタイプ化されます。ほかのプロトコルを扱うサーブレットは、<<GenericServlet>> としてステレオタイプ化されます。
すべてのサーブレットは、同一のインターフェースを提供すると見なされます。すなわち、要求を処理し、標準のクライアント、セッション、およびサーブレット・コンテキスト情報を提供する単一の操作を提供すると見なされます。したがって、サーブレットのモデリングでは、インターフェース操作の定義は行いません。代わりに、責務の定義、クライアント、JSP、ヘルパー・クラス、EJB などほかの設計要素との相互作用の方法の定義を行います。
Web サービスのエンドポイント
前述のように、サーブレットは Web サービスを実装できますが、以下の要求を満たす必要があります。
- デフォルトの public コンストラクターを持つ。
- サービス・エンドポイント・インターフェースで宣言されるすべてのメソッドを実装、ビジネス・メソッドは public であり、final や static ではない。
- ステートレスである。
- クラスは public であり、final や abstract ではない。
|