IP Library Granted Patent US 7,043,524
Granted Patent B2
US 7,043,524 · App. 10/010,147 · Granted May 9, 2006

Network caching system for streamed applications

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,043,524
App. No.
10/010,147
Granted
May 9, 2006
Kind
B2
Abstract

A network caching system for streamed applications provides for the caching of streamed applications within a computer network that are accessible by client systems within the network. Clients request streamed application file pages from other client systems, proxy servers, and application servers as each streamed application file is stored in a cache and used. Streamed application file page requests are broadcast to other clients using a multicast packet. Proxy servers are provided in the network that store a select set of streamed application file pages and respond to client requests by sending a response packet containing the requested streamed application file page if the streamed application file page is stored on the proxy server. Streamed application servers store all of the streamed application file pages. Clients try to send requests to streamed application servers as a last resort. Clients can concurrently send requests to other clients, to a proxy server, and to a streamed application server. Clients measure the response time to the client's requests placing a positive weighting on the more responsive request path and sending subsequent requests to the more positively weighted request path first.

Claims (93)

1. A process for the caching of streamed applications within a computer network accessible by client systems, comprising the steps of:

providing application requesting means on a client for requesting streamed application file pages;

providing application packet reception means on said client for receiving streamed application file pages sent in response to said application requesting means;

providing caching means on said client for storing received streamed application file pages in a cache;

wherein said application requesting means sends a request for a streamed application file page to other clients in said network;

wherein said application requesting means sends requests in packet form;

providing response means on said client for responding to streamed application file page requests from other clients;

wherein said response means sends a packet containing the requested streamed application file page to the requesting client if said requested streamed application file page is resident in said cache; and

wherein clients request streamed application file pages using a unique set of numbers common among all servers and clients that store the particular streamed application file pages.

2. The process of claim 1 , wherein said application requesting means sends out a multicast packet containing a request for a streamed application file page, and wherein said application packet reception means rejects all further responses once a valid streamed application file page is received.

3. The process of claim 2 , wherein clients can join a multicast IP address and port to receive multicast packets, and wherein clients can leave a multicast IP address and port to stop receiving multicast packets.

4. The process of claim 1 , further comprising the steps of:

providing at least one proxy server;

providing proxy caching means on said proxy server for storing a plurality of streamed application file pages in a cache;

wherein said application requesting means sends a request for a streamed application file page to a proxy server; and

providing proxy response means on said proxy server for sending a response packet containing the requested streamed application file page to the requesting client if said streamed application file page exists in said proxy server's cache.

5. The process of claim 4 , wherein said proxy caching means on each proxy server is pro-loaded with a specific set of streamed application file pages.

6. The process of claim 4 , wherein said application requesting means concurrently sends requests for a streamed application file page to other clients in said network and to a proxy server.

7. The process of claim 4 , further comprising the steps of:

providing a streamed application server;

providing application set storage means on said streamed application server for persistently storing streamed application program sets;

wherein said streamed application sets contain streamed application file pages;

wherein said application requesting means sends a request for a streamed application file page to a streamed application server; and

providing streaming response means on said server for streaming the requested streamed application file page to the requesting client.

8. The process of claim 7 , wherein said proxy response means forwards the request to said streamed application server if the requested streamed application page does not exist in said proxy server's cache, and wherein said proxy caching means stores the streamed application page returned from said streamed application server in said proxy server's cache before said proxy response means sends the streamed application file page to the requesting client.

9. The process of claim 7 , wherein said application requesting means sends the request for a streamed application file page to a streamed application server if said requests to other clients in said network and said proxy server fails.

10. The process of claim 7 , wherein said application requesting means concurrently sends requests for a streamed application file page to other clients in said network, to a proxy server, and to a streamed application server.

11. The process of claim 4 , further comprising the step of:

providing application request profiling means on said client for measuring the response time to said client's streamed application file page requests by responding clients and proxy servers;

wherein said application request profiling means sets a positive weighting on the more responsive request path; and

wherein said application requesting means sends a request for a streamed application file page to the more positively weighted request path first and waits a calculated amount of time before sending a request for the streamed application file page to the less positively weighted request path.

12. An apparatus for the caching of streamed applications within a computer network accessible by client systems, comprising:

application requesting means on a client for requesting streamed application file pages;

application packet reception means on said client for receiving streamed application file pages sent in response to said application requesting means;

caching means on said client for storing received streamed application file pages in a cache;

wherein said application requesting means sends a request for a streamed application file page to other clients in said network;

wherein said application requesting means sends requests in packet form;

response means on said client for responding to streamed application file page requests from other clients;

wherein said response means sends a packet containing the requested streamed application file page to the requesting client if said requested streamed application file page is resident in said cache; and

wherein clients request streamed application file pages using a unique set of numbers common among all servers and clients that store the particular streamed application file pages.

13. The apparatus of claim 12 , wherein said application requesting means sends out a multicast packet containing a request for a streamed application file page, and wherein said application packet reception means rejects all further responses once a valid streamed application file page is received.

14. The apparatus of claim 13 , wherein clients can join a multicast IP address and port to receive multicast packets, and wherein clients can leave a multicast IP address and port to stop receiving multicast packets.

15. The apparatus of claim 12 , further comprising:

at least one proxy server;

proxy caching means on said proxy server for storing a plurality of streamed application file pages in a cache;

wherein said application requesting means sends a request for a streamed application file page to a proxy server; and

proxy response means on said proxy server for sending a response packet containing the requested streamed application file page if said streamed application file page exists in said proxy server s cache.

16. The apparatus of claim 15 , wherein said proxy caching means on each proxy server is pre-loaded with a specific set of streamed application file pages.

17. The apparatus of claim 15 , wherein said application requesting means concurrently sends requests for a streamed application file page to other clients in said network and to a proxy server.

18. The apparatus of claim 15 , further comprising:

a streamed application server;

application set storage means on said streamed application server for persistently storing streamed application program sets;

wherein said streamed application sets contain streamed application file pages;

wherein said application requesting means sends a request for a streamed application file page to a streamed application server; and

streaming response means on said server for streaming the requested streamed application file page to the requesting client.

19. The apparatus of claim 18 , wherein said proxy response means forwards the request to said streamed application server if the requested streamed application page does not exist in said proxy server's cache, and wherein said proxy caching means stores the streamed application page returned from said streamed application server in said proxy server's cache before said proxy response means sends the streamed application file page to the requesting client.

20. The apparatus of claim 18 , wherein said application requesting means sends the request for a streamed application file page to a streamed application server if said requests to other clients in said network and said proxy server fails.

21. The apparatus of claim 18 , wherein said application requesting means concurrently sends requests for a streamed application file page to other clients in said network, to a proxy server, and to a streamed application server.

22. The apparatus of claim 15 , further comprising:

application request profiling means on said client for measuring the response time to said client's streamed application file page requests by responding clients and proxy servers;

wherein said application request profiling means sets a positive weighting on the more responsive request path; and

wherein said application requesting means sends a request for a streamed application file page to the more positively weighted request path first and waits a calculated amount of time before sending a request for the streamed application file page to the less positively weighted request path.

23. A program storage medium readable by a computer, tangibly embodying a program of instructions executable by the computer to perform method steps for the caching of streamed applications within a computer network accessible by client systems, comprising the steps of:

providing application requesting means on a client for requesting streamed application file pages;

providing application packet reception means on said client for receiving streamed application file pages sent in response to said application requesting means;

providing caching means on said client for storing received streamed application file pages in a cache;

wherein said application requesting means sends a request for a streamed application file page to other clients in said network;

wherein said application requesting means sends requests in packet form;

providing response means on said client for responding to streamed application file page requests from other clients;

wherein said response means sends a packet containing the requested streamed application file page to the requesting client if said requested streamed application file page is resident in said cache; and

wherein clients request streamed application file pages using a unique set of numbers common among all servers and clients that store the particular streamed application file pages.

24. The method of claim 23 , wherein said application requesting means sends out a multicast packet containing a request for a streamed application file page, and wherein said application packet reception means rejects all further responses once a valid streamed application file page is received.

25. The method of claim 24 , wherein clients can join a multicast IP address and port to receive multicast packets, and wherein clients can leave a multicast IP address and port to stop receiving multicast packets.

26. The method of claim 23 , further comprising the steps of:

providing at least one proxy server;

providing proxy caching means on said proxy server for storing a plurality of streamed application file pages in a cache;

wherein said application requesting means sends a request for a streamed application file page to a proxy server; and

providing proxy response means on said proxy server for sending a response packet containing the requested streamed application file page if said streamed application file page exists in said proxy server's cache.

27. The process of claim 26 , wherein said proxy caching means on each proxy server is pre-loaded with a specific set of streamed application file pages.

28. The method of claim 26 , wherein said application requesting means concurrently sends requests for a streamed application file page to other clients in said network and to a proxy server.

29. The method of claim 26 , further comprising the steps of:

providing a streamed application server;

providing application set storage means on said streamed application server for persistently storing streamed application program sets;

wherein said streamed application sets contain streamed application file pages;

wherein said application requesting means sends a request for a streamed application file page to a streamed application server; and

providing streaming response means on said server for streaming the requested streamed application file page to the requesting client.

30. The process of claim 29 , wherein said proxy response means forwards the request to said streamed application server if the requested streamed application page does not exist in said proxy server's cache, and wherein said proxy caching means stores the streamed application page returned from said streamed application server in said proxy server's cache before said proxy response means sends the streamed application file page to the requesting client.

31. The method of claim 29 , wherein said application requesting means sends the request for a streamed application file page to a streamed application server if said requests to other clients in said network and said proxy server fails.

32. The method of claim 29 , wherein said application requesting means concurrently sends requests for a streamed application file page to other clients in said network, to a proxy server, and to a streamed application server.

33. The method of claim 26 , further comprising the step of:

providing application request profiling means on said client for measuring the response time to said client's streamed application file page requests by responding clients and proxy servers;

wherein said application request profiling means sets a positive weighting on the more responsive request path; and

wherein said application requesting means sends a request for a streamed application file page to the more positively weighted request path first and waits a calculated amount of time before sending a request for the streamed application file page to the less positively weighted request path.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 21, 2012
From: ENDEAVORS TECHNOLOGIES, INC.
To: NUMECENT HOLDINGS, INC.
Reel/Frame 029522/0340 →
CHANGE OF NAME Recorded Apr 27, 2010
From: ENDEAVORS TECHNOLOGY, INC.
To: ENDEAVORS TECHNOLOGIES, INC.
Reel/Frame 024294/0752 →
EMPLOYEE INNOVATIONS AND PROPRIETARY RIGHTS ASSIGNMENT AGREEMENT Recorded Sep 9, 2003
From: SHAH, LACKY VASANT; RAMAKRISHNAN, SRIDHAR
To: OMNISHIFT TECHNOLOGIES, INC.
Reel/Frame 014453/0001 →
SALES AND ASSIGNMENT AGREEMENT Recorded Sep 9, 2003
From: CREDIT MANAGERS ASSOCIATION OF CALIFORNIA DOING BUSINESS AS CMA BUSINESS CREDIT SERVICES
To: ENDEAVORS TECHNOLOGY, INC.
Reel/Frame 014453/0016 →
GENERAL ASSIGNMENT Recorded Sep 9, 2003
From: OMNISHIFT TECHNOLOGIES, INC.
To: CREDIT MANAGERS ASSOCIATION OF CALIFORNIA, DOING BUSINESS AS CMA BUSINESS CREDIT SERVICES
Reel/Frame 014453/0139 →