Emmanuel Cecchet et al
Performance Scalability of J2EE application servers. Test effect of: ◦ Application Implementation Methods ◦ Container Design ◦ Communication Layer ◦ Persistence Management Using an ebay like auction site server benchmark.
J2EE ◦ Java 2 Platform Enterprise Edition ◦ Java API’s to build dynamic content web sites. ◦ Scalable run-time infrastructure to host. EJB ◦ Enterprise JavaBeans ◦ Managed server-side component architecture for modular construction of enterprise applications. ◦ Encapsulates the business logic of the application. ◦ Specifically for multi-tier client/server systems. ◦ Containers are responsible for providing: Component pooling and lifecycle management Client session management Database connection pooling Persistence Transaction management Authentication and access control.
Apache; Tomcat; JBoss,JOnAS; MySQL
Bean developer decides to manage persistence by: ◦ Bean-Managed Persistence (BMP) SQL is embedded in bean code. Only database connection pooling and transaction management services of the container are used. ◦ Container-Managed Persistence (CMP) A deployment descriptor contains a one-to-one mapping between bean instance variables and database columns. The container uses the descriptor to generate the necessary SQL statements and ensure concurrency control in the database.
Test both with and without optimizations.
Entity beans that map data stored in the database. ◦ (usually one entity bean instance per database table row) Session beans that are used to: ◦ Perform temporary operations (stateless session beans). ◦ Represent temporary objects (stateful session beans).
1. Dynamic Proxy approach ( Jboss ). 1.Container Classes are generated at run time making extensive use of reflection. 2. Pre-Compilation ( JOnAS and most commercial implementations ). 1.Classes are generated during deployment reducing run time reflection.
Java servlets-only (for comparison) EJB ◦ Stateless Session Beans ◦ Entity Beans Container-managed persistence Bean-managed persistence Session Façade beans ◦ EJB 2.0 Local Interfaces (entity beans with only local interfaces and session beans with remote interfaces)
CMP & BMP
Session Façade & EJB 2.0 local interfaces