Systems and methods of revalidating cached objects in parallel with request for object
원문보기
IPC분류정보
국가/구분
United States(US) Patent
등록
국제특허분류(IPC7판)
G06F-015/173
G06F-013/00
출원번호
UP-0685132
(2007-03-12)
등록번호
US-7783757
(2010-09-13)
발명자
/ 주소
Plamondon, Robert
출원인 / 주소
Citrix Systems, Inc.
대리인 / 주소
Choate Hall & Stewart, LLP
인용정보
피인용 횟수 :
117인용 특허 :
169
초록▼
The present solution provides a variety of techniques for accelerating and optimizing network traffic, such as HTTP based network traffic. The solution described herein provides techniques in the areas of proxy caching, protocol acceleration, domain name resolution acceleration as well as compressio
The present solution provides a variety of techniques for accelerating and optimizing network traffic, such as HTTP based network traffic. The solution described herein provides techniques in the areas of proxy caching, protocol acceleration, domain name resolution acceleration as well as compression improvements. In some cases, the present solution provides various prefetching and/or prefreshening techniques to improve intermediary or proxy caching, such as HTTP proxy caching. In other cases, the present solution provides techniques for accelerating a protocol by improving the efficiency of obtaining and servicing data from an originating server to server to clients. In another cases, the present solution accelerates domain name resolution more quickly. As every HTTP access starts with a URL that includes a hostname that must be resolved via domain name resolution into an IP address, the present solution helps accelerate HTTP access. In some cases, the present solution improves compression techniques by prefetching non-cacheable and cacheable content to use for compressing network traffic, such as HTTP. The acceleration and optimization techniques described herein may be deployed on the client as a client agent or as part of a browser, as well as on any type and form of intermediary device, such as an appliance, proxying device or any type of interception caching and/or proxying device.
대표청구항▼
What is claimed: 1. A method for revalidating an object stored in cache while serving the object to a requester, the method comprising the steps of: (a) receiving a request for an object from a requester; (b) determining that the object exists in a cache; (c) transmitting, responsive to the determi
What is claimed: 1. A method for revalidating an object stored in cache while serving the object to a requester, the method comprising the steps of: (a) receiving a request for an object from a requester; (b) determining that the object exists in a cache; (c) transmitting, responsive to the determination, the cached object to the requester in response to the request; and (d) transmitting, responsive to the determination, a request to a remote object server to determine a status of the object. 2. The method of claim 1, wherein steps (c) and (d) occur substantially simultaneously. 3. The method of claim 1, wherein steps (c) and (d) occur in parallel. 4. The method of claim 1, wherein step (d) occurs prior to step (c). 5. The method of claim 1, comprising transmitting the cached object to the requester prior to receiving a response from the remote object server. 6. The method of claim 1, wherein step (d) comprises transmitting to a remote object server, responsive to the determination, a conditional request to retrieve the object. 7. The method of claim 6, comprising receiving a response to the conditional request indicating the object has not changed. 8. The method of claim 6, comprising receiving an updated version of the object from the remote object server in response to the conditional request. 9. The method of claim 8, comprising storing the updated version of the object in the local cache. 10. The method of claim 1, wherein step (a) comprises receiving, via a network, a request for an object from a requester. 11. The method of claim 1, wherein step (b) comprises determining (i) that the object exists in the local cache and (ii) that a status identifier associated with the object indicates that the object is valid. 12. The method of claim 1, wherein step (c) comprises transmitting via a network, responsive to the determination, the requested object from the cache to the requester. 13. The method of claim 1, wherein step (d) comprises transmitting to the remote object server, responsive to the determination, a request to retrieve an updated version of the object. 14. A system for revalidating an object stored in cache while serving the object to a requester, the system comprising: (a) a cache manager in communication with a requester, a remote object server and a local cache storing an object, the cache manager receiving a first request for the object from the requester; (b) wherein, in response to locating the object in the local cache, the cache manager transmits the object to the requester in response to the first request, and in response to locating the object in the local cache, transmits a second request to obtain a status of the object from the remote object server. 15. The system of claim 14, wherein the cache manager comprises one of software or hardware. 16. The system of claim 14, wherein the local cache comprises one of random access memory or disk storage. 17. The system of claim 14, wherein the remote object server comprises a web server. 18. The system of claim 14, wherein the cache manager communicates with the requester via a network. 19. The system of claim 14, wherein the cache manager transmits the object to requester and transmits the second request to the remote object server substantially simultaneously. 20. The system of claim 14, wherein the cache manager transmits the object to requester and transmits the second request to the remote object server in parallel. 21. The system of claim 14, wherein the cache manager transmits the cached object to the requester prior to receiving a response from the remote object server. 22. The system of claim 14, wherein the cache manager transmits to the remote object server, responsive to the determination, a conditional request to retrieve the object. 23. The system of claim 22, wherein the cache manager receives a response to the conditional request indicating the object has not changed. 24. The system of claim 22, wherein the cache manager receives an updated version of the object from the remote object server in response to the conditional request. 25. The system of claim 22, wherein the cache manager stores the updated version of the object in the local cache. 26. In a networked environment including a network appliance acting as a proxy between a client requesting objects and an object server responding to client requests, a method for revalidation objects cached by the appliance while also serving the objects to the client, the method comprising; (a) intercepting, by an appliance, a request from a client for an object from a remote object server; (b) determining, by the appliance, that the object exists in a cache of the appliance; (c) transmitting by the appliance, responsive to the determination, the cached object to the client in response to the request; and (d) transmitting by the appliance, responsive to the determination, a request to obtain a status of the object from the remote object server. 27. The method of claim 26, wherein the appliance comprises a transparent proxy. 28. The method of claim 26, wherein steps (c) and (d) occur substantially simultaneously. 29. The method of claim 26, wherein steps (c) and (d) occur in parallel. 30. The method of claim 26, wherein step (d) occurs prior to step (c). 31. The method of claim 26, comprising transmitting, by the appliance, the cached object to the client prior to receiving a response from the remote object server. 32. The method of claim 26, wherein step (d) comprises transmitting, by the appliance, a remote object server, responsive to the determination, a conditional request to retrieve the object. 33. The method of claim 32, comprising receiving, by the appliance, a response to the conditional request indicating the object has not changed. 34. The method of claim 33, comprising receiving, by the appliance, an updated version of the object. 35. The method of claim 34, comprising storing, by the appliance, the updated version of the object in the cache. 36. The method of claim 32, wherein step (b) comprises determining, by the appliance, (i) that the object exists in a local cache element and (ii) that a status identifier associated with the object indicates that the object is valid. 37. In a networked environment including a network appliance acting as a proxy between a client requesting objects and an object server responding to client requests, an appliance revalidating objects cached by the appliance while also serving the objects to the client, the appliance comprising: (a) a packet processing engine intercepting a first request from a client for an object from a server; (b) a cache manager in communication with the packet processing engine, the cache manager determining the object is stored in a cache of the appliance responsive to the packet processing engine; (c) wherein, in response to locating the object in the cache, the appliance transmits the object to the client in response to the first request, and in response to locating the object in the cache, transmits a second request to the server to obtain a status of the object. 38. The appliance of claim 37, wherein the cache manager comprises one of software or hardware. 39. The appliance of claim 37, wherein the cache comprises one of random access memory or disk storage. 40. The appliance of claim 37, wherein the appliance transmits the object to the client and transmits the second request to the server substantially simultaneously. 41. The appliance of claim 37, wherein the appliance transmits the object to the client and transmits the second request to the server in parallel. 42. The appliance of claim 37, wherein the appliance transmits the cached object to the client prior to receiving a response to the second request from the server. 43. The appliance of claim 37, wherein the appliance transmits to the server, responsive to the determination, a conditional request to retrieve the object. 44. The appliance of claim 37, wherein the appliance receives a response to the conditional request indicating the object has not changed. 45. The appliance of claim 44, wherein the cache manager receives an updated version of the object from the server in response to the conditional request. 46. The appliance of claim 44, wherein the cache manager stores the updated version of the object in the local cache.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (169)
Bowman-Amuah, Michel K., Abstraction factory in a base services pattern environment.
Chow Yen-whei ; Hayes-Roth Frederick A. ; Jacobstein Neil A. ; Manley James E. ; McMahan Christopher B., Automatic retrieval of changed files by a network software agent.
Chan Mun-Choon ; Woo Thomas Yat Chung, Cache-based compaction technique for internet browsing using similar objects in client cache as reference objects.
Shah, Lacky Vasant; Arai, Daniel Takeo; Benitez, Manuel Enrique; Holler, Anne Marie; Wohlgemuth, Robert Curtis, Client-side performance optimization system for streamed applications.
Drewry Raymond G. ; George David ; Epperson Dirk, Client/server system with methods for prefetching and managing semantic objects based on object-based prefetch primitive.
Michel K. Bowman-Amuah, Common interface for handling exception interface name with additional prefix and suffix for handling exceptions in environment services patterns.
Reed Drummond Shattuck ; Heymann Peter Earnshaw ; Mushero Steven Mark ; Jones Kevin Benard ; Oberlander Jeffrey Todd ; Banay Dan, Computer-based communication system and method using metadata defining a control structure.
Drummond Shattuck Reed ; Peter Earnshaw Heymann ; Steven Mark Mushero ; Kevin Benard Jones ; Jeffrey Todd Oberlander ; Dan Banay, Computer-based communication system and method using metadata defining a control-structure.
Reed Drummond Shattuck ; Heymann Peter Earnshaw ; Mushero Steven Mark ; Jones Kevin Benard ; Oberlander Jeffrey Todd, Computer-based communication system and method using metadata defining a control-structure.
Henderson Kenneth R. (Sarasota FL) Koski Robert E. (Sarasota FL) Barlow Christopher R. (Sarasota FL), Decentralized distributed asynchronous object oriented system and method for electronic data management, storage, and co.
Challenger James Robert Harold ; Dantzig Paul Michael ; Iyengar Arun K. ; Spivak Gerald A., Determining how changes to underlying data affect cached objects.
Boyles Ray W. (Apex NC) Gierlach Michael F. (Raleigh NC) Gopal Prabandham M. (Wayne NJ) Sultan Robert (Richterswil NC CHX) Vacek Gary M. (Raleigh NC), Locating resources in computer networks having cache server nodes.
Katsuo Doi JP; Hiroyoshi Toda JP, METHOD OF RELAYING FILE OBJECT, DISTRIBUTED FILE SYSTEM, COMPUTER READABLE MEDIUM RECORDING A PROGRAM OF FILE OBJECT RELAY METHOD AND GATEWAY COMPUTER, ALLOWING REFERENCE OF ONE SAME FILE OBJECT AMON.
Ramakrishnan Kadangode K. (Maynard MA) Biswas Prabuddha (Nashua NH), Managing the fetching and replacement of cache entries associated with a file system.
Bedingfield, James Carl; Koch, Robert A.; Raji, Alexander David, Method and apparatus for allowing selective disposition of an incoming telephone call during an internet session.
Bedingfield,James Carl; Koch,Robert A.; Raji,Alexander David, Method and apparatus for allowing selective disposition of an incoming telephone call during an internet session.
Mattaway Shane D. ; Hutton Glenn W. ; Noe Bradley D. ; Hancock Steven M. ; Pietras Mark A., Method and apparatus for establishing communications from browser application.
Barone Stan T. (Fridley MN) Hepburn Ian R. (Minnetonka MN) Fladmoe Gary E. (Salt Lake City UT) Vavra Robert D. (Roseville MN), Method and apparatus for remotely and centrally controlling a plurality of host processors.
Mattson Richard L. (San Jose CA), Method and means for dynamically partitioning cache into a global and data type subcache hierarchy from a real time refe.
Jessani Romesh Mangho ; Kuttanna Belliappa Manavattira ; Mallick Soummya ; Patel Rajesh Bhikhubhai, Method and system for preventing information corruption in a cache memory caused by an occurrence of a bus error during.
Ferrel Patrick J. ; Meyer Robert F. ; Millet Stephen J. ; Shewchuk John P. ; Smith Walter W., Method for creating structured documents in a publishing system.
Krantz Jeffrey Isaac ; Bloomfield Marc Alan ; Luu Thanh, Method for dynamically and efficiently caching objects by subdividing cache memory blocks into equally-sized sub-blocks.
Bagchi, Amit G.; Ojard, Eric; Ptasinski, Henry S.; Trachewsky, Jason Alexander, Method for selecting frame encoding parameters to improve transmission performance in a frame-based communications network.
Fischer, Matthew James; Mallory, Tracy D., Method of controlling data sampling clocking of asynchronous network nodes in a frame-based communications network.
Trachewsky, Jason Alexander; Ojard, Eric; Garlapati, Srinivasa; Corry, Alan, Method of determining a collision between a plurality of transmitting stations in a frame-based communications network.
Trachewsky,Jason Alexander; Ojard,Eric; Garlapati,Srinivasa; Corry,Alan, Method of determining a start of a transmitted frame in a frame-based communications network.
Trachewsky, Jason Alexander; Ojard, Eric; Garlapati, Srinivasa; Corry, Alan, Method of determining an end of a transmitted frame in a frame-based communications network.
Inohara Shigekazu,JPX ; Masuoka Yoshimasa,JPX ; Min Jinghua,JPX ; Noda Fumio,JPX, Method of managing distributed servers and distributed information processing system using the method.
Fischer,Matthew James; Mallory,Tracy D., Method of providing synchronous transport of packets between asynchronous network nodes in a frame-based communications network.
Bendinelli,Samuel; Herrick,Michael; Keane,John; Macey,Christopher; Tuomenoksa,Mark; Francus,Jerold; Harwood,Jonathan; Shimamoto,Brion; Ferraro,Joseph, Methods and system for providing network services using at least one processor interfacing a base network.
Keane,John; Brutman,Neil R.; Harris,Michael J.; Macey,Christopher, Methods and systems for enabling communication between a processor and a network operations center.
Albert, Mark; Howes, Richard A.; Jordan, James A.; Kersey, Edward A.; LeBlanc, William M.; McGuire, Jacob Mark; Menditto, Louis F.; O'Rourke, Chris; Tiwari, Pranav Kumar; Tsang, Tzu-Ming; Wong, Bruce, Proxying and unproxying a connection using a forwarding agent.
Grove, Adam J.; Kharitonov, Michael; Tumarkin, Alexei, SYSTEM AND METHOD FOR HIGH-PERFORMANCE DELIVERY OF WEB CONTENT USING HIGH-PERFORMANCE COMMUNICATIONS PROTOCOL BETWEEN THE FIRST AND SECOND SPECIALIZED INTERMEDIATE NODES TO OPTIMIZE A MEASURE OF COMM.
Tso Michael Man-Hak ; Jing Jin ; Knauerhase Robert Conrad ; Romrell David Alfred ; Gillespie Daniel Joshua ; Bakshi Bikram Singh ; Sathyanarayan Seshardi, Scaling proxy server sending to the client a graphical user interface for establishing object encoding preferences after receiving the client's request for the object.
Sellink, Martin Paul Alexander; Carriere, Steven Jeromy; Woods, Steven Gregory, System and method for determining if one web site has the same information as another web site.
Riggins Mark D. ; Bailes R. Stanley ; Bui Hong O. ; Cowan David I. ; Mendez Daniel I. ; Ng Mason ; Quinlan Sean Michael ; Wagle Prasad ; Ying Christine C. ; Zuleeg Christopher R. ; Aptekar-Strober Jo, System and method for globally accessing computer services.
Grove,Adam J.; Kharitonov,Michael; Tumarkin,Alexei, System and method for high-performance delivery of Internet messages by selecting first and second specialized intermediate nodes to optimize a measure of communications performance between the sourc.
Denton James L. (Rochester MN) Eickemeyer Richard James (Rochester MN) Griffin Kevin Curtis (Rochester MN) Johnson Ross Evan (Rochester MN) Kunkel Steven Raymond (Rochester MN) Lipasti Mikko Herman (, System and method for increasing cache efficiency through optimized data allocation.
Li, Wen Syan; Candan, Kasim Selouk; Agrawal, Divyakant, System and method for intelligent caching and refresh of dynamically generated and static web content.
Hericourt, Olivier, System and method to manage data to a plurality of proxy servers through a router by application level protocol and an authorized list.
Eastep, Guido M.; Litzenberger, Paul; Orebaugh, Shannon R., System, method and article of manufacture for a call back architecture in a hybrid network with support for internet telephony.
Krishnaswamy, Sridhar; Elliott, Isaac K.; Reynolds, Tim E.; Forgy, Glen A.; Solbrig, Erin M., System, method and article of manufacture for a communication system architecture including video conferencing.
Bowman-Amuah Michel K., System, method and article of manufacture for a globally addressable interface in a communication services patterns environment.
Michel K. Bowman-Amuah, System, method and article of manufacture for a persistent state and persistent object separator in an information services patterns environment.
Krishnaswamy Sridhar ; Elliott Isaac K. ; Reynolds Tim E. ; Forgy Glen A. ; Solbrig Erin M., System, method and article of manufacture with integrated video conferencing billing in a communication system architect.
Fiatal, Trevor A.; Boynton, Lee R.; Burke, Scott M.; Gustafson, Brian D.; Raj, Binu; Alvarado, William; Benitez, Juan; Duncan, Fred J., Connection architecture for a mobile network.
Luna, Michael; Ponomarenko, Andrei, Distributed system for cache defeat detection and caching of content addressed by identifiers intended to defeat cache.
Luna, Michael, Dynamic bandwidth adjustment for browsing or streaming activity in a wireless network based on prediction of user behavior when interacting with mobile applications.
Bott, Ross, Enhanced customer service for mobile carriers using real-time and historical mobile application and traffic or optimization data associated with mobile devices in a mobile network.
Kim, Ik Soon; Kim, Sun Ja; Kim, Chae Kyu, Method for accelerating web server by predicting hypertext transfer protocol (HTTP) requests and web server enabling the method.
Luna, Michael, Mobile device and method to utilize the failover mechanism for fault tolerance provided for mobile traffic management and network/device resource conservation.
Alisawi, Rami, Mobile device equipped with mobile network congestion recognition to make intelligent decisions regarding connecting to an operator network.
Luna, Michael, Mobile device having content caching mechanisms integrated with a network operator for traffic alleviation in a wireless network and methods therefor.
Fiatal, Trevor A.; Boynton, Lee R.; Burke, Scott M.; Gustafson, Brian D.; Raj, Binu; Alvarado, William; Benitez, Juan; Duncan, Fred J., Mobile device power management in data synchronization over a mobile network with or without a trigger notification.
Backholm, Ari; Bott, Ross; Luna, Michael, Mobile network reporting and usage analytics system and method aggregated using a distributed traffic optimization system.
Wendling, Michael; Kokhanovskyi, Andrii; Backholm, Ari; Bott, Ross, Optimized and selective management of policy deployment to mobile clients in a congested network to prevent further aggravation of network congestion.
Backholm, Ari; Luna, Michael; Pan, Yixin, Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol.
Backholm, Ari; Luna, Michael; Pan, Yixin, Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol.
Sutaria, Jay; Nanjundeswaran, Sridhar; Gustafson, Brian; van Gent, Robert, System and method for tracking billing events in a mobile wireless network for a network operator.
Luna, Michael, System of redundantly clustered machines to provide failover mechanisms for mobile traffic management and network resource conservation.
Samuels, Allen; Jensen, Richard; Dittia, Zubin; Decasper, Dan; Osviannikov, Michael; Plamondon, Robert, Systems and methods for providing dynamic ad hoc proxy-cache hierarchies.
Samuels, Allen R.; Jensen, Richard; Dittia, Zubin; Decasper, Dan S.; Ovsiannikov, Michael; Plamondon, Robert D., Systems and methods for sharing compression histories between multiple devices.
Samuels, Allen; Jensen, Richard; Dittia, Zubin; Decasper, Dan; Ovsiannikov, Michael; Plamondon, Robert, Systems and methods of compression history expiration and synchronization.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.