Today, Internet services are delivering a large array of business, government, and personal services. Similarly, mission critical operations, related to scientific instrumentation, military operations, and health services, are making increasing use of the Internet for delivering information and distributed coordination. For example, many users are accessing the Internet seeking such services as personal shopping, airline reservations, rental car reservations, hotel reservations, on-line auctions, on-line banking, stock market trading, as well as many other services being offered via the Internet. Many companies are providing such services via the Internet, and are therefore beginning to compete in this forum. Accordingly, it is important for such service providers (sometimes referred to as “content providers”) to provide high-quality services.
One potential indicator of the quality of service provided by service providers is the number of aborted client accesses of a service. It has been recognized that aborted client accesses of a service may be indicative of the client-perceived quality of such service. For instance, if a client requests to access a service provided by a service provider and it takes several minutes for the service to be downloaded from the service provider to the client, the client may consider the quality of the service as being poor because of its long download time. In fact, the client may be too impatient to wait for the service to fully load and may therefore abort the client's access thereof. For example, the client may cause his/her network connection to the service provider to be aborted (and may attempt to obtain the service from another provider).
The Internet is a popular client-server network in which a service provider may desire information about its client-perceived quality of service (QoS). The Internet is a packet-switched network, which means that when information is sent across the Internet from one computer to another, the data is broken into small packets. A series of switches called routers send each packet across the network individually. After all of the packets arrive at the receiving computer, they are recombined into their original, unified form. TCP/IP is a protocol commonly used for communicating the packets of data. In TCP/IP, two protocols do the work of breaking the data into packets, routing the packets across the Internet, and then recombining them on the other end: 1) the Internet Protocol (IP), which routes the data, and 2) the Transmission Control Protocol (TCP), which breaks the data into packets and recombines them on the computer that receives the information. TCP/IP is well known in the existing art, and therefore is not described in further detail herein.
One popular part of the Internet is the World Wide Web (which may be referred to herein simply as the “web”). Computers (or “servers”) that provide information on the web are typically called “websites.” Services offered by service providers' websites are obtained by clients via the web by downloading web pages from such websites to a browser executing on the client. For example, a user may use a computer (e.g., personal computer, laptop computer, workstation, personal digital assistant, cellular telephone, or other processor-based device capable of accessing the Internet) to access the Internet (e.g., via a conventional modem, cable modem, Digital Subscriber Line (DSL) connection, or the like). A browser, such as NETSCAPE NAVIGATOR® developed by NETSCAPE, INC. or MICROSOFT INTERNET EXPLORER® developed by MICROSOFT CORPORATION, as examples, may be executing on the user's computer to enable a user to input information requesting to access a particular website and to output information (e.g., web pages) received from an accessed website.
In general, a web page is typically composed of a mark-up language file, such as a HyperText Mark-up Language (HTML), Extensible Mark-up Language (XML), Handheld Device Mark-up Language (HDML), or Wireless Mark-up Language (WML) file, and several embedded objects, such as images. A browser retrieves a web page by issuing a series of HyperText Transfer Protocol (HTTP) requests for all objects. As is well known, HTTP is the underlying protocol used by the World Wide Web. The HTTP requests can be sent through one persistent TCP connection or multiple concurrent connections. Thus, web page is generally a complex object having multiple embedded objects (e.g., images and/or JAVASCRIPTs, etc.) each of which the client's browser retrieves separately.
As described above, service providers often desire to have an understanding of their client-perceived QoS. Effectively monitoring and characterizing the service provider's QoS is important for evaluating and/or improving the web site performance and selecting the proper web site architecture for a service provider to implement. One way to measure the QoS of a web server is to measure the amount of aborted client accesses of web pages provided by the web server. For example, the number of aborted client accesses with a web server may provide an indication of the web server's QoS. The logic behind this is that if a web site is not fast enough a user will get impatient and hit the stop button of his/her browser, thus aborting the client's access thereof.
Thus, detection of aborted client accesses of a web page may provide some indication regarding the client-perceived QoS of a website. However, interpreting all aborted client accesses of a web page as being indicative of poor server QoS is problematic. User actions at the browser level can effectively interrupt the request/response exchange for fetching page objects at any time. These interrupting actions include, as examples, clicking the browser “stop” or “reload” buttons while a page is loading. As an example of a further interrupting action, a user may “quick click” on a hyperlink displayed before the page loads completely.
It should be recognized that not all aborted client accesses of a web page are indicative of poor QoS. For instance, a user may interrupt a page load for reasons other than the client perceiving the QoS as poor for the page. For example, the user may be familiar with the page that is loading and may quick click on a hyperlink (i.e., before the page fully loads) to efficiently navigate through the page, or the user may simply change his/her mind about retrieving the page for reasons other than poor QoS. Thus, only a subset of aborted client accesses of a web page may be relevant to a poor website QoS or poor network performance, while the other portion of aborted accesses may be relevant to client-specific browsing patterns.