1. Field of the Invention
This invention relates in general to the field of computer networks, and in particular to a method and system for highly efficient measuring of the roundtrip response time of web-based protocols utilizing a single, non-origin measurement point.
2. Description of Related Art
The Internet is a vast network of heterogeneous computers and subnetworks all communicating together to allow for global exchange of information. The World Wide Web (WWW) is one of the more popular information services on the Internet which uses web browser software to decipher hypertext links to documents and files located on remote computers or content servers to access multimedia information in the form of text, audio, video, graphic, animation, still pictures, etc.
Many hardware and software utilities and applications, such as network performance monitors, have as their core technology a method of measurement that depends on network data as their input. In today's Information Technology (IT) industry, measuring roundtrip response time of application program transactions is a very important task. Traditional IT practice is to measure that portion of a computer's transaction time as it relates to time spent executing in one or more application servers. However, today's IT industry has included in its calculation of response time the time spent in areas other than application servers. Specifically, the time a transaction takes traversing a network from an origin client node to a destination server node is becoming one of the most important and desired measurements. One example of this environment is that of a customer using a web browser on a client node and interacting with a corporate web server node. The network time between these two nodes is one of the most important time components of all. However, the calculation of this time component is missing from nearly every commercial response time measurement available to customers today. Only when this component is added to the overall response time equation one can have the total roundtrip response time of a transaction.
The technique involved in measuring roundtrip response time, as well as the network time between an origin and destination node, requires that measurement software is present on both of these nodes. Software must be present on the origin node to capture the time of the initial request and another software must be present on the destination node to capture the time the initial request arrives. The difference is the time the request spent over the network. The problem with this technique is that it requires software to be installed on the origin node. In the IT industry, the origin node is often a computer operated by either an employee or a customer at the client node. Thus, this computer is typically not in the direct control of the corporate web server node to have measurement software placed upon it. One exemplary corporate web site is a bank site that would want to calculate response time for its customers with personal computers at home, yet the customer at home will not be open to downloading and installing banking time measurement software, named response time monitor, used for this purpose. Clearly, the burden of performance measurement must be on the provider of the web server site and not the customer of that site.
One technique that has been tried by a number of vendors is to use a web-based Java applet piece of the web page and automatically download it to the customer's client node. Because it is automatically downloadable, it takes the burden and responsibility off the customer. Java applets act as very small software agents that can measure response time at a customer's origin node. However, this technique requires web site design changes which are intrusive to the customer from a performance perspective and they tend to break the web application they are intended to monitor. In addition, they require complementary software to be placed on the web server at the other end. One such implementation of this technique can be found in the IBM Tivoli QOS solution as well as in the PathWAI eBA Service Monitor solution.
Another issue of conventional solutions is their scalability. Since software agents in the web-based Java applet technique need to reside at each client's origin node, they also have to be managed. Since the web world network has tens of thousands of potential origin nodes, the management effort is staggering. The network traffic caused just by reporting of all these software agents would flood a network and tie up resources.
Therefore, there is a need for a simple, improved, generic and highly efficient response time monitor of web-based protocols that can measure the roundtrip response time and its components from a single, non-origin measurement point, which is the destination node, and not the customer's origin node.
The foregoing and other objects, features, and advantages of the present invention will be apparent from the following detailed description of the preferred embodiments, which makes reference to several drawing figures.
One preferred embodiment of the present invention is a computer-based method for measuring the roundtrip response time of an original request on a network, utilizing a single response time monitor located on a non-origin node. The method starts the response time monitor on the non-origin node to detect a start time and end time of each component of the original request's roundtrip response time in order to calculate each component's duration. Later, the response time monitor calculates the roundtrip response time by adding together the duration of all components that have the same network address and port number as the original request.
Another preferred embodiment of the present invention is a system implementing the above-mentioned method embodiments of the present invention.
Yet another preferred embodiment of the present invention includes a computer usable medium tangibly embodying a program of instructions executable by the computer to perform method steps of the above-mentioned method embodiments of the present invention.
Referring now to the drawings in which like reference numbers represent corresponding parts throughout:
In the following description of the preferred embodiments reference is made to the accompanying drawings, which form the part thereof, and in which are shown, by way of illustration, specific embodiments in which the invention may be practiced. It is to be understood that other embodiments may be utilized and structural and functional changes may be made without departing from the scope of the present invention.
The main goal of the present invention is to provide a simple, improved, generic and highly efficient response time monitor of web-based protocols which can measure the roundtrip response time and its components utilizing a single, non-origin measurement point, which is the destination node, and not the customer's origin node.
General aspects of the present invention disclose a system, a method and a computer usable medium embodying a program of instructions executable by a computer to measure the roundtrip response time of a request that starts at an origin computing node (client), travels over a network to an application program on another computing node (server) and returns back to the origin node with a response. Beside measuring the roundtrip response time, the aspects of the present invention keep track of each component of the roundtrip response time and can show how much time is spent in each component.
The aspects of the present invention use a single response time monitor for measuring a roundtrip response time and its components, including the network time between the origin and destination node. Thus, the roundtrip response time is calculated with only one software agent which is residing at the destination node. This allows the roundtrip response time to be calculated for any destination node using only network protocols. Thus, no software measurement agent needs to be present at the origin node and there is no burden on the customer.
The response from the content server node 200 is routed back to the client node 100 and is typically compliant with the Hypertext Markup Language (HTML), that is the standard language for creating documents on the WWW. HTML defines the structure and layout of a web document by using a variety of tag commands inserted in the document to specify how a portion or the whole document should be formatted.
A response time monitor 210 of the system aspect of the present invention is connected to a commercial network packet sniffer 220, as illustrated in
Algorithm for an exemplary procedure for calculation of the roundtrip time is illustrated by the flowchart of
In other aspects of the present invention, this time may also include the time spent on other server nodes, such as server node 300, and a network 310 between the server node 200 and server node 300, since the server node 200 may have called server node 300 for additional information.
However, in the aspects of the present invention the response time monitor 210 is not able to see when the originating transaction actually started at the client node 100. Thus, the present invention uses a technique that approximates the time of origin of a network packet when the actual observation of that packet's time is not feasible. Moreover, the present invention uses the TCP/IP addresses and port numbers to identify the owner of a measured transaction. In this way, response time measurements are made on a transaction-by-transaction basis, for each user, and are not just an average of transaction times of previous users. Other aspects of the present invention use protocol analysis logic that watches for protocol handshakes as well as for session establishment, change direction and session destruction protocols.
For the approximation of a network time component duration, once the response is placed on network 110, another software stopwatch is started by the response time monitor 210 in step 440 of
Then, in step 470, the aspects of the present invention divide the network time component in two, to produce an approximate time spent on each leg of network time, inbound and outbound of the non-origin node 200. This approximation can be made since the inbound traffic size of the original request or acknowledgement is usually much smaller than the outbound traffic size of the response. Thus, instead of getting the actual measurement of the original inbound request time, which is impossible to know when the response time monitor 210 is located in the server node 200, the present invention approximates the network time of the original inbound request time with the acknowledgement time, which is typically small and of similar size. This approximation of the present invention has proven to average out correctly when performed over large number of measurements. Then, in step 480, the response time monitor 210 adds all time components to calculate the roundtrip response time for this request.
For performance reasons, network components, such as routers, break up each request and response to make them easier to deal with. Thus, each request large in size will be broken up into N packets sent over the network. The commercial packet sniffer 220 sees each of these network packets and the response time monitor 210 keeps track of each packet and calculates its components' time, according to the flowchart of
Moreover, the uniqueness of this aspect of the present invention is its ability to include the request and response time spent on server 300 and network 310, using the same technique as utilized between the client 100 and server 200. The total roundtrip time from the original request on client 100 to server 200, then to server 300 and back, until the response is received by the client 100 equals:
Roundtrip Time=network 110 time+server node 200 time+server node 300 time+network 310 time
In some aspects of the present invention, when server 300 is involved, the response time monitor 210 can learn the roundtrip time spent on server 300 and network 310. This may be accomplished by placing another response time monitor on server 300. Then, the component of the roundtrip response time spent solely on server 200 can be calculated by subtracting the time spent in server 300 and network 310.
With the present invention a corporation can place a single software measurement agent at their server node and measure the roundtrip response time of the thousands of customers that access their server node without any intrusion or software deployment on any of the customers' computers.
The present invention can be realized in hardware, firmware or software, any combination of hardware, firmware and software, or in any other process capable of providing the disclosed functionality. Implementation of the method and system of the present invention can be realized in a centralized fashion in one server computer system, or in a distributed fashion where different elements are spread across several interconnected computer systems. Any type of computer system or apparatus adapted for carrying out the methods described herein is suited to perform the functions described herein.
The foregoing description of the preferred embodiments of the invention has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. It is intended that the scope of the invention be limited not by this detailed description, but rather by the claims appended hereto.