|
Website Mirror at the University of São Paulo |
Full Paper AbstractsPerformance Comparison of Middleware Architectures for Generating Dynamic Web ContentEmmanuel Cecchet, Anupam Chanda, Sameh Elnikety, Julie Marguerite and Willy Zwaenepoel (Rice U. and EPF Lausanne) Dynamic Web content generation is important due to its use in on-line services (e.g., e-commerce and electronic banking) as well as in personalization (i.e., providing customized response for each user). Serving dynamic content is more complex than serving static content: It typically requires running an application code to generate and assemble the dynamic content and using a database to capture the dynamic state of the Web site, in addition to a regular Web server. Thus, a number of standard mechanisms have evolved to generate such 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 typically tied to the Web server and require writing explicit database queries. Java servlets run independently of the Web server, allowing more flexibility and the possibility of using Java features. They require writing the database queries explicitly as in PHP. However, using the Java synchronization methods, some locking operations can be done in the servlets, reducing database lock contention and the communication between servlets and the database. Enterprise Java Beans (EJB) provide several services and facilities through an application server which hosts the beans that implement the business logic of the Web site. We analyze the performance of these three architectures experimentally using two application benchmarks: an auction site and an online bookstore. They represent two common applications for dynamic content and they stress different parts of a dynamic content Web server: The auction site stresses the server front-end whereas the online bookstore stresses the server back-end. We use open-source software in common use in all of our experiments (the Apache Web server, Tomcat servlet engine, JOnAS EJB server, and MySQL relational database). We conclude that the computational demands of Java servlets are modestly higher than those of PHP. However, the flexibility of servlets and the Java runtime support can be exploited to render better performance in many configurations. EJB facilities and services come at the cost of lower performance than both PHP and Java servlets. |
Latest update: 13 June 2003 - Questions and Comments about the Site: fmc@inf.ufg.br |