US20060167969A1 - Data caching based on data contents - Google Patents
Data caching based on data contents Download PDFInfo
- Publication number
- US20060167969A1 US20060167969A1 US11/046,408 US4640805A US2006167969A1 US 20060167969 A1 US20060167969 A1 US 20060167969A1 US 4640805 A US4640805 A US 4640805A US 2006167969 A1 US2006167969 A1 US 2006167969A1
- Authority
- US
- United States
- Prior art keywords
- response
- data
- proxy server
- copy
- storage device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/564—Enhancement of application control based on intercepted application data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
Definitions
- the present invention relates to data caching, and more particularly, to compressed Internet data caching based on data contents.
- a client machine may request identical data using different URLs (Uniform Resource Locator).
- URLs Uniform Resource Locator
- a PC personal computer
- a first web page from a first website and later request a second web page from a second website, wherein the first and second web pages contain identical pieces of information (e.g., identical pictures).
- the same data will be sent to the PC twice, resulting in a waste of network bandwidth.
- the present invention provides a method, comprising the steps of (a) sending, by a proxy server, a data request to a target server; and (b) in response to the proxy server receiving a first response portion of a data response from the target server, examining, by the proxy server, the first response portion so as to determine whether a data storage device contains a copy of the data response.
- the present invention also provides a computer program product, comprising a computer usable medium having a computer readable program code embodied therein, said computer readable program code comprising an algorithm adapted to implement a method for data transfer, said method comprising the steps of (a) sending, by a proxy server, a data request to a target server; and (b) in response to the proxy server receiving a first response portion of a data response from the target server, examining, by the proxy server, the first response portion so as to determine whether a data storage device contains a copy of the data response.
- the present invention also provides a method for deploying computing infrastructure, comprising integrating computer-readable code into a computing system, wherein the code in combination with the computing system is capable of performing the steps of (a) sending, by a proxy server, a data request to a target server; and (b) in response to the proxy server receiving a first response portion of a data response from the target server, examining, by the proxy server, the first response portion so as to determine whether a data storage device contains a copy of the data response.
- the present invention also provides method, comprising the steps of (a) sending, by a proxy server, a data request to a target server, (b) in response to the target server receiving the data request, sending, by the target server, a data packet of a data response to the proxy server, ⁇ circle around (c) ⁇ in response to the proxy server receiving the data packet, examining, by the proxy server, a header of the data packet so as to determine whether the data response is of a compressed graphic format; (d) in response to the proxy server determining that the data response is of the compressed graphic format, examining, by the proxy server, the header so as to determine whether the data response comprises more than one packet; and (e) in response to the proxy server determining that the data response comprises more than one packet, examining, by the proxy server, a data portion of the data packet so as to determine whether a data storage device contains a copy of the data response.
- the present invention also provides a method and structure, in which identical pieces of information at different URLs are sent to a client machine in a way that uses less network (internet) bandwidth than in the prior art.
- FIG. 1 illustrates a system, in accordance with embodiments of the present invention.
- FIG. 2 illustrates a flow chart of a method for operating the system of FIG. 1 , in accordance with embodiments of the present invention.
- FIG. 3A illustrates a packet that can be transmitted in the system of FIG. 1 , in accordance with embodiments of the present invention.
- FIG. 3B illustrates a look-up table that can be used with the system of FIG. 1 , in accordance with embodiments of the present invention.
- FIG. 4 illustrates one embodiment of a proxy server of the system of FIG. 1 , in accordance with embodiments of the present invention.
- File (or data) compression is an art of substituting long, repeating sequences of bytes in the file by a short reference to a dictionary.
- the short reference to the dictionary is referred to as the compressed file.
- the inventors of the present invention have observed that if two beginning portions of two well-compressed files are identical, the two well-compressed files are also identical. “Well compressed” means data cannot be substantially compressed any further.
- a JPEG file is well-compressed (JPEG is a digital image format from Joint Photographic Experts Group).
- JPEG is a digital image format from Joint Photographic Experts Group
- the present invention can be generally stated in a context of a communication between a proxy server and a target server as follows.
- the proxy server can determine whether the response is a well-compressed file. If so, the proxy server can use the beginning portion to search in a look-up table to determine whether the proxy server contains a cached copy of the response. If so, the proxy server can terminate communication with the target server and therefore save connection bandwidth of the network connection between the target server and the proxy server.
- Different embodiments of the present invention will be discussed infra.
- FIG. 1 illustrates a system 100 , in accordance with embodiments of the present invention.
- the system 100 can illustratively comprise a target server 110 , an interconnect network (e.g., the internet) 120 , a proxy server 130 , and a client machine 140 .
- FIG. 2 illustrates a flow chart of a method 200 for operating the system 100 of FIG. 1 , in accordance with embodiments of the present invention.
- the method 200 can start with a step 210 in which the client machine 140 sends a data request to the proxy server 130 .
- the data request specifically indicates the target server 110 as the destination of the data request.
- step 215 in response to receiving the data request from the client machine 140 , the proxy server 130 forwards the data request to the target server 110 via the interconnect network 120 .
- step 220 in response to receiving the data request from the proxy server 130 , the target server 110 sends the first packet of the data response to the proxy server 130 via the interconnect network 120 .
- the proxy server 130 determines whether the data response contains, illustratively, JPEG data.
- the interconnect network 120 can comprise the internet, and the first packet conforms to the TCP/IP protocol (Transmission Control Protocol/Internet Protocol).
- FIG. 3A illustrates one embodiment of the first packet (hereafter referred to the first packet 310 ).
- the first packet 310 can comprise a header 320 and a data portion 330 .
- the proxy server 130 can determine whether the data response contains JPEG data by examining a data type field 320 a of the header 320 of the first packet 310 .
- the method 200 can proceed to step 235 .
- the data response can be sent from the target server 110 to the client machine 140 using any conventional process.
- the target server 110 can send the remainder of the data response to the proxy server 130 via the interconnect network 120 .
- the proxy server 130 can forward the entire data response (i.e., the first packet and the remainder of the data response) to the client machine 140 .
- step 225 if the proxy server 130 determines that the data response contains JPEG data, the method 200 can proceed to step 230 .
- step 230 the proxy server 130 further determines whether the data response contains more than one packet. The proxy server 130 can determine whether the data response contains more than one packet by examining the data-length field 320 b ( FIG. 3A ) of the header 320 of the first packet 310 .
- the method 200 can proceed to step 235 .
- the data response can be sent to the client machine 140 using any conventional process. For instance, the proxy server 130 can simply forward the entire data response (i.e., the first packet) to the client machine 140 .
- step 230 if the proxy server 130 determines that the data response contains more than one packet, the method 200 proceeds to step 240 .
- step 240 the proxy server 130 determines whether the proxy server 130 contains a cached copy of the data response by examining the first packet.
- the proxy server 130 can maintain a look-up table 360 ( FIG. 3B ) which contains multiple entries. Each entry of the look-up table 360 ( FIG. 3B ) comprises a signature and an associated data response address of a data response which the proxy server 130 has earlier received and stored. The way in which the proxy server 130 builds and updates the look-up table 360 ( FIG. 3B ) will be described later.
- the proxy server 130 can search the look-up table 360 ( FIG. 3B ) for any currently existing signature which is identical to the just generated signature. If there is a hit (i.e., match), the proxy server 130 can determine that the proxy server 130 already contains a cached copy of the data response. As a result, the proxy server 130 can send a communication termination message to the target server 110 (step 245 ) so as to terminate the communication between the proxy server 130 and the target server 110 , and thus prevent the target server from sending the subsequent packets of the data response, eventually saving the Internet bandwidth. Then, the proxy server 130 can send a cached copy of the data response (which the proxy server 130 has earlier stored) to the client machine 140 (step 255 ).
- the proxy server 130 finds that signature 1 in the look-up table 360 ( FIG. 3B ) is identical to the just generated signature (step 240 ). As a result, the proxy server 130 can determine that the proxy server 130 contains a cached copy of the data response. Then, the proxy server 130 can send the communication termination message to the target server 110 (step 245 ) and can send the associated data response 1 (stored at the data response 1 's address) to the client machine 140 (step 255 ). Here, the proxy server 130 provides the client machine 140 with a cached copy of the data response 1 without receiving the entire data response from the target server 110 via the interconnect network 120 . As a result, the bandwidth of the interconnect network 120 (or the internet 120 , in one embodiment) can be used for other communications.
- FIG. 4 illustrates one embodiment of the proxy server 130 of FIG. 1 .
- the proxy server 130 comprises a processor 91 , an input device 92 coupled to the processor 91 , an output device 93 coupled to the processor 91 , memory devices 94 and 95 each coupled to the processor 91 , a cache 81 coupled to the processor 91 , and network interfaces 82 a and 82 b each coupled to the processor 91 .
- the cache 81 can be used to store the data responses which the proxy server 130 has received.
- the look-up table 360 ( FIG. 3B ) can be stored in the memory devices 94 and 95 or in the cache 81 .
- the input device 92 may be, inter alia, a keyboard, a mouse, etc.
- the output device 93 may be, inter alia, a printer, a plotter, a computer screen, a magnetic tape, a removable hard disk, a floppy disk, etc.
- the memory devices 94 and 95 may be, inter alia, a hard disk, a floppy disk, a magnetic tape, an optical storage such as a compact disc (CD) or a digital video disc (DVD), a dynamic random access memory (DRAM), a read-only memory (ROM), etc.
- the memory device 95 includes a computer code 97 .
- the computer code 97 includes an algorithm for performing the tasks of the proxy server 130 of FIG. 130 .
- the processor 91 executes the computer code 97 .
- the memory device 94 includes input data 96 .
- the input data 96 includes input required by the computer code 97 .
- the output device 93 displays output from the computer code 97 . Either or both memory devices 94 and 95 (or one or more additional memory devices not shown in FIG.
- a computer usable medium or a computer readable medium or a program storage device
- the computer readable program code comprises the computer code 97
- a computer program product (or, alternatively, an article of manufacture) of the proxy server 130 may comprise said computer usable medium (or said program storage device).
- FIG. 4 shows the proxy server 130 as a particular configuration of hardware and software
- any configuration of hardware and software may be utilized for the purposes stated supra in conjunction with the particular proxy server 130 of FIG. 4 .
- the memory devices 94 and 95 may be portions of a single memory device rather than separate memory devices.
- the proxy server 130 can determine that the proxy server 130 does not contain a cached copy of the data response. Then, the proxy server 130 can receive the remainder of the data response from the target server 110 (step 250 ) and store the entire data response in, illustratively, its cache 430 ( FIG. 4 ). In addition, in step 250 , the proxy server 130 can update the look-up table 360 ( FIG. 3B ) by adding a new entry in the look-up table 360 ( FIG. 3B ).
- the signature field of the new entry can contain the just generated signature, and the data response address field of the new entry can contain the address of the data response in the cache 430 ( FIG. 4 ). Then, the proxy server 130 can send a copy of the data response to the client machine 140 (step 255 ).
- the target server 110 in response to receiving a data request from the proxy server 130 , can send only a portion of the requested data response to the proxy server 130 .
- the proxy server 130 then examines the portion of the data response to determine whether the proxy server 130 contains a cached copy of the data response. If the proxy server 130 determines that the proxy server 130 contains a cached copy of the data response, the proxy server 130 terminates communication with the target server 110 and sends a cached copy of the data response to the client machine 140 .
- the proxy server 130 determines that the proxy server 130 does not contain a cached copy of the data response, then the proxy server 130 (a) receives the remainder of the data response from the target server 110 , (b) stores the entire data response, ⁇ circle around (c) ⁇ updates the look-up table 360 ( FIG. 3B ) accordingly, and (d) sends a copy of the data response to the client machine 140 .
- the proxy server 130 can be included in the client machine 140 .
- a PC personal computer running a web browser can utilize this embodiment. That is, if after receiving a portion of a web server's data response, the PC finds that the PC has a cached copy of the web server's data response, the PC can use the cached copy of the data response which the PC has earlier stored without downloading the entire data response from the web server via the internet.
- the present invention may help save connection bandwidth if the data portions of the data response is in JPEG format (step 225 of FIG. 2 ).
- the present invention actually helps save connection bandwidth if the method 200 ( FIG. 2 ) proceeds through the steps 225 , 230 , 240 , 245 , and 255 .
- the present invention may help save connection bandwidth if the data portions of the data response are in any data format in which a portion of the data response uniquely identifies the entire data response. This is the case when the data portion of the data response is of a compressed graphic format such as JPEG.
- a file is considered to be of a compressed graphic format if a portion of the file uniquely identifies the entire file.
- signatures are used in the look-up table 360 ( FIG. 3B ).
- the M first bits (M being a positive integer) of the data portion of the first packet received from the target server 110 can be used to identify the associated data response stored by the proxy server 130 ( FIG. 1 ).
- each entry of the look-up table 360 ( FIG. 3B ) can comprise an M-first-bits field and a data response address field, wherein the M-first-bits field contains the M first bits of the data portion of the first packet of the associated data response.
Abstract
Description
- 1. Technical Field
- The present invention relates to data caching, and more particularly, to compressed Internet data caching based on data contents.
- 2. Related Art
- Typically, from time to time, a client machine may request identical data using different URLs (Uniform Resource Locator). For example, a PC (personal computer) may request a first web page from a first website and later request a second web page from a second website, wherein the first and second web pages contain identical pieces of information (e.g., identical pictures). As a result, the same data will be sent to the PC twice, resulting in a waste of network bandwidth.
- As a result, there is a need for a method and structure, in which identical pieces of information at different URLs are sent to the client machine in a way that uses less network (internet) bandwidth than in the prior art.
- The present invention provides a method, comprising the steps of (a) sending, by a proxy server, a data request to a target server; and (b) in response to the proxy server receiving a first response portion of a data response from the target server, examining, by the proxy server, the first response portion so as to determine whether a data storage device contains a copy of the data response.
- The present invention also provides a computer program product, comprising a computer usable medium having a computer readable program code embodied therein, said computer readable program code comprising an algorithm adapted to implement a method for data transfer, said method comprising the steps of (a) sending, by a proxy server, a data request to a target server; and (b) in response to the proxy server receiving a first response portion of a data response from the target server, examining, by the proxy server, the first response portion so as to determine whether a data storage device contains a copy of the data response.
- The present invention also provides a method for deploying computing infrastructure, comprising integrating computer-readable code into a computing system, wherein the code in combination with the computing system is capable of performing the steps of (a) sending, by a proxy server, a data request to a target server; and (b) in response to the proxy server receiving a first response portion of a data response from the target server, examining, by the proxy server, the first response portion so as to determine whether a data storage device contains a copy of the data response.
- The present invention also provides method, comprising the steps of (a) sending, by a proxy server, a data request to a target server, (b) in response to the target server receiving the data request, sending, by the target server, a data packet of a data response to the proxy server, {circle around (c)} in response to the proxy server receiving the data packet, examining, by the proxy server, a header of the data packet so as to determine whether the data response is of a compressed graphic format; (d) in response to the proxy server determining that the data response is of the compressed graphic format, examining, by the proxy server, the header so as to determine whether the data response comprises more than one packet; and (e) in response to the proxy server determining that the data response comprises more than one packet, examining, by the proxy server, a data portion of the data packet so as to determine whether a data storage device contains a copy of the data response.
- The present invention also provides a method and structure, in which identical pieces of information at different URLs are sent to a client machine in a way that uses less network (internet) bandwidth than in the prior art.
-
FIG. 1 illustrates a system, in accordance with embodiments of the present invention. -
FIG. 2 illustrates a flow chart of a method for operating the system ofFIG. 1 , in accordance with embodiments of the present invention. -
FIG. 3A illustrates a packet that can be transmitted in the system ofFIG. 1 , in accordance with embodiments of the present invention. -
FIG. 3B illustrates a look-up table that can be used with the system ofFIG. 1 , in accordance with embodiments of the present invention. -
FIG. 4 illustrates one embodiment of a proxy server of the system ofFIG. 1 , in accordance with embodiments of the present invention. - File (or data) compression is an art of substituting long, repeating sequences of bytes in the file by a short reference to a dictionary. The short reference to the dictionary is referred to as the compressed file. The inventors of the present invention have observed that if two beginning portions of two well-compressed files are identical, the two well-compressed files are also identical. “Well compressed” means data cannot be substantially compressed any further. For instance, a JPEG file is well-compressed (JPEG is a digital image format from Joint Photographic Experts Group). In other words, the inventors of the present invention finds that a beginning portion of a well-compressed file can uniquely and correctly identify the entire well-compressed file. As a result, the present invention can be generally stated in a context of a communication between a proxy server and a target server as follows. When the proxy server receives only a beginning portion of a response from the target server, the proxy server can determine whether the response is a well-compressed file. If so, the proxy server can use the beginning portion to search in a look-up table to determine whether the proxy server contains a cached copy of the response. If so, the proxy server can terminate communication with the target server and therefore save connection bandwidth of the network connection between the target server and the proxy server. Different embodiments of the present invention will be discussed infra.
-
FIG. 1 illustrates asystem 100, in accordance with embodiments of the present invention. Thesystem 100 can illustratively comprise atarget server 110, an interconnect network (e.g., the internet) 120, aproxy server 130, and aclient machine 140.FIG. 2 illustrates a flow chart of amethod 200 for operating thesystem 100 ofFIG. 1 , in accordance with embodiments of the present invention. - With reference to
FIGS. 1 and 2 , themethod 200 can start with astep 210 in which theclient machine 140 sends a data request to theproxy server 130. The data request specifically indicates thetarget server 110 as the destination of the data request. - Next, in
step 215, in response to receiving the data request from theclient machine 140, theproxy server 130 forwards the data request to thetarget server 110 via theinterconnect network 120. - Next, in
step 220, in response to receiving the data request from theproxy server 130, thetarget server 110 sends the first packet of the data response to theproxy server 130 via theinterconnect network 120. - Next, in
step 225, in response to receiving the first packet, theproxy server 130 determines whether the data response contains, illustratively, JPEG data. In one embodiment, theinterconnect network 120 can comprise the internet, and the first packet conforms to the TCP/IP protocol (Transmission Control Protocol/Internet Protocol).FIG. 3A illustrates one embodiment of the first packet (hereafter referred to the first packet 310). Thefirst packet 310 can comprise aheader 320 and adata portion 330. Theproxy server 130 can determine whether the data response contains JPEG data by examining adata type field 320a of theheader 320 of thefirst packet 310. - With reference back to
FIGS. 1 and 2 , if theproxy server 130 determines that the data response does not contain JPEG data, themethod 200 can proceed tostep 235. Instep 235, the data response can be sent from thetarget server 110 to theclient machine 140 using any conventional process. For instance, instep 235, thetarget server 110 can send the remainder of the data response to theproxy server 130 via theinterconnect network 120. Then, theproxy server 130 can forward the entire data response (i.e., the first packet and the remainder of the data response) to theclient machine 140. - In
step 225, if theproxy server 130 determines that the data response contains JPEG data, themethod 200 can proceed tostep 230. Instep 230, theproxy server 130 further determines whether the data response contains more than one packet. Theproxy server 130 can determine whether the data response contains more than one packet by examining the data-length field 320 b (FIG. 3A ) of theheader 320 of thefirst packet 310. - If the
proxy server 130 determines that the data response contains only one packet (i.e., the first packet), themethod 200 can proceed tostep 235. Instep 235, the data response can be sent to theclient machine 140 using any conventional process. For instance, theproxy server 130 can simply forward the entire data response (i.e., the first packet) to theclient machine 140. - In
step 230, if theproxy server 130 determines that the data response contains more than one packet, themethod 200 proceeds tostep 240. Instep 240, theproxy server 130 determines whether theproxy server 130 contains a cached copy of the data response by examining the first packet. - More specifically, the
proxy server 130 can maintain a look-up table 360 (FIG. 3B ) which contains multiple entries. Each entry of the look-up table 360 (FIG. 3B ) comprises a signature and an associated data response address of a data response which theproxy server 130 has earlier received and stored. The way in which theproxy server 130 builds and updates the look-up table 360 (FIG. 3B ) will be described later. For now, instep 240, theproxy server 130 can apply a Hash function to the first N bytes of the data portion of the first packet so as to generate a signature, wherein N is a pre-specified positive integer. N should not be too small, else there is a high likelihood of theproxy server 130 providing incorrect data response to theclient machine 140. In addition, N should not be larger than the maximum size of a packet less the header size. N can be in a range of 1,000 d-1,300 d (d=decimal). - Next, the
proxy server 130 can search the look-up table 360 (FIG. 3B ) for any currently existing signature which is identical to the just generated signature. If there is a hit (i.e., match), theproxy server 130 can determine that theproxy server 130 already contains a cached copy of the data response. As a result, theproxy server 130 can send a communication termination message to the target server 110 (step 245) so as to terminate the communication between theproxy server 130 and thetarget server 110, and thus prevent the target server from sending the subsequent packets of the data response, eventually saving the Internet bandwidth. Then, theproxy server 130 can send a cached copy of the data response (which theproxy server 130 has earlier stored) to the client machine 140 (step 255). - For example, assume that the
proxy server 130 finds thatsignature 1 in the look-up table 360 (FIG. 3B ) is identical to the just generated signature (step 240). As a result, theproxy server 130 can determine that theproxy server 130 contains a cached copy of the data response. Then, theproxy server 130 can send the communication termination message to the target server 110 (step 245) and can send the associated data response 1 (stored at thedata response 1's address) to the client machine 140 (step 255). Here, theproxy server 130 provides theclient machine 140 with a cached copy of thedata response 1 without receiving the entire data response from thetarget server 110 via theinterconnect network 120. As a result, the bandwidth of the interconnect network 120 (or theinternet 120, in one embodiment) can be used for other communications. -
FIG. 4 illustrates one embodiment of theproxy server 130 ofFIG. 1 . Theproxy server 130 comprises aprocessor 91, aninput device 92 coupled to theprocessor 91, anoutput device 93 coupled to theprocessor 91,memory devices processor 91, acache 81 coupled to theprocessor 91, andnetwork interfaces processor 91. - In one embodiment, the
cache 81 can be used to store the data responses which theproxy server 130 has received. The look-up table 360 (FIG. 3B ) can be stored in thememory devices cache 81. Theinput device 92 may be, inter alia, a keyboard, a mouse, etc. Theoutput device 93 may be, inter alia, a printer, a plotter, a computer screen, a magnetic tape, a removable hard disk, a floppy disk, etc. Thememory devices memory device 95 includes acomputer code 97. Thecomputer code 97 includes an algorithm for performing the tasks of theproxy server 130 ofFIG. 130 . Theprocessor 91 executes thecomputer code 97. Thememory device 94 includesinput data 96. Theinput data 96 includes input required by thecomputer code 97. Theoutput device 93 displays output from thecomputer code 97. Either or bothmemory devices 94 and 95 (or one or more additional memory devices not shown inFIG. 4 ) may be used as a computer usable medium (or a computer readable medium or a program storage device) having a computer readable program code embodied therein and/or having other data stored therein, wherein the computer readable program code comprises thecomputer code 97. Generally, a computer program product (or, alternatively, an article of manufacture) of theproxy server 130 may comprise said computer usable medium (or said program storage device). - While
FIG. 4 shows theproxy server 130 as a particular configuration of hardware and software, any configuration of hardware and software, as would be known to a person of ordinary skill in the art, may be utilized for the purposes stated supra in conjunction with theparticular proxy server 130 ofFIG. 4 . For example, thememory devices - With reference back to
FIGS. 1 and 2 , again instep 240, if there is no match (i.e., all the currently existing signatures in the look-up table 360 (FIG. 3B ) are different from the just generated signature), then theproxy server 130 can determine that theproxy server 130 does not contain a cached copy of the data response. Then, theproxy server 130 can receive the remainder of the data response from the target server 110 (step 250) and store the entire data response in, illustratively, its cache 430 (FIG. 4 ). In addition, instep 250, theproxy server 130 can update the look-up table 360 (FIG. 3B ) by adding a new entry in the look-up table 360 (FIG. 3B ). The signature field of the new entry can contain the just generated signature, and the data response address field of the new entry can contain the address of the data response in the cache 430 (FIG. 4 ). Then, theproxy server 130 can send a copy of the data response to the client machine 140 (step 255). - The embodiments above are for illustration only. In general, in response to receiving a data request from the
proxy server 130, thetarget server 110 can send only a portion of the requested data response to theproxy server 130. Theproxy server 130 then examines the portion of the data response to determine whether theproxy server 130 contains a cached copy of the data response. If theproxy server 130 determines that theproxy server 130 contains a cached copy of the data response, theproxy server 130 terminates communication with thetarget server 110 and sends a cached copy of the data response to theclient machine 140. If theproxy server 130 determines that theproxy server 130 does not contain a cached copy of the data response, then the proxy server 130 (a) receives the remainder of the data response from thetarget server 110, (b) stores the entire data response, {circle around (c)} updates the look-up table 360 (FIG. 3B ) accordingly, and (d) sends a copy of the data response to theclient machine 140. - The present invention is not limited to the above embodiments. With reference to
FIG. 1 , theproxy server 130 can be included in theclient machine 140. For instance, a PC (personal computer) running a web browser can utilize this embodiment. That is, if after receiving a portion of a web server's data response, the PC finds that the PC has a cached copy of the web server's data response, the PC can use the cached copy of the data response which the PC has earlier stored without downloading the entire data response from the web server via the internet. - In the embodiments described above, the present invention may help save connection bandwidth if the data portions of the data response is in JPEG format (step 225 of
FIG. 2 ). The present invention actually helps save connection bandwidth if the method 200 (FIG. 2 ) proceeds through thesteps - In the embodiments above, signatures are used in the look-up table 360 (
FIG. 3B ). Alternatively, any value that can be uniquely associated with the data response can be used. For instance, the M first bits (M being a positive integer) of the data portion of the first packet received from thetarget server 110 can be used to identify the associated data response stored by the proxy server 130 (FIG. 1 ). Accordingly, each entry of the look-up table 360 (FIG. 3B ) can comprise an M-first-bits field and a data response address field, wherein the M-first-bits field contains the M first bits of the data portion of the first packet of the associated data response. - While particular embodiments of the present invention have been described herein for purposes of illustration, many modifications and changes will become apparent to those skilled in the art. Accordingly, the appended claims are intended to encompass all such modifications and changes as fall within the true spirit and scope of this invention.
Claims (30)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/046,408 US7716306B2 (en) | 2005-01-25 | 2005-01-25 | Data caching based on data contents |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/046,408 US7716306B2 (en) | 2005-01-25 | 2005-01-25 | Data caching based on data contents |
Publications (2)
Publication Number | Publication Date |
---|---|
US20060167969A1 true US20060167969A1 (en) | 2006-07-27 |
US7716306B2 US7716306B2 (en) | 2010-05-11 |
Family
ID=36698202
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/046,408 Active 2029-03-13 US7716306B2 (en) | 2005-01-25 | 2005-01-25 | Data caching based on data contents |
Country Status (1)
Country | Link |
---|---|
US (1) | US7716306B2 (en) |
Cited By (70)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060184656A1 (en) * | 2005-02-14 | 2006-08-17 | Reactivity, Inc. | Proxy server caching |
US20080033962A1 (en) * | 2006-04-07 | 2008-02-07 | Naoko Yamamoto | Proxy service providing apparatus, control method, and network system |
US7685298B2 (en) * | 2005-12-02 | 2010-03-23 | Citrix Systems, Inc. | Systems and methods for providing authentication credentials across application environments |
US20120096114A1 (en) * | 2009-04-09 | 2012-04-19 | Research In Motion Limited | Method and system for the transport of asynchronous aspects using a context aware mechanism |
US20120278431A1 (en) * | 2011-04-27 | 2012-11-01 | Michael Luna | Mobile device which offloads requests made by a mobile application to a remote entity for conservation of mobile device and network resources and methods therefor |
US8326985B2 (en) | 2010-11-01 | 2012-12-04 | Seven Networks, Inc. | Distributed management of keep-alive message signaling for mobile network resource conservation and optimization |
US8356080B2 (en) | 2011-04-19 | 2013-01-15 | Seven Networks, Inc. | System and method for a mobile device to use physical storage of another device for caching |
US8364181B2 (en) | 2007-12-10 | 2013-01-29 | Seven Networks, Inc. | Electronic-mail filtering for mobile devices |
US8412675B2 (en) | 2005-08-01 | 2013-04-02 | Seven Networks, Inc. | Context aware data presentation |
US8417823B2 (en) | 2010-11-22 | 2013-04-09 | Seven Network, Inc. | Aligning data transfer to optimize connections established for transmission over a wireless network |
US8438633B1 (en) | 2005-04-21 | 2013-05-07 | Seven Networks, Inc. | Flexible real-time inbox access |
US8468126B2 (en) | 2005-08-01 | 2013-06-18 | Seven Networks, Inc. | Publishing data in an information community |
US8484314B2 (en) | 2010-11-01 | 2013-07-09 | Seven Networks, Inc. | Distributed caching in a wireless network of content delivered for a mobile application over a long-held request |
US8494510B2 (en) | 2008-06-26 | 2013-07-23 | Seven Networks, Inc. | Provisioning applications for a mobile device |
US8549587B2 (en) | 2002-01-08 | 2013-10-01 | Seven Networks, Inc. | Secure end-to-end transport through intermediary nodes |
US8561086B2 (en) | 2005-03-14 | 2013-10-15 | Seven Networks, Inc. | System and method for executing commands that are non-native to the native environment of a mobile device |
US8621075B2 (en) | 2011-04-27 | 2013-12-31 | Seven Metworks, Inc. | Detecting and preserving state for satisfying application requests in a distributed proxy and cache system |
US20140040353A1 (en) * | 2009-01-13 | 2014-02-06 | Viasat, Inc. | Return-link optimization for file-sharing traffic |
US8693494B2 (en) | 2007-06-01 | 2014-04-08 | Seven Networks, Inc. | Polling |
US8700728B2 (en) | 2010-11-01 | 2014-04-15 | Seven Networks, Inc. | Cache defeat detection and caching of content addressed by identifiers intended to defeat cache |
US8750123B1 (en) | 2013-03-11 | 2014-06-10 | Seven Networks, Inc. | Mobile device equipped with mobile network congestion recognition to make intelligent decisions regarding connecting to an operator network |
US8761756B2 (en) | 2005-06-21 | 2014-06-24 | Seven Networks International Oy | Maintaining an IP connection in a mobile network |
US8775631B2 (en) | 2012-07-13 | 2014-07-08 | Seven Networks, Inc. | Dynamic bandwidth adjustment for browsing or streaming activity in a wireless network based on prediction of user behavior when interacting with mobile applications |
US8774844B2 (en) | 2007-06-01 | 2014-07-08 | Seven Networks, Inc. | Integrated messaging |
US8787947B2 (en) | 2008-06-18 | 2014-07-22 | Seven Networks, Inc. | Application discovery on mobile devices |
US8799410B2 (en) | 2008-01-28 | 2014-08-05 | Seven Networks, Inc. | System and method of a relay server for managing communications and notification between a mobile device and a web access server |
US8805334B2 (en) | 2004-11-22 | 2014-08-12 | Seven Networks, Inc. | Maintaining mobile terminal information for secure communications |
US8812695B2 (en) | 2012-04-09 | 2014-08-19 | Seven Networks, Inc. | Method and system for management of a virtual network connection without heartbeat messages |
US8838783B2 (en) | 2010-07-26 | 2014-09-16 | Seven Networks, Inc. | Distributed caching for resource and mobile network traffic management |
US8843153B2 (en) | 2010-11-01 | 2014-09-23 | Seven Networks, Inc. | Mobile traffic categorization and policy for network use optimization while preserving user experience |
US8849902B2 (en) | 2008-01-25 | 2014-09-30 | Seven Networks, Inc. | System for providing policy based content service in a mobile network |
US8861354B2 (en) | 2011-12-14 | 2014-10-14 | Seven Networks, Inc. | Hierarchies and categories for management and deployment of policies for distributed wireless traffic optimization |
US8868753B2 (en) | 2011-12-06 | 2014-10-21 | Seven Networks, Inc. | System of redundantly clustered machines to provide failover mechanisms for mobile traffic management and network resource conservation |
US8874761B2 (en) | 2013-01-25 | 2014-10-28 | Seven Networks, Inc. | Signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols |
US8873411B2 (en) | 2004-12-03 | 2014-10-28 | Seven Networks, Inc. | Provisioning of e-mail settings for a mobile terminal |
US8886176B2 (en) | 2010-07-26 | 2014-11-11 | Seven Networks, Inc. | Mobile application traffic optimization |
US8903954B2 (en) | 2010-11-22 | 2014-12-02 | Seven Networks, Inc. | Optimization of resource polling intervals to satisfy mobile device requests |
US8909202B2 (en) | 2012-01-05 | 2014-12-09 | Seven Networks, Inc. | Detection and management of user interactions with foreground applications on a mobile device in distributed caching |
US8909759B2 (en) | 2008-10-10 | 2014-12-09 | Seven Networks, Inc. | Bandwidth measurement |
US8934414B2 (en) | 2011-12-06 | 2015-01-13 | Seven Networks, Inc. | Cellular or WiFi mobile traffic optimization based on public or private network destination |
USRE45348E1 (en) | 2004-10-20 | 2015-01-20 | Seven Networks, Inc. | Method and apparatus for intercepting events in a communication system |
US20150039674A1 (en) * | 2013-07-31 | 2015-02-05 | Citrix Systems, Inc. | Systems and methods for performing response based cache redirection |
US8966066B2 (en) | 2010-11-01 | 2015-02-24 | Seven Networks, Inc. | Application and network-based long poll request detection and cacheability assessment therefor |
US8984581B2 (en) | 2011-07-27 | 2015-03-17 | Seven Networks, Inc. | Monitoring mobile application activities for malicious traffic on a mobile device |
US9002828B2 (en) | 2007-12-13 | 2015-04-07 | Seven Networks, Inc. | Predictive content delivery |
US9009250B2 (en) | 2011-12-07 | 2015-04-14 | Seven Networks, Inc. | Flexible and dynamic integration schemas of a traffic management system with various network operators for network traffic alleviation |
US9021048B2 (en) | 2010-11-01 | 2015-04-28 | Seven Networks, Inc. | Caching adapted for mobile application behavior and network conditions |
US9021021B2 (en) | 2011-12-14 | 2015-04-28 | Seven Networks, Inc. | Mobile network reporting and usage analytics system and method aggregated using a distributed traffic optimization system |
US9043433B2 (en) | 2010-07-26 | 2015-05-26 | Seven Networks, Inc. | Mobile network traffic coordination across multiple applications |
US9055102B2 (en) | 2006-02-27 | 2015-06-09 | Seven Networks, Inc. | Location-based operations and messaging |
US9060032B2 (en) | 2010-11-01 | 2015-06-16 | Seven Networks, Inc. | Selective data compression by a distributed traffic management system to reduce mobile data traffic and signaling traffic |
US9065765B2 (en) | 2013-07-22 | 2015-06-23 | Seven Networks, Inc. | Proxy server associated with a mobile carrier for enhancing mobile traffic management in a mobile network |
US9077630B2 (en) | 2010-07-26 | 2015-07-07 | Seven Networks, Inc. | Distributed implementation of dynamic wireless traffic policy |
US9161258B2 (en) | 2012-10-24 | 2015-10-13 | Seven Networks, Llc | Optimized and selective management of policy deployment to mobile clients in a congested network to prevent further aggravation of network congestion |
US9173128B2 (en) | 2011-12-07 | 2015-10-27 | Seven Networks, Llc | Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol |
US9203864B2 (en) | 2012-02-02 | 2015-12-01 | Seven Networks, Llc | Dynamic categorization of applications for network access in a mobile network |
US9241314B2 (en) | 2013-01-23 | 2016-01-19 | Seven Networks, Llc | Mobile device with application or context aware fast dormancy |
US9251193B2 (en) | 2003-01-08 | 2016-02-02 | Seven Networks, Llc | Extending user relationships |
US9307493B2 (en) | 2012-12-20 | 2016-04-05 | Seven Networks, Llc | Systems and methods for application management of mobile device radio state promotion and demotion |
US9325662B2 (en) | 2011-01-07 | 2016-04-26 | Seven Networks, Llc | System and method for reduction of mobile network traffic used for domain name system (DNS) queries |
US9326189B2 (en) | 2012-02-03 | 2016-04-26 | Seven Networks, Llc | User as an end point for profiling and optimizing the delivery of content and data in a wireless network |
US9330196B2 (en) | 2010-11-01 | 2016-05-03 | Seven Networks, Llc | Wireless traffic management system cache optimization using http headers |
US9407726B1 (en) * | 2013-03-15 | 2016-08-02 | Juniper Networks, Inc. | Caching objects identified by dynamic resource identifiers |
US9832095B2 (en) | 2011-12-14 | 2017-11-28 | Seven Networks, Llc | Operation modes for mobile traffic optimization and concurrent management of optimized and non-optimized traffic |
US9935740B2 (en) | 2011-06-14 | 2018-04-03 | Viasat, Inc. | Transport protocol for anticipatory content |
US10044637B2 (en) | 2012-06-15 | 2018-08-07 | Viasat, Inc. | Opportunistic delivery of cacheable content in a communications network |
US10187436B2 (en) | 2009-01-13 | 2019-01-22 | Viasat, Inc. | Content set based deltacasting |
US10263899B2 (en) | 2012-04-10 | 2019-04-16 | Seven Networks, Llc | Enhanced customer service for mobile carriers using real-time and historical mobile application and traffic or optimization data associated with mobile devices in a mobile network |
US10270842B2 (en) | 2011-10-25 | 2019-04-23 | Viasat, Inc. | Opportunistic content delivery using delta coding |
US10999060B2 (en) | 2018-10-26 | 2021-05-04 | Advanced New Technologies Co., Ltd. | Data processing method and apparatus |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030023671A1 (en) * | 2001-07-26 | 2003-01-30 | Palm, Inc. | Wireless information transmission system and method |
US20030187923A1 (en) * | 2002-03-27 | 2003-10-02 | Kabushiki Kaisha Toshiba | Data transfer scheme using re-direct response message for reducing network load |
US20060031520A1 (en) * | 2004-05-06 | 2006-02-09 | Motorola, Inc. | Allocation of common persistent connections through proxies |
US7370120B2 (en) * | 2001-12-07 | 2008-05-06 | Propel Software Corporation | Method and system for reducing network latency in data communication |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7328345B2 (en) | 2002-01-29 | 2008-02-05 | Widevine Technologies, Inc. | Method and system for end to end securing of content for video on demand |
US20030204602A1 (en) | 2002-04-26 | 2003-10-30 | Hudson Michael D. | Mediated multi-source peer content delivery network architecture |
US20040093419A1 (en) | 2002-10-23 | 2004-05-13 | Weihl William E. | Method and system for secure content delivery |
-
2005
- 2005-01-25 US US11/046,408 patent/US7716306B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030023671A1 (en) * | 2001-07-26 | 2003-01-30 | Palm, Inc. | Wireless information transmission system and method |
US7370120B2 (en) * | 2001-12-07 | 2008-05-06 | Propel Software Corporation | Method and system for reducing network latency in data communication |
US20030187923A1 (en) * | 2002-03-27 | 2003-10-02 | Kabushiki Kaisha Toshiba | Data transfer scheme using re-direct response message for reducing network load |
US20060031520A1 (en) * | 2004-05-06 | 2006-02-09 | Motorola, Inc. | Allocation of common persistent connections through proxies |
Cited By (108)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8811952B2 (en) | 2002-01-08 | 2014-08-19 | Seven Networks, Inc. | Mobile device power management in data synchronization over a mobile network with or without a trigger notification |
US8549587B2 (en) | 2002-01-08 | 2013-10-01 | Seven Networks, Inc. | Secure end-to-end transport through intermediary nodes |
US9251193B2 (en) | 2003-01-08 | 2016-02-02 | Seven Networks, Llc | Extending user relationships |
USRE45348E1 (en) | 2004-10-20 | 2015-01-20 | Seven Networks, Inc. | Method and apparatus for intercepting events in a communication system |
US8805334B2 (en) | 2004-11-22 | 2014-08-12 | Seven Networks, Inc. | Maintaining mobile terminal information for secure communications |
US8873411B2 (en) | 2004-12-03 | 2014-10-28 | Seven Networks, Inc. | Provisioning of e-mail settings for a mobile terminal |
US20060184656A1 (en) * | 2005-02-14 | 2006-08-17 | Reactivity, Inc. | Proxy server caching |
US7574500B2 (en) * | 2005-02-14 | 2009-08-11 | Reactivity, Inc. | Establishing a cache expiration time to be associated with newly generated output by determining module- specific cache expiration times for a plurality of processing modules |
US8561086B2 (en) | 2005-03-14 | 2013-10-15 | Seven Networks, Inc. | System and method for executing commands that are non-native to the native environment of a mobile device |
US8438633B1 (en) | 2005-04-21 | 2013-05-07 | Seven Networks, Inc. | Flexible real-time inbox access |
US8839412B1 (en) | 2005-04-21 | 2014-09-16 | Seven Networks, Inc. | Flexible real-time inbox access |
US8761756B2 (en) | 2005-06-21 | 2014-06-24 | Seven Networks International Oy | Maintaining an IP connection in a mobile network |
US8468126B2 (en) | 2005-08-01 | 2013-06-18 | Seven Networks, Inc. | Publishing data in an information community |
US8412675B2 (en) | 2005-08-01 | 2013-04-02 | Seven Networks, Inc. | Context aware data presentation |
US7685298B2 (en) * | 2005-12-02 | 2010-03-23 | Citrix Systems, Inc. | Systems and methods for providing authentication credentials across application environments |
US9055102B2 (en) | 2006-02-27 | 2015-06-09 | Seven Networks, Inc. | Location-based operations and messaging |
US20080033962A1 (en) * | 2006-04-07 | 2008-02-07 | Naoko Yamamoto | Proxy service providing apparatus, control method, and network system |
US8135742B2 (en) * | 2006-04-07 | 2012-03-13 | Canon Kabushiki Kaisha | Proxy service providing apparatus, service providing method, and network system |
US8805425B2 (en) | 2007-06-01 | 2014-08-12 | Seven Networks, Inc. | Integrated messaging |
US8774844B2 (en) | 2007-06-01 | 2014-07-08 | Seven Networks, Inc. | Integrated messaging |
US8693494B2 (en) | 2007-06-01 | 2014-04-08 | Seven Networks, Inc. | Polling |
US8364181B2 (en) | 2007-12-10 | 2013-01-29 | Seven Networks, Inc. | Electronic-mail filtering for mobile devices |
US8738050B2 (en) | 2007-12-10 | 2014-05-27 | Seven Networks, Inc. | Electronic-mail filtering for mobile devices |
US9002828B2 (en) | 2007-12-13 | 2015-04-07 | Seven Networks, Inc. | Predictive content delivery |
US8849902B2 (en) | 2008-01-25 | 2014-09-30 | Seven Networks, Inc. | System for providing policy based content service in a mobile network |
US8862657B2 (en) | 2008-01-25 | 2014-10-14 | Seven Networks, Inc. | Policy based content service |
US8838744B2 (en) | 2008-01-28 | 2014-09-16 | Seven Networks, Inc. | Web-based access to data objects |
US8799410B2 (en) | 2008-01-28 | 2014-08-05 | Seven Networks, Inc. | System and method of a relay server for managing communications and notification between a mobile device and a web access server |
US8787947B2 (en) | 2008-06-18 | 2014-07-22 | Seven Networks, Inc. | Application discovery on mobile devices |
US8494510B2 (en) | 2008-06-26 | 2013-07-23 | Seven Networks, Inc. | Provisioning applications for a mobile device |
US8909759B2 (en) | 2008-10-10 | 2014-12-09 | Seven Networks, Inc. | Bandwidth measurement |
US11252210B2 (en) | 2009-01-13 | 2022-02-15 | Viasat, Inc. | Content set based deltacasting |
US10187436B2 (en) | 2009-01-13 | 2019-01-22 | Viasat, Inc. | Content set based deltacasting |
US11916990B2 (en) | 2009-01-13 | 2024-02-27 | Viasat, Inc. | Content set based deltacasting |
US10536495B2 (en) | 2009-01-13 | 2020-01-14 | Viasat, Inc. | Content set based deltacasting |
US10547655B2 (en) | 2009-01-13 | 2020-01-28 | Viasat, Inc. | Deltacasting |
US10951671B2 (en) | 2009-01-13 | 2021-03-16 | Viasat, Inc. | Content set based deltacasting |
US20140040353A1 (en) * | 2009-01-13 | 2014-02-06 | Viasat, Inc. | Return-link optimization for file-sharing traffic |
US20120096114A1 (en) * | 2009-04-09 | 2012-04-19 | Research In Motion Limited | Method and system for the transport of asynchronous aspects using a context aware mechanism |
US9049179B2 (en) | 2010-07-26 | 2015-06-02 | Seven Networks, Inc. | Mobile network traffic coordination across multiple applications |
US8886176B2 (en) | 2010-07-26 | 2014-11-11 | Seven Networks, Inc. | Mobile application traffic optimization |
US9077630B2 (en) | 2010-07-26 | 2015-07-07 | Seven Networks, Inc. | Distributed implementation of dynamic wireless traffic policy |
US9407713B2 (en) | 2010-07-26 | 2016-08-02 | Seven Networks, Llc | Mobile application traffic optimization |
US8838783B2 (en) | 2010-07-26 | 2014-09-16 | Seven Networks, Inc. | Distributed caching for resource and mobile network traffic management |
US9043433B2 (en) | 2010-07-26 | 2015-05-26 | Seven Networks, Inc. | Mobile network traffic coordination across multiple applications |
US8484314B2 (en) | 2010-11-01 | 2013-07-09 | Seven Networks, Inc. | Distributed caching in a wireless network of content delivered for a mobile application over a long-held request |
US8843153B2 (en) | 2010-11-01 | 2014-09-23 | Seven Networks, Inc. | Mobile traffic categorization and policy for network use optimization while preserving user experience |
US8700728B2 (en) | 2010-11-01 | 2014-04-15 | Seven Networks, Inc. | Cache defeat detection and caching of content addressed by identifiers intended to defeat cache |
US9060032B2 (en) | 2010-11-01 | 2015-06-16 | Seven Networks, Inc. | Selective data compression by a distributed traffic management system to reduce mobile data traffic and signaling traffic |
US9021048B2 (en) | 2010-11-01 | 2015-04-28 | Seven Networks, Inc. | Caching adapted for mobile application behavior and network conditions |
US8782222B2 (en) | 2010-11-01 | 2014-07-15 | Seven Networks | Timing of keep-alive messages used in a system for mobile network resource conservation and optimization |
US9330196B2 (en) | 2010-11-01 | 2016-05-03 | Seven Networks, Llc | Wireless traffic management system cache optimization using http headers |
US8326985B2 (en) | 2010-11-01 | 2012-12-04 | Seven Networks, Inc. | Distributed management of keep-alive message signaling for mobile network resource conservation and optimization |
US8966066B2 (en) | 2010-11-01 | 2015-02-24 | Seven Networks, Inc. | Application and network-based long poll request detection and cacheability assessment therefor |
US8539040B2 (en) | 2010-11-22 | 2013-09-17 | Seven Networks, Inc. | Mobile network background traffic data management with optimized polling intervals |
US9100873B2 (en) | 2010-11-22 | 2015-08-04 | Seven Networks, Inc. | Mobile network background traffic data management |
US8903954B2 (en) | 2010-11-22 | 2014-12-02 | Seven Networks, Inc. | Optimization of resource polling intervals to satisfy mobile device requests |
US8417823B2 (en) | 2010-11-22 | 2013-04-09 | Seven Network, Inc. | Aligning data transfer to optimize connections established for transmission over a wireless network |
US9325662B2 (en) | 2011-01-07 | 2016-04-26 | Seven Networks, Llc | System and method for reduction of mobile network traffic used for domain name system (DNS) queries |
US9300719B2 (en) | 2011-04-19 | 2016-03-29 | Seven Networks, Inc. | System and method for a mobile device to use physical storage of another device for caching |
US8356080B2 (en) | 2011-04-19 | 2013-01-15 | Seven Networks, Inc. | System and method for a mobile device to use physical storage of another device for caching |
US9084105B2 (en) | 2011-04-19 | 2015-07-14 | Seven Networks, Inc. | Device resources sharing for network resource conservation |
US8621075B2 (en) | 2011-04-27 | 2013-12-31 | Seven Metworks, Inc. | Detecting and preserving state for satisfying application requests in a distributed proxy and cache system |
US8832228B2 (en) | 2011-04-27 | 2014-09-09 | Seven Networks, Inc. | System and method for making requests on behalf of a mobile device based on atomic processes for mobile network traffic relief |
US20120278431A1 (en) * | 2011-04-27 | 2012-11-01 | Michael Luna | Mobile device which offloads requests made by a mobile application to a remote entity for conservation of mobile device and network resources and methods therefor |
US11139919B2 (en) | 2011-06-14 | 2021-10-05 | Viasat, Inc. | Transport protocol for anticipatory content |
US9935740B2 (en) | 2011-06-14 | 2018-04-03 | Viasat, Inc. | Transport protocol for anticipatory content |
US11777654B2 (en) | 2011-06-14 | 2023-10-03 | Viasat, Inc. | Transport protocol for anticipatory content |
US8984581B2 (en) | 2011-07-27 | 2015-03-17 | Seven Networks, Inc. | Monitoring mobile application activities for malicious traffic on a mobile device |
US11575738B2 (en) | 2011-10-25 | 2023-02-07 | Viasat, Inc. | Opportunistic content delivery using delta coding |
US11290525B2 (en) | 2011-10-25 | 2022-03-29 | Viasat, Inc. | Opportunistic content delivery using delta coding |
US10270842B2 (en) | 2011-10-25 | 2019-04-23 | Viasat, Inc. | Opportunistic content delivery using delta coding |
US8868753B2 (en) | 2011-12-06 | 2014-10-21 | Seven Networks, Inc. | System of redundantly clustered machines to provide failover mechanisms for mobile traffic management and network resource conservation |
US8934414B2 (en) | 2011-12-06 | 2015-01-13 | Seven Networks, Inc. | Cellular or WiFi mobile traffic optimization based on public or private network destination |
US8977755B2 (en) | 2011-12-06 | 2015-03-10 | Seven Networks, Inc. | Mobile device and method to utilize the failover mechanism for fault tolerance provided for mobile traffic management and network/device resource conservation |
US9173128B2 (en) | 2011-12-07 | 2015-10-27 | Seven Networks, Llc | Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol |
US9277443B2 (en) | 2011-12-07 | 2016-03-01 | Seven Networks, Llc | Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol |
US9208123B2 (en) | 2011-12-07 | 2015-12-08 | Seven Networks, Llc | Mobile device having content caching mechanisms integrated with a network operator for traffic alleviation in a wireless network and methods therefor |
US9009250B2 (en) | 2011-12-07 | 2015-04-14 | Seven Networks, Inc. | Flexible and dynamic integration schemas of a traffic management system with various network operators for network traffic alleviation |
US9021021B2 (en) | 2011-12-14 | 2015-04-28 | Seven Networks, Inc. | Mobile network reporting and usage analytics system and method aggregated using a distributed traffic optimization system |
US9832095B2 (en) | 2011-12-14 | 2017-11-28 | Seven Networks, Llc | Operation modes for mobile traffic optimization and concurrent management of optimized and non-optimized traffic |
US8861354B2 (en) | 2011-12-14 | 2014-10-14 | Seven Networks, Inc. | Hierarchies and categories for management and deployment of policies for distributed wireless traffic optimization |
US8909202B2 (en) | 2012-01-05 | 2014-12-09 | Seven Networks, Inc. | Detection and management of user interactions with foreground applications on a mobile device in distributed caching |
US9131397B2 (en) | 2012-01-05 | 2015-09-08 | Seven Networks, Inc. | Managing cache to prevent overloading of a wireless network due to user activity |
US9203864B2 (en) | 2012-02-02 | 2015-12-01 | Seven Networks, Llc | Dynamic categorization of applications for network access in a mobile network |
US9326189B2 (en) | 2012-02-03 | 2016-04-26 | Seven Networks, Llc | User as an end point for profiling and optimizing the delivery of content and data in a wireless network |
US8812695B2 (en) | 2012-04-09 | 2014-08-19 | Seven Networks, Inc. | Method and system for management of a virtual network connection without heartbeat messages |
US10263899B2 (en) | 2012-04-10 | 2019-04-16 | Seven Networks, Llc | Enhanced customer service for mobile carriers using real-time and historical mobile application and traffic or optimization data associated with mobile devices in a mobile network |
US11743207B2 (en) | 2012-06-15 | 2023-08-29 | Viasat, Inc. | Opportunistic delivery of cacheable content in a communications network |
US10044637B2 (en) | 2012-06-15 | 2018-08-07 | Viasat, Inc. | Opportunistic delivery of cacheable content in a communications network |
US11070490B2 (en) | 2012-06-15 | 2021-07-20 | Viasat, Inc. | Opportunistic delivery of cacheable content in a communications network |
US10594624B2 (en) | 2012-06-15 | 2020-03-17 | Viasat, Inc. | Opportunistic delivery of cacheable content in a communications network |
US8775631B2 (en) | 2012-07-13 | 2014-07-08 | Seven Networks, Inc. | Dynamic bandwidth adjustment for browsing or streaming activity in a wireless network based on prediction of user behavior when interacting with mobile applications |
US9161258B2 (en) | 2012-10-24 | 2015-10-13 | Seven Networks, Llc | Optimized and selective management of policy deployment to mobile clients in a congested network to prevent further aggravation of network congestion |
US9307493B2 (en) | 2012-12-20 | 2016-04-05 | Seven Networks, Llc | Systems and methods for application management of mobile device radio state promotion and demotion |
US9271238B2 (en) | 2013-01-23 | 2016-02-23 | Seven Networks, Llc | Application or context aware fast dormancy |
US9241314B2 (en) | 2013-01-23 | 2016-01-19 | Seven Networks, Llc | Mobile device with application or context aware fast dormancy |
US8874761B2 (en) | 2013-01-25 | 2014-10-28 | Seven Networks, Inc. | Signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols |
US8750123B1 (en) | 2013-03-11 | 2014-06-10 | Seven Networks, Inc. | Mobile device equipped with mobile network congestion recognition to make intelligent decisions regarding connecting to an operator network |
US9407726B1 (en) * | 2013-03-15 | 2016-08-02 | Juniper Networks, Inc. | Caching objects identified by dynamic resource identifiers |
US20160344835A1 (en) * | 2013-03-15 | 2016-11-24 | Juniper Networks, Inc. | Caching objects identified by dynamic resource identifiers |
US9992296B2 (en) * | 2013-03-15 | 2018-06-05 | Juniper Networks, Inc. | Caching objects identified by dynamic resource identifiers |
US9065765B2 (en) | 2013-07-22 | 2015-06-23 | Seven Networks, Inc. | Proxy server associated with a mobile carrier for enhancing mobile traffic management in a mobile network |
US10951726B2 (en) * | 2013-07-31 | 2021-03-16 | Citrix Systems, Inc. | Systems and methods for performing response based cache redirection |
US11627200B2 (en) | 2013-07-31 | 2023-04-11 | Citrix Systems, Inc. | Systems and methods for performing response based cache redirection |
US20150039674A1 (en) * | 2013-07-31 | 2015-02-05 | Citrix Systems, Inc. | Systems and methods for performing response based cache redirection |
US11626972B2 (en) | 2018-10-26 | 2023-04-11 | Advanced New Technologies Co., Ltd. | Data processing method and apparatus |
US10999060B2 (en) | 2018-10-26 | 2021-05-04 | Advanced New Technologies Co., Ltd. | Data processing method and apparatus |
Also Published As
Publication number | Publication date |
---|---|
US7716306B2 (en) | 2010-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7716306B2 (en) | Data caching based on data contents | |
AU2007269315B2 (en) | Method and systems for efficient delivery of previously stored content | |
EP2266043B1 (en) | Cache optimzation | |
US8024484B2 (en) | Caching signatures | |
US8112477B2 (en) | Content identification for peer-to-peer content retrieval | |
US5864837A (en) | Methods and apparatus for efficient caching in a distributed environment | |
EP1886470B1 (en) | Method and system for object prediction | |
US9514243B2 (en) | Intelligent caching for requests with query strings | |
US20150019678A1 (en) | Methods and Systems for Caching Content at Multiple Levels | |
US20070038637A1 (en) | Optimized network cache for virus scanning by examining the magic bytes of a file | |
US20070260748A1 (en) | Method and apparatus to reduce the size of objects transmitted over a network | |
US9621666B2 (en) | Systems and methods for enhanced delta compression | |
USRE42169E1 (en) | Method, apparatus, and computer program product for efficient server response generation using intermediate state caching | |
US7519699B2 (en) | Method, system, and computer program product for delivering data to a storage buffer assigned to an application | |
JP2013512514A (en) | System and method for efficient media distribution using cache | |
US20030050996A1 (en) | Appartus and method for increased data access in a network file object oriented system | |
KR20090009804A (en) | Managing network response buffering behavior | |
WO2022167482A1 (en) | Identification of compressed net resources | |
CN116233248A (en) | Resource response method, device and readable storage medium | |
JP2007293894A (en) | Server side proxy device, client side proxy device, data transfer method and program | |
AU2012200265A1 (en) | Bidirectional Data Transfer Optimization and Content Control for Networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:ANDREEV, DMITRY;GREENSTEIN, MARINA A.;GRUNIN, GALINA;AND OTHERS;REEL/FRAME:015869/0524;SIGNING DATES FROM 20050105 TO 20050107 Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION,NEW YO Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:ANDREEV, DMITRY;GREENSTEIN, MARINA A.;GRUNIN, GALINA;AND OTHERS;SIGNING DATES FROM 20050105 TO 20050107;REEL/FRAME:015869/0524 |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
REMI | Maintenance fee reminder mailed | ||
AS | Assignment |
Owner name: TWITTER, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:INTERNATIONAL BUSINESS MACHINES CORPORATION;REEL/FRAME:032075/0404 Effective date: 20131230 |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
SULP | Surcharge for late payment | ||
FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.) |
|
FEPP | Fee payment procedure |
Free format text: 7.5 YR SURCHARGE - LATE PMT W/IN 6 MO, LARGE ENTITY (ORIGINAL EVENT CODE: M1555) |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552) Year of fee payment: 8 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 12 |
|
AS | Assignment |
Owner name: MORGAN STANLEY SENIOR FUNDING, INC., MARYLAND Free format text: SECURITY INTEREST;ASSIGNOR:TWITTER, INC.;REEL/FRAME:062079/0677 Effective date: 20221027 Owner name: MORGAN STANLEY SENIOR FUNDING, INC., MARYLAND Free format text: SECURITY INTEREST;ASSIGNOR:TWITTER, INC.;REEL/FRAME:061804/0086 Effective date: 20221027 Owner name: MORGAN STANLEY SENIOR FUNDING, INC., MARYLAND Free format text: SECURITY INTEREST;ASSIGNOR:TWITTER, INC.;REEL/FRAME:061804/0001 Effective date: 20221027 |