Performance Comparison of Middleware Architectures for Generating Dynamic Web Content
On-line services are making increasing use of dynamically generated Web content. Serving dynamic content is more complex than serving static content. Besides a Web server, it typically involves a server-side application and a database to generate and store the dynamic content. A number of standard mechanisms have evolved to generate dynamic content. We evaluate three specific mechanisms in common use: PHP, Java servlets, and Enterprise Java Beans (EJB). These mechanisms represent three different architectures for generating dynamic content. PHP scripts are tied to the Web server and require writing explicit database queries. Java servlets execute in a different process from the Web server, allowing them to be located on a separate machine for better load balancing. The database queries are written explicitly, as in PHP, but in certain circumstances the Java synchronization primitives can be used to perform locking, reducing database lock contention and the amount of communication between servlets and the database. Enterprise Java Beans (EJB) provide several services and facilities. In particular, many of the database queries can be generated automatically. p ]We measure the performance of these three architectures using two application benchmarks: an online bookstore and an auction site. These benchmarks represent common applications for dynamic content and stress different parts of a dynamic content Web server. The auction site stresses the server front-end, while the online bookstore stresses the server back-end. For all measurements, we use widely available open-source software (the Apache Web server, Tomcat servlet engine, JOnAS EJB server, and MySQL relational database). While Java servlets are less efficient than PHP, their ability to execute on a different machine from the Web server and their ability to perform synchronization leads to better performance when the front-end is the bottleneck or when there is database lock contention. EJB facilities and services come at the cost of lower performance than both PHP and Java servlets.
KeywordsDatabase Server Business Logic Dynamic Content Auction Site Online Bookstore
- 1.Rahim Adatia et al.—Professional EJB—Wrox Press, ISBN 1-861005-08-3, 2001.Google Scholar
- 2.Deepak Alur, John Crupi and Dan Malks—Core J2EE Patterns—Sun Microsystems Press, ISBN 0-13-064884-1, 2001.Google Scholar
- 3.Cristiana Amza, Emmanuel Cecchet, Anupam Chanda, Alan Cox, Sameh Elnikety, Romer Gil, Julie Marguerite, Karthick Rajamani and Willy Zwaenepoel—Specification and Implementation of Dynamic Web Site Benchmarks— IEEE 5th Annual Workshop on Workload Characterization (WWC-5), Austin, TX, USA, November 2002.Google Scholar
- 4.The Apache Software Foundation—http://www.apache.org/.
- 5.Harold W. Cain, Ravi Rajwar, Morris Marden and Mikko H. Lipasti—An Architectural Evaluation of Java TPC-W—Proceedings of the Seventh International Symposium on High-Performance Computer Architecture, 2001.Google Scholar
- 6.Emmanuel Cecchet, Julie Marguerite and Willy Zwaenepoel—Performance and scalability of EJB applications—Proceedings of OOPSLA’02, 2002.Google Scholar
- 8.Jason Hunter and William Crawford—Java Servlet Programming 2nd edition—O’ Reilly, ISBN 0-596-00040-5, 2001.Google Scholar
- 9.JOnAS Open Source EJB Server—http://www.objectweb.org.
- 10.Lutris Enhydra Application Server—http://www.lutris.com.
- 11.Microsoft Active Server Pages—http://www.asp.net.
- 12.Microsoft Internet Information Server—http://www.microsoft.com/iis.
- 13.MySQL Reference Manual v3.23.36—http://www.mysql.com/documentation/.
- 14.PHP Hypertext Preprocessor—http://www.php.net/.
- 15.http://java.sun.com, 2000
- 16.Sun Microsystems—ECperf specification—http://java.sun.com/j2ee/ecperf/, 2001.
- 17.SPECjAppServer2002 Design Document—http://www.specbench.org/jAppServer2002/docs, 2002.
- 18.Sysstat package—http://freshmeat.net/projects/sysstat/.
- 19.Jakarta Tomcat Servlet Engine—http://jakarta.apache.org/tomcat/.
- 20.Transaction Processing Performance Council—http://www.tpc.org/.
- 21.Amanda Wu, Haibo Wang and Dawn Wilkins—Performance Comparison of Alternative Solutions For Web-To-Database Applications—Proceedings of the Southern Conference on Computing, 2000.Google Scholar
- 22.Sun Microsystems—Enterprise Java Beans Specifications—http://java.sun.com/j2ee/.