Performance engineering of a Java-based eCommerce system
Abstract
The development of enterprise web applications has evolved from writing servlets using JDBC calls for database access to a component-based paradigm where database access is replaced by calling Enterprise JavaBeans (EJB), a Java representation of business objects. Using this component-based paradigm, business logics are encapsulated in coarse-grain session beans, leaving servlets the role of a request dispatcher which converts HTTP requests for servlets into RMI/IIOP requests for session beans and invokes JSP for result presentation. The performance of such a multi-tier enterprise web application is dominated by the performance of the EJB. This paper investigates a model-based approach for performance engineering of multi-tier enterprise Java applications. A layer queueing model comprising the layers of client applications, session beans, entity beans, and data sources is proposed in this paper. By taking into account network latency and RMI overhead, the model can be used to predict the delay-throughput performance of the system and to study issues related to deployment topology. As an example, a layered queueing model is created for an application framework for B2B e-Commerce, a real world EJB application. A case study is presented to show the effect of database access delay to the tuning of the connection pool size of data sources.