Senior Fitness - Exercise and Nutrition for Aging Men and Women
FREE Article Feed for your website.
Home Ownership Magazine
Party Planning Information
Article Marketing Resources
Bio-Medical Research Article Database
Informative Articles on Life, Love and Happiness
Tutorials on Business to Writing
Famous Quotes from Famous People
Song Lyric Information
New US Patent Information
Comprehensive List of Content by Category
Online Auctions and Shopping Related Articles
Article Search
Most Recent Articles
 

Bad Credit Loans Made Easier by Pre Approval
Category:
Business  

Vitamin supplements by Nguang Nguek Fluek
Category:
Health / Fitness  

How you Can Save Money if you Book Hotels in Central Rome
Category:
Travel  

Universal Life Insurance guide 101
Category:
Finance / Investment  

FINE or VICE Cash Loans
Category:
Finance / Investment  

Why Blogs are so popular
Category:
Marketing  

Office Supplies and Client Relation
Category:
Business  

Buying a Hidden Spy Camera
Category:
Business  

Understanding Flower Bulbs
Category:
Home And Family  

Parenting 101 Get Into a Parenting Class
Category:
Home And Family  

Lanzarote Tourist
Category:
Travel  

A Visitors Guide to Paris France
Category:
Travel  

Personal Accounts Choosing Your Bank
Category:
Business  

Acne A Clean Face First Step In A 12 Step Program
Category:
Health / Fitness  

VOIP security guide
Category:
Computers  

Three Reasons For Becoming A Foster Parent
Category:
Home And Family  

Affiliate Programs MLM Income Opportunity Residual
Category:
Business  

Hepatitis C Symptoms What are the Signs and Symptoms of Hepatiti...
Category:
Health / Fitness  

Sales Success Who Do You Really Work For
Category:
Business  

Stress Testing Tools How to Test for Stress Level DHEA
Category:
Health / Fitness  

Stay At Home CEO How a Single Dad Found Financial Success Workin...
Category:
Business  

Build Your Confidence and Find Your Soulmate
Category:
Entertainment / Television  

Importance of Good Web Design
Category:
Business  

WANT MORE CHANCES OF WINNING THE LOTTERY JACKPOT
Category:
Business  

Eight Strategies to Become a Winner
Category:
Self Help  

Business Property Investment can provide Guaranteed Returns For ...
Category:
Business  

IVR Surveys The secret to Increasing response Rates
Category:
Business  

New Bankruptcy Training Course Provides 7 CLE Credits for Parale...
Category:
Business  

Something new to try What about a head or face massage
Category:
Health / Fitness  

10 Tips for Rapid Fat Loss
Category:
Health / Fitness  

A Guide to Tropical Wall Murals
Category:
Home And Family  

Debt Relief Solutions Get the Way for Financial Relief
Category:
Finance / Investment  

Evolution of Myspace from a social networking website to a marke...
Category:
Marketing  

Top Networking Marketing Opportunities Is There Such A Thing
Category:
Business  

What are you prepared to risk to optimise your chances of intern...
Category:
Marketing  

Using a Free Baby Shower Word Scramble Game
Category:
Home And Family  

To Everyone that Wants to Taste the Love
Category:
Entertainment / Television  

Business Loans
Category:
Business  

PSP Downloads Site Receives 5 Star Rating
Category:
Home And Family  

Did Colorado Kill Doc Holliday
Category:
Travel  

What is franchising
Category:
Business  

Dead Ducks Don t Quack
Category:
Business  

Capital and Repayment Mortgages
Category:
Finance / Investment  

Three Online Stock Trading Systems
Category:
Finance / Investment  

Compare Gyms and Save
Category:
Health / Fitness  

What are the Health Benefits of an Infrared Sauna
Category:
Health / Fitness  

Timeframe of long term SEO results
Category:
Marketing  

Why You Might Consider Enhancement After LASIK Laser Eye Surgery...
Category:
Health / Fitness  

One Way Links and Reciprocal Link Exchange and Traffic
Category:
Marketing  

Avoid Cold Calling Download Ebook Free Online
Category:
Business  

handbags
Category:
Computers  

Cottage Getaway to Plan Book early to secure your Cottage Rental...
Category:
Travel  

Understanding Teen Acne
Category:
Home And Family  

12 Cost effective Ways to Keep Your Child Safe around the Home
Category:
Home And Family  

What Are Supplemental Credit Cardholders
Category:
Business  

Equity Indexed Annuity is a Fixed Annuity Now Known as an Index ...
Category:
Finance / Investment  

Using A Data Recovery Service A Quick Overview
Category:
Computers  

Hemorrhoids Exercises to Easy Your Hemorrhoids
Category:
Health / Fitness  

What Comprises a Good Graphic Design
Category:
Computers  

Email Marketing For Success
Category:
Business  

Rx Assistance For NY Citizens By ACIRX
Category:
Business  

Secured Loan
Category:
Finance / Investment  

Are there really free online surveys that pay
Category:
Business  

Bread Makers Why your Kitchen is Begging for One
Category:
Home And Family  

SEO 101 For Beginners Revised
Category:
Marketing  

How to building and managing an opt in list for a website
Category:
Marketing  

The Benefits Of Using Professional Translations For Internationa...
Category:
Business  

What Is A Second Mortgage
Category:
Business  

3 Simple Methods To Building A Profitable Opt In List
Category:
Marketing  

Varieties Of Electric Heating Pads
Category:
Health / Fitness  

7 Ways To Ensure Your Article Never Gets Used By Other Webmaster...
Category:
Marketing  

We Should All be Greatful to Day Traders
Category:
Finance / Investment  

How To Find The Best PDA Phones On The Market Even If You re A N...
Category:
Computers  

Making Your Resource Box Work
Category:
Marketing  

Unraveling some of the myths about email promotion
Category:
Marketing

Client installation and execution system for streamed applications Number:6,918,113 from the United States Patent and Trademark Office (PTO) owispatent

Home    Author Login    Submit Article    Article Search    Add Your Link    Edit Your Link    Contact Us    Advertising    Disclaimer

   

 
Web LinkGrinder.com

Top Breaking News
     Greek, Cypriot Leaders Resume Unification Talks in Nicosia by Nathan Morley
     Indonesia Tobacco Sales Grow, Raising Health Fears
     South Korea Allows Top Defector to Travel Overseas by VOA News

Title: Client installation and execution system for streamed applications

Abstract: A client installation and execution system for streamed applications requires the user or administrator to obtain a subscription to the streamed application program from a subscription server before installation of the streamed application program begins. The client then obtains an encrypted access token for the streamed application program from a license server upon acknowledgment of a valid license, receives an installation information block from the server, and installs the proper icons, aliases, and description onto the client that give the user the proper look and feel of the original application program. A file spoofer is installed on the client that redirects file accesses from the client's local file system to the streaming server's file system. A registry spoofer is provided on the client for intercepting all registry calls on the client and redirecting calls that manipulate certain registries to an alternate path specified in a registry database on the client. An application page cache is also provided on the client that is managed by a cache manager that requests application pages of the streamed application program from the server. During execution of the streamed application program, page requests are generated and the cache manager requests any application pages from the server that are not resident in the application page cache and places the requested application pages in the application page cache.

Patent Number: 6,918,113 Issued on 07/12/2005 to Patel,   et al.


Inventors: Patel; Amit (Santa Clara, CA); Pujare; Sanjay (San Jose, CA); Ryan; Nicholas (Santa Clara, CA); Lin; David (Mountain View, CA)
Assignee: Endeavors Technology, Inc. (Irvine, CA)
Appl. No.: 827030
Filed: April 5, 2001

Current U.S. Class: 717/178; 709/219
Intern'l Class: G06F 009/44.5; G06F015/16
Field of Search: 717/174-178,171,167,168-173 709/231,229,219


References Cited [Referenced By]

U.S. Patent Documents
5210850May., 1993Kelly et al.
5666293Sep., 1997Metz et al.
5764918Jun., 1998Poulter.
5805809Sep., 1998Singh et al.
6047323Apr., 2000Krause.
6065043May., 2000Domenikos et al.
6154878Nov., 2000Saboff.
6275496Aug., 2001Burns et al.
6282712Aug., 2001Davis et al.
6301605Oct., 2001Napolitano et al.
6311221Oct., 2001Raz et al.
6347398Feb., 2002Parthasarathy et al.
6370686Apr., 2002Delo et al.
6374402Apr., 2002Schmeidler et al.
6418554Jul., 2002Delo et al.
6418555Jul., 2002Mohammed.
6453334Sep., 2002Vinson et al.
6457076Sep., 2002Cheng et al.
6510462Jan., 2003Blumenau.
6574618Jun., 2003Eylon et al.
6584507Jun., 2003Bradley et al.
6587857Jul., 2003Carothers et al.
6601103Jul., 2003Goldschmidt Iki et al.
6601110Jul., 2003Marsland.
6636961Oct., 2003Braun et al.
6687745Feb., 2004Franco et al.
6694510Feb., 2004Willems.
6711619Mar., 2004Chandramohan et al.
6735631May., 2004Oehrke et al.
6757894Jun., 2004Eylon et al.
6763370Jul., 2004Schmeidler et al.
6772209Aug., 2004Chernock et al.
2001/0034736Oct., 2001Eylon et al.
2001/0037399Nov., 2001Eylon et al.
2001/0037400Nov., 2001Raz et al.
2001/0044850Nov., 2001Raz et al.
2002/0042833Apr., 2002Hendler et al.
2002/0078203Jun., 2002Greschler et al.
2002/0083187Jun., 2002Sim et al.
2002/0087717Jul., 2002Artzi et al.
2002/0138640Sep., 2002Raz et al.

Primary Examiner: Khatri; Anil
Assistant Examiner: Roche; Trent J
Attorney, Agent or Firm: Knobbe, Martens, Olson & Bear, LLP

Parent Case Text



CROSS REFERENCE TO RELATED APPLICATIONS

This application Claims benefit of U.S. Provisional Patent Application Ser. No. 60/246,384, filed on Nov. 6, 2000 (OTI.2000.0).
Claims



1. A process for installing a streamed application program on a client system and executing said streamed application program on said client while concurrently streaming portions of said streamed application program from a server in a computer environment, comprising the steps of:

receiving an installation information block for said streamed application program from said server;

providing file redirection means on said client for redirecting file accesses from said client's local file system to the streaming server's file system;

providing a file mapping database that persistently stores on said client;

a bi-directional mapping of the client file system to the streaming server file system after termination of said streamed application;

wherein said file mapping database is updated with said streamed application program's file mapping data obtained from said installation information;

wherein said file redirection means performs said redirection using said file mapping database;

providing registry interception means on said client for intercepting all registry calls on said client and redirecting calls that manipulate certain registries to an alternate path;

providing a registry spoof database that persistently stores on said client;

mappings of original registry paths to new alternate registry paths after termination of said streamed application;

wherein said registry spoof database is updated with said streamed application program's registry mapping data obtained from said installation information;

wherein said registry interception means uses said registry spoof database to redirect registry calls;

providing an application page cache on said client;

providing application page prefetching means on said client for requesting application pages of said streamed application program from said server;

wherein said application page prefetching means initially populates said application page cache with an initial set of application pages when said

streamed application program is installed on said client, said initial set of application pages are specified in said installation information; and

installing the proper icons, aliases, and description onto said client that give the user the proper look and feel of the original application program.

2. The process of claim 1, wherein during execution of said streamed application program said streamed application program generates page requests, said application page prefetching means requests application pages from said server that are not resident in said application page cache and places said requested application pages in said application page cache.

3. The process of claim 1, wherein said application page prefetching means prefetches additional application pages that said streamed application program may need in the future from said server and places said additional application pages in said application page cache, and wherein said additional application pages are selected based on application page profiling data obtained from said installation information.

4. The process of claim 1, wherein the user selects the proper icon or alias to start said streamed application program.

5. The process of claim 1, wherein the user or administrator obtains a subscription to said streamed application program from a subscription server before installation of said streamed application program begins.

6. The process of claim 1, wherein said client obtains a license for said streamed application program from a license server before installation of said streamed application program begins.

7. The process of claim 6, wherein said license server gives said client an encrypted access token upon acknowledgment of a valid license.

8. The process of claim 7, wherein said client passes said encrypted access 30 token to said server for validation before requesting application pages from said server.

9. The process of claim 1, wherein during the uninstallation of said streamed application program from said client, said file redirection means removes said streamed application program's file mapping data from said file mapping database.

10. The process of claim 1, wherein during the uninstallation of said streamed application program from said client, said registry interception means removes all of said streamed application program's registry mapping data from said registry spoof database.

11. The process of claim 1, wherein during the uninstallation of said streamed application program from said client, said application page prefetching means removes all of said streamed application program's application pages from said application page cache.

12. The process of claim 1, wherein during the uninstallation of said streamed application program from said client, said proper icons, aliases, and description are removed from said client.

13. An apparatus for installing a streamed application program on a client system and executing said streamed application program on said client while concurrently streaming portions of said streamed application program from a server in a computer environment, comprising:

a module for receiving an installation information block for said streamed application program from said server;

file redirection means on said client for redirecting file accesses from said client's local file system to the streaming server's file system;

a file mapping database that persistently stores on said client;

a bi-directional mapping of the client file system to the streaming server file system after termination of said streamed application;

wherein said file mapping database is updated with said streamed application program's file mapping data obtained from said installation information;

wherein said file redirection means performs said redirection using said file mapping database;

registry interception means on said client for intercepting all registry calls on said client and redirecting calls that manipulate certain registries to an alternate path;

a registry spoof database that persistently stores on said client;

mappings of original registry paths to new alternate registry paths after termination of said streamed application;

wherein said registry spoof database is updated with said streamed application program's registry mapping data obtained from said installation information;

wherein said registry interception means uses said registry spoof database to redirect registry calls;

an application page cache on said client;

application page prefetching means on said client for requesting application pages of said streamed application program from said server;

wherein said application page prefetching means initially populates said application page cache with an initial set of application pages when said streamed application program is installed on said client, said initial set of application pages are specified in said installation information; and

a module for installing the proper icons, aliases, and description onto said client that give the user the proper look and feel of the original application program.

14. The apparatus of claim 13, wherein during execution of said streamed application program said streamed application program generates page requests, said application page prefetching means requests application pages from said server that are not resident in said application page cache and places said requested application pages in said application page cache.

15. The apparatus of claim 13, wherein said application page prefetching means prefetches additional application pages that said streamed application program may need in the future from said server and places said additional application pages in said application page cache, and wherein said additional application pages are selected based on application page profiling data obtained from said installation information.

16. The apparatus of claim 13, wherein the user selects the proper icon or alias to start said streamed application program.

17. The apparatus of claim 13, wherein the user or administrator obtains a subscription to said streamed application program from a subscription server before installation of said streamed application program begins.

18. The apparatus of claim 13, wherein said client obtains a license for said streamed application program from a license server before installation of said streamed application program begins.

19. The apparatus of claim 18, wherein said license server gives said client an encrypted access token upon acknowledgment of a valid license.

20. The apparatus of claim 19, wherein said client passes said encrypted access token to said server for validation before requesting application pages from said server.

21. The apparatus of claim 13, wherein during the uninstallation of said streamed application program from said client, said file redirection means removes said streamed application program's file mapping data from said file mapping database.

22. The apparatus of claim 13, wherein during the uninstallation of said streamed application program from said client, said registry interception means removes all of said streamed application program's registry mapping data from said registry spoof database.

23. The apparatus of claim 13, wherein during the uninstallation of said streamed application program from said client, said application page prefetching means removes all of said streamed application program's application pages from said application page cache.

24. The apparatus of claim 13, wherein during the uninstallation of said streamed application program from said client, said proper icons, aliases, and description are removed from said client.

25. A program storage medium readable by a computer, tangibly embodying a program of instructions executable by the computer to perform method steps for installing a streamed application program on a client system and executing said streamed application program on said client while concurrently streaming portions of said streamed application program from a server in a computer environment, comprising the steps of:

receiving an installation information block for said streamed application program from said server;

providing file redirection means on said client for redirecting file accesses from said client's local file system to the streaming server's file system;

providing a file mapping database that persistently stores on said client;

a bi-directional mapping of the client file system to the streaming server file system after termination of said streamed application;

wherein said file mapping database is updated with said streamed application program's file mapping data obtained from said installation information;

wherein said file redirection means performs said redirection using said file mapping database;

providing registry interception means on said client for intercepting all registry calls on said client and redirecting calls that manipulate certain registries to an alternate path;

providing a registry spoof database that persistently stores on said client;

mappings of original registry paths to new alternate registry paths after termination of said streamed application;

wherein said registry spoof database is updated with said streamed application program's registry mapping data obtained from said installation information; and wherein said registry interception means uses said registry spoof database to redirect registry calls;

providing an application page cache on said client;

providing application page prefetching means on said client for requesting application pages of said streamed application program from said server;

wherein said application page prefetching means initially populates said application page cache with an initial set of application pages when said streamed application program is installed on said client, said initial set of application pages are specified in said installation information; and

installing the proper icons, aliases, and description onto said client that give the user the proper look and feel of the original application program.

26. The method of claim 25, wherein during execution of said streamed application program said streamed application program generates page requests, said application page prefetching means requests application pages from said server that are not resident in said application page cache and places said requested application pages in said application page cache.

27. The method of claim 25, wherein said application page prefetching means prefetches additional application pages that said streamed application program may need in the future from said server and places said additional application pages in said application page cache, and wherein said additional application pages are selected based on application page profiling data obtained from said installation information.

28. The method of claim 25, wherein the user selects the proper icon or alias to start said streamed application program.

29. The method of claim 25, wherein the user or administrator obtains a subscription to said streamed application program from a subscription server before installation of said streamed application program begins.

30. The method of claim 25, wherein said client obtains a license for said streamed application program from a license server before installation of said streamed application program begins.

31. The method of claim 30, wherein said license server gives said client an encrypted access token upon acknowledgment of a valid license.

32. The method of claim 31, wherein said client passes said encrypted access token to said server for validation before requesting application pages from said server.

33. The method of claim 25, wherein during the uninstallation of said streamed application program from said client, said file redirection means removes said streamed application program's file mapping data from said file mapping database.

34. The method of claim 25, wherein during the uninstallation of said streamed application program from said client, said registry interception means removes all of said streamed application program's registry mapping data from said registry spoof database.

35. The method of claim 25, wherein during the uninstallation of said streamed application program from said client, said application page prefetching means removes all of said streamed application program's application pages from said application page cache.

36. The method of claim 25, wherein during the uninstallation of said streamed application program from said client, said proper icons, aliases, and description are removed from said client.

37. A process for installing a streamed application program on a client system and executing said streamed application program on said client while concurrently streaming portions of said streamed application program from a server in a computer environment, comprising the steps of:

providing file redirection means on said client for redirecting file accesses from said client's local file system to the streaming server's file system;

providing a file mapping database that persistently stores on said client a bi-directional mapping of the client file system to the streaming server file system after termination of said streamed application;

wherein said file redirection means performs said redirection using said file mapping database;

providing registry interception means on said client for intercepting all registry calls on said client and redirecting calls that manipulate certain registries to an alternate path;

providing a registry spoof database that persistently stores on said client;

mappings of original registry paths to new alternate registry paths after termination of said streamed application;

wherein said registry interception means uses said registry spoof database to redirect registry calls;

providing an application page cache on said client;

providing application page prefetching means on said client for requesting application pages of said streamed application program from said server; and

wherein during execution of said streamed application program said streamed application program generates page requests, said application page prefetching means requests application pages from said server that are not resident in said application page cache and places said requested application pages in said application page cache.

38. The process of claim 37, receiving an installation information block for said streamed application program from said server.

39. The process of claim 38, wherein said application page prefetching means prefetches additional application pages that said streamed application program may need in the future from said server and places said additional application pages in said application page cache, and wherein said additional application pages are selected based on application page profiling data obtained from said installation information.

40. The process of claim 38, wherein said registry spoof database is updated with said streamed application program's registry mapping data obtained from said installation information.

41. The process of claim 38, wherein said file mapping database is updated with said streamed application program's file mapping data obtained from said installation information.

42. The process of claim 37, wherein said application page prefetching means initially populates said application page cache with an initial set of application pages when said streamed application program is installed on said client.

43. The process of claim 37, wherein the user or administrator obtains a subscription to said streamed application program from a subscription server before executing said streamed application program.

44. The process of claim 37, wherein said client obtains a license for said 15 streamed application program from a license server before executing said streamed application program.

45. The process of claim 44, wherein said license server gives said client an encrypted access token upon acknowledgment of a valid license.

46. The process of claim 45, wherein said client passes said encrypted access token to said server for validation before requesting application pages from said server.

47. An apparatus for installing a streamed application program on a client system and executing said streamed application program on said client while concurrently streaming portions of said streamed application program from a server in a computer environment, comprising:

file redirection means on said client for redirecting file accesses from said client's local file system to the streaming server's file system;

a file mapping database that persistently stores on said client a bi-directional mapping of the client file system to the streaming server file system after termination of said streamed application;

wherein said file redirection means performs said redirection using said file mapping database;

registry interception means on said client for intercepting all registry calls on said client and redirecting calls that manipulate certain registries to an alternate path;

a registry spoof database that persistently stores on said client;

mappings of original registry paths to new alternate registry paths;

wherein said registry interception means uses said registry spoof database to redirect registry calls;

an application page cache on said client;

application page prefetching means on said client for requesting application pages of said streamed application program from said server; and

wherein during execution of said streamed application program said streamed application program generates page requests, said application page prefetching means requests application pages from said server that are not resident in said application page cache and places said requested application pages in said application page cache.

48. The apparatus of claim 47, receiving an installation information block for said streamed application program from said server.

49. The apparatus of claim 48, wherein said application page prefetching means prefetches additional application pages that said streamed application program may need in the future from said server and places said additional application pages in said application page cache, and wherein said additional application pages are selected based on application page profiling data obtained from said installation information.

50. The apparatus of claim 48, wherein said registry spoof database is updated with said streamed application program's registry mapping data obtained from said installation information.

51. The apparatus of claim 48, wherein said file mapping database is updated with said streamed application program's file mapping data obtained from said installation information.

52. The apparatus of claim 47, wherein said application page prefetching means initially populates said application page cache with an initial set of application pages when said streamed application program is installed on said client.

53. The apparatus of claim 47, wherein the user or administrator obtains a subscription to said streamed application program from a subscription server before executing said streamed application program.

54. The apparatus of claim 47, wherein said client obtains a license for said streamed application program from a license server before executing said streamed application program.

55. The apparatus of claim 54, wherein said license server gives said client an encrypted access token upon acknowledgment of a valid license.

56. The apparatus of claim 55, wherein said client passes said encrypted access token to said server for validation before requesting application pages from said server.

57. A program storage medium readable by a computer, tangibly embodying a program of instructions executable by the computer to perform method steps for installing a streamed application program on a client system and executing said streamed application program on said client while concurrently streaming portions of said streamed application program from a server in a computer environment, comprising the steps of:

providing file redirection means on said client for redirecting file accesses from said client's local file system to the streaming server's file system;

providing a file mapping database that persistently stores on said client;

a bi-directional mapping of the client file system to the streaming server file system after termination of said streamed application;

wherein said file redirection means performs said redirection using said file mapping database;

providing registry interception means on said client for intercepting all registry calls on said client and redirecting calls that manipulate certain registries to an alternate path;

providing a registry spoof database that persistently stores on said client;

mappings of original registry paths to new alternate registry paths after termination of said streamed application;

wherein said registry interception means uses said registry spoof database to redirect registry calls;

providing an application page cache on said client;

providing application page prefetching means on said client for requesting application pages of said streamed application program from said server; and

wherein during execution of said streamed application program said streamed application program generates page requests, said application page prefetching means requests application pages from said server that are not resident in said application page cache and places said requested application pages in said application page cache.

58. The method of claim 57, receiving an installation information block for said streamed application program from said server.

59. The method of claim 58, wherein said application page prefetching means prefetches additional application pages that said streamed application program may need in the future from said server and places said additional application pages in said application page cache, and wherein said additional application pages are selected based on application page profiling data obtained from said installation information.

60. The method of claim 58, wherein said registry spoof database is updated with said streamed application program's registry mapping data obtained from said installation information.

61. The method of claim 58, wherein said file mapping database is updated with said streamed application program's file mapping data obtained from said installation information.

62. The method of claim 57, wherein said application page prefetching means initially populates said application page cache with an initial set of application pages when said streamed application program is installed on said client.

63. The method of claim 57, wherein the user or administrator obtains a subscription to said streamed application program from a subscription server before executing said streamed application program.

64. The method of claim 57, wherein said client obtains a license for said streamed application program from a license server before executing said streamed application program.

65. The method of claim 64, wherein said license server gives said client an encrypted access token upon acknowledgment of a valid license.

66. The method of claim 65, wherein said client passes said encrypted access token to said server for validation before requesting application pages from said server.
Description



BACKGROUND OF THE INVENTION

1. Technical Field

The invention relates to the streaming of computer program object code across a network in a computer environment. More particularly, the invention relates to streaming and execution of existing applications across a network of servers streaming computer program object code and other related data to clients in a computer environment.

2. Description of the Prior Art

Retail sales models of computer application programs are fairly straight forward. The consumer either purchases the application program from a retailer that is either a brick and mortar or an ecommerce entity. The product is delivered to the consumer in a shrink-wrap form.

The consumer installs the program from a floppy disk or a CD-ROM included in the packaging. A serial number is generally provided that must be entered at installation or the first time the program is run. Other approaches require that the CD-ROM be present whenever the program is run. However, CD-ROMs are easily copied using common CDR technology.

Another approach is for the consumer to effectuate the purchase through an ecommerce entity. The application program is downloaded in its entirety to the consumer across the Internet. The consumer is emailed a serial number that is required to run the program. The consumer enters the serial number at the time the program is installed or the first time the program is run.

Once the application program is installed on a machine, it resides on the machine, occupying precious hard disk space, until it is physically removed. The installer portion of the program can also be installed on a server along with the installation files. Users within an intranet can install the program from the server, across the network, onto their machines. The program is a full installation of the program and resides on the user's machine until it is manually removed.

Trial versions of programs are also available online that are a partial or full installation of the application program. The program executes normally for a preset time period. At the end of the time period, the consumer is told that he must purchase the program and execution is terminated. The drawback to this approach is that there is an easy way for the consumer to fool the program. The consumer simply uninstalls the program and then reinstalls it, thereby restarting the time period.

Additionally, piracy problems arise once the application program is resident on the consumer's computer. Serial numbers for programs are easily obtained across the Internet. Software companies lose billions of dollars a year in revenue because of this type of piracy.

The above approaches fail to adequately protect software companies' revenue stream. These approaches also require the consumer to install a program that resides indefinitely on the consumer's hard disk, occupying valuable space even though the consumer may use the program infrequently.

The enterprise arena allows Application Service Providers (ASP) to provide browser-based implementations such as Tarantella offered by Santa Cruz Operation, Inc. in Santa Cruz, Calif. and Metaframe offered by Citrix Systems Inc. of Fort Lauderdale, Fla. A remote application portal site allows the user to click on an application in his browser to execute the application. The application runs on the portal site and GUI interfaces such as display, keystrokes and mouse clicks are transferred over the wire. The access to the program is password protected. This approach allows the provider to create an audit trail and to track the use of an application program.

AppStream Inc. of Palo Alto, Calif. uses Java code streamlets to provide streaming applications to the user. The system partitions a Web application program into Java streamlets. Java streamlets are then streamed to the user's computer on an as-needed basis. The application runs on the user's computer, but is accessed through the user's network browser.

The drawback to the browser-based approaches is that the user is forced to work within his network browser, thereby adding another layer of complexity. The browser or Java program manages the application program's run-time environment. The user loses the experience that the software manufacturer had originally intended for its product including features such as application invocation based on file extension associations.

It would be advantageous to provide a client installation and execution system for streamed applications that installs a streamed application program onto a client system that appears to the user as if the application program is fully installed on the client. It would further be advantageous to provide a client installation and execution system for streamed applications that executes the streamed application program on a client while concurrently streaming portions of the streamed application program from a server.

SUMMARY OF THE INVENTION

The invention provides a client installation and execution system for streamed applications. The system installs a streamed application program onto a client system that appears to the user as if the actual application program is fully installed on the client. In addition, the invention provides a system that executes the streamed application program on a client while concurrently streaming portions of the streamed application program from a server.

The invention requires the user or administrator to obtain a subscription to the streamed application program from a subscription server before installation of the streamed application program begins. The client then obtains an encrypted access token for the streamed application program from a license server upon acknowledgment of a valid license.

The invention receives an installation information block for the streamed application program from the server and installs the proper icons, aliases, and description onto the client that give the user the proper look and feel of the original application program.

A file spoofer is installed on the client that redirects file accesses from the client's local file system to the streaming server's file system. A file mapping database on the client contains a bidirectional mapping of the client file system to the streaming server file system which the file spoofer uses to perform its redirection. The file mapping database is updated with the streamed application program's file mapping data obtained from the installation information.

A registry spoofer is provided on the client for intercepting all registry calls on the client and redirecting calls that manipulate certain registries to an alternate path specified in a registry database on the client. The registry database contains mappings of original registry paths to new alternate registry paths and is updated with the streamed application program's registry mapping data obtained from the installation information.

An application page cache is also provided on the client that is managed by a cache manager that requests application pages of the streamed application program from the server. The cache manager initially populates the application page cache with an initial set of application pages when the streamed application program is installed on the client.

The user selects the proper icon or alias to start the streamed application program. The client then passes the encrypted access token to the server for validation before requesting application pages. During execution of the streamed application program, page requests are generated and the cache manager requests any application pages from the server that are not resident in the application page cache and places the requested application pages in the application page cache.

Additional application pages are prefetched by the cache manager that the streamed application program may need in the future based on application page profiling data obtained from the installation information.

Other aspects and advantages of the invention will become apparent from the following detailed description in combination with the accompanying drawings, illustrating, by way of example, the principles of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block schematic diagram of a preferred embodiment of the invention showing components on the server that deal with users subscribing to and running applications according to the invention;

FIG. 2 is a block schematic diagram of a preferred embodiment of the invention showing the client components supporting application delivery and execution according to the invention;

FIG. 3 is a block schematic diagram of a preferred embodiment of the invention showing the components needed to install applications on the client according to the invention;

FIG. 4 is a block schematic diagram of the Builder that takes an existing application and extracts the Application File Pages for that application according to the invention;

FIG. 5a is a block schematic diagram illustrating how the Client Network Spoofer is used to handle mapping TCP interfaces to HTTP interfaces according to the invention;

FIG. 5b is a block schematic diagram illustrating how the Client Network Spoofer is used to handle mapping TCP interfaces to HTTP interfaces according to the invention;

FIG. 6a is a block schematic diagram showing several different components of the client software according to the invention;

FIG. 6b is a block schematic diagram showing the use of volatile and non-volatile storage of code and data in the client and server according to the invention;

FIG. 7a is a block schematic diagram showing one of two ways in which data may be compressed while in transit between the server and client according to the invention;

FIG. 7b is a block schematic diagram showing the other way in which data may be compressed while in transit between the server and client according to the invention;

FIG. 8 is a block schematic diagram showing an organization of the streaming client software according to the invention;

FIG. 9 is a block schematic diagram showing an alternative organization of the streaming client software according to the invention;

FIG. 10 is a block schematic diagram showing the application streaming software consisting of a streaming block driver according to the invention;

FIG. 11 is a block schematic diagram showing the application streaming software has been divided into a disk driver and a user mode client according to the invention;

FIG. 12 is a block schematic diagram showing the unencrypted and encrypted client caches according to the invention;

FIG. 13 is a block schematic diagram showing an application generating a sequence of code or data requests to the operating system according to the invention;

FIG. 14 is a block schematic diagram showing server-based prefetching according to the invention;

FIG. 15 is a block schematic diagram showing a client-to-client communication mechanism that allows local application customization to travel from one client machine to another without involving server communication according to the invention;

FIG. 16 is a block schematic diagram showing a client cache with extensions for supporting local file customization according to the invention;

FIG. 17 is a block schematic diagram showing aspects of a preferred embodiment of the invention related to load balancing and hardware fail over according to the invention;

FIG. 18 is a block schematic diagram showing the benefits to the use of compression in the streaming of Application File Pages according to the invention;

FIG. 19 is a block schematic diagram showing pre-compression of Application File Pages according to the invention;

FIG. 20 is a block schematic diagram showing multi-page compression of Application File Pages according to the invention;

FIG. 21 is a block schematic diagram showing profile-based prefetching according to the invention;

FIG. 22 is a block schematic diagram showing the use of tokens and a License Server according to the invention;

FIG. 23 is a block schematic diagram showing a flowchart for the Builder Install Monitor according to the invention;

FIG. 24 is a block schematic diagram showing a flowchart for the Builder Application Profiler according to the invention;

FIG. 25 is a block schematic diagram showing a flowchart for the Builder SAS Packager according to the invention;

FIG. 26a is a block schematic diagram showing versioning support according to the invention;

FIG. 26b is a block schematic diagram showing versioning support according to the invention;

FIG. 27 is a block schematic diagram showing a data flow diagram for the Streamed Application Set Builder according to the invention;

FIG. 28 is a block schematic diagram showing the Streamed Application Set format according to the invention;

FIG. 29 is a block schematic diagram showing an SAS client using a device driver paradigm according to the invention;

FIG. 30 is a block schematic diagram showing an SAS client using a file system paradigm according to the invention;

FIGS. 31a through 31h is a schematic diagram showing various components of the AppinstallBlock format according to the invention;

FIG. 32 is a block schematic diagram showing the Application Install Block lifecycle according to the invention;

FIG. 33 is a block schematic diagram showing peer caching according to the invention;

FIG. 34 is a block schematic diagram showing proxy caching according to the invention;

FIG. 35 is a block schematic diagram showing multicast within a LAN and a packet protocol according to the invention;

FIG. 36 is a block schematic diagram showing concurrent requests for application server pages, for the case when the page is first requested through the proxy according to the invention;

FIG. 37 is a block schematic diagram showing concurrent requests for application server pages, for the case when the page is first requested through the peer caching according to the invention;

FIG. 38 is a block schematic diagram showing concurrent requests for application server pages, for the case when the page is received only through peer caching according to the invention;

FIG. 39 is a block schematic diagram showing a client-server system using peer and proxy caching according to the invention;

FIG. 40 is a block schematic diagram showing a preferred embodiment of the invention preventing piracy of remotely served, locally executed applications according to the invention;

FIG. 41 is a block schematic diagram showing the filtering of accesses to remote application files according to the invention;

FIG. 42 is a block schematic diagram showing the filtering of accesses to remote files based on process code location according to the invention;

FIG. 43 is a block schematic diagram showing the filtering of accesses to remote files based on targeted file section according to the invention;

FIG. 44 is a block schematic diagram showing the filtering of accesses to remote files based on surmised purpose according to the invention; and

FIG. 45 is a block schematic diagram showing the filtering of accesses to remote files based on past access history according to the invention.

DETAILED DESCRIPTION OF THE INVENTION

The invention is embodied in a client installation and execution system for streamed applications in a computer environment. A system according to the invention installs a streamed application program onto a client system that appears to the user as if the actual application program is fully installed on the client. In addition, the invention provides a system that executes the streamed application program on a client while concurrently streaming portions of the streamed application program from a server.

The invention provides a highly efficient and secure application delivery system in conjunction with the adaptively optimized execution of applications across a network such as the Internet, a corporate intranet, or a wide area network. This is done in such a way that existing applications do not need to be recompiled or recoded. Furthermore, the invention is a highly scalable, load-balancing, and fault-tolerant system.

When using the invention, an end-user requests applications that are resident on remote systems to be launched and run on the end-user's local system. The end-user's local system is called the client or client system, e.g., a desktop, laptop, palmtop, or information appliance. A remote system is a called a server or server system and is located within a collection of one or more servers called a server cluster.

From the point of view of the client system, the application appears to be installed locally on the client even though it was initially installed on a different computer system. The applications execute locally on the client system and not on the server system. To achieve this result, the application is converted into a form suitable for streaming over the network. The streaming-enabled form of an application is called the Streamed Application Set (SAS) and the conversion process is termed the SAS Builder. The conversion of an application into its SAS form typically takes place on a system different from either an end-user client system or an Application Service Provider Server Cluster. This system is called the SAS Conversion System or, simply, the conversion system.

Components of the invention are installed on the client system to support activities such as the installation, invocation, and execution of a SAS-based application. Other components of the invention are installed on the server system to support activities such as the verification of end user application subscription and license data and the transfer and execution of a SAS-based application on the client system. Some of the client and some of the server components run in the kernel-mode while other components run in the usual user-mode.

The term Application Service Provider (ASP) refers to an entity that uses the server components on one or more server systems, i.e., an ASP Server Cluster, to deliver applications to end-user client systems. Such an entity could be, for example, a software manufacturer, an e-commerce vendor that rents or leases software, or a service department within a company. The invention enables an ASP to deliver applications across a network, in a highly efficient and secure way; the applications are adaptively optimized for execution on an end-user's client system.

A number of techniques are employed to increase the overall performance of the delivery of an application and its subsequent execution by minimizing the effect of network latency and bandwidth. Among the techniques employed are: the SAS Builder identifies sequences of frequently accessed application pages and uses this information when generating a SAS; individual SAS pages and sequences of SAS pages are compressed and cached in an in-memory cache on the server system; various aspects of the applications are monitored during their actual use on a client and the resulting profiling data is used by the client to pre-fetch (pull) and by the server to send (push) additional pages which have a high likelihood of being used prior to their actual use; and SAS pages are cached locally on a client for their immediate use when an application is invoked.

Aggregate profile data for an application, obtained by combining the profile data from all the end-user client systems running the application,


Free Web Sudoku Puzzles.
Solve with your browser.
  4 1       6    
    7 4   5      
      3   9   7 8
  7         9    
  5     7     6  
    2         8  
2 9   5   1      
      2   4 8    
    3       1 4  
What is it?



Add Your Site · Terms Of Service · Privacy Policy


DISCLAIMER
Linkgrinder is a free service that searches the Internet and indexes all files found so that you may search quickly and easily for shared files. These files are created and made available individually by users whose identity we are not aware of and who we have no control over. In essence we function like a search engine tool; these files ARE NOT STORED OR SERVED BY OUR NETWORK. We are not responsible for any materials obtained by using our service. We do not monitor any of the contents of these files. These files may contain viruses, illegal materials, materials inappropriate for minors, offensive files and the like. BY USING OUR SERVICE, YOU ASSUME FULL RESPONSIBILITY FOR DOWNLOADING THESE MATERIALS AND WILL INDEMNIFY US FOR ANY DAMAGES THAT MAY BE INCURRED.

For More Specific Information VIEW OUR TERMS OF SERVICE.

Thank you and Enjoy!