セッション Bean は、特定のユーザーセッションにサービスを提供するエンタープライズ Bean です。セッション Bean は通常、セッションで必要になったときに作成されます。エンティティー Bean と比べて、セッション Bean の存続期間は短いです。セッション Bean には 2 種類あります。
例として、注文を処理するエンタープライズ Bean があります。各注文は、processOrder() のような 1 つのメソッドの起動で処理できます。処理に必要なすべての情報が、メソッドパラメータに含まれています。
例として、オンラインショッピングのカートがあります。エンドユーザーはクライアントプログラムを通じて、多数の品目を注文できます。対話を管理するステートフルセッション Bean は、エンドユーザーが累積された注文を確認し、品目を受け入れまたは拒否し、一群の処理を開始するまで、品目を累積する必要があります。ステートフルセッション Bean は、未処理の品目を保存し、エンドユーザーが品目を追加できるようにする必要があります。
すべてのエンティティー Bean と同様に、セッション Bean はローカルインタフェース、リモートインタフェース、またはその両方を持つことができます。セッション Bean は通常、リモートクライアントからのアクセスのエントリポイントになるため、エンティティー Bean およびメッセージ駆動型 Bean よりもリモートインタフェースを持つことが多くなります。
インタフェースは、セッション Bean のメソッドへのクライアントアクセスを処理します。EJB モジュールと同じエンタープライズアプリケーションに含まれるモジュールは、ローカルインタフェースからセッション Bean のモジュールにアクセスできます。同じエンタープライズアプリケーションに含まれないモジュールは、リモートインタフェースから Bean のメソッドにアクセスする必要があります。