Abstract:
Formed in a proxy server (CP) from the data output by a server application (SA) in response to a client (CA) inquiry is a message digest (MD) which is checked in said proxy server by comparison as to whether an identical message digest is already cached in the proxy server for said client. If so, a brief response message (HIT) is communicated by the proxy server to said client (CA) signalizing that the content can be found in the cache of a mobile proxy (MP) assigned to said client. If not, the complete content including the message digest serving as a key is communicated to the proxy of said client (CA) for caching there. Application in mobile data services requiring data transport via wireless networks.

Description:
FIELD OF THE INVENTION  
       [0001]     The invention relates to a method for reducing data transport volume in data networks wherein content already communicated from a data source to a client over a communication link is cached at the client for later re-use. One such method is known from EP 1 308 853 A1.  
       PRIOR ART  
       [0002]     Since transporting data in data networks invariably costs time and money a variety of techniques is employed to reduce the data transport volume. One method often put to use for this purpose involves storing data already communicated to the client for later re-use, in other words “caching”, albeit with the problem of checking or maintaining the cached data updated.  
         [0003]     This problem is not only involved when prefetching content but also when copies of the data are to be maintained, invariably involving the risk of the original data being changed, since any such change means that the copy becomes stale or invalid; stale meaning in this case that the original data has changed whilst invalid means that the copy has become stale with negative effects on use. It usually needs to be avoided that a data consumer receives stale data. Algorithms and protocol extensions prevent use of such stale data in so-called cache invalidation schemes as have since become a field of intense research termed cache consistency.  
         [0004]     For cache configuration and application considered here a distinction is made between four well-known and fundamentally different schemes, namely temporal invalidation, location-dependent invalidation, active validation/invalidation by the client and invalidation by call-back.  
         [0005]     Temporal invalidation uses an expiration date which is assigned to the copy of the data. After this expiration date the copy is considered stale. This scheme is realized in HTTP by transferring the expiration date with the optional Expires header field (e.g. Expires: Wed, 31 Dec. 2003 18:00:00 GMT) . It should be noticed that this scheme is not a general solution to the cache consistency problem, it instead constituting an agreement between the consumer and the provider of the data where the provider assures that the original will not be changed until the expiration date, or if it is changed before the expiration date no negative effects are caused by using the stale copy (i.e. the data is stale but not invalid).  
         [0006]     Location-dependent invalidation has been proposed in the paper by B. Zheng, J. Xu, D. L. Lee. “Cache invalidation and Replacement strategies for location-dependent data in Mobile Environments in IEEE Transactions on Computers”, Vol. 51, No. 10, October 2002, pages 1141 to 1153. This scheme considers the case of a mobile user with known geographical position for whom data is considered to be valid only if he is within a certain geographical region. As an example, the query for “the nearest restaurant” is given. The result for this query clearly depends on the user&#39;s location. Once the user has moved into a region where another restaurant is closer, the old result is no longer valid. To achieve sensible validation it is proposed to store a region, called valid scope area, with the copy of the data, in observing that queries that specify the search for an object with the predicate “nearest” becoming patches of a Voronoi diagram. The data is then considered stale and invalid when the user leaves the valid scope area.  
         [0007]     When active validation by client is employed, the client has the responsibility to validate the copy each time the copy is accessed, it therefore actively contacting the server containing the original data in asking whether the original data has been changed since the time instant the copy was made. For this purpose the cache instance stores this time instant with the copy. Within the HTTP protocol this scheme is employed wherever a client uses a method (usually GET) and makes it conditional by an “If_Modified_Since header (e.g. If —Modified _Since: Thurs, 27 Mar. 2003 11:20:00 GMT). If the document has changed since the specified time, the server returns the newer version. If it has not changed the server returns an error code (304) that tells the client that the copy is still valid.  
         [0008]     The invalidation by call-back scheme requires the server to keep track of all copies that have been made. Whenever the original data is changed the server actively notifies all instances that keep copies that a newer version exists. This scheme is not realized within the HTTP protocol.  
         [0009]     Another important issue that has a strong practical influence on caching and prefetching is dynamically generated content. A large and increasing number of websites makes use of the modern webserver&#39;s ability to keep track of user sessions by dynamical generation of the links e.g. within HTML files. When a request corresponding to a dynamically generated link arrives at the server, the server application is capable of separating the information as to the necessary data from the additional information that is used for keeping track of sessions. As a result, it frequently occurs that identical content is served under multiple distinct URLs. Frequently, the adverse effects of this phenomenon are mentioned as arguments against the employment of caching and prefetching as the percentage of cacheable documents can be significantly reduced.  FIG. 1  shows this case by way of an example with two different URLs and identical, dynamically generated content.  
         [0010]     A similar phenomenon occurs also for static content in cases where the same data e.g. a certain image used for an icon is used by multiple websites under potentially distinct filenames. This effect is not a hindrance to caching and prefetching as all instances of the data are cacheable and can be re-used. Nevertheless, additional transmission and storage resources could be conserved if the quality/identity of the data could be detected.  FIG. 2  shows this case by way of an example with two different URLs and identical, statically generated content.  
         [0011]     Existing schemes for cache validation are thus hampered particularly where involving dynamically generated content especially by web applications or scripts such as e.g. PHP, ASP, Servlets, JSP or Perl. For one thing, data whose URL has changed or has been generated dynamically are repeated in transmission unnecessarily, although the same in content, and for another, data whose URL has remained the same are not repeated in transmission despite it being necessary.  
         [0012]     These issues as to cache consistency and dynamically content generation have been elaborated to make for a better understanding of the method as presented by the present invention.  
       SUMMARY OF THE INVENTION  
       [0013]     In schemes in which data already communicated from a data source to a client is cached at the client for later re-use, the invention is based on the object of maintaining the cached data updated or in synchronism with the data of the data source without requiring any cooperation of the data source operators.  
         [0014]     In accordance with the invention relating to a method of the aforementioned kind this object is achieved to advantage by the steps of: 
        forming in a proxy server a message digest from the response data output by a data source in response to a request of the client similar to a sum check     checking said message digest in the proxy server by comparison whether an identical message digest has already been cached for said client, and if so,     communicating said client from said proxy server together with said message digest a short response message signalizing the fact that said content can be found in the cache of said client or of a proxy assigned to said client which uses said message digest as a key for retrieving said content from his cache and furnishing said content to said client to whom said content is then presented, and     communicating the complete content including the message digest to the client in response only after having established in the proxy server assigned to said data source (SA) in the comparative check of the message digest (MD) that no identical message digest has already been cached, the content being cached together with the message digest serving later identification as the key in the cache of the proxy assigned to the client.        
 
         [0019]     Employing a proxy system which can be termed a split proxy with cache and hashing functionality, and checking and comparing the data by way of the message digest as may be configured similar to the check sum e.g. RFC 1321 (MD5) results in total achievement of the cited object without requiring any cooperation of the data source operators.  
         [0020]     The method in accordance with the invention now makes it possible for the end user and/or the operator of the gateway networks to fully exploit the latter in thus saving time and money as is particularly of major significance where mobile wireless networks are concerned.  
         [0021]     The method in accordance with the invention comprises a special working architecture, algorithm and protocols in a combination which achieves the object especially where typical wireless scenarios are involved. The method is particularly effective when assuming for a wireless access link the communication capacity is significantly smaller than and the latency significantly higher than within an adjoining core network.  
         [0022]     When this is the case, it is now feasible and beneficial to attempt validation of all content even when this is not explicitly approved for caching, the method in accordance with the invention no longer making use of URLs or URIs to identify and index data. Instead, advantageous use is made of message digestion algorithms such as e.g. MD5 and SHA-1 with a proven record of success in facilitating a fast comparison of data for equality. This now makes it possible to check for validity of content without any regard whatsoever of the—potentially dynamically—assigned label of the data.  
         [0023]     Advantageous aspects of the method in accordance with the invention read from the sub-claims relating back to claim  1  directly or indirectly.  
         [0024]     By its proxy, as regards its configuration, the client can now operate to great advantage his mobile wireless information device with access to data services such as e.g. WAP or web as well as to all further services for mobile end devices such as mobile telephones, PDAs or laptops, for example. In this arrangement, communication between the proxy of the client residing within the mobile wireless information device and the proxy server is undertaken either via a PLMN or via a resident proxy communicating via a short-range wireless system such as e.g. Bluetooth or W-LAN to the proxy of the client and POTS to which both the resident proxy and the proxy server assigned to the data source are linked. 
     
    
     DESCRIPTION OF THE DRAWINGS  
       [0025]     The method in accordance with the invention will now be detailed with reference to the drawings in which:  
         [0026]      FIG. 1  is a block diagram illustrating the case as known and already described of an example with two different URLs involving identical dynamically generated content,  
         [0027]      FIG. 2  is a block diagram illustrating the case as likewise known and already described of an example with two different URLs involving identical statically generated content,  
         [0028]      FIG. 3  is a diagrammatic illustration, by way of example, of the full architecture of a system for implementing the method in accordance with the invention,  
         [0029]      FIG. 4  is a chart illustrating the sequence of a hash protocol in making use of the method in accordance with the invention if no identical content was previously communicated by a server application to a client application,  
         [0030]      FIG. 5  is a chart illustrating the sequence of a hash protocol in making use of the method in accordance with the invention when identical content was previously communicated by a server application to a client application with cache,  
         [0031]      FIG. 6  is a graph illustrating the duration of the hash computing, in other words the message digest computing time, as a function of the data length for cases as realized in Table 1 with application of two different message digestion algorithms, namely MD5 and SHA-1. 
     
    
     DESCRIPTION OF THE INVENTION  
       [0032]     Referring now to  FIG. 3  there is illustrated an example of the architecture of three wireless information devices WID a , WID b  and WID c  each containing in the corresponding device configuration a client application CA and a mobile proxy MP. The client wireless information devices WID a , WID b  and WID c  may be mobile telephones, PDAs or laptops, for example, all wireless linked. In this arrangement the mobile proxy MP of the first client information device WID a  communicates via a Bluetooth short range wireless link BT with a resident proxy RP of a local service point LSP i .  
         [0033]     The mobile proxy MP of the second client information device WID b  communicates via a Bluetooth short range wireless link BT with the resident proxy RP of the local service point LSP i  and via a W-LAN wireless link in accordance with IEEE 802.11 with the resident proxy RP of a second local service point LSP j .  
         [0034]     The third client information device WID c  with its mobile proxy MP does not reach a local service point, it instead communicating via a PLMN comprising GPRS functionality in this example of the architecture directly with a central proxy server CP assigned to three different server application SA with fetchable data sources to three host servers to which it is wired. Also wired to this central proxy server CP are the two local service points LSPI and LSP j  with their resident proxies RP. For statistics purposes a situation statistics server SSS is further linked to the central proxy server CP.  
         [0035]     Referring now to  FIG. 4  and  FIG. 5  there is illustrated how the five entities CA (client application), MP (mobile proxy), RP (resident proxy), CP (central proxy server) and SA (server application) intercommunicate in accordance with a proposed hash protocol expediently put to use in clearing the aforementioned disadvantageous effects in generating dynamic content. It is important to bear in mind the considerable differences in the date rate, latency and costs involved in the various communication links.  
         [0036]     The client application CA and mobile proxy MP reside on the same device so that it can be assumed that high data rates are achieved, whereas due to the character of the wireless medium the link between the mobile proxy MP and resident proxy RP will always be slower than all other links. These differences in the data rate and latency are indicated in  FIG. 4  and  FIG. 5  in which, for a better reference, events or steps of interest are identified by an encircled number, e.g. {circle over (1)} in the text and FIGs.  
         [0037]     Beginning at {circle over (1)} it is here that the client application CA sends a request Req 1  to the mobile proxy MP residing on the same device. The mobile proxy MP includes a unique identity ID WID  identifying the wireless information device WID in the header and forwards at {circle over (2)} the request Req 1  via a short wireless short-range communication to the resident proxy RP at a reachable local service point. From the resident proxy RP the request Req 1  is forwarded at {circle over (3)} unchanged to the central proxy server CP which inturn forwards at {circle over (4)} the request Req 1  to the actual server application SA at {circle over (5)}. If no local service point is in reach, the resident proxy RP is skipped and the request Req 1  is forwarded directly via a PLMN and the appropriate gateways to the internet to the central proxy server CP at {circle over (4)}.  
         [0038]     The server application SA receives at {circle over (4)} and parses at {circle over (5)} the request Req 1 , generating the response Resp 1  with the requested data in thus starting to send this data—which in this example is the data of a picture—to the central proxy server CP. Typically there is no need to include the identity ID WID  in the response Resp 1  since all communications inbetween are connection-oriented, thus automatically associating the response Resp 1  with the corresponding request.  
         [0039]     Although this applies as common practice for transporting HTTP traffic over TCP this is not mandatory since HTTP messages can be transported also via connection-less (e.g. UDP) oder message-oriented (e.g. e-mail) channels between proxys. In this case the method in accordance with the invention requires including in the responses also information identifying each wireless information device WID.  
         [0040]     At {circle over (6)} the central proxy server CP waits until the complete response Resp 1  has arrived, it then computing the message digest of the data included in the response Resp 1 . For each wireless information device WID served by the central proxy server CP the latter lists the message digests of all response data sent to the particular wireless information device WID. If the data was not sent before to the wireless information device WID, its message digest MD is not listed.  
         [0041]     Referring now to  FIG. 4  there is illustrated how in this case how at {circle over (6)} the central proxy server CP includes the message digest in the list and in the response header in sending the complete response Resp 1  to the resident proxy RP which implements no operation whatsoever on the data or headers, it starting directly the procedure {circle over (7)} in forwarding the data streaming from the resident proxy RP to the mobile proxy MP between which communication is relatively slow, as already mentioned. This is why the data arriving from the central proxy server CP needs to be queued.  
         [0042]     Once the initial bytes of the response Resp 1  have arrived at the mobile proxy MP at {circle over (8)}, forwarding them to the client application CA is commenced. This link is usually the fastest in the communication chain, due to the fact that transport is by interprocess communication within a device, so that, as a rule, no, or only brief, queuing is needed. The included message digest is stored in a table together with the response data for potential later reuse. After this, the complete response Resp 1  is forwarded at {circle over (9)} to the client application CA. The client application CA can then present the results to the user or parse the description of the document for references pointing to embedded objects.  
         [0043]     Referring now to  FIG. 5  there is illustrated how despite the complication in applying the method in accordance with the invention the communication load is reduced.  
         [0044]     When at some later point in time the client application CA wishes to output a further data communication request Req k , the steps {circle over (1)} to {circle over (4)} relating to handling a request Req k  are identical to those in the case as already explained with reference to  FIG. 1 , except that, this time, data included in the response Resp k  at {circle over (5)} are an exact copy, in other words, the same picture in the example as described, of the data already transported once before to the wireless information device WID.  
         [0045]     This circumstance is detected, since in the central proxy server CP the message digest MD of this response Resp k  is computed and, this time, is found in the list held for the particular wireless information device WID in the central proxy server CP. The central proxy server CP then generates at {circle over (6)} a response with a header signalizing the fact that the data can be found (HIT) on the particular wireless information device WID and with the message digest (Resp 1 ).  
         [0046]     This brief response HIT, MD (Resp 1 ) is sent at {circle over (6)} from the central proxy server CP to the resident proxy RP, forwarded at {circle over (7)} from the resident proxy RP to the mobile proxy MP where it is received at {circle over (8)}. The mobile proxy MP uses the message digest MD (Resp 1 ) as a key for retrieving the data from its cache and delivers it as a full response Resp 1  to the client application CA where the content is then presented at {circle over (9)} in the form of the picture in this example.  
         [0047]     It is to be emphasized that no cooperation of server applications SA is needed to deploy the method in accordance with the invention.  
         [0048]     Although it needs to be taken into account that computing the message digest will consume resources and time in thus introducing an additional latency, trials have already been performed, as listed in Table 1, for two different message digest algorithms, namely MD5 and SHA-1 on three different platforms for assessing this unwanted additional latency.  
                           TABLE 1                       Host-Server                   (SA)   Processor   Memory   Operating system                   onyx   Pentium IV    512 MByte   MS Windows 2000           2 GHz       carla   Pentium IV    512 MByte   Linux 2.4           2 GHz       goldeneye   UltraSPARC-IIe   2048 MByte   SunOS 5.8           500 MHz                  
 
         [0049]     Of particular interest is the type of increase (linear, polynomial, exponential, . . . ) in computation time as a function of message digest size. The results are plotted in the graph as shown in  FIG. 6  proving that the time needed for computing message digests (ms) is moderate with only a linear increase with increasing message digest size (byte). Indeed, it is obvious that MD5 works marginally faster than SHA-1 on all platforms due to, in part, the smaller message digest size for MD5. In all, the results show that the delays because of the computing time for any given message digest size are significantly smaller than the delays caused by limiting the data transmission rate.  
         [0050]     It is thus to be viewed advisable to employ the method working in accordance with the invention for cache validation especially in dynamic content generation and service provisioning for mobile devices. Without this constituting any preference, MD5 was selected as the default message digest algorithm within a proposed protocol because of its adequate length, its slightly faster computation time and its availability for a wealth of different platforms.