US20020062384A1 - Method of proxy-assisted predictive pre-fetching - Google Patents
Method of proxy-assisted predictive pre-fetching Download PDFInfo
- Publication number
- US20020062384A1 US20020062384A1 US10/036,703 US3670301A US2002062384A1 US 20020062384 A1 US20020062384 A1 US 20020062384A1 US 3670301 A US3670301 A US 3670301A US 2002062384 A1 US2002062384 A1 US 2002062384A1
- Authority
- US
- United States
- Prior art keywords
- platform
- network
- urls
- fetching
- client
- 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.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
Definitions
- the present invention relates to servers and, more particularly, to networked platforms.
- Soften used in off-line browsers which allows users to browse these cached web pages without Nonbeing connected to the Internet.
- a network proxy that is, a network device or platform executing proxy software employed to access the Web
- such auto-fetch utilities may have an undesirable adverse effect on a proxy cache, that is, the local cache for a platform executing proxy software, that uses a conventional least-recently-used (LRU)-based replacement policy, for example.
- LRU least-recently-used
- the auto-fetch utility may continuously generate arbitrary large numbers of requests for web objects to the network proxy, popular objects or pages for the majority of so-called “typical users,” that is, those not using such auto-fetch utilities, are replaced by those objects requested by the auto-fetch utilities.
- typical users may experience a greater latency than they may otherwise, due at least in part to the abnormally large volumes of cached objects attributable to auto-fetch requests.
- a similar problem may also arise on a network server, such as a content server, which serves large numbers of users. Again, users may experience degraded performance when accessing such a server due at least in part to the inordinate resource demands of auto-fetching utilities.
- Peak Net.Jet available from Peak Technologies Inc. and Blaze from Datatytics, Inc. Net.Jet does not rely on server computation information to make pre-fetching decisions. Instead, client Java code performs this operation. Blaze, however, implements a server side program to assist the pre-fetching.
- a method of suspending a network connection used for low priority transmissions between a client platform and a server platform includes: determining a characteristic of a transmission between the client platform and the server platform, said characteristic consisting essentially of a high priority transmission and a low priority transmission; and suspending the connection if the characteristic of the transmission comprises a high priority transmission.
- a method of using a network connection between a client platform and a server platform includes; producing on one of the platforms a list of Uniform Resource Locators (URLs) from a requested network page, said list comprising links in said requested network page; and pre-fetching via said connection at least one of said URLs to said remote proxy server.
- URLs Uniform Resource Locators
- FIG. 1 is a schematic diagram illustrating an embodiment of a topology between platforms coupled or communicating via the Internet in which an embodiment of a method of proxy-assisted predictive pre-fetching in accordance with the present invention may be employed;
- FIG. 2 is a schematic diagram illustrating the flow of signal information between the platforms of FIG. 1;
- FIG. 3 is a schematic diagram illustrating selected software modules of the client and server platforms of FIG. 1.
- the embodiments of the present invention may be implemented according to the general architecture described, for example, in U.S. patent application Ser. No. 08/772,164, titled “System for Enhancing Data Access Over a Communications Link”, by M. Tso, J. Jing, R. Knauerhase, D. Romrell, D. Gillespie and B. Bakshi, filed on Dec. 12, 1996; U.S. patent application Ser. No. 08/799,654, titled “System for Scaling Image Data”, by M. Tso D. Romrell and S. Sathyanarayan, filed on Feb. 11, 1997; U.S. patent application Ser. No. 08/925,276, titled “System for Dynamically Transcoding Data Transmitted Between Computers”, by M.
- a network device or platform such as remote server 10
- remote server 10 may be coupled or communicate via the Internet with a client platform 20 and a content server platform 30 .
- remote server 10 includes software that, when executing, allows a client, such as client platform 20 , to access the internet, as explained in more detail below. Therefore, in this context, remote server 10 is referred to as a remote proxy server.
- remote proxy server 10 also referred to in this context as a network device, may include Software executing on the network device capable of parsing text or other information provided in the form of electronic signals, such as parsing software module 14 .
- remote server or remote proxy server 10 may also include software executing on the network device referred to in this context as a filtering module.
- the network device comprises a remote proxy server through which a plurality of client devices, such as client 20 , for example, may access network resources, such as content server 30 , for example.
- network device 10 may comprise a client device, a content server, a network router, a bridge, a switch, or any other suitable data processing platform capable of being used in a communications network between a requesting client device and responding content server.
- the parsing module and/or filtering module may be implemented as software modules executing on a network device or other platform, such as a PC, for example, including instructions for carrying out the particular functionality indicated.
- Remote proxy server 10 also includes bit stream interceptor 10 , such as a proxy or protocol stack, pre-fetching agent software module 30 including pre-fetching software policy software 40 , transcoding software module 12 , and cache memory 18 , as explained in more detail below.
- remote proxy server 10 may include a client preference table executed or executing in software coupled to communicate with or communicatively coupled with a parsing module and a filtering module.
- a client preference table may comprise in software, for example, a set of user controlled content selection criteria and preferences that may be indexed by a user name and/or an IP (Internet Protocol) address, for example. Each user name/IP address entry may optionally have an associated security password stored in the client preference table.
- client 20 when a user begins a session with remote proxy 10 for the first time, such as when client 20 requests a network data object via remote proxy server 10 , use of client 20 may be employed to “sign-on” To proxy server 10 .
- the term data object, web data object, or network data object refers to a set of related electrical data signals intended to be transmitted, stored, or received as a set.
- the parsing software module may be adopted to attempt to retrieve from the client preference tables any previously stored filtering parameters for that user or client, although the invention is again not limited in scope in this respect.
- the parsing software module may optionally be configured to perform authentication processing to ensure the user is properly authorized to access the remote proxy server. Such authentication may be accomplished using any existing or later developed authentication mechanism. If previously stored filtering parameters are found in the preference table, the parsing software module executing On the network device may store those parameters in a dynamic table keyed, for example, by IP address.
- This dynamic table may then be used in connection with dynamic filtering of content received via proxy server 10 in the form of electrical signals to be passed to client 20 during a session.
- session refers to a continual or persistent communication connection between the client platform executing software and the remote platform executing software.
- the parsing software module may include instructions for validating any existing entries and client preferences upon receipt of more up-to-date user preference information.
- client 20 may include browser software, such as module 15 illustrated in FIG. 3, executing on the network device, such as Netscape Navigator(TM), for example, which enables a user of client 20 to retrieve and display network data objects, such as web pages, originating from, for example, content server 30 .
- Content server 30 may reside, for example, on the Internet and be accessible through standard HTTP (Hyper Text Transfer Protocol) messages, however, the present invention, of course, is not limited to any particular network or communications method or protocol.
- HTTP Hyper Text Transfer Protocol
- Network proxies are described generally in HTML Source Book: A Complete Guide to HTML 3.0 (2d Ed. 1996), by Ian S. Graham and available from Wiley Computer Publishing, New York, N.Y.
- the network proxy is commonly used in conjunction with so-called a “firewall” software module to protect a local area network (LAN) from unauthorized access over the Internet.
- LAN local area network
- Such a firewall typically installed on a “gateway computer,” that links a LAN to other networks, such as the Internet, restricts externally originated TCP/IP (Transmission Control Protocol/Internet Protocol) packets from entering the local network, thereby protecting local devices from hazards, such as unauthorized access.
- TCP/IP Transmission Control Protocol/Internet Protocol
- Network proxies are often used to address this shortcoming.
- a firewall also prevents network users from directly accessing external resources, such as the Web.
- Network proxies are usually configured to have free access to both internal LAN resources and external resources, and include the capability to pass data in the form of electrical signals back and forth across the firewall. Users may then be given indirect access to Web resources by configuring the user's Web browser to reference the firewall proxy instead of external resources.
- the Web browser When the Web browser is used to retrieve information in the form of electronic signals, such as packets, for example, from the other side of the firewall, it sends a request to the firewall proxy, which then completes the request and passes the result back via the firewall to the requesting device. This is illustrated by FIG. 2, for example.
- a cache refers to a locally accessible, high speed memory to which electronic signal information may be stored and from which it may be retrieved.
- cache memory is distinguished from system random access memory or even sower memories, such as a hard drive, for example.
- caching The act of storing signal information in one of these high-speed memories is referred to as caching. For example, the first time a document from the Web is requested, the network proxy retrieves the document and forwards it to the browser for a presentation to the user, but also retains a copy of the document in its own local cache memory.
- the network proxy If the same or another user makes the subsequent request for that same document, the network proxy returns the locally-cached copy of the document instead of retrieving it from the Web.
- An example of a cache for use by a network proxy is described in “A Hierarchical Internet Object Cache” by A. Chankhunthod et al., Nov. 6, 1995 (available from the Computer Science Department of the University of Southern California).
- proxy software or a proxy server executing on a PC may be located on a networked device or platform, such as on the Internet or on a content server.
- platform refers to a hardware and software system on top of which a software application may reside.
- an operation occurs, such as completing a request for accessing information in the form of electronic signals via the Internet, more quickly if the proxy software is physically located either near or on the client device.
- pre-fetching refers to a process in which network data objects are retrieved and stored in local cache before a specific user request for that data object has occurred.
- the cache may get overloaded. For example, on a remote proxy server that is shared by a large number of users, where it or any users' client device also fetches embedded links on the web page, the cache may be overloaded disproportionately by a small number of users. When this occurs, more cache misses may occur, as previously described, and, therefore, reduce or degrade performance. A content server may experience a similar as well.
- a proxy server provides a number of advantages. In addition to the previous advantage described with respect to employing the proxy server as a firewall, it also has the advantage of saving cost on Internet links because caching reduces the desirability of fetching pages from remote content servers.
- one technique for addressing some of the disadvantages of an “auto-fetch” utility is to monitor the IP address of the requester, for example. Then, if a disproportionate number of requests originate from a single source, such as above a predetermined threshold, in one embodiment, the cached web pages associated with that source will no longer be maintained in the cache of the particular platform.
- This technique may also be employed on a remote proxy server in order to perform better load balancing of its received requests for web pages or other network data objects.
- client device 20 includes software executing to communicate via a persistent Internet connection with remote proxy server 10 .
- an embodiment of network device assisted pre-fetching in accordance with the invention may be used advantageously to provide benefits similar to traditional client side pre-fetching methods, but without some of the previously described disadvantages.
- the network device comprises a proxy server 10 including a cache 18 , a pre-fetching agent software module 30 , and a parsing software module 50 .
- the parsing software module instead of just sending requested URLs to the client, on the remote proxy server the parsing software module parses the HTML files and creates a list of URLs which were linked or embedded in the HTML file.
- the proxy server may then fetch some or all of the URLs in that list and store them in its cache, without first waiting for the client to issue requests for these URLs.
- This has the desirable effect of reducing end user visible latency because instead of fetching the information from the content server after the client requests the linked URLs, the content is stored in the proxy server's cache ready to download to the user when the user request comes.
- transcoding services such as by module 12 , such as language translation or compression, for example, may be performed on the data objects and cached, prior to the client requesting them. Caching of transcoded data objects may significantly speed up end user visible latency for applications, particularly on computationally intensive transcodings, such as on-the-fly language translation.
- transcoding refers to a process in which data signals coded for one particular medium are recoded so that they may be read, transmitted, stored and/or manipulated in another medium.
- the proxy server would be multithreaded or otherwise multitasking, such that pre-fetching and any subsequent transcode service applied to pre-fetched objects may take place in the background, while user requests are served as arelatively high priority.
- the pre-fetching agent may check to see if the data object it “points to” is stored in its cache already, and if it is, may check to see if it has “expired”.
- expired refers to a period of time that a cache management system may allow to elapse before determining whether any update to the data object have taken place. This may occur many possible ways well known to one of ordinary skill in the art. If the cached data object hasn't expired, then no pre-fetching occurs. If it is expired, then the pre-fetching agent may attempt to check with the content server to see if the data object has changed, using methods such as “get HTTP header,” which provides information in the terms of electronic signals regarding the last modified time and size. If the object hasn't changed, then the pre-fetching agent may reset the expired time according to any cache management process and no pre-fetching occurs. If the object has changed or has not been stored in the cache, then the pre-fetching agent may pre-fetch the data object from the content server.
- One embodiment, as illustrated in FIGS. 1 and 2, may advantageously include a policy software module 40 to be used in conjunction with the pre-fetching agent software module.
- Policy software modules may be used to balance pre-fetching's undesirable effects with its benefits. In general, these modules when executed implement tradeoffs between data manipulation applications (such as transcoding or caching) and resource constraints (such as network bandwidth usage or cache memory usage).
- One example pre-fetching policy capable of being implemented includes, instead of pre-fetching all linked URLs on an HTML page, pre-fetching only the embedded URLs (e.g., images and applets, for example). Embedded URLs may be identified by their HTML tag.
- images may be identified by the tag or their file extension and applets may be identified by the tag.
- Pre-fetching only embedded URLs is advantageous for both cache utilization and compression applications. Most browsers will automatically request embedded URLs on an HTML page, so little or no bandwidth is used unnecessarily by the remote proxy to perform pre-fetching. It provides an additional advantage of putting the images through compression(or other transcoding applications), which may be computationally intensive, prior to the browser issuing a request for the image.
- Another example pre-fetching policy includes selective pre-fetching based on the likelihood that a user will actually access the linked URL, to reduce bandwidth and cache space used unnecessarily. This policy could be implemented by examining how “popular” a link is.
- This information may be obtained, for example, by implementing a special HTTP protocol extension where the pre-fetch agent software module when executed obtains signal information about the probability of any link on the page being accessed from the content server. Then, depending on the load on the proxy server and the relative “cost” of bandwidth, the pre-fetching agent software module may, in execution, set a cut off probability so that the links whose reported probabilities are above that cut off are pre-fetched. In one embodiment, embedded URLs are set to a probability of 1 because browsers fetch them automatically. Also, different pre-fetching policy methods may be combined with others. These previously described pre-fetching policy methods are included for example purposes and do not limit the scope of the invention, of course.
- the probability may be advantageously calculated as follows using access frequency information that is already available to a server, although the invention is not limited in scope in this respect.
- the probability of a linked URL being followed is equal to the total number of accesses (call it “A”) to the linked URL in a given time period, divided by the total number of accesses (call it “B”) to the “parent” HTML (the one that contains the linked URL) during the same time period. If “A” is bigger than “B,” then 1 is assigned to the probability. “A” may be bigger than “B” because the linked URL may be accessible without clicking a link on the parent HTML page (e.g., if a user types in the linked URL directly or it is linked from another page).
- the period of time before “A” and “B” gets reset may be advantageously chosen to start when either the content for either the linked URL or the parent HTML page are updated, or it may be periodically reset if the pages do not change often. Periodic resets of the time period may have the effect of keeping up with changes in user's browsing habits (e.g., as the content becomes less current, repeat visitors to the page may go down alternate linked URLs from those they had accessed on a prior visit). For content which is dynamically generated (and, thus, certain objects may be different for different users), for example, for pages using cookies or ASP (active server pages), the server may optionally set the probability of the dynamically generated pages to “0” since there is little or no value in pre-fetching them.
- proxy server is used in the above description, it should be noted that other embodiments of the invention may be implemented on any network device capable of capturing the data signal stream and processing it. This particular embodiment employs a proxy server, but similar extensions may be implemented on other network devices, such as routers, switches, hubs, and bridges, for example.
- the pre-fetching occurs up to one level of links
- a similar technique may be applied recursively to the pages or other signal information that is pre-fetched.
- the probability advantageously decreases proportionally to the number of levels away from the page the user is currently accessing by multiplying the link probabilities.
- the probability may be calculated as follows, although this approach makes several assumptions and where these assumptions are relaxed other approaches might be employed.
- HTML page A contains linked URL L 1 , which is itself an HTML page.
- Linked URL L 1 contains a link to URL L 2 .
- P 1 the platform calculation for probability of L 1 access is P 1
- L 2 is P 2 .
- the probability the pre-fetch agent software module would assign to L 1 is P 1 since it is on the current page.
- the probability the pre-fretch agent software agent would assign to L 2 is P 1 ⁇ P 2 , since P 2 can only be accessed if P 1 is accessed first.
- This method may be repeated for arbitrary levels of links by simply multiplying the probabilities of all the “parent” pages. In the case where multiple parent pages are possible, the probabilities may be calculated for each parent, and then averaged.
- client device 20 also includes local proxy software, so that operations typically performed by the remote proxy server may be off loaded to the client device advantageously.
- the local proxy on the client device may implement parsing, such as previously described.
- parsing software module may produce a list of URLs that are linked in the requested page, which is parsed first.
- the parsing software module when executing on the local client platform may then send a request to pre-fetch these URLs to the remote proxy server.
- the pre-fetch request may be different from a regular request, so that the pre-fetching agent 30 executing on the remote proxy server can prioritize it so that it is assigned with a lower priority than regular user requests, as described before.
- the request may also include user preference information, such as language preference, for example.
- Pre-fetch agent 30 optionally pre-fetches and transcodes the content according to such preferences, and transmits the signal information to the parsing software module, executing on the client platform.
- the parsing software receives these data signals stores it in a cache on the client.
- the local proxy which is one mechanism, for example, for intercepting requests locally, retrieves it from the cache instead of retrieving it from the network, resulting in reductions in user visible latency. This is advantageous over current approaches where pre-fetch requests appear identical to regular requests, resulting in network devices, such as proxy caches and content servers behaving inefficiently.
- one advantage of employing this approach with a client device is that load balancing is performed between the client device and the remote proxy server.
- this also provides compatibility between the browser on the client device and the remote proxy server. Without the local proxy executing on the client device, the browser on the client device may not be able to format pre-fetch requests differently from regular or typical user requests to the remote proxy server.
- the pre-fetching agent when the client parsing software module 40 transmits a pre-fetching request to the pre-fetch agent software executing on the remote proxy server, the pre-fetching agent makes a determination regarding whether a given URL in the pre-fetching request is located in the cache of the remote proxy server. If the URL in the cache on the remote proxy, then the content of the URL may be transmitted to the client device. Alternatively, if the URL is not found in the cache, the remote proxy server transmits a “not found” message to the client device.
- An advantage of this approach is that it effectively implements pre-fetching without increasing traffic between the proxy and content servers. Keeping traffic and congestion reduced is a desirable attribute for networking and Internet-related technology.
- Another advantageous capability may be implemented using the ability to distinguish low priority requests, such as pre-fetch requests, from high priority requests, such as regular requests.
- the local proxy client and the remote proxy server maintain a low priority transmission persistent network connection, such as via the Internet, such that low priority pre-fetched transmissions may be suspended or stopped relatively quickly once a high priority browser request transmission is transmitted between the local and remote proxies.
- the connection may be optionally closed or left open for use next time to avoid connection creation overhead.
- the local proxy executing on the client device may begin a new parsing process for the new requested browser page or data object and optionally establish another persistent preemptive pre-fetching connection with the remote proxy server or alternatively reuse the existing connection. It is desirable in order to quickly suspend the persistent connection that the relative size of the transmissions between the proxies be relatively small, such as on the order of 512 or 1024 bytes for Plain Old Telephone Service (POTS) connections.
- POTS Plain Old Telephone Service
- the desirable packet size is related to a function of the bandwidth of the effective usable bandwidth between the network device and the client, approximately the amount of bytes that may be transmitted in a small time frame, such as 1 second or 500 milliseconds.
- the effective usable bandwidth across an Internet connection may be computed, such as described, for example, in previously referenced patent application Ser.
- the desirable packet equals the desired time frame (e.g., 1 second) divided by the effective usable bandwidth.
- the desired time frame e.g. 1 second
- a special escape character or other out of band signaling may be employed in the signal stream so that the transmission may be terminated once the special character or signal is received, without waiting for the packet to complete.
- the desirability of suspending the persistent preemptive connection between the local and remote proxies are desirable.
- An advantage of employing this preemptive pre-fetching approach is a more efficient use of available bandwidth between the client device and the remote proxy server. Without this approach, regular browser requests compete with pre-fetching requests. Therefore, bandwidth may already be exhausted or utilized by pre-fetching requests when a user makes a request for a web page. This is an undesirable outcome because it increases the perceived latency experienced by the user.
- the local proxy obtains a request from the user via the client device, a request is transmitted to the remote proxy server to stop pre-fetching so that the browser request may instead be accommodated. Therefore, advantages with regard to bandwidth management prioritization and resource allocation are accomplished. Ultimately, the latency that the user experiences when requesting a web page will be reduced.
Abstract
Briefly, in accordance one embodiment of the invention, a method of suspending a network connection used for low priority transmissions between a client platform and a server platform includes: determining a characteristic of a transmission between the client platform and the server platform, said characteristic consisting essentially of a high priority transmission and a low priority transmission; and suspending the connection if the characteristic of the transmission comprises a high priority transmission.
Briefly, in accordance with another embodiment, a method of using a network connection between a client platform and a server platform includes producing on one of the platforms a list of Uniform Resource Locators (URLs) from a requested network page, said list comprising links in said requested network page; and pre-fetching via said connection at least one of said URLs to said remote proxy server.
Description
- 1. Field
- The present invention relates to servers and, more particularly, to networked platforms.
- 2. Background Information
- One problem with accessing the Internet using software executing on a computer, such as a personal computer (PC), referred to in this context as a browser, is the delay or latency perceived by users until the web site or web page being accessed is displayed on the computer screen. Recently, so-called “auto-fetch” utilities have gained popularity with users who routinely browse the World Wide Web (the Web). These utilities are designed to “guess” and retrieve web objects or data objects of particular interest to the user in the background (e.g., while the user is reading a web page), thereby reducing the user's visible latency for page loading if the pages they subsequently browse are already available via their PC. Another application of this approach is Soften used in off-line browsers, which allows users to browse these cached web pages without Nonbeing connected to the Internet. When the user accesses the Web through a network proxy, that is, a network device or platform executing proxy software employed to access the Web, however, such auto-fetch utilities may have an undesirable adverse effect on a proxy cache, that is, the local cache for a platform executing proxy software, that uses a conventional least-recently-used (LRU)-based replacement policy, for example. Since the auto-fetch utility may continuously generate arbitrary large numbers of requests for web objects to the network proxy, popular objects or pages for the majority of so-called “typical users,” that is, those not using such auto-fetch utilities, are replaced by those objects requested by the auto-fetch utilities. As a result, typical users may experience a greater latency than they may otherwise, due at least in part to the abnormally large volumes of cached objects attributable to auto-fetch requests. A similar problem may also arise on a network server, such as a content server, which serves large numbers of users. Again, users may experience degraded performance when accessing such a server due at least in part to the inordinate resource demands of auto-fetching utilities.
- Other on-line pre-fetching schemes have also been proposed to reduce the latency perceived by users by predicting and pre-fetching those web pages that are likely to be requested next, while the user is browsing through the currently displayed-web page. See, for example, “Using Predictive Pre-fetching to Improve World-Wide Latency”, by V. Padmanabhann and J. C. Mogul, appearing in ACM SIGCOMM Computer Communication Review, pp. 22-36, 1991. The proposed scheme executes a prediction process on the server side to compute the probability or likelihood that a particular web page will be accessed next and conveys this information to the client. The client program executing on the client PC then decides whether or not to actually “pre-fetch” the page. Two recently introduced commercial products offer an on-line pre-fetching feature: Peak Net.Jet available from Peak Technologies Inc. and Blaze from Datatytics, Inc. Net.Jet does not rely on server computation information to make pre-fetching decisions. Instead, client Java code performs this operation. Blaze, however, implements a server side program to assist the pre-fetching.
- Several problems exist with these proposed approaches. First, the server side program imposes extra computational load on already frequently overworked Web servers. In addition, technologies like Blaze employ the technique of making changes to all deployed Web servers in order to operate. However, these Web servers may number in the millions. Second, the technique employing pure client side pre-fetching typically generates a lot of network traffic and may jam Web servers with requests that may not ultimately improve performance.
- A need therefore exists for a technique of predictive pre-fetching that overcomes the foregoing disadvantages.
- Briefly, in accordance one embodiment of the invention, a method of suspending a network connection used for low priority transmissions between a client platform and a server platform includes: determining a characteristic of a transmission between the client platform and the server platform, said characteristic consisting essentially of a high priority transmission and a low priority transmission; and suspending the connection if the characteristic of the transmission comprises a high priority transmission.
- Briefly, in accordance with another embodiment, a method of using a network connection between a client platform and a server platform includes; producing on one of the platforms a list of Uniform Resource Locators (URLs) from a requested network page, said list comprising links in said requested network page; and pre-fetching via said connection at least one of said URLs to said remote proxy server.
- FIG. 1 is a schematic diagram illustrating an embodiment of a topology between platforms coupled or communicating via the Internet in which an embodiment of a method of proxy-assisted predictive pre-fetching in accordance with the present invention may be employed;
- FIG. 2 is a schematic diagram illustrating the flow of signal information between the platforms of FIG. 1; and
- FIG. 3 is a schematic diagram illustrating selected software modules of the client and server platforms of FIG. 1.
- The embodiments of the present invention may be implemented according to the general architecture described, for example, in U.S. patent application Ser. No. 08/772,164, titled “System for Enhancing Data Access Over a Communications Link”, by M. Tso, J. Jing, R. Knauerhase, D. Romrell, D. Gillespie and B. Bakshi, filed on Dec. 12, 1996; U.S. patent application Ser. No. 08/799,654, titled “System for Scaling Image Data”, by M. Tso D. Romrell and S. Sathyanarayan, filed on Feb. 11, 1997; U.S. patent application Ser. No. 08/925,276, titled “System for Dynamically Transcoding Data Transmitted Between Computers”, by M. Tso, T. Willis, J. Richardson, R. Knauerhase and D. Macielinski, filed on Sep. 8, 1997; U.S. patent application Ser. No. 08/943,215, titled “Dynamically-Chainable Network Proxy”, by R. Knauerhase and Tso, filed on Oct. 24, 1997, U.S. patent application Ser. No. 08/957,468, titled “Method for Dynamically Determining Effective Speed of a Communications Link”, by R. Knauerhase and M. mTso, filed on Oct. 24, 1997; U.S. patent application Ser. No. 09/000,711, titled “System for Dynamically Controlling a Network Proxy”, by R. Knauerhase, M. Tso, filed on Dec. 30, 1997; U.S. patent application Ser. No. 09/000,762, titled “Method for Detecting a User-Controlled Parameter from a Client Device Behind a Proxy”, by B. Bakshi and M. Tso, filed on Dec. 30, 1997; U.S. patent application Ser. No. 09/001,294, titled “Method for Dynamic Determination of Client Communications Capabilities”, by B. Bakshi, R. Knauerhase and M. Tso, filed on Dec. 31, 1997; U.S. patent application Ser. No. 09/000,635, titled “Method for Auto-Fetch Protective Cache Replacement”, by J. Jing and M. Tso, filed on Dec. 30, 1997; U.S. patent application Ser. No. 09/000,636, titled “System for Transparent Recovery from Disruption of a Data Transfer”, by D. Romrell, filed on Dec. 30, 1996; U.S. patent application Ser. No. 09/000,761, titled “Method for Reducing User-Visible Latency in HTTP Transactions”, by B. Bakshi, filed on Dec. 30, 1997; U.S. patent application Ser. No. 09/000,760, titled “System for Providing Non-Intrusive Dynamic Content to a Client Device”, by B. Bakshi, R. Knauerhase and M. Tso, filed on Dec. 30, 1997; U.S. patent application Ser. No. 09/000,759, titled “Method and Apparatus for Dynamically Filtering Network Content”, by M. Tso, filed on Dec. 30, 1997; U.S. patent application Ser. No. 09/000,778, titled “System for Virus Checking Network Data”, by M. Tso and B. Bakshi, filed on Dec. 30, 1997; U.S. patent application Ser. No. 09/000,709, titled “System for Delivery of Dynamic Content to a Client Device”, by M. Tso, D. Romrell and B. Bakshi, filed on Dec. 30, 1997; U.S. patent application Ser. No. 09/002,164, titled “Method and Apparatus for Collecting Statistics from a Network Device”, by S. Sathyanarayan and R. Knauerhase, filed on Dec. 31, 1997; U.S. patent application Ser. No. 09/001,293, titled “System for Prevent Multiple Instances of the Same Dynamic Executable Module”, by B. Bakshi and M. Tso, filed on Dec. 31, 1997; and U.S. patent application Ser. No. 08/928,645, titled “System for Collecting and Displaying Performance Improvement Information for a Computer”, by M. Tso, Ba. Bakshi and R. Knauerhase, filed on Sep. 12, 1997, all of which are assigned to the assignee of the present invention. Of course, the invention is not limited in scope to these embodiments.
- Referring now to FIG. 1, according to one embodiment of the present invention, a network device or platform, such as
remote server 10, may be coupled or communicate via the Internet with aclient platform 20 and acontent server platform 30. In this embodiment,remote server 10 includes software that, when executing, allows a client, such asclient platform 20, to access the internet, as explained in more detail below. Therefore, in this context,remote server 10 is referred to as a remote proxy server. Although the invention is not limited in scope in this respect,remote proxy server 10, also referred to in this context as a network device, may include Software executing on the network device capable of parsing text or other information provided in the form of electronic signals, such as parsing software module 14. Likewise, remote server orremote proxy server 10 may also include software executing on the network device referred to in this context as a filtering module. In this particular embodiment, as suggested previously, the network device comprises a remote proxy server through which a plurality of client devices, such asclient 20, for example, may access network resources, such ascontent server 30, for example. Of course, in other embodiments,network device 10 may comprise a client device, a content server, a network router, a bridge, a switch, or any other suitable data processing platform capable of being used in a communications network between a requesting client device and responding content server. As previously indicated, the parsing module and/or filtering module may be implemented as software modules executing on a network device or other platform, such as a PC, for example, including instructions for carrying out the particular functionality indicated.Remote proxy server 10 also includesbit stream interceptor 10, such as a proxy or protocol stack, pre-fetchingagent software module 30 including pre-fetchingsoftware policy software 40,transcoding software module 12, andcache memory 18, as explained in more detail below. - In one embodiment,
remote proxy server 10 may include a client preference table executed or executing in software coupled to communicate with or communicatively coupled with a parsing module and a filtering module. Although the invention is not restricted in scope in this respect, a client preference table may comprise in software, for example, a set of user controlled content selection criteria and preferences that may be indexed by a user name and/or an IP (Internet Protocol) address, for example. Each user name/IP address entry may optionally have an associated security password stored in the client preference table. According to this embodiment, when a user begins a session withremote proxy 10 for the first time, such as whenclient 20 requests a network data object viaremote proxy server 10, use ofclient 20 may be employed to “sign-on” Toproxy server 10. In this context, the term data object, web data object, or network data object refers to a set of related electrical data signals intended to be transmitted, stored, or received as a set. - Upon receipt of information identifying a user, such as a user name (e.g., user ID) or IP address, such as for
client 20, for example, contained in a registration request packet, for example, the parsing software module may be adopted to attempt to retrieve from the client preference tables any previously stored filtering parameters for that user or client, although the invention is again not limited in scope in this respect. The parsing software module may optionally be configured to perform authentication processing to ensure the user is properly authorized to access the remote proxy server. Such authentication may be accomplished using any existing or later developed authentication mechanism. If previously stored filtering parameters are found in the preference table, the parsing software module executing On the network device may store those parameters in a dynamic table keyed, for example, by IP address. This dynamic table may then be used in connection with dynamic filtering of content received viaproxy server 10 in the form of electrical signals to be passed toclient 20 during a session. In this context, the term session refers to a continual or persistent communication connection between the client platform executing software and the remote platform executing software. In addition to the foregoing, the parsing software module may include instructions for validating any existing entries and client preferences upon receipt of more up-to-date user preference information. - Likewise, in one embodiment,
client 20 may include browser software, such asmodule 15 illustrated in FIG. 3, executing on the network device, such as Netscape Navigator(™), for example, which enables a user ofclient 20 to retrieve and display network data objects, such as web pages, originating from, for example,content server 30.Content server 30 may reside, for example, on the Internet and be accessible through standard HTTP (Hyper Text Transfer Protocol) messages, however, the present invention, of course, is not limited to any particular network or communications method or protocol. - It is well known to deploy a network proxy, or proxy server, as an intermediary between one or more client computers and a network, such as the Internet, for example. Network proxies are described generally inHTML Source Book: A Complete Guide to HTML 3.0 (2d Ed. 1996), by Ian S. Graham and available from Wiley Computer Publishing, New York, N.Y. The network proxy is commonly used in conjunction with so-called a “firewall” software module to protect a local area network (LAN) from unauthorized access over the Internet. Such a firewall, typically installed on a “gateway computer,” that links a LAN to other networks, such as the Internet, restricts externally originated TCP/IP (Transmission Control Protocol/Internet Protocol) packets from entering the local network, thereby protecting local devices from hazards, such as unauthorized access. Network proxies are often used to address this shortcoming. A firewall, however, also prevents network users from directly accessing external resources, such as the Web.
- Network proxies are usually configured to have free access to both internal LAN resources and external resources, and include the capability to pass data in the form of electrical signals back and forth across the firewall. Users may then be given indirect access to Web resources by configuring the user's Web browser to reference the firewall proxy instead of external resources. When the Web browser is used to retrieve information in the form of electronic signals, such as packets, for example, from the other side of the firewall, it sends a request to the firewall proxy, which then completes the request and passes the result back via the firewall to the requesting device. This is illustrated by FIG. 2, for example.
- While firewall/network proxy architecture effectively shields a LAN from external hazards, this two staged access procedure is often relatively slow. It is, therefore, common for a network proxy to cache retrieved Web pages. In this context, a cache refers to a locally accessible, high speed memory to which electronic signal information may be stored and from which it may be retrieved. Typically, cache memory is distinguished from system random access memory or even sower memories, such as a hard drive, for example. The act of storing signal information in one of these high-speed memories is referred to as caching. For example, the first time a document from the Web is requested, the network proxy retrieves the document and forwards it to the browser for a presentation to the user, but also retains a copy of the document in its own local cache memory. If the same or another user makes the subsequent request for that same document, the network proxy returns the locally-cached copy of the document instead of retrieving it from the Web. An example of a cache for use by a network proxy is described in “A Hierarchical Internet Object Cache” by A. Chankhunthod et al., Nov. 6, 1995 (available from the Computer Science Department of the University of Southern California).
- As previously described, proxy software or a proxy server executing on a PC may be located on a networked device or platform, such as on the Internet or on a content server. In this context, the term platform refers to a hardware and software system on top of which a software application may reside. Typically, an operation occurs, such as completing a request for accessing information in the form of electronic signals via the Internet, more quickly if the proxy software is physically located either near or on the client device. As was previously described, one technique for improving or reducing the latency associated with accessing a web page is employing pre-fetching. In this context, pre-fetching refers to a process in which network data objects are retrieved and stored in local cache before a specific user request for that data object has occurred. However, one disadvantage of this approach is that the cache may get overloaded. For example, on a remote proxy server that is shared by a large number of users, where it or any users' client device also fetches embedded links on the web page, the cache may be overloaded disproportionately by a small number of users. When this occurs, more cache misses may occur, as previously described, and, therefore, reduce or degrade performance. A content server may experience a similar as well.
- Nonetheless, a proxy server provides a number of advantages. In addition to the previous advantage described with respect to employing the proxy server as a firewall, it also has the advantage of saving cost on Internet links because caching reduces the desirability of fetching pages from remote content servers.
- As previously described in previously referenced patent application Ser. No. 09/000,635, one technique for addressing some of the disadvantages of an “auto-fetch” utility is to monitor the IP address of the requester, for example. Then, if a disproportionate number of requests originate from a single source, such as above a predetermined threshold, in one embodiment, the cached web pages associated with that source will no longer be maintained in the cache of the particular platform. This technique may also be employed on a remote proxy server in order to perform better load balancing of its received requests for web pages or other network data objects.
- Referring to FIG. 1,
client device 20 includes software executing to communicate via a persistent Internet connection withremote proxy server 10. As illustrated, an embodiment of network device assisted pre-fetching in accordance with the invention may be used advantageously to provide benefits similar to traditional client side pre-fetching methods, but without some of the previously described disadvantages. In one embodiment, as illustrated in FIGS. 1 and 2, the network device comprises aproxy server 10 including acache 18, a pre-fetchingagent software module 30, and a parsing software module 50. In this embodiment, instead of just sending requested URLs to the client, on the remote proxy server the parsing software module parses the HTML files and creates a list of URLs which were linked or embedded in the HTML file. The proxy server may then fetch some or all of the URLs in that list and store them in its cache, without first waiting for the client to issue requests for these URLs. This has the desirable effect of reducing end user visible latency because instead of fetching the information from the content server after the client requests the linked URLs, the content is stored in the proxy server's cache ready to download to the user when the user request comes. In addition, transcoding services, such as bymodule 12, such as language translation or compression, for example, may be performed on the data objects and cached, prior to the client requesting them. Caching of transcoded data objects may significantly speed up end user visible latency for applications, particularly on computationally intensive transcodings, such as on-the-fly language translation. In this context, the term transcoding refers to a process in which data signals coded for one particular medium are recoded so that they may be read, transmitted, stored and/or manipulated in another medium. In one embodiment, the proxy server would be multithreaded or otherwise multitasking, such that pre-fetching and any subsequent transcode service applied to pre-fetched objects may take place in the background, while user requests are served as arelatively high priority. Prior to pre-fetching any URL, the pre-fetching agent may check to see if the data object it “points to” is stored in its cache already, and if it is, may check to see if it has “expired”. In this context, the term expired refers to a period of time that a cache management system may allow to elapse before determining whether any update to the data object have taken place. This may occur many possible ways well known to one of ordinary skill in the art. If the cached data object hasn't expired, then no pre-fetching occurs. If it is expired, then the pre-fetching agent may attempt to check with the content server to see if the data object has changed, using methods such as “get HTTP header,” which provides information in the terms of electronic signals regarding the last modified time and size. If the object hasn't changed, then the pre-fetching agent may reset the expired time according to any cache management process and no pre-fetching occurs. If the object has changed or has not been stored in the cache, then the pre-fetching agent may pre-fetch the data object from the content server. - One embodiment, as illustrated in FIGS. 1 and 2, may advantageously include a
policy software module 40 to be used in conjunction with the pre-fetching agent software module. Policy software modules may be used to balance pre-fetching's undesirable effects with its benefits. In general, these modules when executed implement tradeoffs between data manipulation applications (such as transcoding or caching) and resource constraints (such as network bandwidth usage or cache memory usage). One example pre-fetching policy capable of being implemented includes, instead of pre-fetching all linked URLs on an HTML page, pre-fetching only the embedded URLs (e.g., images and applets, for example). Embedded URLs may be identified by their HTML tag. For example, images may be identified by the tag or their file extension and applets may be identified by the tag. Pre-fetching only embedded URLs is advantageous for both cache utilization and compression applications. Most browsers will automatically request embedded URLs on an HTML page, so little or no bandwidth is used unnecessarily by the remote proxy to perform pre-fetching. It provides an additional advantage of putting the images through compression(or other transcoding applications), which may be computationally intensive, prior to the browser issuing a request for the image. Another example pre-fetching policy includes selective pre-fetching based on the likelihood that a user will actually access the linked URL, to reduce bandwidth and cache space used unnecessarily. This policy could be implemented by examining how “popular” a link is. This information may be obtained, for example, by implementing a special HTTP protocol extension where the pre-fetch agent software module when executed obtains signal information about the probability of any link on the page being accessed from the content server. Then, depending on the load on the proxy server and the relative “cost” of bandwidth, the pre-fetching agent software module may, in execution, set a cut off probability so that the links whose reported probabilities are above that cut off are pre-fetched. In one embodiment, embedded URLs are set to a probability of 1 because browsers fetch them automatically. Also, different pre-fetching policy methods may be combined with others. These previously described pre-fetching policy methods are included for example purposes and do not limit the scope of the invention, of course. - For example, the probability may be advantageously calculated as follows using access frequency information that is already available to a server, although the invention is not limited in scope in this respect. The probability of a linked URL being followed is equal to the total number of accesses (call it “A”) to the linked URL in a given time period, divided by the total number of accesses (call it “B”) to the “parent” HTML (the one that contains the linked URL) during the same time period. If “A” is bigger than “B,” then 1 is assigned to the probability. “A” may be bigger than “B” because the linked URL may be accessible without clicking a link on the parent HTML page (e.g., if a user types in the linked URL directly or it is linked from another page). The period of time before “A” and “B” gets reset may be advantageously chosen to start when either the content for either the linked URL or the parent HTML page are updated, or it may be periodically reset if the pages do not change often. Periodic resets of the time period may have the effect of keeping up with changes in user's browsing habits (e.g., as the content becomes less current, repeat visitors to the page may go down alternate linked URLs from those they had accessed on a prior visit). For content which is dynamically generated (and, thus, certain objects may be different for different users), for example, for pages using cookies or ASP (active server pages), the server may optionally set the probability of the dynamically generated pages to “0” since there is little or no value in pre-fetching them.
- Although a proxy server is used in the above description, it should be noted that other embodiments of the invention may be implemented on any network device capable of capturing the data signal stream and processing it. This particular embodiment employs a proxy server, but similar extensions may be implemented on other network devices, such as routers, switches, hubs, and bridges, for example.
- Likewise, in this embodiment, the pre-fetching occurs up to one level of links, a similar technique may be applied recursively to the pages or other signal information that is pre-fetched. in one embodiment, the probability (and thus prioritization in the pre-fetching) advantageously decreases proportionally to the number of levels away from the page the user is currently accessing by multiplying the link probabilities. For example, the probability may be calculated as follows, although this approach makes several assumptions and where these assumptions are relaxed other approaches might be employed. Suppose HTML page A contains linked URL L1, which is itself an HTML page. Linked URL L1 contains a link to URL L2. Assume the platform calculation for probability of L1 access is P1, and for L2 is P2. The probability the pre-fetch agent software module would assign to L1 is P1 since it is on the current page. The probability the pre-fretch agent software agent would assign to L2 is P1×P2, since P2 can only be accessed if P1 is accessed first. This method may be repeated for arbitrary levels of links by simply multiplying the probabilities of all the “parent” pages. In the case where multiple parent pages are possible, the probabilities may be calculated for each parent, and then averaged.
- In this embodiment,
client device 20 also includes local proxy software, so that operations typically performed by the remote proxy server may be off loaded to the client device advantageously. For example, in an embodiment of a method of using a persistent network connection, such as via the Internet, between a local client platform and a remote proxy server platform in accordance with the present invention, the local proxy on the client device may implement parsing, such as previously described. When executing on the local client platform, parsing software module may produce a list of URLs that are linked in the requested page, which is parsed first. The parsing software module when executing on the local client platform may then send a request to pre-fetch these URLs to the remote proxy server. The pre-fetch request may be different from a regular request, so that thepre-fetching agent 30 executing on the remote proxy server can prioritize it so that it is assigned with a lower priority than regular user requests, as described before. The request may also include user preference information, such as language preference, for example.Pre-fetch agent 30 optionally pre-fetches and transcodes the content according to such preferences, and transmits the signal information to the parsing software module, executing on the client platform. The parsing software receives these data signals stores it in a cache on the client. When the browser or other locally executing application requests this stored signal data, the local proxy, which is one mechanism, for example, for intercepting requests locally, retrieves it from the cache instead of retrieving it from the network, resulting in reductions in user visible latency. This is advantageous over current approaches where pre-fetch requests appear identical to regular requests, resulting in network devices, such as proxy caches and content servers behaving inefficiently. - Although a local proxy implementation on a client platform, for example, is referenced in the previous description, this invention is not limited in scope to a proxy implementation. All client software that is capable of both intercepting network requests on the client, and implementing the pre-fetching protocol, as described, while executing on a platform would suffice. Other examples where this capability may be implemented on a platform include protocol stacks e.g. TCP/IP), network interface card drivers, or browsers.
- As previously suggested, one advantage of employing this approach with a client device is that load balancing is performed between the client device and the remote proxy server. In addition, where local proxy software is executed on the client device, this also provides compatibility between the browser on the client device and the remote proxy server. Without the local proxy executing on the client device, the browser on the client device may not be able to format pre-fetch requests differently from regular or typical user requests to the remote proxy server.
- In yet another embodiment, when the client
parsing software module 40 transmits a pre-fetching request to the pre-fetch agent software executing on the remote proxy server, the pre-fetching agent makes a determination regarding whether a given URL in the pre-fetching request is located in the cache of the remote proxy server. If the URL in the cache on the remote proxy, then the content of the URL may be transmitted to the client device. Alternatively, if the URL is not found in the cache, the remote proxy server transmits a “not found” message to the client device. This could be implemented as a pre-fetching policy where all pre-fetch URLs are assigned probability 0 (meaning never implement the request) unless they are in the cache, in which case they are assigned probability 1 (meaning always implement the request). An advantage of this approach is that it effectively implements pre-fetching without increasing traffic between the proxy and content servers. Keeping traffic and congestion reduced is a desirable attribute for networking and Internet-related technology. - Another advantageous capability may be implemented using the ability to distinguish low priority requests, such as pre-fetch requests, from high priority requests, such as regular requests. In an embodiment of a method of suspending a pre-fetched transmission between a local proxy client platform and a remote proxy server platform in accordance with the present invention, the local proxy client and the remote proxy server maintain a low priority transmission persistent network connection, such as via the Internet, such that low priority pre-fetched transmissions may be suspended or stopped relatively quickly once a high priority browser request transmission is transmitted between the local and remote proxies. Once the pre-fetching transmission is stopped, the connection may be optionally closed or left open for use next time to avoid connection creation overhead. The local proxy executing on the client device may begin a new parsing process for the new requested browser page or data object and optionally establish another persistent preemptive pre-fetching connection with the remote proxy server or alternatively reuse the existing connection. It is desirable in order to quickly suspend the persistent connection that the relative size of the transmissions between the proxies be relatively small, such as on the order of 512 or 1024 bytes for Plain Old Telephone Service (POTS) connections. The desirable packet size is related to a function of the bandwidth of the effective usable bandwidth between the network device and the client, approximately the amount of bytes that may be transmitted in a small time frame, such as 1 second or 500 milliseconds. The effective usable bandwidth across an Internet connection may be computed, such as described, for example, in previously referenced patent application Ser. No. 08/957,468. In this context, the desirable packet equals the desired time frame (e.g., 1 second) divided by the effective usable bandwidth. The reason this results in a relatively quick suspension of the connection is because typically a packet that is in transmission is completed before a new packet is transmitted. Alternatively, in another embodiment, a special escape character or other out of band signaling, for example, may be employed in the signal stream so that the transmission may be terminated once the special character or signal is received, without waiting for the packet to complete. Typically, it is desirable if the preemptive pre-fetching transmission not coexist with a browser request transmission because otherwise this will slow the “regular” browser request transmissions. Thus, the desirability of suspending the persistent preemptive connection between the local and remote proxies.
- An advantage of employing this preemptive pre-fetching approach is a more efficient use of available bandwidth between the client device and the remote proxy server. Without this approach, regular browser requests compete with pre-fetching requests. Therefore, bandwidth may already be exhausted or utilized by pre-fetching requests when a user makes a request for a web page. This is an undesirable outcome because it increases the perceived latency experienced by the user. However, in the embodiment previously described, if the local proxy obtains a request from the user via the client device, a request is transmitted to the remote proxy server to stop pre-fetching so that the browser request may instead be accommodated. Therefore, advantages with regard to bandwidth management prioritization and resource allocation are accomplished. Ultimately, the latency that the user experiences when requesting a web page will be reduced.
- While certain features of the invention have been illustrated as described herein, many modifications, substitutions, changes and equivalents will now occur to those skilled in the art. It is, therefore, to be understood that the appended claims are intended to cover all such embodiments and changes as fall within the true spirit of the invention.
Claims (28)
1. A method of suspending a network connection used for low priority transmissions between a client platform and a server platform comprising:
determining a characteristic of a transmission between the client platform and the server platform, said characteristic consisting essentially of a high priority transmission and a low priority transmission; and
suspending the connection if the characteristic of the transmission comprises a high priority transmission.
2. The method of claim 1 , wherein the low priority transmission comprises a pre-fetching request.
3. The method of claim 2 , wherein the high priority transmission comprises a user request.
4. The method of claim 1 , wherein suspending the connection includes closing the connection.
5. The method of claim 1 , and further comprising:
resuming at least one low priority transmission via the connection after the high priority transmission is complete.
6. The method of claim 1 , and further comprising:
maintaining the connection if the characteristic of the transmission comprises a low priority transmission.
7. The method of claim 1 , wherein the client platform comprises one of a personal computer (PC), a router, a switch, a bridge and a hub.
8. The method of claim 1 , wherein the server platform comprises one of a personal computer (PC), a router, a switch, a bridge and a hub.
9. A method of using a network connection between a client platform and a server platform comprising:
producing on one of the platforms a list of Uniform Resource Locators (URLs) from a requested network page, said list comprising links in said requested network page; and
pre-fetching via said connection at least one of said URLs to said remote proxy server.
10. The method of claim 9 , pre-fetching at least one of said URLs includes transcoding the fetched object corresponding to the at feast one of said URLS.
11. The method of claim 10 , transcoding the fetched object includes transcoding it in accordance with a user determined preference.
12. The method of claim 11 , wherein producing a list of URLs from a requested network page includes parsing the requested network page.
13. The method of claim 10 , wherein the list of URLs is produced on the client.
14. The method of claim 10 , wherein the list of URLs is produced on the server.
15. The method of claim 14 , wherein pre-fetching said URLs comprises pre-fetching in attendance with a substantially predetermined pre-fetching policy.
16. The method of claim 9 , wherein the client platform comprises one of a personal computer (PC), a router, a switch, a bridge and a hub.
17. The method of claim 9 , wherein the server platform comprises one of a personal computer (PC), a router, a switch, a bridge and a hub.
18. An article comprising:
a machine readable storage medium having stored thereon instructions capable of being executed by a data processing platform, said instructions being adapted to parse a list of URLs from a received network data object and to pre-fetch via a network connection said URLs to a remote platform in accordance with a pre-determined pre-fetching policy.
19. The article of claim 18 , wherein either of said platforms comprises any one of a client, a server, a router, a hub, a bridge and a switch.
20. The article of claim 18 , wherein said instructions are included in any one of a browser, a network card driver, a protocol stack, and a proxy.
21. The article of claim 18 , wherein said pre-fetching policy comprises pre-fetching embedded URLs.
22. A network comprising:
a first platform and a second platform;
said platforms being capable of communicating via a network connection;
the first platform being adapted to parse a list of URLs from a requested network data object and to pre-fetch via said network connection said URLs to the second platform.
23. The network of claim 22 , wherein at least one of said platforms comprises one of a personal computer (PC), a server, a client, a router, a hub, a bridge and a switch.
24. An article comprising:
a machine readable storage medium having stored thereon instructions capable of being executed by a data processing platform, said instructions being adapted to parse a list of URLs from a received network data object and to pre-fetch via a network connection said URLs to a remote platform in accordance with a pre-determined pre-fetching policy.
25. The article of claim 22 , wherein either of said platforms comprises any one of a client, a server, a router, a hub, a bridge and a switch.
26. The article of claim 24 , wherein said instructions are included in any one of a browser, a network card driver, a protocol stack, and a proxy.
27. A network comprising;
a first platform and a second platform;
said platforms being capable of communicating via a low priority transmission network connection;
the platforms being adapted to suspend the low priority transmission connection if a high priority transmission request occurs on at least one of the platforms.
28. The network of claim 27 , wherein at least one of said platforms comprises one of a personal computer (PC), a server, a client, a router, a hub, a bridge and a switch.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/036,703 US20020062384A1 (en) | 1998-03-06 | 2001-12-31 | Method of proxy-assisted predictive pre-fetching |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/036,699 US6959318B1 (en) | 1998-03-06 | 1998-03-06 | Method of proxy-assisted predictive pre-fetching with transcoding |
US10/036,703 US20020062384A1 (en) | 1998-03-06 | 2001-12-31 | Method of proxy-assisted predictive pre-fetching |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/036,699 Division US6959318B1 (en) | 1998-03-06 | 1998-03-06 | Method of proxy-assisted predictive pre-fetching with transcoding |
Publications (1)
Publication Number | Publication Date |
---|---|
US20020062384A1 true US20020062384A1 (en) | 2002-05-23 |
Family
ID=21890118
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/036,699 Expired - Fee Related US6959318B1 (en) | 1998-03-06 | 1998-03-06 | Method of proxy-assisted predictive pre-fetching with transcoding |
US10/036,703 Abandoned US20020062384A1 (en) | 1998-03-06 | 2001-12-31 | Method of proxy-assisted predictive pre-fetching |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/036,699 Expired - Fee Related US6959318B1 (en) | 1998-03-06 | 1998-03-06 | Method of proxy-assisted predictive pre-fetching with transcoding |
Country Status (1)
Country | Link |
---|---|
US (2) | US6959318B1 (en) |
Cited By (86)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020099785A1 (en) * | 2000-11-14 | 2002-07-25 | Doug Teeple | Enhanced multimedia mobile content delivery and message system using cache management |
US20020133598A1 (en) * | 2001-03-16 | 2002-09-19 | Strahm Frederick William | Network communication |
US20030005040A1 (en) * | 2001-06-29 | 2003-01-02 | Puneet Kukkal | Providing uninterrupted media streaming using multiple network sites |
US20040193713A1 (en) * | 2003-03-28 | 2004-09-30 | International Business Machines Corporation | Non-intrusive recursive dispatching of nested service collections for aggregating web services |
US20040236804A1 (en) * | 2002-03-06 | 2004-11-25 | Pieter Bots | Monitoring and data exchange procedure for a peripheral data storage unit |
US20040258053A1 (en) * | 2003-06-16 | 2004-12-23 | Mentat Inc. | Pre-fetch communication systems and methods |
WO2005001660A2 (en) * | 2003-06-25 | 2005-01-06 | Anonymizer, Inc. | Secure network privacy system using proxy server |
US20050125553A1 (en) * | 2003-08-12 | 2005-06-09 | Nbt Technology, Inc., (A Delaware Corporation) | Content delivery for client-server protocols with user affinities using connection end-point proxies |
US20050238040A1 (en) * | 1998-09-18 | 2005-10-27 | Harris Corporation | Distributed trunking mechanism for VHF networking |
US20060010225A1 (en) * | 2004-03-31 | 2006-01-12 | Ai Issa | Proxy caching in a photosharing peer-to-peer network to improve guest image viewing performance |
US20060136551A1 (en) * | 2004-11-16 | 2006-06-22 | Chris Amidon | Serving content from an off-line peer server in a photosharing peer-to-peer network in response to a guest request |
US20070022174A1 (en) * | 2005-07-25 | 2007-01-25 | Issa Alfredo C | Syndication feeds for peer computer devices and peer networks |
US20070214150A1 (en) * | 2006-03-10 | 2007-09-13 | Adam Chace | Methods and apparatus for accessing data |
US7296051B1 (en) * | 2002-02-19 | 2007-11-13 | Digital River, Inc. | Predictive predownload of templates with delta encoding |
US20080005163A1 (en) * | 2006-06-30 | 2008-01-03 | International Business Machines Corporation | Method and Apparatus For Caching Broadcasting Information |
US7343398B1 (en) * | 2002-09-04 | 2008-03-11 | Packeteer, Inc. | Methods, apparatuses and systems for transparently intermediating network traffic over connection-based authentication protocols |
US20080222244A1 (en) * | 2007-03-09 | 2008-09-11 | Riverbed Technology, Inc. | Method and apparatus for acceleration by prefetching associated objects |
US20090019153A1 (en) * | 2007-07-12 | 2009-01-15 | Viasat, Inc. | Methods and systems for performing a prefetch abort operation |
US7487261B1 (en) | 2002-02-22 | 2009-02-03 | Digital River, Inc. | Delta caching service |
US20090106381A1 (en) * | 1999-11-09 | 2009-04-23 | Digital River, Inc. | Network Object Predictive Pre-Download Device |
US20090288019A1 (en) * | 2008-05-15 | 2009-11-19 | Microsoft Corporation | Dynamic image map and graphics for rendering mobile web application interfaces |
US7707182B1 (en) * | 1999-06-22 | 2010-04-27 | F5 Networks, Inc. | Method and system for automatically updating the version of a set of files stored on content servers |
US7774499B1 (en) * | 2003-10-30 | 2010-08-10 | United Online, Inc. | Accelerating network communications |
US20100281224A1 (en) * | 2009-05-01 | 2010-11-04 | International Buisness Machines Corporation | Prefetching content from incoming messages |
US7962594B2 (en) | 2001-06-22 | 2011-06-14 | Digital River, Inc. | Delivering content on a network using differential caching system and method |
US8005889B1 (en) | 2005-11-16 | 2011-08-23 | Qurio Holdings, Inc. | Systems, methods, and computer program products for synchronizing files in a photosharing peer-to-peer network |
US20110295979A1 (en) * | 2010-05-28 | 2011-12-01 | Strangeloop Networks Inc. | Accelerating HTTP Responses In A Client/Server Environment |
US8116275B2 (en) | 2005-10-13 | 2012-02-14 | Trapeze Networks, Inc. | System and network for wireless network monitoring |
US8150357B2 (en) | 2008-03-28 | 2012-04-03 | Trapeze Networks, Inc. | Smoothing filter for irregular update intervals |
US8161278B2 (en) | 2005-03-15 | 2012-04-17 | Trapeze Networks, Inc. | System and method for distributing keys in a wireless network |
US20120110110A1 (en) * | 2010-11-01 | 2012-05-03 | Michael Luna | Request and response characteristics based adaptation of distributed caching in a mobile network |
US8218449B2 (en) | 2005-10-13 | 2012-07-10 | Trapeze Networks, Inc. | System and method for remote monitoring in a wireless network |
US8238298B2 (en) | 2008-08-29 | 2012-08-07 | Trapeze Networks, Inc. | Picking an optimal channel for an access point in a wireless network |
US8238942B2 (en) | 2007-11-21 | 2012-08-07 | Trapeze Networks, Inc. | Wireless station location detection |
EP2512101A1 (en) | 2011-04-11 | 2012-10-17 | Deutsche Telekom AG | Method and system to pre-fetch user-specific HTTP requests for web applications |
US8326923B1 (en) * | 2008-07-08 | 2012-12-04 | F5 Networks, Inc. | Smart prefetching of data over a network |
US8340110B2 (en) | 2006-09-15 | 2012-12-25 | Trapeze Networks, Inc. | Quality of service provisioning for wireless networks |
US20130041937A1 (en) * | 2011-06-30 | 2013-02-14 | International Business Machines Corporation | Pre-fetching data |
US8386637B2 (en) | 2005-03-18 | 2013-02-26 | Riverbed Technology, Inc. | Connection forwarding |
US20130091273A1 (en) * | 2003-08-12 | 2013-04-11 | Riverbed Technology, Inc. | Cooperative Proxy Auto-Discovery and Connection Interception Through Network Address Translation |
US20130124972A1 (en) * | 2011-10-04 | 2013-05-16 | Vincent LE CHEVALIER | Electronic Content Management and Delivery Platform |
US8457031B2 (en) | 2005-10-13 | 2013-06-04 | Trapeze Networks, Inc. | System and method for reliable multicast |
US8463843B2 (en) | 2006-05-26 | 2013-06-11 | Riverbed Technology, Inc. | Throttling of predictive ACKs in an accelerated network communication system |
WO2013090126A1 (en) | 2011-12-16 | 2013-06-20 | Microsoft Corporation | Application-driven cdn pre-caching |
US20130318194A1 (en) * | 2012-05-25 | 2013-11-28 | Dell Products, Lp | Micro-Staging Device and Method for Micro-Staging |
US8638762B2 (en) | 2005-10-13 | 2014-01-28 | Trapeze Networks, Inc. | System and method for network integrity |
US20140032648A1 (en) * | 2012-07-24 | 2014-01-30 | Fujitsu Limited | Information processing apparatus, data provision method, and storage medium |
US8670383B2 (en) | 2006-12-28 | 2014-03-11 | Trapeze Networks, Inc. | System and method for aggregation and queuing in a wireless network |
US8706805B2 (en) * | 2011-12-19 | 2014-04-22 | International Business Machines Corporation | Information caching system |
US8762569B1 (en) | 2006-05-30 | 2014-06-24 | Riverbed Technology, Inc. | System for selecting a proxy pair based on configurations of autodiscovered proxies on a network |
US8788572B1 (en) * | 2005-12-27 | 2014-07-22 | Qurio Holdings, Inc. | Caching proxy server for a peer-to-peer photosharing system |
US8818322B2 (en) | 2006-06-09 | 2014-08-26 | Trapeze Networks, Inc. | Untethered access point mesh system and method |
US20140289254A1 (en) * | 2004-01-22 | 2014-09-25 | Sony Electronics Inc. | Methods and apparatuses for presenting content |
US20140317695A1 (en) * | 2001-04-11 | 2014-10-23 | Facebook, Inc. | Leveraging a persistent connection to access a secured service |
US20140344345A1 (en) * | 2005-05-26 | 2014-11-20 | Citrix Systems, Inc. | Systems and methods for using an http-aware client agent |
US8902904B2 (en) * | 2007-09-07 | 2014-12-02 | Trapeze Networks, Inc. | Network assignment based on priority |
US20150012614A1 (en) * | 2013-03-15 | 2015-01-08 | Instart Logic, Inc. | Efficient delivery of webpages |
US20150012608A1 (en) * | 2012-08-31 | 2015-01-08 | Panasonic Intellectual Property Corporation Of America | Web content prefetch control device, web content prefetch control program, and web content prefetch control method |
US8964747B2 (en) | 2006-05-03 | 2015-02-24 | Trapeze Networks, Inc. | System and method for restricting network access using forwarding databases |
US8966018B2 (en) | 2006-05-19 | 2015-02-24 | Trapeze Networks, Inc. | Automated network device configuration and network deployment |
US8978105B2 (en) | 2008-07-25 | 2015-03-10 | Trapeze Networks, Inc. | Affirming network relationships and resource access via related networks |
US9107452B2 (en) | 2003-06-13 | 2015-08-18 | Philip Morris Usa Inc. | Catalyst to reduce carbon monoxide in the mainstream smoke of a cigarette |
US9124666B2 (en) | 2002-10-30 | 2015-09-01 | Riverbed Technology, Inc. | Reliability and availability of distributed servers |
WO2015147354A1 (en) * | 2014-03-27 | 2015-10-01 | 엘지전자 주식회사 | Spdy-based web acceleration method and spdy proxy therefor |
US20150293889A1 (en) * | 2014-04-09 | 2015-10-15 | Google Inc. | Perception of page download time by optimized resource scheduling |
US20150304384A1 (en) * | 2012-10-25 | 2015-10-22 | Samsung Electronics Co., Ltd. | Apparatus and method for accessing web in network system |
US9191799B2 (en) | 2006-06-09 | 2015-11-17 | Juniper Networks, Inc. | Sharing data between wireless switches system and method |
US9258702B2 (en) | 2006-06-09 | 2016-02-09 | Trapeze Networks, Inc. | AP-local dynamic switching |
US9298455B1 (en) | 2013-03-15 | 2016-03-29 | Instart Logic, Inc. | Provisional execution of dynamic content component |
US9363329B1 (en) | 2013-03-15 | 2016-06-07 | Instart Logic, Inc. | Identifying correlated components of dynamic content |
US20160219121A1 (en) * | 2013-08-26 | 2016-07-28 | Sony Corporation | Proxy-server device, information processing method, program, terminal device, and content supply system |
US9432486B2 (en) | 2010-11-01 | 2016-08-30 | Seven Networks, Llc | Selective data compression by a distributed traffic management system to reduce mobile data traffic and signaling traffic |
US9460229B2 (en) | 2007-10-15 | 2016-10-04 | Viasat, Inc. | Methods and systems for implementing a cache model in a prefetching system |
US9473914B2 (en) | 2008-01-11 | 2016-10-18 | Seven Networks, Llc | System and method for providing a network service in a distributed fashion to a mobile device |
US9521118B2 (en) | 2003-06-25 | 2016-12-13 | Ntrepid Corporation | Secure network privacy system |
US20160381169A1 (en) * | 2009-09-03 | 2016-12-29 | At&T Intellectual Property I, L.P. | Anycast Aware Transport For Content Distribution Networks |
US9569410B2 (en) | 2012-08-13 | 2017-02-14 | Chegg, Inc. | Multilayered document distribution in multiscreen systems |
US9654328B2 (en) | 2007-10-15 | 2017-05-16 | Viasat, Inc. | Methods and systems for implementing a cache model in a prefetching system |
US20170208125A1 (en) * | 2016-01-19 | 2017-07-20 | Hope Bay Technologies, Inc | Method and apparatus for data prefetch in cloud based storage system |
US9813480B2 (en) | 2015-01-08 | 2017-11-07 | Instart Logic, Inc. | Placeholders for dynamic components in HTML streaming |
US9948608B2 (en) | 2006-08-03 | 2018-04-17 | Citrix Systems, Inc. | Systems and methods for using an HTTP-aware client agent |
US10296458B2 (en) * | 2017-05-31 | 2019-05-21 | Dell Products L.P. | Multi-level cache system in a software application |
US10361997B2 (en) | 2016-12-29 | 2019-07-23 | Riverbed Technology, Inc. | Auto discovery between proxies in an IPv6 network |
CN110858238A (en) * | 2018-08-08 | 2020-03-03 | 阿里巴巴集团控股有限公司 | Data processing method and device |
WO2020146019A1 (en) * | 2019-01-09 | 2020-07-16 | Ebay Inc. | Asynchronous predictive caching of content listed in search results |
US10887418B1 (en) * | 2008-08-25 | 2021-01-05 | Google Llc | Parallel, side-effect based DNS pre-caching |
Families Citing this family (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010044850A1 (en) * | 1998-07-22 | 2001-11-22 | Uri Raz | Method and apparatus for determining the order of streaming modules |
US7197570B2 (en) | 1998-07-22 | 2007-03-27 | Appstream Inc. | System and method to send predicted application streamlets to a client device |
US7917744B2 (en) * | 1999-02-03 | 2011-03-29 | Cybersoft, Inc. | Apparatus and methods for intercepting, examining and controlling code, data and files and their transfer in instant messaging and peer-to-peer applications |
CA2301435C (en) * | 1999-04-16 | 2006-10-10 | At&T Corp. | Method for reducing congestion in packet-switched networks |
US7743089B2 (en) * | 1999-10-13 | 2010-06-22 | Intel Corporation | Method and system for dynamic application layer gateways |
US6694358B1 (en) * | 1999-11-22 | 2004-02-17 | Speedera Networks, Inc. | Performance computer network method |
US6947440B2 (en) * | 2000-02-15 | 2005-09-20 | Gilat Satellite Networks, Ltd. | System and method for internet page acceleration including multicast transmissions |
US8145798B1 (en) * | 2000-05-01 | 2012-03-27 | Novell, Inc. | System and method for automatic provisioning of onsite networking services |
FR2813416B1 (en) * | 2000-08-31 | 2003-10-17 | Canon Kk | METHOD AND DEVICE FOR ADAPTING THE CONTENT OF DOCUMENTS ON AN INFORMATION SERVER |
JP2002259259A (en) * | 2001-02-27 | 2002-09-13 | Canon Inc | System and method for communicating image data and storage medium |
DE10116863A1 (en) * | 2001-04-04 | 2002-10-17 | Infineon Technologies Ag | interface |
US7447731B2 (en) * | 2001-12-17 | 2008-11-04 | International Business Machines Corporation | Method and apparatus for distributed application execution |
US7266611B2 (en) * | 2002-03-12 | 2007-09-04 | Dilithium Networks Pty Limited | Method and system for improved transcoding of information through a telecommunication network |
US7114160B2 (en) | 2002-04-17 | 2006-09-26 | Sbc Technology Resources, Inc. | Web content customization via adaptation Web services |
JP4263873B2 (en) * | 2002-04-18 | 2009-05-13 | ヤマハ株式会社 | Server apparatus, client apparatus, distribution system, distribution program, and client program |
GB2392518B (en) * | 2002-09-02 | 2004-09-22 | 3Com Corp | Computer network and method of operating same to preload content of selected web pages |
US6910106B2 (en) * | 2002-10-04 | 2005-06-21 | Microsoft Corporation | Methods and mechanisms for proactive memory management |
US7177915B2 (en) * | 2002-12-31 | 2007-02-13 | Kurt Kopchik | Method and apparatus for wirelessly establishing user preference settings on a computer |
US7627817B2 (en) | 2003-02-21 | 2009-12-01 | Motionpoint Corporation | Analyzing web site for translation |
US7660877B2 (en) * | 2003-05-19 | 2010-02-09 | Hewlett-Packard Development Company, L.P. | Systems and methods in which a provider is selected to service content requested by a client device |
US20050015765A1 (en) * | 2003-05-19 | 2005-01-20 | Michele Covell | System for doing service location management taking into account the node and network characteristics |
US7331038B1 (en) * | 2003-07-02 | 2008-02-12 | Amazon.Com, Inc. | Predictive prefetching to improve parallelization of document generation subtasks |
US7853699B2 (en) | 2005-03-15 | 2010-12-14 | Riverbed Technology, Inc. | Rules-based transaction prefetching using connection end-point proxies |
KR20050034811A (en) * | 2003-10-10 | 2005-04-15 | 한국전자통신연구원 | Systematic modality conversion methodology for supporting qos in multimedia services over heterogeneous environment, and system thereof |
US20050198395A1 (en) * | 2003-12-29 | 2005-09-08 | Pradeep Verma | Reusable compressed objects |
US7483941B2 (en) * | 2004-01-13 | 2009-01-27 | International Business Machines Corporation | System and method for dynamically inserting prefetch tags by the web server |
US7995506B2 (en) * | 2004-03-23 | 2011-08-09 | Flash Networks Ltd. | System and method for integrating information services through cellular network |
US20110035431A1 (en) * | 2004-05-13 | 2011-02-10 | Guttapercha Partners, Inc. | Dissemination of Information In an Intermittent Network Connectivity |
US7490197B2 (en) | 2004-10-21 | 2009-02-10 | Microsoft Corporation | Using external memory devices to improve system performance |
US20070130121A1 (en) * | 2005-12-01 | 2007-06-07 | Dolph Blaine H | System and method of displaying a document including an embedded link |
US8914557B2 (en) | 2005-12-16 | 2014-12-16 | Microsoft Corporation | Optimizing write and wear performance for a memory |
US20080065718A1 (en) * | 2006-09-12 | 2008-03-13 | Emc Corporation | Configuring a cache prefetch policy that is controllable based on individual requests |
US20080098314A1 (en) * | 2006-10-19 | 2008-04-24 | Sharfman Joshua D J | Method and system for preparing and delivering an archive of information reposed on a collaborative transaction management platform |
US7941609B2 (en) * | 2007-02-23 | 2011-05-10 | Microsoft Corporation | HTTP acceleration by prediction and pre-fetching |
US8631203B2 (en) | 2007-12-10 | 2014-01-14 | Microsoft Corporation | Management of external memory functioning as virtual cache |
CN101960434A (en) * | 2008-03-05 | 2011-01-26 | 富士胶片株式会社 | Proxy server, and method and program for controlling the same |
US9032151B2 (en) | 2008-09-15 | 2015-05-12 | Microsoft Technology Licensing, Llc | Method and system for ensuring reliability of cache data and metadata subsequent to a reboot |
US8032707B2 (en) | 2008-09-15 | 2011-10-04 | Microsoft Corporation | Managing cache data and metadata |
US7953774B2 (en) | 2008-09-19 | 2011-05-31 | Microsoft Corporation | Aggregation of write traffic to a data store |
US20110093790A1 (en) * | 2009-10-21 | 2011-04-21 | International Business Machines Corporation | Preemptive caching for web-based systems |
WO2011054912A1 (en) * | 2009-11-06 | 2011-05-12 | Alcatel Lucent | A system and method for pre-fetching and caching content |
US8706802B1 (en) | 2009-11-24 | 2014-04-22 | Google Inc. | Latency-guided web content retrieval, serving, and rendering |
EP2680162A1 (en) | 2010-07-13 | 2014-01-01 | Motionpoint Corporation | Localisation of website content |
US8892708B2 (en) * | 2011-07-11 | 2014-11-18 | Cisco Technology, Inc. | Placement of service delivery locations of a distributed computing service based on logical topology |
EP2759075A4 (en) | 2011-09-23 | 2015-06-03 | Gilat Satellite Networks Ltd | Decentralized caching system |
US8886752B2 (en) * | 2011-11-21 | 2014-11-11 | Sony Computer Entertainment America | System and method for optimizing transfers of downloadable content |
US9356980B2 (en) | 2012-07-31 | 2016-05-31 | At&T Intellectual Property I, L.P. | Distributing communication of a data stream among multiple devices |
US9680955B1 (en) * | 2013-03-14 | 2017-06-13 | Twc Patent Trust Llt | Persistent local caching of image data on a computing device |
US9081789B2 (en) | 2013-10-28 | 2015-07-14 | Tealium Inc. | System for prefetching digital tags |
US10410244B2 (en) | 2013-11-13 | 2019-09-10 | Bi Science (2009) Ltd | Behavioral content discovery |
US11070608B2 (en) * | 2015-06-17 | 2021-07-20 | Fastly, Inc. | Expedited sub-resource loading |
US10320934B1 (en) * | 2015-08-25 | 2019-06-11 | Instart Logic, Inc. | One-time cache |
US10686702B2 (en) * | 2015-11-06 | 2020-06-16 | Cable Television Laboratories, Inc. | Preemptive caching of content in a content-centric network |
CN105610909B (en) * | 2015-12-21 | 2019-01-18 | 北京大学 | A kind of loaded and optimized method of mobile browser resource cooperateed with based on cloud-end |
US10972501B2 (en) | 2018-11-05 | 2021-04-06 | United States Of America As Represented By The Secretary Of The Navy | Method and system for improving network and software security using shared trust and an egress man-in-the-middle (MITM) algorithm for performing clandestine traffic modification |
US11146656B2 (en) | 2019-12-20 | 2021-10-12 | Tealium Inc. | Feature activation control and data prefetching with network-connected mobile devices |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5802292A (en) * | 1995-04-28 | 1998-09-01 | Digital Equipment Corporation | Method for predictive prefetching of information over a communications network |
US5903727A (en) * | 1996-06-18 | 1999-05-11 | Sun Microsystems, Inc. | Processing HTML to embed sound in a web page |
US5918013A (en) * | 1996-06-03 | 1999-06-29 | Webtv Networks, Inc. | Method of transcoding documents in a network environment using a proxy server |
US5978841A (en) * | 1996-03-08 | 1999-11-02 | Berger; Louis | Look ahead caching process for improved information retrieval response time by caching bodies of information before they are requested by the user |
US6038601A (en) * | 1997-07-21 | 2000-03-14 | Tibco, Inc. | Method and apparatus for storing and delivering documents on the internet |
US6055572A (en) * | 1998-01-20 | 2000-04-25 | Netscape Communications Corporation | System and method for creating pathfiles for use to predict patterns of web surfaces |
US6101328A (en) * | 1997-12-31 | 2000-08-08 | Intel Corporation | System for preventing multiple instances of the same dynamic executable module |
US6215774B1 (en) * | 1997-03-25 | 2001-04-10 | Intel Corporation | System for dynamically determining effective speed of a communication link |
US6366947B1 (en) * | 1998-01-20 | 2002-04-02 | Redmond Venture, Inc. | System and method for accelerating network interaction |
US6584498B2 (en) * | 1996-09-13 | 2003-06-24 | Planet Web, Inc. | Dynamic preloading of web pages |
US6769019B2 (en) * | 1997-12-10 | 2004-07-27 | Xavier Ferguson | Method of background downloading of information from a computer network |
US6807570B1 (en) * | 1997-01-21 | 2004-10-19 | International Business Machines Corporation | Pre-loading of web pages corresponding to designated links in HTML |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07210558A (en) * | 1994-01-20 | 1995-08-11 | Fujitsu Ltd | Machine translation device |
JPH09259126A (en) * | 1996-03-21 | 1997-10-03 | Sharp Corp | Data processor |
US5727129A (en) * | 1996-06-04 | 1998-03-10 | International Business Machines Corporation | Network system for profiling and actively facilitating user activities |
US5956039A (en) * | 1997-07-25 | 1999-09-21 | Platinum Technology Ip, Inc. | System and method for increasing performance by efficient use of limited resources via incremental fetching, loading and unloading of data assets of three-dimensional worlds based on transient asset priorities |
US6012067A (en) * | 1998-03-02 | 2000-01-04 | Sarkar; Shyam Sundar | Method and apparatus for storing and manipulating objects in a plurality of relational data managers on the web |
-
1998
- 1998-03-06 US US09/036,699 patent/US6959318B1/en not_active Expired - Fee Related
-
2001
- 2001-12-31 US US10/036,703 patent/US20020062384A1/en not_active Abandoned
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5802292A (en) * | 1995-04-28 | 1998-09-01 | Digital Equipment Corporation | Method for predictive prefetching of information over a communications network |
US5978841A (en) * | 1996-03-08 | 1999-11-02 | Berger; Louis | Look ahead caching process for improved information retrieval response time by caching bodies of information before they are requested by the user |
US5918013A (en) * | 1996-06-03 | 1999-06-29 | Webtv Networks, Inc. | Method of transcoding documents in a network environment using a proxy server |
US5903727A (en) * | 1996-06-18 | 1999-05-11 | Sun Microsystems, Inc. | Processing HTML to embed sound in a web page |
US6584498B2 (en) * | 1996-09-13 | 2003-06-24 | Planet Web, Inc. | Dynamic preloading of web pages |
US6807570B1 (en) * | 1997-01-21 | 2004-10-19 | International Business Machines Corporation | Pre-loading of web pages corresponding to designated links in HTML |
US6215774B1 (en) * | 1997-03-25 | 2001-04-10 | Intel Corporation | System for dynamically determining effective speed of a communication link |
US6038601A (en) * | 1997-07-21 | 2000-03-14 | Tibco, Inc. | Method and apparatus for storing and delivering documents on the internet |
US6769019B2 (en) * | 1997-12-10 | 2004-07-27 | Xavier Ferguson | Method of background downloading of information from a computer network |
US6101328A (en) * | 1997-12-31 | 2000-08-08 | Intel Corporation | System for preventing multiple instances of the same dynamic executable module |
US6055572A (en) * | 1998-01-20 | 2000-04-25 | Netscape Communications Corporation | System and method for creating pathfiles for use to predict patterns of web surfaces |
US6366947B1 (en) * | 1998-01-20 | 2002-04-02 | Redmond Venture, Inc. | System and method for accelerating network interaction |
Cited By (168)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050238040A1 (en) * | 1998-09-18 | 2005-10-27 | Harris Corporation | Distributed trunking mechanism for VHF networking |
US7933286B2 (en) * | 1998-09-18 | 2011-04-26 | Harris Corporation | Distributed trunking mechanism for VHF networking |
US7707182B1 (en) * | 1999-06-22 | 2010-04-27 | F5 Networks, Inc. | Method and system for automatically updating the version of a set of files stored on content servers |
US7836177B2 (en) | 1999-11-09 | 2010-11-16 | Digital River, Inc. | Network object predictive pre-download device |
US20090106381A1 (en) * | 1999-11-09 | 2009-04-23 | Digital River, Inc. | Network Object Predictive Pre-Download Device |
US6785707B2 (en) * | 2000-11-14 | 2004-08-31 | Bitfone Corp. | Enhanced multimedia mobile content delivery and message system using cache management |
US20020099785A1 (en) * | 2000-11-14 | 2002-07-25 | Doug Teeple | Enhanced multimedia mobile content delivery and message system using cache management |
US20020133598A1 (en) * | 2001-03-16 | 2002-09-19 | Strahm Frederick William | Network communication |
US9282011B2 (en) | 2001-03-16 | 2016-03-08 | Intel Corporation | Network communication |
US20110096741A1 (en) * | 2001-03-16 | 2011-04-28 | Frederick William Strahm | Network communication |
US9461981B2 (en) * | 2001-04-11 | 2016-10-04 | Facebook, Inc. | Leveraging a persistent connection to access a secured service |
US9197627B2 (en) | 2001-04-11 | 2015-11-24 | Facebook, Inc. | Leveraging a persistent connection to access a secured service |
US20150012985A1 (en) * | 2001-04-11 | 2015-01-08 | Facebook, Inc. | Leveraging a persistent connection to access a secured service |
US9197626B2 (en) | 2001-04-11 | 2015-11-24 | Facebook, Inc. | Leveraging a persistent connection to access a secured service |
US20140317695A1 (en) * | 2001-04-11 | 2014-10-23 | Facebook, Inc. | Leveraging a persistent connection to access a secured service |
US7962594B2 (en) | 2001-06-22 | 2011-06-14 | Digital River, Inc. | Delivering content on a network using differential caching system and method |
US7454485B2 (en) * | 2001-06-29 | 2008-11-18 | Intel Corporation | Providing uninterrupted media streaming using multiple network sites |
US20030005040A1 (en) * | 2001-06-29 | 2003-01-02 | Puneet Kukkal | Providing uninterrupted media streaming using multiple network sites |
US7296051B1 (en) * | 2002-02-19 | 2007-11-13 | Digital River, Inc. | Predictive predownload of templates with delta encoding |
US7487261B1 (en) | 2002-02-22 | 2009-02-03 | Digital River, Inc. | Delta caching service |
US20040236804A1 (en) * | 2002-03-06 | 2004-11-25 | Pieter Bots | Monitoring and data exchange procedure for a peripheral data storage unit |
US7343398B1 (en) * | 2002-09-04 | 2008-03-11 | Packeteer, Inc. | Methods, apparatuses and systems for transparently intermediating network traffic over connection-based authentication protocols |
US9124666B2 (en) | 2002-10-30 | 2015-09-01 | Riverbed Technology, Inc. | Reliability and availability of distributed servers |
US20040193713A1 (en) * | 2003-03-28 | 2004-09-30 | International Business Machines Corporation | Non-intrusive recursive dispatching of nested service collections for aggregating web services |
US7249178B2 (en) * | 2003-03-28 | 2007-07-24 | International Business Machines Corporation | Non-intrusive recursive dispatching of nested service collections for aggregating web services |
US9107452B2 (en) | 2003-06-13 | 2015-08-18 | Philip Morris Usa Inc. | Catalyst to reduce carbon monoxide in the mainstream smoke of a cigarette |
US20040258053A1 (en) * | 2003-06-16 | 2004-12-23 | Mentat Inc. | Pre-fetch communication systems and methods |
US7359395B2 (en) * | 2003-06-16 | 2008-04-15 | Packeteer, Inc. | Pre-fetch communication systems and methods |
US20090013399A1 (en) * | 2003-06-25 | 2009-01-08 | Anonymizer, Inc. | Secure Network Privacy System |
WO2005001660A3 (en) * | 2003-06-25 | 2005-07-28 | Anonymizer Inc | Secure network privacy system using proxy server |
US9521118B2 (en) | 2003-06-25 | 2016-12-13 | Ntrepid Corporation | Secure network privacy system |
WO2005001660A2 (en) * | 2003-06-25 | 2005-01-06 | Anonymizer, Inc. | Secure network privacy system using proxy server |
US8615795B2 (en) | 2003-06-25 | 2013-12-24 | Ntrepid Corporation | Secure network privacy system |
US8635346B2 (en) | 2003-08-12 | 2014-01-21 | Riverbed Technology, Inc. | Content delivery for client server protocols with user affinities using connection end-point proxies |
US8938553B2 (en) * | 2003-08-12 | 2015-01-20 | Riverbed Technology, Inc. | Cooperative proxy auto-discovery and connection interception through network address translation |
US8316118B1 (en) | 2003-08-12 | 2012-11-20 | Riverbed Technology, Inc. | Cooperative proxy auto-discovery and connection interception |
US20100088370A1 (en) * | 2003-08-12 | 2010-04-08 | Riverbed Technology, Inc. | Content delivery for client server protocols with user affinities using connection end-point proxies |
US7650416B2 (en) * | 2003-08-12 | 2010-01-19 | Riverbed Technology | Content delivery for client-server protocols with user affinities using connection end-point proxies |
US20090157888A1 (en) * | 2003-08-12 | 2009-06-18 | Riverbed Technology, Inc. | Cooperative proxy auto-discovery and connection interception |
US20080320154A1 (en) * | 2003-08-12 | 2008-12-25 | Riverbed Technology, Inc. | Cooperative proxy auto-discovery and connection interception |
US7953869B2 (en) | 2003-08-12 | 2011-05-31 | Riverbed Technology, Inc. | Cooperative proxy auto-discovery and connection interception |
US20130091273A1 (en) * | 2003-08-12 | 2013-04-11 | Riverbed Technology, Inc. | Cooperative Proxy Auto-Discovery and Connection Interception Through Network Address Translation |
US8671205B2 (en) | 2003-08-12 | 2014-03-11 | Riverbed Technology, Inc. | Cooperative proxy auto-discovery and connection interception |
US9172620B2 (en) | 2003-08-12 | 2015-10-27 | Riverbed Technology, Inc. | Cooperative proxy auto-discovery and connection interception |
US20050125553A1 (en) * | 2003-08-12 | 2005-06-09 | Nbt Technology, Inc., (A Delaware Corporation) | Content delivery for client-server protocols with user affinities using connection end-point proxies |
US20100281114A1 (en) * | 2003-10-30 | 2010-11-04 | Gerald Popek | Accelerating Network Communications |
US7774499B1 (en) * | 2003-10-30 | 2010-08-10 | United Online, Inc. | Accelerating network communications |
US8010699B2 (en) * | 2003-10-30 | 2011-08-30 | United Online, Inc. | Accelerating network communications |
US20140289254A1 (en) * | 2004-01-22 | 2014-09-25 | Sony Electronics Inc. | Methods and apparatuses for presenting content |
US10372748B2 (en) * | 2004-01-22 | 2019-08-06 | Sony Corporation | Methods and apparatuses for presenting content |
US20060010225A1 (en) * | 2004-03-31 | 2006-01-12 | Ai Issa | Proxy caching in a photosharing peer-to-peer network to improve guest image viewing performance |
US8234414B2 (en) | 2004-03-31 | 2012-07-31 | Qurio Holdings, Inc. | Proxy caching in a photosharing peer-to-peer network to improve guest image viewing performance |
US8433826B2 (en) | 2004-03-31 | 2013-04-30 | Qurio Holdings, Inc. | Proxy caching in a photosharing peer-to-peer network to improve guest image viewing performance |
US20100169465A1 (en) * | 2004-11-16 | 2010-07-01 | Qurio Holdings, Inc. | Serving content from an off-line peer server in a photosharing peer-to-peer network in response to a guest request |
US8280985B2 (en) | 2004-11-16 | 2012-10-02 | Qurio Holdings, Inc. | Serving content from an off-line peer server in a photosharing peer-to-peer network in response to a guest request |
US7698386B2 (en) | 2004-11-16 | 2010-04-13 | Qurio Holdings, Inc. | Serving content from an off-line peer server in a photosharing peer-to-peer network in response to a guest request |
US20060136551A1 (en) * | 2004-11-16 | 2006-06-22 | Chris Amidon | Serving content from an off-line peer server in a photosharing peer-to-peer network in response to a guest request |
US8635444B2 (en) | 2005-03-15 | 2014-01-21 | Trapeze Networks, Inc. | System and method for distributing keys in a wireless network |
US8161278B2 (en) | 2005-03-15 | 2012-04-17 | Trapeze Networks, Inc. | System and method for distributing keys in a wireless network |
US8386637B2 (en) | 2005-03-18 | 2013-02-26 | Riverbed Technology, Inc. | Connection forwarding |
US9692725B2 (en) * | 2005-05-26 | 2017-06-27 | Citrix Systems, Inc. | Systems and methods for using an HTTP-aware client agent |
US20140344345A1 (en) * | 2005-05-26 | 2014-11-20 | Citrix Systems, Inc. | Systems and methods for using an http-aware client agent |
US8688801B2 (en) | 2005-07-25 | 2014-04-01 | Qurio Holdings, Inc. | Syndication feeds for peer computer devices and peer networks |
US20070022174A1 (en) * | 2005-07-25 | 2007-01-25 | Issa Alfredo C | Syndication feeds for peer computer devices and peer networks |
US9098554B2 (en) | 2005-07-25 | 2015-08-04 | Qurio Holdings, Inc. | Syndication feeds for peer computer devices and peer networks |
US8116275B2 (en) | 2005-10-13 | 2012-02-14 | Trapeze Networks, Inc. | System and network for wireless network monitoring |
US8457031B2 (en) | 2005-10-13 | 2013-06-04 | Trapeze Networks, Inc. | System and method for reliable multicast |
US8638762B2 (en) | 2005-10-13 | 2014-01-28 | Trapeze Networks, Inc. | System and method for network integrity |
US8218449B2 (en) | 2005-10-13 | 2012-07-10 | Trapeze Networks, Inc. | System and method for remote monitoring in a wireless network |
US8514827B2 (en) | 2005-10-13 | 2013-08-20 | Trapeze Networks, Inc. | System and network for wireless network monitoring |
US8005889B1 (en) | 2005-11-16 | 2011-08-23 | Qurio Holdings, Inc. | Systems, methods, and computer program products for synchronizing files in a photosharing peer-to-peer network |
US8788572B1 (en) * | 2005-12-27 | 2014-07-22 | Qurio Holdings, Inc. | Caching proxy server for a peer-to-peer photosharing system |
US8150943B2 (en) * | 2006-03-10 | 2012-04-03 | Staples The Office Superstore, Llc | Methods and apparatus for dynamically generating web pages |
US20070214150A1 (en) * | 2006-03-10 | 2007-09-13 | Adam Chace | Methods and apparatus for accessing data |
US8964747B2 (en) | 2006-05-03 | 2015-02-24 | Trapeze Networks, Inc. | System and method for restricting network access using forwarding databases |
US8966018B2 (en) | 2006-05-19 | 2015-02-24 | Trapeze Networks, Inc. | Automated network device configuration and network deployment |
US8463843B2 (en) | 2006-05-26 | 2013-06-11 | Riverbed Technology, Inc. | Throttling of predictive ACKs in an accelerated network communication system |
US8762569B1 (en) | 2006-05-30 | 2014-06-24 | Riverbed Technology, Inc. | System for selecting a proxy pair based on configurations of autodiscovered proxies on a network |
US9838942B2 (en) | 2006-06-09 | 2017-12-05 | Trapeze Networks, Inc. | AP-local dynamic switching |
US9191799B2 (en) | 2006-06-09 | 2015-11-17 | Juniper Networks, Inc. | Sharing data between wireless switches system and method |
US10638304B2 (en) | 2006-06-09 | 2020-04-28 | Trapeze Networks, Inc. | Sharing data between wireless switches system and method |
US10834585B2 (en) | 2006-06-09 | 2020-11-10 | Trapeze Networks, Inc. | Untethered access point mesh system and method |
US11432147B2 (en) | 2006-06-09 | 2022-08-30 | Trapeze Networks, Inc. | Untethered access point mesh system and method |
US10327202B2 (en) | 2006-06-09 | 2019-06-18 | Trapeze Networks, Inc. | AP-local dynamic switching |
US8818322B2 (en) | 2006-06-09 | 2014-08-26 | Trapeze Networks, Inc. | Untethered access point mesh system and method |
US10798650B2 (en) | 2006-06-09 | 2020-10-06 | Trapeze Networks, Inc. | AP-local dynamic switching |
US11627461B2 (en) | 2006-06-09 | 2023-04-11 | Juniper Networks, Inc. | AP-local dynamic switching |
US11758398B2 (en) | 2006-06-09 | 2023-09-12 | Juniper Networks, Inc. | Untethered access point mesh system and method |
US9258702B2 (en) | 2006-06-09 | 2016-02-09 | Trapeze Networks, Inc. | AP-local dynamic switching |
US20080005163A1 (en) * | 2006-06-30 | 2008-01-03 | International Business Machines Corporation | Method and Apparatus For Caching Broadcasting Information |
US8407260B2 (en) * | 2006-06-30 | 2013-03-26 | International Business Machines Corporation | Method and apparatus for caching broadcasting information |
US9948608B2 (en) | 2006-08-03 | 2018-04-17 | Citrix Systems, Inc. | Systems and methods for using an HTTP-aware client agent |
US8340110B2 (en) | 2006-09-15 | 2012-12-25 | Trapeze Networks, Inc. | Quality of service provisioning for wireless networks |
US8670383B2 (en) | 2006-12-28 | 2014-03-11 | Trapeze Networks, Inc. | System and method for aggregation and queuing in a wireless network |
US8533310B2 (en) | 2007-03-09 | 2013-09-10 | Riverbed Technology, Inc. | Method and apparatus for acceleration by prefetching associated objects |
US20080222244A1 (en) * | 2007-03-09 | 2008-09-11 | Riverbed Technology, Inc. | Method and apparatus for acceleration by prefetching associated objects |
US20150295804A1 (en) * | 2007-07-12 | 2015-10-15 | Viasat, Inc. | Methods and Systems for Performing a Prefetch Abort Operation |
US8966053B2 (en) * | 2007-07-12 | 2015-02-24 | Viasat, Inc. | Methods and systems for performing a prefetch abort operation for network acceleration |
US20090019153A1 (en) * | 2007-07-12 | 2009-01-15 | Viasat, Inc. | Methods and systems for performing a prefetch abort operation |
US8902904B2 (en) * | 2007-09-07 | 2014-12-02 | Trapeze Networks, Inc. | Network assignment based on priority |
US9654328B2 (en) | 2007-10-15 | 2017-05-16 | Viasat, Inc. | Methods and systems for implementing a cache model in a prefetching system |
US9460229B2 (en) | 2007-10-15 | 2016-10-04 | Viasat, Inc. | Methods and systems for implementing a cache model in a prefetching system |
US11095494B2 (en) | 2007-10-15 | 2021-08-17 | Viasat, Inc. | Methods and systems for implementing a cache model in a prefetching system |
US8238942B2 (en) | 2007-11-21 | 2012-08-07 | Trapeze Networks, Inc. | Wireless station location detection |
US9712986B2 (en) | 2008-01-11 | 2017-07-18 | Seven Networks, Llc | Mobile device configured for communicating with another mobile device associated with an associated user |
US9473914B2 (en) | 2008-01-11 | 2016-10-18 | Seven Networks, Llc | System and method for providing a network service in a distributed fashion to a mobile device |
US8150357B2 (en) | 2008-03-28 | 2012-04-03 | Trapeze Networks, Inc. | Smoothing filter for irregular update intervals |
US20090288019A1 (en) * | 2008-05-15 | 2009-11-19 | Microsoft Corporation | Dynamic image map and graphics for rendering mobile web application interfaces |
US8326923B1 (en) * | 2008-07-08 | 2012-12-04 | F5 Networks, Inc. | Smart prefetching of data over a network |
US8978105B2 (en) | 2008-07-25 | 2015-03-10 | Trapeze Networks, Inc. | Affirming network relationships and resource access via related networks |
US10887418B1 (en) * | 2008-08-25 | 2021-01-05 | Google Llc | Parallel, side-effect based DNS pre-caching |
US8238298B2 (en) | 2008-08-29 | 2012-08-07 | Trapeze Networks, Inc. | Picking an optimal channel for an access point in a wireless network |
US10735322B2 (en) | 2009-04-20 | 2020-08-04 | Radware, Ltd. | Accelerating HTTP responses in a client/server environment |
US10264094B2 (en) * | 2009-05-01 | 2019-04-16 | International Business Machines Corporation | Processing incoming messages |
US9454506B2 (en) * | 2009-05-01 | 2016-09-27 | International Business Machines Corporation | Managing cache at a computer |
US20160360003A1 (en) * | 2009-05-01 | 2016-12-08 | International Business Machines Corporation | Processing incoming messages |
US20130086197A1 (en) * | 2009-05-01 | 2013-04-04 | International Business Machines Corporation | Managing cache at a computer |
US20100281224A1 (en) * | 2009-05-01 | 2010-11-04 | International Buisness Machines Corporation | Prefetching content from incoming messages |
US20160381169A1 (en) * | 2009-09-03 | 2016-12-29 | At&T Intellectual Property I, L.P. | Anycast Aware Transport For Content Distribution Networks |
US10511684B2 (en) * | 2009-09-03 | 2019-12-17 | At&T Intellectual Property I, L.P. | Anycast aware transport for content distribution networks |
US20110295979A1 (en) * | 2010-05-28 | 2011-12-01 | Strangeloop Networks Inc. | Accelerating HTTP Responses In A Client/Server Environment |
US9549039B2 (en) * | 2010-05-28 | 2017-01-17 | Radware Ltd. | Accelerating HTTP responses in a client/server environment |
US9275163B2 (en) * | 2010-11-01 | 2016-03-01 | Seven Networks, Llc | Request and response characteristics based adaptation of distributed caching in a mobile network |
US9432486B2 (en) | 2010-11-01 | 2016-08-30 | Seven Networks, Llc | Selective data compression by a distributed traffic management system to reduce mobile data traffic and signaling traffic |
US20120110110A1 (en) * | 2010-11-01 | 2012-05-03 | Michael Luna | Request and response characteristics based adaptation of distributed caching in a mobile network |
US9021048B2 (en) | 2010-11-01 | 2015-04-28 | Seven Networks, Inc. | Caching adapted for mobile application behavior and network conditions |
EP2512101A1 (en) | 2011-04-11 | 2012-10-17 | Deutsche Telekom AG | Method and system to pre-fetch user-specific HTTP requests for web applications |
US9350826B2 (en) * | 2011-06-30 | 2016-05-24 | International Business Machines Corporation | Pre-fetching data |
US8977681B2 (en) * | 2011-06-30 | 2015-03-10 | International Business Machines Corporation | Pre-fetching data |
US20150142928A1 (en) * | 2011-06-30 | 2015-05-21 | International Business Machines Corporation | Pre-fetching data |
US20130041937A1 (en) * | 2011-06-30 | 2013-02-14 | International Business Machines Corporation | Pre-fetching data |
US9542538B2 (en) * | 2011-10-04 | 2017-01-10 | Chegg, Inc. | Electronic content management and delivery platform |
US20130124972A1 (en) * | 2011-10-04 | 2013-05-16 | Vincent LE CHEVALIER | Electronic Content Management and Delivery Platform |
US20130159383A1 (en) * | 2011-12-16 | 2013-06-20 | Microsoft Corporation | Application-driven cdn pre-caching |
EP2791815A4 (en) * | 2011-12-16 | 2015-08-12 | Microsoft Technology Licensing Llc | Application-driven cdn pre-caching |
US9294582B2 (en) * | 2011-12-16 | 2016-03-22 | Microsoft Technology Licensing, Llc | Application-driven CDN pre-caching |
WO2013090126A1 (en) | 2011-12-16 | 2013-06-20 | Microsoft Corporation | Application-driven cdn pre-caching |
US10182127B2 (en) | 2011-12-16 | 2019-01-15 | Microsoft Technology Licensing, Llc | Application-driven CDN pre-caching |
US8706805B2 (en) * | 2011-12-19 | 2014-04-22 | International Business Machines Corporation | Information caching system |
US10474691B2 (en) * | 2012-05-25 | 2019-11-12 | Dell Products, Lp | Micro-staging device and method for micro-staging |
US20130318194A1 (en) * | 2012-05-25 | 2013-11-28 | Dell Products, Lp | Micro-Staging Device and Method for Micro-Staging |
US9807199B2 (en) * | 2012-07-24 | 2017-10-31 | Fujitsu Limited | Information processing apparatus, data provision method, and storage medium |
US20140032648A1 (en) * | 2012-07-24 | 2014-01-30 | Fujitsu Limited | Information processing apparatus, data provision method, and storage medium |
US9569410B2 (en) | 2012-08-13 | 2017-02-14 | Chegg, Inc. | Multilayered document distribution in multiscreen systems |
US20150012608A1 (en) * | 2012-08-31 | 2015-01-08 | Panasonic Intellectual Property Corporation Of America | Web content prefetch control device, web content prefetch control program, and web content prefetch control method |
US10530830B2 (en) * | 2012-10-25 | 2020-01-07 | Samsung Electronics Co., Ltd. | Apparatus and method for accessing web in network system |
US20150304384A1 (en) * | 2012-10-25 | 2015-10-22 | Samsung Electronics Co., Ltd. | Apparatus and method for accessing web in network system |
US20150012614A1 (en) * | 2013-03-15 | 2015-01-08 | Instart Logic, Inc. | Efficient delivery of webpages |
US9298455B1 (en) | 2013-03-15 | 2016-03-29 | Instart Logic, Inc. | Provisional execution of dynamic content component |
US9363329B1 (en) | 2013-03-15 | 2016-06-07 | Instart Logic, Inc. | Identifying correlated components of dynamic content |
US10091289B2 (en) | 2013-03-15 | 2018-10-02 | Instart Logic, Inc. | Provisional execution of dynamic content component |
US20160219121A1 (en) * | 2013-08-26 | 2016-07-28 | Sony Corporation | Proxy-server device, information processing method, program, terminal device, and content supply system |
WO2015147354A1 (en) * | 2014-03-27 | 2015-10-01 | 엘지전자 주식회사 | Spdy-based web acceleration method and spdy proxy therefor |
CN106170770A (en) * | 2014-04-09 | 2016-11-30 | 谷歌公司 | The perception page downloading time of the scheduling of resource by optimizing |
US20150293889A1 (en) * | 2014-04-09 | 2015-10-15 | Google Inc. | Perception of page download time by optimized resource scheduling |
US9998521B2 (en) | 2015-01-08 | 2018-06-12 | Instart Logic, Inc. | HTML streaming |
US9813480B2 (en) | 2015-01-08 | 2017-11-07 | Instart Logic, Inc. | Placeholders for dynamic components in HTML streaming |
US10931731B2 (en) | 2015-01-08 | 2021-02-23 | Akamai Technologies, Inc. | Adaptive learning periods in HTML streaming |
US10425464B2 (en) | 2015-01-08 | 2019-09-24 | Instart Logic, Inc. | Adaptive learning periods in HTML streaming |
US10382520B2 (en) | 2015-01-08 | 2019-08-13 | Instart Logic, Inc. | Placeholders for dynamic components in HTML streaming |
US20170208125A1 (en) * | 2016-01-19 | 2017-07-20 | Hope Bay Technologies, Inc | Method and apparatus for data prefetch in cloud based storage system |
US10361997B2 (en) | 2016-12-29 | 2019-07-23 | Riverbed Technology, Inc. | Auto discovery between proxies in an IPv6 network |
US10296458B2 (en) * | 2017-05-31 | 2019-05-21 | Dell Products L.P. | Multi-level cache system in a software application |
CN110858238A (en) * | 2018-08-08 | 2020-03-03 | 阿里巴巴集团控股有限公司 | Data processing method and device |
WO2020146019A1 (en) * | 2019-01-09 | 2020-07-16 | Ebay Inc. | Asynchronous predictive caching of content listed in search results |
US10983996B2 (en) | 2019-01-09 | 2021-04-20 | Ebay Inc. | Asynchronous predictive caching of content listed in search results |
CN113330432A (en) * | 2019-01-09 | 2021-08-31 | 电子湾有限公司 | Asynchronous predictive caching of content listed in search results |
US11775518B2 (en) | 2019-01-09 | 2023-10-03 | Ebay Inc. | Asynchronous predictive caching of content listed in search results |
Also Published As
Publication number | Publication date |
---|---|
US6959318B1 (en) | 2005-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6959318B1 (en) | Method of proxy-assisted predictive pre-fetching with transcoding | |
US7107321B1 (en) | Method and apparatus for optimizing memory use in network caching | |
Padmanabhan et al. | Using predictive prefetching to improve world wide web latency | |
US6854018B1 (en) | System and method for intelligent web content fetch and delivery of any whole and partial undelivered objects in ascending order of object size | |
US6338117B1 (en) | System and method for coordinated hierarchical caching and cache replacement | |
US6917960B1 (en) | Intelligent content precaching | |
US6442651B2 (en) | Shared cache parsing and pre-fetch | |
US8447837B2 (en) | Site acceleration with content prefetching enabled through customer-specific configurations | |
US6434608B1 (en) | Methods and apparatus for caching network traffic | |
EP1886470B1 (en) | Method and system for object prediction | |
US6598048B2 (en) | Distributed system and method for prefetching objects | |
US7725598B2 (en) | Network cache-based content routing | |
US20130282986A1 (en) | Anticipatory response pre-caching | |
US20070168394A1 (en) | Service aware network caching | |
US6606645B1 (en) | Method for preconnecting to a server on a network | |
KR980004094A (en) | Method and apparatus for providing proxies and transcoding of documents in distributed computer networks | |
US6839809B1 (en) | Methods and apparatus for improving content quality in web caching systems | |
WO2002007364A2 (en) | BANDWIDTH SAVINGS AND QoS IMPROVEMENT FOR WWW SITES BY CATCHING STATIC AND DYNAMIC CONTENT ON A DISTRIBUTED NETWORK OF CACHES | |
CN1288193A (en) | Method and system for high speed buffer store management using admittance control, and computer program products | |
US7069297B2 (en) | Data transfer scheme using re-direct response message for reducing network load | |
CN107645543B (en) | Method and system applied to cache server HTTP non-80 cache port service | |
US20030061449A1 (en) | Method and system for selectively caching web elements | |
WO2002089000A1 (en) | A system for caching data during peer-to-peer data transfer | |
WO2007079192A2 (en) | Site acceleration with content prefetching enabled through customer-specific configurations | |
JP2002373108A (en) | Proxy device and proxy control system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |