Hierarchical performance and availability analysis methodology for multi-tiered Web applications

Date of Completion

January 2008


Computer Science




World Wide Web (WWW) has experienced exponential growth and has become one dominant source of information and services. Besides its presence as an information source, WWW has also been established as a major platform of applications, which sits in the heart of the future of Web interactions. ^ As the growth of WWW, Web applications have evolved from traditional two-tiered, tightly-coupled architecture to multi-tiered, loosely-coupled architecture. Multi-tiered Web application architecture typically consists of three tiers, namely, presentation tier, business tier and data tier. The presentation tier consists of front-end Web servers, the application servers reside in the business tier where the business logic is implemented and the back-end database resides in the data tier. The clients consume services by using high-level and platform independent calls. The Web server intercepts the calls and redirects the calls to the application server which performs the processing. The application server makes database calls as needed to the back-end database, and responds to the client as appropriate. ^ Compared to two-tiered Web applications, major benefits of multi-tiered applications includes: improved scalability and availability, high maintainability, etc. Due to its decentralized, loosely coupled, and highly interoperable architecture, multi-tiered Web applications have become the primary solution for business integration and collaboration problems. E-commerce Web site is a good example of multi-tiered Web application. ^ The widespread use of multi-tiered Web applications in business and critical applications, however, necessitates that these applications be offered with superior performance and availability. For example, Web applications which provide services such as public emergency alert, extreme weather forecast, or traffic alert, must be delivered with exceptional performance and availability for them to be rendered usable. In another example, to encourage customers to prefer e-commerce services over their traditional on-site counterparts, it is necessary that the e-commerce sites offer online services with superior quality. Furthermore, since e-commerce Web sites are typically involved in transaction-based financial services such as online payment, online banking, and online stock trading, discontinuity of service is unacceptable from the customers' point of view. Performance and availability are of paramount importance in ensuring the success of an e-commerce site. A systematic, quantitative performance and availability analysis methodology will assist in identifying bottlenecks, suggesting ways of improving these attributes and guiding the provisioning of resources so that the performance and availability requirement can be met in a cost-effective manner. ^ The performance and availability of a multi-tiered Web application may be affected by several external and internal characteristics and each one of these characteristics may cast a significant, non-trivial influence on the application, hence it may not be prudent to ignore one or more of them. Yet, the simultaneous consideration of these characteristics all at once can be overwhelming, leading to computationally intractable models, and obscure a thorough understanding of the influence that each one characteristic exerts on the application. ^ Previous research efforts in this area mainly focused on performance analysis and addressed only a single server or the performance of a Web site when serving a single request. Also, there are few research efforts on availability analysis of multi-tiered Web applications. The objective of this dissertation is to develop a hierarchical, multi-level methodology for systematic, quantitative performance and availability analysis of multi-tier Web applications. The "multi-level" methodology partitions the analysis into three levels, which allows a detailed consideration of the factors that are most relevant at that level, while abstracting the remaining factors. The methodology is hierarchical, because the three levels progressively introduce increasing complexity and sophistication into the analysis, with the results of the lower level incorporated as parameters into the analysis at the next, higher level. On the first level it models and analyzes the performance and availability of a single server. Characteristics of a single server, such as the concurrent processing capability of modern Web server, application server and database server. On the second level, we analyze the performance and availability of a multi-tiered Web application when serving a single question, as it traverses through different tiers of the Web application. On the third level, we analyze the performance and availability of a multi-tiered Web application when user presents a sequence of requests to it. User navigational patterns and session characteristics are considered on this level. Models and analysis proposed at each level will be validated using data generated from simulations, controlled experiments driven by standard benchmarks. ^