Claims
- 1. A process for the optimized delivery of server-based streamed applications and data to a client and the management of said streamed applications on a server, comprising the steps of:
providing application set storage means for persistently storing streamed application program sets on said server; wherein said streamed application sets contain streamed application file pages; wherein said streamed application file pages are read only; providing means for receiving client requests for streamed application file pages; providing validation means for validating whether a client has access privilege to a requested streamed application file page; providing caching means for storing commonly accessed streamed application file pages in a cache; wherein said requested streamed application file page is retrieved from said caching means if it is resident in said cache, otherwise said requested streamed application file page is retrieved from said application set storage means; wherein clients request streamed application file pages using a unique set of numbers common among all servers that store the particular streamed application file pages; and providing means for sending said requested streamed application file page to said client.
- 2. The process of claim 1, further comprising the step of:
providing compression means for compressing said requested streamed application file page before sending said requested streamed application file page to said client.
- 3. The process of claim 2, wherein when a client requests multiple streamed application file pages, said server concatenates all of the requested pages and compresses the entire set at once before sending to said client.
- 4. The process of claim 2, wherein said commonly accessed streamed application file pages are compressed before being stored in said cache.
- 5. The process of claim 1, wherein all of the streamed application file pages in the streamed application sets are compressed before being stored in said application set storage means.
- 6. The process of claim 1, further comprising the step of:
providing profiling means for profiling the access patterns of streamed application file pages.
- 7. The process of claim 6, wherein said access patterns are sent to said client to guide its prefetching of streamed application file pages.
- 8. The process of claim 6, wherein said access patterns are used by said server to pre-package and compress groups of streamed application file pages; and wherein a prepackaged group is sent to a client requesting pages within a set.
- 9. The process of claim 6, wherein said access patterns are used by said server to perform prefetching of streamed application file pages for pushing to clients.
- 10. The process of claim 1, further comprising the step of:
providing a license server; wherein said validation means resides on said license server; and wherein said validation means provides a client with an access token that contains information regarding access rights, the application that it applies to, and an expiration time.
- 11. The process of claim 10, further comprising the steps of:
providing token reception means on said server for receiving an access token from a client; providing decryption means on said server for decrypting said access token; providing means for validating the contents of said access token; and granting access to a client with a valid access token.
- 12. The process of claim 10, wherein said decrypting means uses a secret key shared with said license server to decrypt an access token.
- 13. The process of claim 10, wherein said server maintains a list of recently approved access tokens and compares incoming access tokens with said list, and wherein incoming access tokens that match an entry on said list are approved without further processing.
- 14. The process of claim 1, wherein a client uses a persistent connection over the Internet with said server to make multiple requests from said server, and wherein said server closes persistent connections that have been idle for a predetermined period of time.
- 15. The process of claim 1, further comprising the step of:
assigning individual servers a specific set of streamed applications sets to serve to clients; and wherein the servers across a network are asymmetrically assigned different sets of streamed application sets to improve overall server efficiency.
- 16. The process of claim 15, wherein said individual servers are dynamically assigned streamed application sets to match client accesses over time.
- 17. The process of claim 15, further comprising the step of:
providing a central control server; wherein said individual servers periodically send a summary of their file access patterns to said central control server; and wherein said central control server reassigns individual servers according to the file access patterns.
- 18. The process of claim 1, wherein said server communicates with clients across the Internet.
- 19. An apparatus for the optimized delivery of server-based streamed applications and data to a client and the management of said streamed applications on a server, comprising:
application set storage means for persistently storing streamed application program sets on said server; wherein said streamed application sets contain streamed application file pages; wherein said streamed application file pages are read only; means for receiving client requests for streamed application file pages; validation means for validating whether a client has access privilege to a requested streamed application file page; caching means for storing commonly accessed streamed application file pages in a cache; wherein said requested streamed application file page is retrieved from said caching means if it is resident in said cache, otherwise said requested streamed application file page is retrieved from said application set storage means; wherein clients request streamed application file pages using a unique set of numbers common among all servers that store the particular streamed application file pages; and means for sending said requested streamed application file page to said client.
- 20. The apparatus of claim 19, further comprising:
compression means for compressing said requested streamed application file page before sending said requested streamed application file page to said client.
- 21. The apparatus of claim 20, wherein when a client requests multiple streamed application file pages, said server concatenates all of the requested pages and compresses the entire set at once before sending to said client.
- 22. The apparatus of claim 20, wherein said commonly accessed streamed application file pages are compressed before being stored in said cache.
- 23. The apparatus of claim 19, wherein all of the streamed application file pages in the streamed application sets are compressed before being stored in said application set storage means.
- 24. The apparatus of claim 19, further comprising:
profiling means for profiling the access patterns of streamed application file pages.
- 25. The apparatus of claim 24, wherein said access patterns are sent to said client to guide its prefetching of streamed application file pages.
- 26. The apparatus of claim 24, wherein said access patterns are used by said server to pre-package and compress groups of streamed application file pages; and wherein a pre-packaged group is sent to a client requesting pages within a set.
- 27. The apparatus of claim 24, wherein said access patterns are used by said server to perform prefetching of streamed application file pages for pushing to clients.
- 28. The apparatus of claim 19, further comprising:
a license server; wherein said validation means resides on said license server; and wherein said validation means provides a client with an access token that contains information regarding access rights, the application that it applies to, and an expiration time.
- 29. The apparatus of claim 28, further comprising:
token reception means on said server for receiving an access token from a client; decryption means on said server for decrypting said access token; means for validating the contents of said access token; and a module for granting access to a client with a valid access token.
- 30. The apparatus of claim 28, wherein said decrypting means uses a secret key shared with said license server to decrypt an access token.
- 31. The apparatus of claim 28, wherein said server maintains a list of recently approved access tokens and compares incoming access tokens with said list, and wherein incoming access tokens that match an entry on said list are approved without further processing.
- 32. The apparatus of claim 19, wherein a client uses a persistent connection over the Internet with said server to make multiple requests from said server, and wherein said server closes persistent connections that have been idle for a predetermined period of time.
- 33. The apparatus of claim 19, further comprising:
a module for assigning individual servers a specific set of streamed applications sets to serve to clients; and wherein the servers across a network are asymmetrically assigned different sets of streamed application sets to improve overall server efficiency.
- 34. The apparatus of claim 33, wherein said individual servers are dynamically assigned streamed application sets to match client accesses over time.
- 35. The apparatus of claim 33, further comprising the step of:
providing a central control server; wherein said individual servers periodically send a summary of their file access patterns to said central control server; and wherein said central control server reassigns individual servers according to the file access patterns.
- 36. The apparatus of claim 19, wherein said server communicates with clients across the Internet.
- 37. A program storage medium readable by a computer, tangibly embodying a program of instructions executable by the computer to perform method steps for the optimized delivery of server-based streamed applications and data to a client and the management of said streamed applications on a server, comprising the steps of:
providing application set storage means for persistently storing streamed application program sets on said server; wherein said streamed application sets contain streamed application file pages; wherein said streamed application file pages are read only; providing means for receiving client requests for streamed application file pages; providing validation means for validating whether a client has access privilege to a requested streamed application file page; providing caching means for storing commonly accessed streamed application file pages in a cache; wherein said requested streamed application file page is retrieved from said caching means if it is resident in said cache, otherwise said requested streamed application file page is retrieved from said application set storage means; wherein clients request streamed application file pages using a unique set of numbers common among all servers that store the particular streamed application file pages; and providing means for sending said requested streamed application file page to said client.
- 38. The method of claim 37, further comprising the step of:
providing compression means for compressing said requested streamed application file page before sending said requested streamed application file page to said client.
- 39. The method of claim 38, wherein when a client requests multiple streamed application file pages, said server concatenates all of the requested pages and compresses the entire set at once before sending to said client.
- 40. The method of claim 38, wherein said commonly accessed streamed application file pages are compressed before being stored in said cache.
- 41. The method of claim 37, wherein all of the streamed application file pages in the streamed application sets are compressed before being stored in said application set storage means.
- 42. The method of claim 37, further comprising the step of:
providing profiling means for profiling the access patterns of streamed application file pages.
- 43. The method of claim 42, wherein said access patterns are sent to said client to guide its prefetching of streamed application file pages.
- 44. The method of claim 42, wherein said access patterns are used by said server to pre-package and compress groups of streamed application file pages; and wherein a pre-packaged group is sent to a client requesting pages within a set.
- 45. The method of claim 42, wherein said access patterns are used by said server to perform prefetching of streamed application file pages for pushing to clients.
- 46. The method of claim 37, further comprising the step of:
providing a license server; wherein said validation means resides on said license server; and wherein said validation means provides a client with an access token that contains information regarding access rights, the application that it applies to, and an expiration time.
- 47. The method of claim 46, further comprising the steps of:
providing token reception means on said server for receiving an access token from a client; providing decryption means on said server for decrypting said access token; providing means for validating the contents of said access token; and granting access to a client with a valid access token.
- 48. The method of claim 46, wherein said decrypting means uses a secret key shared with said license server to decrypt an access token.
- 49. The method of claim 46, wherein said server maintains a list of recently approved access tokens and compares incoming access tokens with said list, and wherein incoming access tokens that match an entry on said list are approved without further processing.
- 50. The method of claim 37, wherein a client uses a persistent connection over the Internet with said server to make multiple requests from said server, and wherein said server closes persistent connections that have been idle for a predetermined period of time.
- 51. The method of claim 37, further comprising the step of:
assigning individual servers a specific set of streamed applications sets to serve to clients; and wherein the servers across a network are asymmetrically assigned different sets of streamed application sets to improve overall server efficiency.
- 52. The method of claim 51, wherein said individual servers are dynamically assigned streamed application sets to match client accesses over time.
- 53. The method of claim 51, further comprising the step of:
providing a central control server; wherein said individual servers periodically send a summary of their file access patterns to said central control server; and wherein said central control server reassigns individual servers according to the file access patterns.
- 54. The method of claim 37, wherein said server communicates with clients across the Internet.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application Claims benefit of U.S. Provisional Patent Application Serial No. 60/246,384, filed on Nov. 6, 2000 (OTI.2000.0).
Provisional Applications (1)
|
Number |
Date |
Country |
|
60246384 |
Nov 2000 |
US |