150 likes | 280 Views
INFORMATICS ENGINEERING – UNIVERSITY OF BRAWIJAYA. Session Beans. JEE Programming. Eriq Muhammad Adams J eriq.adams@ub.ac.id. Agenda. What is Session Beans ? When do you use Session Beans ? Rich Client Applications Web Based Applications Local vs Remote Interface
E N D
INFORMATICS ENGINEERING – UNIVERSITY OF BRAWIJAYA Session Beans JEE Programming Eriq Muhammad Adams J eriq.adams@ub.ac.id
Agenda • What is Session Beans ? • When do you use Session Beans ? • Rich Client Applications • Web Based Applications • Local vs Remote Interface • Stateless vsStateful Bean • Stateless Bean Lifecycle • Stateful Bean Lifecycle • Session Beans Practice • Demo
What is EJB Session Beans ? • Java components that run in EJB Containers / JEE Application Servers • Java components typically used to model use cases • Hold business logic • There are two types : • Stateless : This type of bean does not maintain any conversational state on behalf of a client application. • Stateful: This type of bean maintains state, and a particular instance of the bean is associated with a specific client request. Stateful beans can be seen as extensions to client programs that are running on the server.
When do you use Session Beans ? • If you want to : • write business logic • maintain a client ‘s conversation state • model back-end processes • You can use it in : • 2-tier Applications • 3-tier Applications • Rich Client Applications • Web-based Applications
Local vs Remote Interface A web client using local interfaces of session beans
Local vs Remote Interface (cont.) A rich client using remote interfaces of session beans
Stateless vsStateful Bean Stateless Session Beans Stateful Session Beans
Session Beans Best Practices • Choose your bean type carefully . Mostly use Stateless, if you have web-tier client use HttpSession instead. • Carefully examine interface types for session beans. If the client will always be used within the same JVM as the bean, then use a local interface. • Inject carefully. Make sure you don’t inject a stateful session bean into a stateless session bean or servlet. • Separate crosscutting concerns such as logging and auditing using business interceptors. • Closely examine what kind of data you are storing in the conversation state. • Try to use small, primitive instance variables in a stateful bean whenever possible as opposed to large nested composite objects. • Don’t forget to define remove methods in a stateful session bean. • Tune passivation and timeout configurations to find the optimal values for your application.
Demo Demo in SessionBeansDemo.zip http://eriq.lecture.ub.ac.id/files/2011/03/SessionBeansDemo.zip
References EJB In Action, Manning Beginning EJB 3 Application Development, Apress