Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Channels ▼

Web Development

Real Users Really Matter

Hon Wong is founder of Symphoniq (www.symphoniq.com), a company that specializes in web application performance. He can be contacted at [email protected].

To deploy web applications and manage their performance requires new tools and new approaches. Because of the complexity of web applications and infrastructure, performance has to be "baked in" before being launched into production. But complexity diminishes a developer's ability to fully test and characterize the performance of new applications running on production infrastructures. The result is that nearly half of all application outages are uncovered by end users. With web applications' growing importance to the bottom line, the need to assure web application performance at all levels becomes a critical challenge.

The solution to this problem is to implement an early detection and rapid response process during development that can also be used in production. Actionable information collected using this process can then identify areas for performance optimization, infrastructure tuning, and quick problem resolution.

It's All About the Real User

Web applications are no longer developed one line of HTML at a time. They are typically orchestrated using existing internal or third-party web services with unknown performance characteristics and often invoked across the web cloud. To further complicate the task of managing performance, the dynamic nature of this new generation of web applications results in different users traversing the application infrastructure through divergent paths, making it difficult (if not impossible) to recreate and diagnose performance problems.

However, users of web applications are demanding a richer experience that requires streaming multimedia content and fat client-like capabilities. Web 2.0 applications are no longer a sequence of static HTML pages. They place a heavy dependency on the capability of the end user's computer to constantly re-render the page or host a Flash or Silverlight player, and demand robust last-mile connectivity to handle chatty XML calls.

How can you deliver feature-rich applications with a level of performance that captivates today's hyper-impatient end users? The question is crucial in an environment where a few seconds can mean the difference between satisfied and former users.

Traditional monitoring tools and techniques focus on monitoring the performance of servers. This is because of the strong correlation between server performance and positive end-user experience. But the complexity of web applications has changed all that. A functioning server can no longer ensure that "real" users are experiencing acceptable application performance from across the Web. A hundred different things can (and will) go wrong between the real user's browser and the content or data that the user is accessing. As a result, the key to managing web application performance is to accurately measure performance as experienced by real users at the browser where web applications come together. Real user experience is fundamentally the only true measure of web application performance.

Measuring the real user's experience of web application performance is useful from a reporting perspective; however, the data is not actionable. According to Forrester analyst Jean Pierre Garbani, web application performance has to be monitored and managed at the granularity of each individual transaction, not from a silo (cloud, logical server, code, database, and the like) or infrastructure component (PC, routers, servers, Internet/WAN/LAN, and so on). Poor performing transactions from the real user's perspective should be traced from browser to database—including third-party web service calls—to produce a map of the transaction path through the infrastructure as well as the time consumed by each infrastructure tier.

The purpose of mapping the transaction path of real transactions initiated by real users is to facilitate the identification of causes or performance problems or bottlenecks. Each real transaction might follow a different path through a complex (and potentially virtualized) infrastructure, which makes it difficult and time consuming for correlating data stored in configuration management databases to pinpoint problems. With a browser-to-database mapping of transactions from the real user's perspective and the time consumed by each of the infrastructure tiers clearly measured, developers can easily identify the cause of any performance degradation. In most organizations, the process incurred to triage, re-create, and diagnose a problem usually consumes most of the time needed to resolve a problem. With this new approach, the labor cost and time to problem resolution of the real user's performance problem can be greatly reduced.

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.