Systems for monitoring and improving performance on the world wide web
First Claim
1. A computerized method executed on a Web server having one or more computers connected to each other and to client computers by a computer network, said method comprising:
- receiving over said network URL requests from individual client computers requesting the transmission by said server to said client computers of individual data objects identified by URL;
responding to the receipt of each of individual URL requests by transmitting information including one or more data objects corresponding to the URL contained in said request to the given client computer from which the request came, with the transmitted information transmitted in response to some such URL requests including performance monitoring instructions which instruct the given client computer to send to the server a performance message indicating the length of time required on the given client computer for the performance of an act associated with one or more of said transmitted data objects; and
receiving said performance messages transmitted by individual client computers to said server in response to such performance monitoring instructions;
wherein said performance monitoring instructions are transmitted in conjunction with a composite data object which include URLs to one or more component data objects and instruct a client computer to send a performance monitoring message indicating the length of time required for downloading to the client computer from a server of one or more of said component data objects.
3 Assignments
0 Petitions
Accused Products
Abstract
A Web system includes a server which receives URL requests from client computers and responds by transmitting the requested data to the clients along with performance monitoring instructions. These instructions cause the clients to send performance message back to the server indicating the time required on the client for certain acts associated with transmitted data. Often they cause a client to monitor the time required to download a composite data object, such as a Web page which include separately downloaded images, frames, or applets. They can also instruct the client to measure other times, such as the time required to download individual component objects; to execute given code, or to execute a transaction. Preferably the server includes means for automatically analyzing the performance messages it receives to detect different types of performance problems. It is also preferred that the system automatically respond differently to such different types of problems, including varying the performance monitoring instructions it sends, sending messages to clients informing them of the types and locations of problems detected, automatically sending out leaner versions of Web pages, offering clients options to deal with problems, informing the server'"'"'s operator of problems, throttling certain types of URL requests, increasing the system'"'"'s capacity, and varying IP spreading as a function of performance monitoring information.
594 Citations
39 Claims
-
1. A computerized method executed on a Web server having one or more computers connected to each other and to client computers by a computer network, said method comprising:
-
receiving over said network URL requests from individual client computers requesting the transmission by said server to said client computers of individual data objects identified by URL;
responding to the receipt of each of individual URL requests by transmitting information including one or more data objects corresponding to the URL contained in said request to the given client computer from which the request came, with the transmitted information transmitted in response to some such URL requests including performance monitoring instructions which instruct the given client computer to send to the server a performance message indicating the length of time required on the given client computer for the performance of an act associated with one or more of said transmitted data objects; and
receiving said performance messages transmitted by individual client computers to said server in response to such performance monitoring instructions;
wherein said performance monitoring instructions are transmitted in conjunction with a composite data object which include URLs to one or more component data objects and instruct a client computer to send a performance monitoring message indicating the length of time required for downloading to the client computer from a server of one or more of said component data objects.
-
-
2. A computerized method executed on a Web server having one or more computers connected to each other and to client computers by a computer network, said method comprising:
-
receiving over said network URL requests from individual client computers requesting the transmission by said server to said client computers of individual data objects identified by URL;
responding to the receipt of each of individual URL requests by transmitting information including one or more data objects corresponding to the URL contained in said request to the given client computer from which the request came, with the transmitted information transmitted in response to some such URL requests including performance monitoring instructions which instruct the given client computer to send to the server a performance message indicating the length of time required on the given client computer for the performance of an act associated with one or more of said transmitted data objects; and
receiving said performance messages transmitted by individual client computers to said server in response to such performance monitoring instructions;
wherein said performance monitoring instructions instruct a client computer to send a performance message indicating the length of time required on a client computer for performance of a given portion of computer programming included in one or more of said data objects transmitted to said client computer.
-
-
3. A computerized method executed on a Web server having one or more computers connected to each other and to client computers by a computer network, said method comprising:
-
receiving over said network URL requests from individual client computers requesting the transmission by said server to said client computers of individual data objects identified by URL;
responding to the receipt of each of individual URL requests by transmitting information including one or more data objects corresponding to the URL contained in said request to the given client computer from which the request came, with the transmitted information transmitted in response to some such URL requests including performance monitoring instructions which instruct the given client computer to send to the server a performance message indicating the length of time required on the given client computer for the performance of an act associated with one or more of said transmitted data objects; and
receiving said performance messages transmitted by individual client computers to said server in response to such performance monitoring instructions;
wherein said performance monitoring instructions instruct;
a first data object downloaded on to said client computer to communicate to a second data object when a first event occurs in said first data object on said client computer; and
a second data object downloaded on to said client computer to send a performance message indicating the difference in time between the occurrence of said first event and the occurrence of a second event occurring in a data object other than said first data object which has been downloaded onto said client computer.
-
-
4. A computerized method executed on a Web server having one or more computers connected to each other and to client computers by a computer network, said method comprising:
-
receiving over said network URL requests from individual client computers requesting the transmission by said server to said client computers of individual data objects identified by URL;
responding to the receipt of each of individual URL requests by transmitting information including one or more data objects corresponding to the URL contained in said request to the given client computer from which the request came, with the transmitted information transmitted in response to some such URL requests including performance monitoring instructions which instruct the given client computer to send to the server a performance message indicating the length of time required on the given client computer for the performance of an act associated with one or more of said transmitted data objects; and
receiving said performance messages transmitted by individual client computers to said server in response to such performance monitoring instructions;
wherein said performance monitoring instructions instruct a client computer to send a performance message indicating the time, measured on the client computer, to perform a transaction which includes the uploading of user input from the client computer to said server and the downloading of information, in response to said upload, from the server to the client computer. - View Dependent Claims (5)
-
-
6. A computerized method executed on a Web server having one or more computers connected to each other and to client computers by a computer network, said method comprising:
-
receiving over said network URL requests from individual client computers requesting the transmission by said server to said client computers of individual data objects identified by URL;
responding to the receipt of each of individual URL requests by transmitting information including one or more data objects corresponding to the URL contained in said request to the given client computer from which the request came, with the transmitted information transmitted in response to some such URL requests including performance monitoring instructions which instruct the given client computer to send to the server a performance message indicating the length of time required on the given client computer for the performance of an act associated with one or more of said transmitted data objects; and
receiving said performance messages transmitted by individual client computers to said server in response to such performance monitoring instructions;
wherein said performance monitoring instructions instruct a client computer to send a performance message indicating when a user of the client computer aborts the downloading of a page and the length of time the downloading of said page had taken prior to said abort.
-
-
7. A computerized method executed on a Web server having one or more computers connected to each other and to client computers by a computer network, said method comprising:
-
receiving over said network URL requests from individual client computers requesting the transmission by said server to said client computers of individual data objects identified by URL;
responding to the receipt of each of individual URL requests by transmitting information including one or more data objects corresponding to the URL contained in said request to the given client computer from which the request came, with the transmitted information transmitted in response to some such URL requests including performance monitoring instructions which instruct the given client computer to send to the server a performance message indicating the length of time required on the given client computer for the performance of an act associated with one or more of said transmitted data objects; and
receiving said performance messages transmitted by individual client computers to said server in response to such performance monitoring instructions;
wherein;
said computer network has an end-system address space including the addresses of all of the client computers on said network;
each performance message sent by a client computer to said server includes a source address identifying the end-system address of the client computer from which said performance message originated; and
at least some of the performance messages received by said server are problem messages which indicate that the length of time required for the downloading of data objects to a client computer took more than a threshold amount of time; and
said method further includes creating a problem distribution representation, which indicates how source addresses of the problem messages received by the server are distributed in said end-system address space by organizing information from said problem messages by said client source addresses. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
generating a message distribution representation which indicates the distribution of end-system addresses of client computers to which data objects monitored by performance monitoring instructions have been sent; and
using both the problem distribution representation and the message distribution representation in generating an indication of whether a performance problem appears to be in the server or in a portion of the network external to said server.
-
-
10. A computerized method as in claim 8 wherein said varying the response the server makes includes:
-
finding what problem messages have client source addresses associated with individual external network entity; and
determining whether or not to generate an indication that there is a performance problem in a given network entity as a function of the number of problem messages received from clients having addresses associated with the given network entity.
-
-
11. A computerized method as in claim 10 wherein:
-
said external network entities include entities associated with Internet service providers; and
said indication that there is a performance problem localized in a given network entity provides an indication that the performance problem is associated with a given Internet service provider.
-
-
12. A computerized method as in claim 10 wherein said generating an indication that there is a performance problem in said given network entity includes transmitting a message to client computers in the given network'"'"'s sub-portion of the end-system address space that a performance problem is associated with said given network entity.
-
13. A computerized method as in claim 10 wherein said varying the response the server makes includes determining whether or not to respond to a set of problem messages as resulting from a problem associated with the given client computer which sent the set of problem message as a function of:
-
the number of problem messages whose source addresses are associated with multiple network entities;
the number of problem messages whose source addresses are associated with the network entity with which the given client computer'"'"'s source address is associated; and
the number of problem messages which have been sent from the given client computer.
-
-
14. A computerized method as in claim 13 wherein said varying the response the server makes includes responding to said determination that a given set of problem messages results from a problem associated with a given client computer by sending a message to the given client computer indicating that a performance problem appears to be associated with the client computer.
-
15. A computerized method as in claim 13 wherein said varying the response the server makes includes responding to a determination that a given set of problem message results from a problem associated with a given client computer by increasing the probability that computer programming will be sent to the given client computer to help determine the source of the problem on the client computer.
-
16. A computerized method as in claim 13 wherein said varying the response the server makes includes offering a user of a given client computer the choice of receiving versions of web pages from the server which contain fewer bits so they can be downloaded more rapidly.
-
17. A computerized method as in claim 8 wherein said varying the response the server makes includes generating an indication of whether or not a performance problem relates to server capacity as a function of the extent to which the ratio between the number of data objects which have been sent out and the number of problem messages which have been received is above a certain level throughout that part of the end-system address system to which data objects have been sent.
-
18. A computerized method as in claim 17 further including responding to said indication that the problem is a function of server capacity by decreasing the percent of URL requests from certain clients to which the server responds by sending data objects corresponding to requested URLs.
-
19. A computerized method as in claim 17 further including responding to said indication that the problem is a function of server capacity by sending a message to a human operator of said server indicating there appears to be a problem with the server.
-
20. A computerized method as in claim 17 further including responding to said indication that the problem is a function of server capacity by reducing the amount of data transmitted to client computers in response to given URL requests.
-
21. A computerized method as in claim 17 further including responding to said indication that the problem is a function of server capacity by increasing said server capacity.
-
22. A computerized method executed on a Web server having one or more computers connected to each other and to client computers by a computer network, said method comprising:
-
receiving over said network URL requests from individual client computers requesting the transmission by said server to said client computers of individual data objects identified by URL;
responding to the receipt of each of individual URL requests by transmitting information including one or more data objects corresponding to the URL contained in said request to the given client computer from which the request came, with the transmitted information transmitted in response to some such URL requests including performance monitoring instructions which instruct the given client computer to send to the server a performance message indicating the length of time required on the given client computer for the performance of an act associated with one or more of said transmitted data objects; and
receiving said performance messages transmitted by individual client computers to said server in response to such performance monitoring instructions;
wherein;
said responding to the receipt of URL requests includes transmitting copies of different data objects in response to different URL requests, with each of said data objects having an associated server address which is an address within the address space of the server from which copies of the data object are transmitted to client computers;
said performance monitoring instructions instruct client computers to monitor the download time of data objects transmitted to client computers by sending to the server a problem message indicating when the time required for the downloading of a given one of such monitored data object exceeds a certain threshold duration and indicating the identity of the given data object; and
said method further includes generating an indication of whether or not the server'"'"'s performance problem appears to be localized within a sub-portion of the server'"'"'s address space as a function of the degree to which the distribution of said server addresses of monitored data objects for which problem messages are generated is concentrated within a certain portion of said server'"'"'s address space. - View Dependent Claims (23)
wherein said generating an indication of whether or not the server'"'"'s capacity problem appears to be localized includes indicating the given portion of the server'"'"'s address space within which the performance problem appears to localized; and
further including responding to an indication that the problem is localized in a given portion of the server'"'"'s address space by decreasing the number of times the server responds to a request for a given URL by sending a data object from said given address portion and increasing the number of times the server responds to such request by sending a data object from a different portion of the server'"'"'s address space.
-
-
24. A computerized method executed on a Web server having one or more computers connected to each other and to client computers by a computer network, said method comprising:
-
receiving over said network URL requests from individual client computers requesting the transmission by said server to said client computers of individual data objects identified by URL;
responding to the receipt of each of individual URL requests by transmitting information including one or more data objects corresponding to the URL contained in said request to the given client computer from which the request came, with the transmitted information transmitted in response to some such URL requests including performance monitoring instructions which instruct the given client computer to send to the server a performance message indicating the length of time required on the given client computer for the performance of an act associated with one or more of said transmitted data objects; and
receiving said performance messages transmitted by individual client computers to said server in response to such performance monitoring instructions;
wherein;
said data objects transmitted by said server in response to URL requests include composite data objects, the display of which require the downloading of component data objects referred to by URL within said composite data objects; and
said performance monitoring instructions include composite monitoring instructions which cause client computers to send a problem message to the server when the download time of a composite data object exceed a certain threshold and component monitoring instructions which cause client computers to send a problem message to the server when the download time of a component data object exceed a certain threshold; and
said method further includes responding to a distribution of problem messages which indicate there is a performance problem associated with a given composite data object by increasing the number of client computers which receive component monitoring instructions for component data objects of the composite data object which appears to have the performance problem.
-
-
25. A computerized method executed on a Web server having one or more computers connected to each other and to client computers by a computer network, said method comprising:
-
receiving over said network URL requests from individual client computers requesting the transmission by said server to said client computers of individual data objects identified by URL;
responding to the receipt of each of individual URL requests by transmitting information including one or more data objects corresponding to the URL contained in said request to the given client computer from which the request came, with the transmitted information transmitted in response to some such URL requests including performance monitoring instructions which instruct the given client computer to send to the server a performance message indicating the length of time required on the given client computer for the performance of an act associated with one or more of said transmitted data objects; and
receiving said performance messages transmitted by individual client computers to said server in response to such performance monitoring instructions;
wherein the responding to URL requests includes transmitting a given type of performance monitoring instructions in response to only a sampling of requests for a given URL.
-
-
26. A computerized method executed on a Web server having one or more computers connected to each other and to client computers by a computer network, said method comprising:
-
receiving over said network URL requests from individual client computers requesting the transmission by said server to said client computers of individual data objects identified by URL;
responding to the receipt of each of individual URL requests by transmitting information including one or more data objects corresponding to the URL contained in said request to the given client computer from which the request came, with the transmitted information transmitted in response to some such URL requests including performance monitoring instructions which instruct the given client computer to send to the server a performance message indicating the length of time required on the given client computer for the performance of an act associated with one or more of said transmitted data objects; and
receiving said performance messages transmitted by individual client computers to said server in response to such performance monitoring instructions;
wherein;
said performance messages sent by client computers to the server include indications of the length of time required for the downloading of data objects from the server to client computers; and
said method further includes sending to client computers an indication of the estimated time required for future downloading of data objects from the server to client computers, based on said download time indications contained in said performance messages received by said server.
-
-
27. A computerized method executed on a Web server having one or more computers connected to each other and to client computers by a computer network, said method comprising:
-
receiving over said network URL requests from individual client computers requesting the transmission by said server to said client computers of individual data objects identified by URL;
responding to the receipt of each of individual URL requests by transmitting information including one or more data objects corresponding to the URL contained in said request to the given client computer from which the request came, with the transmitted information transmitted in response to some such URL requests including performance monitoring instructions which instruct the given client computer to send to the server a performance message indicating the length of time required on the given client computer for the performance of an act associated with one or more of said transmitted data objects;
receiving said performance messages transmitted by individual client computers to said server in response to such performance monitoring instructions; and
responding to the receipt of performance messages indicating a problem by causing said responding to the receipt of URL requests to alter the information it transmits to a client computer in response to a request for a given URL. - View Dependent Claims (28, 29)
-
-
30. A computerized method executed on a Web server having one or more computers connected to each other and to client computers by a computer network, said method comprising:
-
receiving over said network URL requests from individual client computers requesting the transmission by said server to said client computers of individual data objects identified by URL;
responding to the receipt of each of individual URL requests by transmitting information including one or more data objects corresponding to the URL contained in said request to the given client computer from which the request came, with the transmitted information transmitted in response to some such URL requests including performance monitoring instructions which instruct the given client computer to send to the server a performance message indicating the length of time required on the given client computer for the performance of an act associated with one or more of said transmitted data objects; and
receiving said performance messages transmitted by individual client computers to said server in response to such performance monitoring instructions;
wherein;
said server includes a plurality of server computers each having a different address on said computer network; and
said method further includes responding to the receipt of a set of performance messages which indicate a problem by causing said responding to the receipt of URL requests to alter which of said server computers transmits a data object in response to a request for a given URL. - View Dependent Claims (31)
said performance monitoring instructions instruct client computers to send to the server a problem message which identifies a given data object when the time required to download the data object to the client computer exceeds a threshold duration; and
said altering which of said server computers transmits a data object in response to a request for a given URL includes selecting which of said server computers is to respond to a given URL request as a function of the different number of said problem messages which are generated in response to the downloading of data objects from each of said server computers.
-
-
32. A computerized method executed on a Web server having one or more computers connected to each other and to client computers by a computer network, said method comprising:
-
receiving over said network URL requests from individual client computers requesting the transmission by said server to said client computers of individual data objects identified by URL;
responding to the receipt of each of individual URL requests by transmitting information including one or more data objects corresponding to the URL contained in said request to the given client computer from which the request came, with the transmitted information transmitted in response to some such URL requests including performance monitoring instructions which instruct the given client computer to send to the server a performance message indicating the length of time required to download one or more of said transmitted data objects to the client computer;
receiving said performance messages transmitted by individual client computers to said server in response to such performance monitoring instructions; and
responding to the receipt of performance messages from a client computer indicating that the length of time required for the downloading of data objects to the client computer took more than a threshold amount of time by causing said responding to the receipt of a URL request from that client computer to decrease the size of one or more data objects which are transmitted in response to such a request. - View Dependent Claims (33, 34)
-
-
35. A computerized method for use in distributing data objects to client computers over a computer network, which method is executed on a server system having a plurality of server computers connected to and having individual addresses on said network, with at least one of said server computers being a spreader computer and a plurality of said server computers being backend server computers, said method comprising:
-
receiving, at the spreader computer, individual URL requests, each of which URL requests includes;
a destination address addressed to the spreader computer a URL indicating which data object is to be transmitted in response to the request; and
a source address identifying the client computer to which the data object is to be sent;
responding, at the spreader computer, to a given URL request by sending a corresponding redirected request to a selected one of said backend server computers, which redirected-request contains the URL request'"'"'s source address and an indication of a data object, corresponding to the URL request'"'"'s requested URL, which is to be sent to said source address; and
responding, at each backend server, to the receipt of a redirected request by transmitting the data object identified by the redirected request to the source address contained in the redirected request;
wherein the sending of a given redirected URL request includes selecting which of said plurality of backend server computers to redirect the given URL request to as a function of the network entity represented by the source address of the URL request. - View Dependent Claims (36, 38)
a plurality of said backend server computers are distributed at substantially different geographic locations; and
said sending of a given redirected URL request tends to send a given URL request to one of said geographically differently located backend server computers as a function of the geographic location of the network entity represented by the given URL request'"'"'s source address relative to the different geographic locations of said differently located backend server computers.
-
-
38. A computerized method as in claim 35 wherein said accessed information associated with the source address of the URL request includes all or a part of a domain name.
-
37. A computerized method for use in distributing data objects to client computers over a computer network, which method is executed on a server system having a plurality of server computers connected to and having individual addresses on said network, with at least one of said server computers being a spreader computer and a plurality of said server computers being backend server computers, said method comprising:
-
receiving, at the spreader computer, individual URL requests, each of which URL requests includes;
a destination address addressed to the spreader computer a URL indicating which data object is to be transmitted in response to the request; and
a source address identifying the client computer to which the data object is to be sent;
responding, at the spreader computer, to a given URL request by sending a corresponding redirected request to a selected one of said backend server computers, which redirected request contains the URL request'"'"'s source address and an indication of a data object, corresponding to the URL request'"'"'s requested URL, which is to be sent to said source address; and
responding, at each backend server, to the receipt of a redirected request by transmitting the data object identified by the redirected request to the source address contained in the redirected request;
wherein the sending of a given redirected URL request includes selecting which of said plurality of backend server computers to redirect the given URL request to by accessing information associated with, but not included in, the source address of the URL request and selecting which backend server to redirect the given URL request to as a function of said accessed information.
-
-
39. A computerized method for use in distributing data objects to client computers over a computer network, which method is executed on a server system having a plurality of server computers connected to and having individual addresses on said network, with at least one of said server computers being a spreader computer and a plurality of said server computers being backend server computers, said method comprising:
-
receiving, at the spreader computer, individual URL requests, each of which URL requests includes;
a destination address addressed to the spreader computer a URL indicating which data object is to be transmitted in response to the request; and
a source address identifying the client computer to which the data object is to be sent;
responding, at the spreader computer, to a given URL request by sending a corresponding redirected request to a selected one of said backend server computers, which redirected request contains the URL request'"'"'s source address and an indication of a data object, corresponding to the URL request'"'"'s requested URL, which is to be sent to said source address; and
responding, at each backend server, to the receipt of a redirected request by transmitting the data object identified by the redirected request to the source address contained in the redirected request;
wherein the sending of redirected URL requests includes selecting which of said plurality of backend server computers to redirect a given URL request to as a function of the source address of the URL request by doing the following;
redirecting at least some URL requests having source addresses from a given portion of the address space of the computer network to different ones of said backend server computers;
receiving in response to said redirected requests a set of performance messages from client computers located in the given network address portion indicating the time required to download data objects sent to client computers in said given network address portion from each of said different backend server computers; and
redirecting at least some URL requests having source addresses from said given network address portion to said different backend server computers as a function of the relative download times to the given network address portion indicated for said different backend servers by said performance messages.
-
Specification