Date post: | 25-Dec-2015 |
Category: |
Documents |
Upload: | alban-mcdaniel |
View: | 216 times |
Download: | 0 times |
J2EE Application Server Deployment and Performance Optimization for Enterprise
Application Service
Thesis presentation19.05.2009
Author: Xiaoyang Wang Supervisor: Professor Jukka Manner
Instructor: Pasi Salonen
Content
Background Research aspects Research methods Role of application server in three-tier infrastructure J2EE application server Implementation (Setup) Test cases and optimization Results Conclusion Future research
Background
Conducted by International Business Machines Corp. (IBM) in Helsinki
Topic J2EE application server Deployment setup Performance optimization
Application Server J2EE application server solution Microsoft solution Open source solution
IBM WebSphere Application Server (WAS) is the representative product researched in this thesis.
Research aspects
What is the role of application server in the infrastructure for enterprise application?
How should the application server be deployed and managed?
What affects the performance of the application server?
How should the performance be optimized?
Research methods Literature study
Web-based three-tier architecture Application Server->J2EE application Server->WAS
Implementation: Network structure design Environment setup Test cases
Executed test cases: Single application server
Web container pool size JVM heap size JDBC connection pool size
Integrated environment Comparison between “single” and “integrated”
environment
Role of application server in three-tier infrastructure
Web-based three-tier architecture
Separates applications from the underlying-based mechanism (operating system and database)
Reusability of business logic and components
High Performance (Transaction service, Messaging service, High availability, etc.)
Reliability (Failover, Hot Deployment)
J2EE application server Java standardization
J2EE services & technologies: JSP and Servlet containers, EJB containers, Java Database Connectivity (JDBC), Java Naming and Directory Interface (JNDI), Java Transaction Service / Java Transaction API (JTS /
JTA), Java Messaging Service (JMS)
Compatibility (cross-platform)
Portability (write once, run anywhere)
Implementation (Setup) 1/3
Front-end servers Caching proxy - IBM Edge components Web server with Plugin- IBM Http Server (IHS)
Middle server J2EE application server - WebSphere Application Server
(WAS) Back-end
LDAP Database – Cloudscape and IBM DB2
Implementation (Setup) 2/3
Cell An administrative domain contains a grouping of nodes
Dmgr AppServer instance for management the cell Administrative onsole
TestNode Nodeagent
bridge between the Dmgr and AppServer instance in the same node
Server1 AppServer instance where application deployed
TestCellTestNode
Dmgr Nodeagent Server1
Implementation (Setup) 3/3 Application ”PlantsByWebSphere”– Sample application built-
in WAS
35 requests 28 ShoppingServlet requests 3 HTML requests 3 AccountServlet requests 1 login JSP request
Test cases and optimization
Scenario 1 – Single application server Web container pool size JVM
Heap size Garbage collection
JDBC connection pool size
Scenario 2 – Integrated environment with other servers Comparison the different performance between two
scenarios.
Successful test requirement Error rate <= 0.11%
Results – Web container pool size
JVM heap size Min = 64 MB Max = 1024 MB
Largest threads =276
Results – JVM heap size
JVM heap size Min = 64 MB Max = 1024 MB
Heap size = 177MB
initialHSmaxHSGCCUsaveRTminRTmaxRT ervalGCintaverageGC
Results – JDBC connection pool size
Default
After optimized
Results – Scenario1 vs. Scenario2
Caching proxy (default) MaxActiveThreads = 100 MaxPersistRequest = 5
HIS (default) MaxClients = 600
Conclusion
The statistics from the test cases meet the purpose of the thesis
Approaches could be referred. However, the optimal value of the parameters are only for the specified case we have in the thesis.
Future research Optimization for messaging services. The performance tuning between
remote database and application server.
The network topology could be optimized as well.
Improvement on load balance, reliability, security and so on.