質問: EJBのセッションBeanには、StatefulとStateless(とSingletonも?)があるようですが、その名称や動作の説明を見た印象では、セッションっぽいのはStatefulだけのように思います。 ここで私が認識している「セッション」とは、例えばサーブレットのセッションであったり、ASP.NETのセッション状態であったりするものです。 セッションBeanの「セッション」と、上記の私が認識する「セッション」は、同じ概念、同じ実装を指しているのでしょうか? 例えば、セッションBeanは、コンテナの内部処理などで、Webアプリケーションが持つセッション機能(SessionCookieとかURL rewriteとか使うやつ)を使っているのであれば、「セッションBean」という名前に納得できます。 しかし、StatelessやSingletonのコンテナの仕組みなどは、そのセッションとは関係なく実装できそうに思えます・・・
回答: セッションBeanのセッションがサーブレットやASP.NETのセッションを表すかというと、異なるという回答になります。 セッションBeanのセッションは、クライアントからのひとまとめの処理期間を意味しています。 > > What Are Session Beans? > > > A session bean implements a conversation between a client and the > > server side. Session beans execute a particular business task on > > behalf of a single client during a single session. > > > > > 「セッションBeanはクライアントとサーバサイドのやりとりを実装します。セッションBeanは単一のセッション間クライアントに変わって特定のビジネスタスクを実行します。」 ここでのセッション、そのひとまとめの処理期間はステートレスで済む1リクエストでも、サーブレットのセッションが必要な複数リクエストでもよいということです。そのため、この考えに合わすとステートレスセッションBeanもセッションBeanと名付けてよいことになります。