!!!JavaEE5 Session Bean [Java EE 5] !!Session Bean http://java.sun.com/javaee/5/docs/tutorial/doc/bnbly.html !Session Bean とは? *Session Beanは、Application Serverの内部において、ひとつのクライアントを表現する。 *サーバーに配置されたアプリケーションにアクセスすることにより、クライアントはSession Beanのメソッドを起動する。 *Session Beanは、そのクライアントに対して仕事を行い、サーバーで実行されている複雑なビジネスタスクからクライアントを保護する。 *あるSession Beanは共有されない。ただひとつのクライアントのみを持つ。 *Session Beanha,永続的ではない(データベースに保存するデータではない) *クライアントが破棄されたとき、Session Beanも破棄され、クライアントとの連携も終了する。 !ステートの管理方式 *Session Beanには、StatefulとStatelessの2つのタイプがある。 ::Stateful Session Beans *あるオブジェクトの状態は、インスタンス変数の値からなる。 *Stateful Session Bean において、インスタンスの変数は、一意なクライアントBeanのセッションの状態を表す。 *クライアントとBeanがやりとりする状態はしばしば会話状態と呼ばれる *この状態は、クライアント-Bean のセッション中保たれる。 *クライアントが、Beanを取り除くか、破棄するとSessionは終了し、状態は消える。 ::Stateless Session Beans *Stateless Session Bean は、クライアントとの会話状態を維持しない。 *クライアントがSteteles Beanのメソッドを呼び出したとき、インスタンス変数は、クライアント固有の状態を含んでいる。しかし、それは呼び出しの間のみである。 *メソッドが終了したとき、クライアント固有の状態は保たれない。 *Stateless Session Beanは、複数のクライアントへのサポートが可能であり、アプリケーションにスケーラビリティを提供する。 *Stateless Bean は web service を実装できるが、他のタイプのEnterprise Beanではできない。 !いつ Session Bean を利用するのか? 一般的に以下のような環境の時にSession Beanを利用するべき。