Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 23 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
23
Dung lượng
417,5 KB
Nội dung
KHOA CÔNG NGHỆ THÔNG TIN /XX 05/12/15 MÔN: LẬP TRÌNH MẠNG GV: NGUYỄN XUÂN VINH TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM EJB: Stateful Session Bean Presenter: Nguyễn Xuân Vinh Information Technology Faculty Nong Lam University /XX 05/12/15 MÔN: LẬP TRÌNH MẠNG GV: NGUYỄN XUÂN VINH TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN Session Objectives Define a Stateful Session Bean List the characteristics of a Stateful Session Bean Write Stateful session bean programs Differentiate between Stateless and Stateful Session beans 3 /XX 05/12/15 MÔN: LẬP TRÌNH MẠNG GV: NGUYỄN XUÂN VINH TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN Review of Session (1 of 3) The bean class, the EJB object, the remote interface, the home interface, the home object, the deployment descriptors, and the jar files constitute the enterprise bean Bean class contains the implementation of the business logic methods EJB container performs important management functions when it intercepts client requests such as: * Transaction logic * Security logic * Bean instance logic The Remote interface duplicates the methods exposed by the bean class Responsibilities of the EJB home object: * Creating EJB objects * Searching for existing EJB Objects * Removing EJB Objects /XX 05/12/15 MÔN: LẬP TRÌNH MẠNG GV: NGUYỄN XUÂN VINH TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN Review of Session (2 of 3) The deployment descriptor: A file that tells the EJB server about the classes, the home interface, and the remote interface that form the bean The lifetime of a session bean may last till such time as that of a client session It could be as long as a window is open or as long as an application is open Session beans not, therefore, survive application server crashes or machine crashes Three classes are essential for deployment: Home Interface Remote Interface Bean class /XX 05/12/15 MÔN: LẬP TRÌNH MẠNG GV: NGUYỄN XUÂN VINH TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN Review of Session (3 of 3) The ejb-jar.xml file is a compressed file that contains the declarations of the enterprise bean class, the remote interface and the home interface An EJB client can be: * An ordinary JavaBean * Another EJB * A JSP Page * A servlet * An applet *A stand-alone application Characteristics of Stateful Session Beans /XX 05/12/15 MÔN: LẬP TRÌNH MẠNG GV: NGUYỄN XUÂN VINH TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN Conversional state occurs when a client calls a method on a bean Pooling has to be done to conserve resources and enhances scalability The container swaps out a bean and saves the conversational state to the hard disk or other storage devices This process is called passivation When the client requests for a method, the passivated conversational state is returned to the bean The bean is again ready to meet the request This process is called activation To passivate a bean a container uses Least Recently Used method To activate a bean a container uses Just-in-Time (JIT) method MÔN: LẬP TRÌNH MẠNG GV: NGUYỄN XUÂN VINH TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN Rules for Conversational State Written to storage in case of passivation Converted to Conversational state of a bean Bit - blob Converted into data from bit-blob /XX 05/12/15 Memory freed Storage Read from storage into memory in case of activation MÔN: LẬP TRÌNH MẠNG GV: NGUYỄN XUÂN VINH TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN Passivation of a Stateful Bean Client The EJB Container/Server Invoke business methods EJB Object 05/12/15 /XX Call ejbPassivate() Serialize the bean state Store passivated bean state Take the least recently used bean Storage Other Enterprise beans Enterprise bean GV: NGUYỄN XUÂN VINH TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN Activation of a Stateful Bean EJB Container/Server /XX 05/12/15 MÔN: LẬP TRÌNH MẠNG Client Reconstruct bean Invoke business methods EJB Object Retrieve the passivated state of bean Storage Call ejbActivate() Invoke business method Enterprise Beans Other Enterprise Beans Requirements for Stateful session beans 10 /XX 05/12/15 MÔN: LẬP TRÌNH MẠNG GV: NGUYỄN XUÂN VINH TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM Remote Interface The Bean Class The Home Interface The Client Code Deployment Descriptor KHOA CÔNG NGHỆ THÔNG TIN GV: NGUYỄN XUÂN VINH TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM The Remote Interface /XX 05/12/15 MÔN: LẬP TRÌNH MẠNG Remote Interface 11 KHOA CÔNG NGHỆ THÔNG TIN (Defines business methods of bean) Stateful Session Bean Class Number extends EJBObject Client number() number() { / Implementation } 12 /XX 05/12/15 MÔN: LẬP TRÌNH MẠNG GV: NGUYỄN XUÂN VINH TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN The Bean Class Stateful Session Bean Class public class Numberbean implements SessionBean private SessionContext ctx; public int answer; public int number(){ /* Actual Implementation*/ } public void ejbCreate(int answer) throws CreateException public void ejbRemove() public void ejbActivate() public void ejbPassivate() public void setSessionContext(SessionContext ctx) 13 /XX 05/12/15 MÔN: LẬP TRÌNH MẠNG GV: NGUYỄN XUÂN VINH TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM The Home Interface import javax.ejb.*; import java.rmi.*; public interface Numberhome extends EJBHome { Number create( int answer ) throws RemoteException, CreateException ; } KHOA CÔNG NGHỆ THÔNG TIN 14 /XX 05/12/15 MÔN: LẬP TRÌNH MẠNG GV: NGUYỄN XUÂN VINH TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN Goals of the Client Code It acquires a JNDI initial context and the naming context Home object is located using JNDI Client calls methods on the bean using the Home Object Conversations are created using home interface and used from the client code Deployment descriptors limit the pool size Lastly, the EJB objects are removed The Deployment Descriptor : ejb-jar.xml 15 /XX 05/12/15 MÔN: LẬP TRÌNH MẠNG GV: NGUYỄN XUÂN VINH TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM ejb-jar.xml file contains the declarations of Enterprise bean Home interface Remote interface Bean class Session Type Transaction type KHOA CÔNG NGHỆ THÔNG TIN 16 /XX 05/12/15 MÔN: LẬP TRÌNH MẠNG GV: NGUYỄN XUÂN VINH TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN jboss.xml It contains the declaration of the actual ejb name and the JNDI name of the Session bean Client code maps the actual ejb name from this JNDI name Number Number 17 /XX 05/12/15 MÔN: LẬP TRÌNH MẠNG GV: NGUYỄN XUÂN VINH TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN Creating the jar file The jar file is created using java appropriate statement Packages the remote interface, the bean class, the home interface and the XML files The jar file is copied into the deploy directory on the server and then deployed The creation and copying of the file in the deploy directory of the server marks the completion of the bean Advantages and Disadvantages of Stateless Session bean 18 /XX 05/12/15 MÔN: LẬP TRÌNH MẠNG GV: NGUYỄN XUÂN VINH TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN Advantages Pooling is simple in stateless session bean as there is reuse of beans and this reduces overload Loss of conversations is comparatively less in a stateless session bean Disadvantages Client-specific data needs to be given for every method invocation Bandwidth could be reduced for other processes, as data has to be passed each time Input/Output bottlenecks are more in stateless session beans Advantages and Disadvantages of Stateful Session Beans 19 /XX 05/12/15 MÔN: LẬP TRÌNH MẠNG GV: NGUYỄN XUÂN VINH TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN Advantages Data is not pushed to the bean for every method invocation All resources are stored in a database when the bean is passive Disadvantages Conversation with the client maybe lost as there is caching of client conversation each time a bean is used Bean state has to be activated and passivated in between method invocations Therefore there can be I/O bottlenecks 20 /XX 05/12/15 MÔN: LẬP TRÌNH MẠNG GV: NGUYỄN XUÂN VINH TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN Practices used for writing Stateful Session Beans Always try to keep the conversations short Try to use an EJB product that persists stateful conversations Always write client code that takes into account bean failures 21 /XX 05/12/15 MÔN: LẬP TRÌNH MẠNG GV: NGUYỄN XUÂN VINH TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN Summary - Removing a bean out of the container, and saving its resources to the database or file is known as passivation The process of bringing back the passivated bean into the container with all its resources is known as activation The strategy of passivating a bean that has been used the longest while ago is called the Least Recently Used method Rules for the conversational state are put forward by Java object serialization The container calls the ejbPassivate() method and tells the bean that it is going to passivate the bean During activation, the ejbActivate() method is called, and the conversational state is read back into the memory The container then re-constructs the memory-state using object serialization 22 /XX 05/12/15 MÔN: LẬP TRÌNH MẠNG GV: NGUYỄN XUÂN VINH TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN Summary - This ejb-jar.xml file has to be present in the directory called META-INF A jar file is created in order to package the three files, namely, the remote interface, the bean class, and the home interface To deploy the bean, the newly created jar file has to be copied into the deploy directory on the server If the business process requires multiple invocations, a stateful session bean has to be used However, if the business process is only for a single method call, the stateless session bean will suffice 23 /XX 05/12/15 MÔN: LẬP TRÌNH MẠNG GV: NGUYỄN XUÂN VINH TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM HỎI ĐÁP KHOA CÔNG NGHỆ THÔNG TIN [...].. .GV: NGUYỄN XUÂN VINH TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM The Remote Interface /XX 05/12/15 MÔN: LẬP TRÌNH MẠNG 2 Remote Interface 11 KHOA CÔNG NGHỆ THÔNG TIN (Defines business methods of bean) Stateful Session Bean Class Number extends EJBObject Client 1 number() 1 number() { / Implementation } 12 /XX 05/12/15 MÔN: LẬP TRÌNH MẠNG 2 GV: NGUYỄN XUÂN VINH TRƯỜNG ĐẠI HỌC NÔNG LÂM... the completion of the bean Advantages and Disadvantages of Stateless Session bean 18 /XX 05/12/15 MÔN: LẬP TRÌNH MẠNG 2 GV: NGUYỄN XUÂN VINH TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN Advantages Pooling is simple in stateless session bean as there is reuse of beans and this reduces overload Loss of conversations is comparatively less in a stateless session bean Disadvantages ... Input/Output bottlenecks are more in stateless session beans Advantages and Disadvantages of Stateful Session Beans 19 /XX 05/12/15 MÔN: LẬP TRÌNH MẠNG 2 GV: NGUYỄN XUÂN VINH TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN Advantages Data is not pushed to the bean for every method invocation All resources are stored in a database when the bean is passive Disadvantages Conversation... The Bean Class Stateful Session Bean Class public class Numberbean implements SessionBean private SessionContext ctx; public int answer; public int number(){ /* Actual Implementation*/ } public void ejbCreate(int answer) throws CreateException public void ejbRemove() public void ejbActivate() public void ejbPassivate() public void setSessionContext(SessionContext ctx) 13 /XX 05/12/15 MÔN: LẬP TRÌNH MẠNG... Remote interface Bean class Session Type Transaction type KHOA CÔNG NGHỆ THÔNG TIN 16 /XX 05/12/15 MÔN: LẬP TRÌNH MẠNG 2 GV: NGUYỄN XUÂN VINH TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN jboss.xml It contains the declaration of the actual ejb name and the JNDI name of the Session bean Client code maps the actual ejb name from this JNDI name Number... each time a bean is used Bean state has to be activated and passivated in between method invocations Therefore there can be I/O bottlenecks 20 /XX 05/12/15 MÔN: LẬP TRÌNH MẠNG 2 GV: NGUYỄN XUÂN VINH TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN Practices used for writing Stateful Session Beans Always try to keep the conversations short Try to use an EJB product that persists stateful. .. copied into the deploy directory on the server If the business process requires multiple invocations, a stateful session bean has to be used However, if the business process is only for a single method call, the stateless session bean will suffice 23 /XX 05/12/15 MÔN: LẬP TRÌNH MẠNG 2 GV: NGUYỄN XUÂN VINH TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM HỎI ĐÁP KHOA CÔNG NGHỆ THÔNG TIN ... setSessionContext(SessionContext ctx) 13 /XX 05/12/15 MÔN: LẬP TRÌNH MẠNG 2 GV: NGUYỄN XUÂN VINH TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM The Home Interface import javax.ejb.*; import java.rmi.*; public interface Numberhome extends EJBHome { Number create( int answer ) throws RemoteException, CreateException ; } KHOA CÔNG NGHỆ THÔNG TIN 14 /XX 05/12/15 MÔN: LẬP TRÌNH MẠNG 2 GV: NGUYỄN XUÂN VINH TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ... Always write client code that takes into account bean failures 21 /XX 05/12/15 MÔN: LẬP TRÌNH MẠNG 2 GV: NGUYỄN XUÂN VINH TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN Summary - 1 Removing a bean out of the container, and saving its resources to the database or file is known as passivation The process of bringing back the passivated bean into the container with all its resources is... Number Number < /session> 17 /XX 05/12/15 MÔN: LẬP TRÌNH MẠNG 2 GV: NGUYỄN XUÂN VINH TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN Creating the jar file The jar file is created using java appropriate statement Packages the remote interface, the bean class, the home interface and the XML files The jar file is ... Stateful Session Bean Write Stateful session bean programs Differentiate between Stateless and Stateful Session beans 3 /XX 05/12/15 MÔN: LẬP TRÌNH MẠNG GV: NGUYỄN XUÂN VINH TRƯỜNG ĐẠI HỌC... MÔN: LẬP TRÌNH MẠNG GV: NGUYỄN XUÂN VINH TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN Session Objectives Define a Stateful Session Bean List the characteristics of a Stateful Session. .. Other Enterprise Beans Requirements for Stateful session beans 10 /XX 05/12/15 MÔN: LẬP TRÌNH MẠNG GV: NGUYỄN XUÂN VINH TRƯỜNG ĐẠI HỌC NÔNG LÂM TP.HCM Remote Interface The Bean Class The