12864


EJBのセッションBeanには、StatefulとStateless（とSingletonも？）があるようですが、その名称や動作の説明を見た印象では、セッションっぽいのはStatefulだけのように思います。  
ここで私が認識している「セッション」とは、例えばサーブレットのセッションであったり、ASP.NETのセッション状態であったりするものです。

セッションBeanの「セッション」と、上記の私が認識する「セッション」は、同じ概念、同じ実装を指しているのでしょうか？

例えば、セッションBeanは、コンテナの内部処理などで、Webアプリケーションが持つセッション機能（SessionCookieとかURL
rewriteとか使うやつ）を使っているのであれば、「セッションBean」という名前に納得できます。  
しかし、StatelessやSingletonのコンテナの仕組みなどは、そのセッションとは関係なく実装できそうに思えます・・・


CC BY-SA 3.0
2015-07-29T04:35:31.603
12786
2015-07-31T03:25:13.940
2015-07-29T05:47:03.490
49
8078
question
java
EJBのセッションBeanはなぜ「セッション」Beanなのか？


セッション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.  
>  <https://ejbvn.wordpress.com/category/week-1-enterprise-java-
> architecture/day-03-understanding-session-beans/>

「セッションBeanはクライアントとサーバサイドのやりとりを実装します。セッションBeanは単一のセッション間クライアントに変わって特定のビジネスタスクを実行します。」

ここでのセッション、そのひとまとめの処理期間はステートレスで済む1リクエストでも、サーブレットのセッションが必要な複数リクエストでもよいということです。そのため、この考えに合わすとステートレスセッションBeanもセッションBeanと名付けてよいことになります。


CC BY-SA 3.0
2015-07-31T03:25:13.940
12864
2015-07-31T03:25:13.940
4464
12786
answer