What Characterizes the Performance of Web Applications?

12.3 What Characterizes the Performance of Web Applications?

The previous section explained that users perceive the performance of a Web application primarily by its response time. Most users of “traditional” desktop applications are experienced in evaluating the performance and know which activities are resource-intensive, requiring a longer response time. Many applications offer relevant information for users to estimate the processing time required for an activity, or the time remaining (e.g., progress bar when saving

a file). Unfortunately, this transparency is not available for most Web applications. And though

12.4 System Definition and Indicators 251 the impact of poor performance is painfully perceived, users are seldom informed about the

causes of the problem or given helpful assistance. Users cannot perceive an obvious difference between clicking a link that points to a static HTTP page, and clicking a link that triggers the dynamic creation of a page, but the response times can be very different. Referred to the load on the server, the static link may be irrelevant, for instance, if the page is already in the client cache, while building a page on the fly may require resource-intensive database queries. Due to the hyperlink structure, users normally can’t see whether and when they are leaving a Web application. All they will notice are changes in the performance. The performance of each Web application may be below the defined threshold values, but the strong fluctuation in a Web application’s performance itself can cause users to get disoriented, dissatisfied, and disappointed about an application’s usability (see Chapter 11). Also, users can hardly control the performance of a system. Though users “cause the load”, all they can do in the event of performance problems is to disconnect and try again later, or use alternative services. Consequently, while improving system performance is important to solve this problem, users should be given better feedback.

Also from the Web application developer’s perspective problems arise from factors beyond their control that can have an impact on performance. The Internet as a network between clients and servers in its current form offers no way to guarantee the quality of a service. A service provider can merely deploy sufficient bandwidth at the server or replicate servers, but they can’t guarantee sufficient bandwidth all the way to the client. And developers have no influence on the performance of clients. It is, therefore, important not only to test the functionality of Web applications on different platforms, but also to run performance tests over several network connections and client types (see, for example, Williamson et al. 2002).

The methods known from “classic” performance analysis (see Figure 12-2) can also be used for Web applications, but the specific techniques and tools have to be adapted to the characteristics of Web applications (see for example Casale 2005). The relevant methods will be discussed in the following sections. One of the most important aspects in this respect is the traffic and work load characterization (Crovella et al. 1998, Xia et al. 2005), because it is very difficult to predict user behavior and usage context due to the homogeneity and large number of potential users.

And finally, the development of Web applications is short-lived, manifesting itself in short development cycles and comparatively long operation and maintenance phases. Many develop- ment processes don’t integrate performance analyses for time and cost reasons, compensating this shortcoming afterwards by monitoring the system during normal operation.