US20070130075A1 - System and method for executing a rental software program in distributed computing environment - Google Patents

System and method for executing a rental software program in distributed computing environment Download PDF

Info

Publication number
US20070130075A1
US20070130075A1 US11/700,166 US70016607A US2007130075A1 US 20070130075 A1 US20070130075 A1 US 20070130075A1 US 70016607 A US70016607 A US 70016607A US 2007130075 A1 US2007130075 A1 US 2007130075A1
Authority
US
United States
Prior art keywords
computer system
software program
rental
user
files
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US11/700,166
Inventor
Dong-Ho Song
Jai-Wan Ahn
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR1019990068380A external-priority patent/KR20000057127A/en
Application filed by Individual filed Critical Individual
Priority to US11/700,166 priority Critical patent/US20070130075A1/en
Publication of US20070130075A1 publication Critical patent/US20070130075A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/02Reservations, e.g. for tickets, services or events

Definitions

  • the present invention relates to a system and method for executing a rental software program in a distributed computing environment; and, more particularly, to a system and method for executing a rental software program in a distributed computing environment, which includes a user computer system and a server computer system, wherein the user computer system optionally requests one or more optional files associated with the rental software program from the server computer system and the server computer system provides the one or more optional files requested to the user computer system.
  • the user installs a software program in a storage device.
  • the conventional user computer system reads the primitive codes of the software program from a CD-ROM, a diskette or a server computer system.
  • the primitive codes of the software program are stored in a system directory, e.g., a Microsoft WindowsTM directory in a Microsoft WindowsTM system provided by Microsoft Corporation, and a user directory.
  • the system directory and the user directory have path information associated with the software program files.
  • the software program files may be made up of a main executable file, auxiliary executable files, registry files and other files, including *.dll and *.hlp files, in a WindowsTM operating system.
  • the conventional user computer system needs a large storage space to store the desirable software programs in the storage device.
  • the conventional user computer system should install the various software programs.
  • the desirable software program is upgraded or updated, the upgraded or updated software program should be installed in the conventional user computer system.
  • the conventional user computer system copies or downloads software program files from the server computer system as a remote computer system in order to execute a software program.
  • the conventional user computer system may need a specific software program file in addition to the copied or downloaded software program files. If the conventional user computer system does not have the specific program file, the conventional user computer system can not execute the software program.
  • a system for executing a rental software program in a distributed computing environment is provided that is capable of reducing both the storage space required for the software program in a user computer system and the start-up time of the program in the user computer system.
  • the system employs program files associated with the rental software program that are provided by a server computer system that include an on-demand scheme and a user-transparent program install-free technology.
  • a method for executing a rental software program in a distributed computing environment is provided that is capable of reducing both the storage space required for the software program in the user computer system and the start-up time of the program in the user computer system.
  • the method downloads program files associated with the rental software program from a server computer system, has an on-demand scheme and has a user transparent program install-free technology.
  • a computer-readable medium for executing a rental software program in a distributed computing environment is provided that is capable of reducing both the storage space of the software program in a user computer system and the start-up time of the program, which employs program files associated with the rental software program provided by a server computer system, with an on-demand scheme and a user-transparent program install-free technology.
  • a system for executing a rental software program in a distributed computing environment wherein the rental software program includes a main executable file and optional files.
  • the system comprises a user computer system based on a user-transparent program install-free technology for selecting a desirable rental software program in a list of rental software programs to download the main executable file contained in the desirable rental software program and optionally requesting one or more optional files contained in the desirable rental software program; and a server computer system for providing the list of rental software programs.
  • the main executable file of the desirable rental software program selected by said user computer system and the one or more optional files optionally requested from said user computer system are downloaded when a communication connection between said server computer system and said user computer system is established.
  • a method for executing a rental software program in a distributed computing environment comprising the steps of: a) establishing a communication connection between a user computer system and a server computer system, wherein the user computer system is based on a user-transparent program install-free technology; b) displaying a list of rental software programs, the list being downloaded from the server computer system; c) selecting a desirable rental software program in the list of rental software programs; d) downloading a main executable file associated with the desirable rental software program from the server computer system to run a process corresponding to the main executable file; and e) if the process needs one or more optional files, downloading the one or more optional files from the server computer system.
  • a method for servicing an install-free application in an online software rental system comprising the steps of: a) getting a list of applications available for a rental service from a server computer system; b) establishing a rental session between a client computer system and the server computer system; c) fetching one or more software applications from a plurality of software applications stored in the server computer system; d) executing the one or more software applications in the client computer system; and e) if the prior step is completed, flushing/deleting the one or more rented software application from the client computer system.
  • a computer-readable medium for executing a rental software program in a distributed computing environment, wherein the rental software program includes a main executable file and optional files, comprising the steps of: a) establishing a communication connection between a user computer system and a server computer system, wherein the user computer system is based on a user-transparent program install-free technology; b) displaying a list of rental software programs, the list being downloaded from the server computer system; c) selecting a desirable rental software program in the list of rental software programs; d) downloading a main executable file associated with the desirable rental software program from the server computer system to run a process corresponding to the main executable file; and e) if the process needs one or more optional files, downloading the one or more optional files from the server computer system.
  • FIG. 1 is a block diagram illustrating a system for executing a rental software program in a distributed computing environment in accordance with the present invention
  • FIG. 2 is a block diagram depicting a user computer system shown in FIG. 1 ;
  • FIG. 3 is a block diagram describing a server computer system shown in FIG. 1 ;
  • FIG. 4 is a flowchart showing a method for executing a rental software program in a distributed computing environment in accordance with the present invention
  • FIGS. 5A and 5B are flowcharts illustrating more details of the method shown in FIG. 4 ;
  • FIG. 6 is a flowchart depicting a method for cleaning up the rental process shown in FIG. 4 ;
  • FIG. 7 is an exemplary diagram describing a list of rental software programs displayed in a server computer system shown in FIG. 1 ;
  • FIG. 8 is an exemplary diagram describing a list of rental software programs displayed in a user computer system shown in FIG. 1 ;
  • FIG. 9 is a diagram illustrating the streaming of software applications files in accordance with the invention.
  • FIG. 10 is a diagram illustrating an example of the operation of an embodiment of the system shown in FIG. 1 .
  • the software program to be rented may include a main executable file and optional files, wherein the optional files are optionally requested by from a user computer system 10 . Further, the optional files may include a registry file.
  • the “rental software program” means a software application or program rented from a server computer system 16 to a user computer system 10 based on a user-transparent program install-free technology in accordance with the invention. In the preferred embodiment, the user transparent install-free technology is the downloading of the main software application file initially and then the automatic download of the other optional files as described below with reference to FIG. 10 .
  • the online software rental service can be implemented using any communications or computer network that connects the server computer system to the client computer system, such as the Internet.
  • the system may include a user computer system 10 and a user network device 12 referred to together as a client computer system, a server network device 14 and a server computer system 16 , wherein the user computer system 10 is based on a user-transparent program install-free technology.
  • the server computer system 16 and the user computer system may be connected to each other over a communications or computer network 18 , such as a wide area network like the Internet.
  • a communication connection between the user computer system 10 and the server computer system 16 is established, the user computer system 10 can select a desirable rental software program from a list of rental software programs downloaded from the server computer system 16 .
  • the user computer system 10 may download a main executable file for the selected rental software program to create and run a process corresponding to the main executable file.
  • the user computer system 10 requests the one or more optional files contained in the rental software program from the server computer system 16 via the user network device 12 .
  • the user computer system 10 may fetch the one or more optional files contained in the rental software program from the server computer system 16 .
  • the server computer system 16 provides the one or more program files contained in the rental software program to the user computer system 10 via the server network device 14 .
  • the server computer system 16 manages the one or more optional files contained in the rental software program.
  • the user computer system 10 may include an interface block 200 , a rental software program manager 202 , a process manager 204 , a storage device 205 , a billing information database 206 , a file monitor 208 and a protector 210 .
  • the interface block 200 may interface between the user computer system 10 and the user network device 12 shown in FIG. 1 .
  • the interface block 200 may output a message requesting one or more optional files contained in a rental software program to a server computer system 16 via the user network device 12 and a server network device 14 shown in FIG. 1 .
  • the interface block 200 receives the one or more optional files from the server computer system 16 .
  • the user computer system 10 When a communication connection between the user computer system 10 and the server computer system 16 is established, the user computer system 10 receives a list of rental software programs from the server computer system 16 such as a web page listing the software applications displayed in a browser window. The user of the user computer system 10 may then select a desirable rental software program from the list of rental software programs by using a selection device (not shown). Then, the user computer system 10 receives a main executable file and a list of optional files contained in the selected rental software program from the server computer system 16 .
  • a list of rental software programs such as a web page listing the software applications displayed in a browser window.
  • the user of the user computer system 10 may then select a desirable rental software program from the list of rental software programs by using a selection device (not shown). Then, the user computer system 10 receives a main executable file and a list of optional files contained in the selected rental software program from the server computer system 16 .
  • the rental software program manager 202 converts registry file information contained in the list of optional files into registry file information appropriate to the user computer system 10 .
  • the process manager 204 creates and runs a process corresponding to the main executable file contained in the selected rental software program. If the process needs the one or more optional files, the process manager 204 suspends the process until the process manager 204 receives the one or more optional files from the server computer system 16 .
  • the storage device 205 stores the main executable file, the one or more optional files and the list of optional files. Further, when the process is complete, the main executable file and the one or more optional files stored in the storage device 205 are flushed by the process manager 204 .
  • the billing information database 206 stores billing information including a billing start time, a billing end time and a name of the rental software program selected by the user computer system 10 . Further, the user computer system 10 sends the billing information associated with the billing start time and the billing end time to the server computer system 16 .
  • the file monitor 208 monitors the process to determine whether the process needs the one or more optional files while the process is running. If the process needs the one or more optional files while the process is running, the file monitor 208 generates and attaches a message requesting the one or more optional files from the process. The file monitor 208 then requests the one or more optional files from the server computer system 16 .
  • the protector 210 protects the rental software program including the main executable file and the one or more optional files from an unauthorized use committed by the user computer system 10 .
  • the server computer system 16 includes an interface block 300 , a user verification module 301 , a user-information database 302 , a billing module 303 , a log database 304 , a transmission control module 305 , a central processing unit 306 , a rental software program-information database 307 , a rental software program analyzer 308 , a storage device 309 , a schedule manager 310 and a session manager 311 .
  • the interface block 300 may interface between the server computer system 16 and the server network device 14 shown in FIG. 1 .
  • the interface block 300 receives a message requesting one or more optional files associated with a rental software program from a user computer system 10 via the server network device 14 as shown in FIG. 1 .
  • the interface block 300 outputs the one or more optional files requested from the server computer system 16 to the user computer system 10 .
  • the user verification module 301 verifies the user computer system 10 or a user by using identification information of the user computer system 10 or the information about the user stored in the user-information database 302 .
  • the user-information database 302 stores the identification information of the user computer system 10 and billing information of the user computer system 10 .
  • the billing module 303 processes the charges or fees to be paid for the usage of the main executable file and the one or more optional files contained in the rental software program provided from the server computer system 16 to the user computer system 10 .
  • the log database 304 stores information, e.g., a log file, necessary for recovering the server computer system 16 when the server computer system 16 is not operable due to a serious error (e.g., crashes).
  • the transmission control module 305 obtains the one or more optional files from the storage device 309 . After the transmission control module 305 obtains the one or more optional files, the transmission control module 305 transmits the one or more optional files via the session manager 311 to the user computer system 10 .
  • the central processing unit 306 informs other components whether user verification and billing are successful and controls the other functional elements of the system.
  • the functional blocks of the server computer system may be implemented in software. Further, when the server computer system 16 is not operable due to the serious error, the central processing unit 306 recovers the server computer system 16 by using the log file stored in the log database 304 .
  • the rental software program-information database 307 stores the path information of main executable files associated with rental software programs, a list of rental software programs as main executable files and a list of optional files associated with a corresponding rental software program.
  • the rental software program analyzer 308 analyzes a new rental software program. Then, the rental software program analyzer 308 stores the path information of a main executable file and a list of optional files, associated with the new rental software program, in the rental software program-information database 307 .
  • the storage device 309 stores the main executable files and the one or more optional files associated with the rental software program corresponding to the path information.
  • the schedule manager 310 manages a schedule of requests from the user computer system and other user computer systems (not shown).
  • the session manager 311 manages a communication session between the user computer system 10 and the server computer system 16 .
  • the rental software program includes a main executable file and one or more optional files including a registry file.
  • step S 400 a communication connection between a user computer system and a server computer system is established.
  • step S 410 it is determined whether the user computer system has passed the user verification and has been authenticated.
  • a user verification module contained in the server computer system verifies the user computer system or a user by using identification information of the user computer system or the user stored in a user-information database contained in the server computer system.
  • step S 420 if the user computer system is verified, the user computer system displays a list of rental software programs downloaded from the server computer system, e.g., from a rental software program-information database contained in the server computer system.
  • step S 430 the user of the user computer system selects a desirable rental software program in the list of rental software programs.
  • step S 440 the user computer system downloads a main executable file and a list of optional files associated with the desirable rental software program from the server computer system.
  • a process manager contained in the user computer system creates and runs a process corresponding to the main executable file.
  • step S 460 it is determined whether the process has been completed.
  • step S 470 if the process has been completed, a clean-up procedure accompanying process completion is performed as described below with reference to FIG. 6 .
  • step S 480 it is determined whether the user computer system wants to select another rental software program.
  • step S 490 if the user computer system does not want to select another rental software program, the user computer system terminates the communication with the server computer system. On the other hand, if the user computer system wants to select another rental software program, then steps S 430 through S 490 are repeated.
  • FIGS. 5A and 5B there are shown flowcharts illustrating the procedure of running a process shown in FIG. 4 .
  • the user computer system downloads a main executable file and a list of optional files from the server computer system.
  • a rental software program manager contained in the user computer system converts registry file information contained in the list of optional files into registry file information appropriate to the user computer system.
  • the user computer system runs a file monitor and a protector module, which protects the rental software program including the main executable file and the one or more optional files from an unauthorized use committed by the user computer system.
  • a billing information database contained in the user computer system stores a name of a rental software program selected by the user computer system and a billing start time.
  • the user computer system informs the server computer system of the billing start time. Further, a user-information database contained in the server computer system stores information of the billing start time from the user computer system.
  • a process manager contained in the user computer system creates and runs a process corresponding to the main executable file.
  • the file monitor monitors the process to determine whether the process needs one or more files. Further the file monitor hooks a message requesting one or more optional files from the process to request the one or more optional files to the server computer system by using an on-demand scheme.
  • step S 448 it is determined whether the user computer system has the one or more optional files requested.
  • step S 449 if the user computer system has the one or more optional files requested, the process manager re-runs the process with the one or more optional files existing in the user computer system.
  • step S 450 if the user computer system does not have the one or more optional files, the process manager suspends the process.
  • the process manger downloads the one or more optional files from the server computer system.
  • the server computer system sends the one or more optional files stored in a storage device of the server computer system to the user computer system via a session manager.
  • the process manager re-runs the process with the one or more optional files downloaded from the server computer system.
  • step S 471 if the process has been completed, the user computer system terminates the file monitor and the protector processes.
  • step S 472 the user computer system stores a billing end time in the billing information database.
  • the user computer system informs the server computer system of the billing end time.
  • the server computer system stores information of the billing end time in the user-information database.
  • a billing module contained in the server computer system processes charge or fee to be paid for the usage of the main executable file and the one or more optional files contained in the rental software program provided from the server computer system to the user computer system.
  • the user computer system flushes the main executable file and the one or more optional files stored in the storage device of the user computer system.
  • the method for executing the rental software program in the distributed computing environment in accordance with the present invention can be stored in a computer-readable medium, e.g. an optical disk, a hard disk and so on.
  • the list of rental software programs includes rental software programs of Winword.exe, Powerpnt.exe, Excel.exe, Photoshp.exe and AcroRd32.exe as shown in FIG. 7 .
  • FIG. 8 there is shown an exemplary diagram describing a list of rental software programs displayed in a user computer system, such as a web page in a browser window, as shown in FIG. 1 .
  • the list of rental software programs includes rental software programs of MS word, MS PowerPoint, MS Excel, Adobe PhotoShop, Winamp and ACDSee-graphic Viewer as shown in FIG. 8 .
  • FIG. 9 is a diagram illustrating a system 490 for streaming of software applications files in accordance with the invention between a server computer 500 and a client computer 502 over a computer network 504 , such as a wide area network (WAN), a local area network (LAN), the World Wide Web (WWW), or the Internet.
  • the server computer 500 may include a central processing unit (CPU) 506 and a memory 508 .
  • the memory 508 there may be one or more software applications 510 (SA 1 to SAn in this example) that may be rented by a user.
  • Each software application in the server as described above, may include a main executable file 512 and one or more optional files 514 that may include, for example, DLL files, registry files and the like.
  • the client computer 502 may include a CPU 516 and a memory 518 .
  • the software application from the server may be downloaded over the computer network into the memory of the client computer and then flushed from the memory of the client computer once the user is done with the rental of the software application.
  • the software application is streamed to the client computer.
  • the server downloads the main executable file 512 to the client computer.
  • the client computer using the process manager 204 described above, may execute the main executable file and start the software application.
  • the system may monitor the system calls made by the main executable file and, when a particular optional file, such as a DLL file, is called by the main executable file, the process manager may suspend the operation of the main executable file.
  • the client may then request the needed optional file from the server, have it downloaded from the server and restart the operation of the main executable file once the optional file is resident on the client computer.
  • the suspension and restarting of the execution of the main executable file permits only the main executable file to be initially downloaded to the client computer and then optional files, as needed, to be downloaded. In this manner, a rented software application is streamed down to the client computer in that only the main executable file is initially downloaded and then the optional files are downloaded when they are needed.
  • FIG. 10 is a diagram illustrating an example of the operation of the preferred embodiment of the system 9 shown in FIG. 1 .
  • the client computer 10 (and in more detail, its memory containing the main executable file 512 ) along with the optional files 514 on the server are shown.
  • the main executable file 512 is executed by the process manager shown in FIG. 2 .
  • the main executable file it will make systems calls to an operating system 520 , such as Microsoft Windows, of the client computer.
  • the main executable file may call processes in the operating system to open or read a required DLL file.
  • the process manager may intercept the system calls and analyze them.
  • the process manager of the system may suspend the operation of the main executable file and request the download of the necessary optional file from the server.
  • the process manager may restart the operation of the main executable file.
  • the main executable file attempts to open a DLL or other file that does not exist, the main executable file crashes.
  • the software application is streamed to the client computer and, if a file is missing, the software application may be suspended while the missing file is downloaded.
  • the software application rental system in accordance with the invention has many advantages over typical software application systems.
  • the system enables the streaming of software applications to the client computer. It also enables the system calls of the software application to be intercepted and analyzed in order to determine when one or more optional files are needed.
  • the system also suspends the operation of the software application during retrieval of the optional files from the server so that the software application does not crash and then restarts the software application once the optional files are retrieved.
  • the system also protects the software application and its optional files from unwanted copying in that the system may remove all of the files from the client computer once the rental of the software application has been completed.
  • the system also enables a software vendor to easily and quickly upload a new software application to the server so that client computers may rent the software application.

Abstract

A system and method for executing a rental software program in a distributed computing environment is provided. The system enables the streaming of software applications to the client computer. It also enables the system calls of the software application to be intercepted and analyzed in order to determine when one or more optional files are needed. The system also suspends the operation of the software application during retrieval of the optional files from the server so that the software application does not crash and then restarts the software application once the optional files are retrieved. The system also protects the software application and its optional files from unwanted copying in that the system may remove all of the files from the client computer once the rental of the software application has been completed. Finally, the system also enables a software vendor to easily and quickly upload a new software application to the server so that client computers may rent the software application.

Description

    PRIORITY CLAIM
  • This application is a continuation application and claims priority under 35 USC 120 to U.S. patent application Ser. No. 09/641,535 filed on Aug. 18, 2000, entitled “Software Rental System in Distributed Networks” which in turn claims priority under 35 USC 119 and 120 to PCT/KR00/00076 filed on Jan. 31, 2000 and entitled “Software Rental System in Distributed Networks” which in turn claims priority under 35 USC 119 and 120 to Korean Patent Application Serial Nos. 1999/3481 filed on Feb. 3, 1999 and 1999/68380 filed on Dec. 31, 1999, all of which are incorporated herein by reference.
  • TECHNICAL FIELD
  • The present invention relates to a system and method for executing a rental software program in a distributed computing environment; and, more particularly, to a system and method for executing a rental software program in a distributed computing environment, which includes a user computer system and a server computer system, wherein the user computer system optionally requests one or more optional files associated with the rental software program from the server computer system and the server computer system provides the one or more optional files requested to the user computer system.
  • BACKGROUND ART
  • Generally, using a conventional user computer system, the user installs a software program in a storage device. The conventional user computer system reads the primitive codes of the software program from a CD-ROM, a diskette or a server computer system. The primitive codes of the software program are stored in a system directory, e.g., a Microsoft Windows™ directory in a Microsoft Windows™ system provided by Microsoft Corporation, and a user directory. The system directory and the user directory have path information associated with the software program files. For example, the software program files may be made up of a main executable file, auxiliary executable files, registry files and other files, including *.dll and *.hlp files, in a Windows™ operating system.
  • The conventional user computer system needs a large storage space to store the desirable software programs in the storage device. In the case where the conventional user computer system employs various software programs, the conventional user computer system should install the various software programs. Also, in case where the desirable software program is upgraded or updated, the upgraded or updated software program should be installed in the conventional user computer system.
  • Typically, the conventional user computer system copies or downloads software program files from the server computer system as a remote computer system in order to execute a software program. At execution time, the conventional user computer system may need a specific software program file in addition to the copied or downloaded software program files. If the conventional user computer system does not have the specific program file, the conventional user computer system can not execute the software program.
  • SUMMARY OF INVENTION
  • A system for executing a rental software program in a distributed computing environment is provided that is capable of reducing both the storage space required for the software program in a user computer system and the start-up time of the program in the user computer system. The system employs program files associated with the rental software program that are provided by a server computer system that include an on-demand scheme and a user-transparent program install-free technology.
  • A method for executing a rental software program in a distributed computing environment is provided that is capable of reducing both the storage space required for the software program in the user computer system and the start-up time of the program in the user computer system. The method downloads program files associated with the rental software program from a server computer system, has an on-demand scheme and has a user transparent program install-free technology.
  • A computer-readable medium for executing a rental software program in a distributed computing environment is provided that is capable of reducing both the storage space of the software program in a user computer system and the start-up time of the program, which employs program files associated with the rental software program provided by a server computer system, with an on-demand scheme and a user-transparent program install-free technology.
  • In accordance with one aspect of the present invention, there is provided a system for executing a rental software program in a distributed computing environment, wherein the rental software program includes a main executable file and optional files. The system comprises a user computer system based on a user-transparent program install-free technology for selecting a desirable rental software program in a list of rental software programs to download the main executable file contained in the desirable rental software program and optionally requesting one or more optional files contained in the desirable rental software program; and a server computer system for providing the list of rental software programs. The main executable file of the desirable rental software program selected by said user computer system and the one or more optional files optionally requested from said user computer system are downloaded when a communication connection between said server computer system and said user computer system is established.
  • In accordance with an embodiment of another aspect of the present invention, there is provided a method for executing a rental software program in a distributed computing environment, wherein the rental software program includes a main executable file and optional files, comprising the steps of: a) establishing a communication connection between a user computer system and a server computer system, wherein the user computer system is based on a user-transparent program install-free technology; b) displaying a list of rental software programs, the list being downloaded from the server computer system; c) selecting a desirable rental software program in the list of rental software programs; d) downloading a main executable file associated with the desirable rental software program from the server computer system to run a process corresponding to the main executable file; and e) if the process needs one or more optional files, downloading the one or more optional files from the server computer system.
  • In accordance with another embodiment of another aspect of the present invention, there is provided a method for servicing an install-free application in an online software rental system, comprising the steps of: a) getting a list of applications available for a rental service from a server computer system; b) establishing a rental session between a client computer system and the server computer system; c) fetching one or more software applications from a plurality of software applications stored in the server computer system; d) executing the one or more software applications in the client computer system; and e) if the prior step is completed, flushing/deleting the one or more rented software application from the client computer system.
  • In accordance with another aspect of the present invention, there is provided a computer-readable medium for executing a rental software program in a distributed computing environment, wherein the rental software program includes a main executable file and optional files, comprising the steps of: a) establishing a communication connection between a user computer system and a server computer system, wherein the user computer system is based on a user-transparent program install-free technology; b) displaying a list of rental software programs, the list being downloaded from the server computer system; c) selecting a desirable rental software program in the list of rental software programs; d) downloading a main executable file associated with the desirable rental software program from the server computer system to run a process corresponding to the main executable file; and e) if the process needs one or more optional files, downloading the one or more optional files from the server computer system.
  • BRIEF DESCRIPTION OF DRAWINGS
  • The above and other objects and features of the instant invention will become apparent from the following description of preferred embodiments taken in conjunction with the accompanying drawings, in which:
  • FIG. 1 is a block diagram illustrating a system for executing a rental software program in a distributed computing environment in accordance with the present invention;
  • FIG. 2 is a block diagram depicting a user computer system shown in FIG. 1;
  • FIG. 3 is a block diagram describing a server computer system shown in FIG. 1;
  • FIG. 4 is a flowchart showing a method for executing a rental software program in a distributed computing environment in accordance with the present invention;
  • FIGS. 5A and 5B are flowcharts illustrating more details of the method shown in FIG. 4;
  • FIG. 6 is a flowchart depicting a method for cleaning up the rental process shown in FIG. 4;
  • FIG. 7 is an exemplary diagram describing a list of rental software programs displayed in a server computer system shown in FIG. 1;
  • FIG. 8 is an exemplary diagram describing a list of rental software programs displayed in a user computer system shown in FIG. 1;
  • FIG. 9 is a diagram illustrating the streaming of software applications files in accordance with the invention; and
  • FIG. 10 is a diagram illustrating an example of the operation of an embodiment of the system shown in FIG. 1.
  • DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENT
  • Referring to FIG. 1, there is shown a block diagram illustrating an online software rental system 9 for renting and executing a rental software program in a distributed computing environment in accordance with the present invention. The software program to be rented may include a main executable file and optional files, wherein the optional files are optionally requested by from a user computer system 10. Further, the optional files may include a registry file. The “rental software program” means a software application or program rented from a server computer system 16 to a user computer system 10 based on a user-transparent program install-free technology in accordance with the invention. In the preferred embodiment, the user transparent install-free technology is the downloading of the main software application file initially and then the automatic download of the other optional files as described below with reference to FIG. 10. The online software rental service can be implemented using any communications or computer network that connects the server computer system to the client computer system, such as the Internet.
  • As shown, the system may include a user computer system 10 and a user network device 12 referred to together as a client computer system, a server network device 14 and a server computer system 16, wherein the user computer system 10 is based on a user-transparent program install-free technology. The server computer system 16 and the user computer system may be connected to each other over a communications or computer network 18, such as a wide area network like the Internet. When a communication connection between the user computer system 10 and the server computer system 16 is established, the user computer system 10 can select a desirable rental software program from a list of rental software programs downloaded from the server computer system 16.
  • The user computer system 10 may download a main executable file for the selected rental software program to create and run a process corresponding to the main executable file. When the process needs one or more optional files, the user computer system 10 requests the one or more optional files contained in the rental software program from the server computer system 16 via the user network device 12. Further, the user computer system 10 may fetch the one or more optional files contained in the rental software program from the server computer system 16. The server computer system 16 provides the one or more program files contained in the rental software program to the user computer system 10 via the server network device 14. The server computer system 16 manages the one or more optional files contained in the rental software program.
  • Referring to FIG. 2, there is shown a block diagram depicting more details of the user computer system 10 shown in FIG. 1. The user computer system 10 may include an interface block 200, a rental software program manager 202, a process manager 204, a storage device 205, a billing information database 206, a file monitor 208 and a protector 210.
  • The interface block 200 may interface between the user computer system 10 and the user network device 12 shown in FIG. 1. For example, the interface block 200 may output a message requesting one or more optional files contained in a rental software program to a server computer system 16 via the user network device 12 and a server network device 14 shown in FIG. 1. Further, The interface block 200 receives the one or more optional files from the server computer system 16.
  • When a communication connection between the user computer system 10 and the server computer system 16 is established, the user computer system 10 receives a list of rental software programs from the server computer system 16 such as a web page listing the software applications displayed in a browser window. The user of the user computer system 10 may then select a desirable rental software program from the list of rental software programs by using a selection device (not shown). Then, the user computer system 10 receives a main executable file and a list of optional files contained in the selected rental software program from the server computer system 16.
  • The rental software program manager 202 converts registry file information contained in the list of optional files into registry file information appropriate to the user computer system 10.
  • The process manager 204 creates and runs a process corresponding to the main executable file contained in the selected rental software program. If the process needs the one or more optional files, the process manager 204 suspends the process until the process manager 204 receives the one or more optional files from the server computer system 16.
  • The storage device 205 stores the main executable file, the one or more optional files and the list of optional files. Further, when the process is complete, the main executable file and the one or more optional files stored in the storage device 205 are flushed by the process manager 204.
  • The billing information database 206 stores billing information including a billing start time, a billing end time and a name of the rental software program selected by the user computer system 10. Further, the user computer system 10 sends the billing information associated with the billing start time and the billing end time to the server computer system 16.
  • The file monitor 208 monitors the process to determine whether the process needs the one or more optional files while the process is running. If the process needs the one or more optional files while the process is running, the file monitor 208 generates and attaches a message requesting the one or more optional files from the process. The file monitor 208 then requests the one or more optional files from the server computer system 16.
  • The protector 210 protects the rental software program including the main executable file and the one or more optional files from an unauthorized use committed by the user computer system 10.
  • Referring to FIG. 3, there is shown a block diagram describing a server computer system 16 shown in FIG. 1. As shown, the server computer system 16 includes an interface block 300, a user verification module 301, a user-information database 302, a billing module 303, a log database 304, a transmission control module 305, a central processing unit 306, a rental software program-information database 307, a rental software program analyzer 308, a storage device 309, a schedule manager 310 and a session manager 311.
  • The interface block 300 may interface between the server computer system 16 and the server network device 14 shown in FIG. 1. For example, the interface block 300 receives a message requesting one or more optional files associated with a rental software program from a user computer system 10 via the server network device 14 as shown in FIG. 1. Further, the interface block 300 outputs the one or more optional files requested from the server computer system 16 to the user computer system 10.
  • When a communication connection between the user computer system 10 and the server computer system 16 is established, the user verification module 301 verifies the user computer system 10 or a user by using identification information of the user computer system 10 or the information about the user stored in the user-information database 302.
  • The user-information database 302 stores the identification information of the user computer system 10 and billing information of the user computer system 10.
  • The billing module 303 processes the charges or fees to be paid for the usage of the main executable file and the one or more optional files contained in the rental software program provided from the server computer system 16 to the user computer system 10.
  • The log database 304 stores information, e.g., a log file, necessary for recovering the server computer system 16 when the server computer system 16 is not operable due to a serious error (e.g., crashes).
  • When the user computer system 10 requests the one or more optional files from the server computer system 16, the transmission control module 305 obtains the one or more optional files from the storage device 309. After the transmission control module 305 obtains the one or more optional files, the transmission control module 305 transmits the one or more optional files via the session manager 311 to the user computer system 10.
  • The central processing unit 306 informs other components whether user verification and billing are successful and controls the other functional elements of the system. In a preferred embodiment, the functional blocks of the server computer system may be implemented in software. Further, when the server computer system 16 is not operable due to the serious error, the central processing unit 306 recovers the server computer system 16 by using the log file stored in the log database 304.
  • The rental software program-information database 307 stores the path information of main executable files associated with rental software programs, a list of rental software programs as main executable files and a list of optional files associated with a corresponding rental software program.
  • When a new rental software program is installed in the server computer system 16, the rental software program analyzer 308 analyzes a new rental software program. Then, the rental software program analyzer 308 stores the path information of a main executable file and a list of optional files, associated with the new rental software program, in the rental software program-information database 307.
  • The storage device 309 stores the main executable files and the one or more optional files associated with the rental software program corresponding to the path information.
  • The schedule manager 310 manages a schedule of requests from the user computer system and other user computer systems (not shown).
  • The session manager 311 manages a communication session between the user computer system 10 and the server computer system 16.
  • Referring to FIG. 4, there is shown a flowchart showing a method for executing a rental software program in a distributed computing environment in accordance with the present invention. The rental software program includes a main executable file and one or more optional files including a registry file.
  • As shown, at step S400, a communication connection between a user computer system and a server computer system is established. At step S410, it is determined whether the user computer system has passed the user verification and has been authenticated. At this time, a user verification module contained in the server computer system verifies the user computer system or a user by using identification information of the user computer system or the user stored in a user-information database contained in the server computer system.
  • At step S420, if the user computer system is verified, the user computer system displays a list of rental software programs downloaded from the server computer system, e.g., from a rental software program-information database contained in the server computer system. At step S430, the user of the user computer system selects a desirable rental software program in the list of rental software programs.
  • At step S440, the user computer system downloads a main executable file and a list of optional files associated with the desirable rental software program from the server computer system. At this time, a process manager contained in the user computer system creates and runs a process corresponding to the main executable file.
  • At step S460, it is determined whether the process has been completed. At step S470, if the process has been completed, a clean-up procedure accompanying process completion is performed as described below with reference to FIG. 6.
  • At step S480, it is determined whether the user computer system wants to select another rental software program. At step S490, if the user computer system does not want to select another rental software program, the user computer system terminates the communication with the server computer system. On the other hand, if the user computer system wants to select another rental software program, then steps S430 through S490 are repeated.
  • Referring to FIGS. 5A and 5B, there are shown flowcharts illustrating the procedure of running a process shown in FIG. 4. As shown, at step S441, the user computer system downloads a main executable file and a list of optional files from the server computer system. At step S442, a rental software program manager contained in the user computer system converts registry file information contained in the list of optional files into registry file information appropriate to the user computer system.
  • At step S443, the user computer system runs a file monitor and a protector module, which protects the rental software program including the main executable file and the one or more optional files from an unauthorized use committed by the user computer system.
  • At step S444, a billing information database contained in the user computer system stores a name of a rental software program selected by the user computer system and a billing start time.
  • At step S445, the user computer system informs the server computer system of the billing start time. Further, a user-information database contained in the server computer system stores information of the billing start time from the user computer system.
  • At step S446, a process manager contained in the user computer system creates and runs a process corresponding to the main executable file.
  • At step S447, the file monitor monitors the process to determine whether the process needs one or more files. Further the file monitor hooks a message requesting one or more optional files from the process to request the one or more optional files to the server computer system by using an on-demand scheme.
  • At step S448, it is determined whether the user computer system has the one or more optional files requested. At step S449, if the user computer system has the one or more optional files requested, the process manager re-runs the process with the one or more optional files existing in the user computer system.
  • At step S450, if the user computer system does not have the one or more optional files, the process manager suspends the process. At step S451, the process manger downloads the one or more optional files from the server computer system. At this time, the server computer system sends the one or more optional files stored in a storage device of the server computer system to the user computer system via a session manager. At step S452, the process manager re-runs the process with the one or more optional files downloaded from the server computer system.
  • Referring to FIG. 6, there is shown a flowchart depicting the procedure for process completion shown in FIG. 4. At step S471, if the process has been completed, the user computer system terminates the file monitor and the protector processes. At step S472, the user computer system stores a billing end time in the billing information database.
  • At step S473, the user computer system informs the server computer system of the billing end time. The server computer system stores information of the billing end time in the user-information database. A billing module contained in the server computer system processes charge or fee to be paid for the usage of the main executable file and the one or more optional files contained in the rental software program provided from the server computer system to the user computer system.
  • At step S474, the user computer system flushes the main executable file and the one or more optional files stored in the storage device of the user computer system.
  • The method for executing the rental software program in the distributed computing environment in accordance with the present invention can be stored in a computer-readable medium, e.g. an optical disk, a hard disk and so on.
  • Referring to FIG. 7, there is shown an exemplary diagram describing a list of rental software programs displayed in a server computer system shown in FIG. 1. For example, the list of rental software programs includes rental software programs of Winword.exe, Powerpnt.exe, Excel.exe, Photoshp.exe and AcroRd32.exe as shown in FIG. 7.
  • Referring to FIG. 8, there is shown an exemplary diagram describing a list of rental software programs displayed in a user computer system, such as a web page in a browser window, as shown in FIG. 1. For example, the list of rental software programs includes rental software programs of MS word, MS PowerPoint, MS Excel, Adobe PhotoShop, Winamp and ACDSee-graphic Viewer as shown in FIG. 8.
  • FIG. 9 is a diagram illustrating a system 490 for streaming of software applications files in accordance with the invention between a server computer 500 and a client computer 502 over a computer network 504, such as a wide area network (WAN), a local area network (LAN), the World Wide Web (WWW), or the Internet. In particular, the server computer 500 may include a central processing unit (CPU) 506 and a memory 508. Within the memory 508, there may be one or more software applications 510 (SA1 to SAn in this example) that may be rented by a user. Each software application in the server, as described above, may include a main executable file 512 and one or more optional files 514 that may include, for example, DLL files, registry files and the like. The client computer 502 may include a CPU 516 and a memory 518. The software application from the server may be downloaded over the computer network into the memory of the client computer and then flushed from the memory of the client computer once the user is done with the rental of the software application.
  • In order for the client computer 502 to rent a software application in accordance with the invention, the software application is streamed to the client computer. In more detail, when the user selects a software application to rent, the server downloads the main executable file 512 to the client computer. The client computer, using the process manager 204 described above, may execute the main executable file and start the software application. As described below in more detail, the system may monitor the system calls made by the main executable file and, when a particular optional file, such as a DLL file, is called by the main executable file, the process manager may suspend the operation of the main executable file. The client may then request the needed optional file from the server, have it downloaded from the server and restart the operation of the main executable file once the optional file is resident on the client computer. The suspension and restarting of the execution of the main executable file permits only the main executable file to be initially downloaded to the client computer and then optional files, as needed, to be downloaded. In this manner, a rented software application is streamed down to the client computer in that only the main executable file is initially downloaded and then the optional files are downloaded when they are needed. Now, an example of the operation of an embodiment of the system in accordance with the invention will be described.
  • FIG. 10 is a diagram illustrating an example of the operation of the preferred embodiment of the system 9 shown in FIG. 1. In particular, the client computer 10 (and in more detail, its memory containing the main executable file 512) along with the optional files 514 on the server are shown. In accordance with the invention, the main executable file 512 is executed by the process manager shown in FIG. 2. During the execution of the main executable file, it will make systems calls to an operating system 520, such as Microsoft Windows, of the client computer. For example, the main executable file may call processes in the operating system to open or read a required DLL file. In accordance with the invention, the process manager may intercept the system calls and analyze them. If a system call is intercepted to open a DLL file or other optional file that is not currently resident on the client computer, the process manager of the system may suspend the operation of the main executable file and request the download of the necessary optional file from the server. When the optional file has been received by the client computer, the process manager may restart the operation of the main executable file. In a typical computer system. if the main executable file attempts to open a DLL or other file that does not exist, the main executable file crashes. Thus, the software application is streamed to the client computer and, if a file is missing, the software application may be suspended while the missing file is downloaded.
  • In summary, the software application rental system in accordance with the invention has many advantages over typical software application systems. The system enables the streaming of software applications to the client computer. It also enables the system calls of the software application to be intercepted and analyzed in order to determine when one or more optional files are needed. The system also suspends the operation of the software application during retrieval of the optional files from the server so that the software application does not crash and then restarts the software application once the optional files are retrieved. The system also protects the software application and its optional files from unwanted copying in that the system may remove all of the files from the client computer once the rental of the software application has been completed. Finally, the system also enables a software vendor to easily and quickly upload a new software application to the server so that client computers may rent the software application.
  • Although the preferred embodiments of the invention have been disclosed for illustrative purposes, those skilled in the art will appreciate that various modifications, additions and substitutions are possible, without departing from the scope and spirit of the invention as disclosed in the accompanying claims.

Claims (1)

1. A system for renting a software program in a distributed computing environment, wherein the rental software program includes a main executable file and optional files, comprising:
a user computer system including means for initially downloading the main executable file of the rental software program and means, if an optional file is missing, for automatically requesting one or more optional files contained in the rental software program; and
a server computer system for downloading the main executable file contained in the rental software program to be executed in said user computer system and means for automatically downloading the one or more optional files as requested by said user computer system.
US11/700,166 1999-12-31 2007-01-30 System and method for executing a rental software program in distributed computing environment Abandoned US20070130075A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/700,166 US20070130075A1 (en) 1999-12-31 2007-01-30 System and method for executing a rental software program in distributed computing environment

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR1999-68380 1999-12-31
KR1019990068380A KR20000057127A (en) 1999-02-03 1999-12-31 Executing software program system for application service provider on distributed computing environment and method using the sa me
US09/641,535 US7171390B1 (en) 1999-12-31 2000-08-18 System and method for executing a rental software program in distributed computing environment
US11/700,166 US20070130075A1 (en) 1999-12-31 2007-01-30 System and method for executing a rental software program in distributed computing environment

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US09/641,535 Continuation US7171390B1 (en) 1999-12-31 2000-08-18 System and method for executing a rental software program in distributed computing environment

Publications (1)

Publication Number Publication Date
US20070130075A1 true US20070130075A1 (en) 2007-06-07

Family

ID=37681987

Family Applications (2)

Application Number Title Priority Date Filing Date
US09/641,535 Expired - Fee Related US7171390B1 (en) 1999-12-31 2000-08-18 System and method for executing a rental software program in distributed computing environment
US11/700,166 Abandoned US20070130075A1 (en) 1999-12-31 2007-01-30 System and method for executing a rental software program in distributed computing environment

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US09/641,535 Expired - Fee Related US7171390B1 (en) 1999-12-31 2000-08-18 System and method for executing a rental software program in distributed computing environment

Country Status (1)

Country Link
US (2) US7171390B1 (en)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060053228A1 (en) * 2004-09-03 2006-03-09 Ophir Rachman Method and apparatus for allowing sharing of streamable applications
US20060136389A1 (en) * 2004-12-22 2006-06-22 Cover Clay H System and method for invocation of streaming application
US20060259581A1 (en) * 2000-05-15 2006-11-16 Piersol Kurt W Method and apparatus for appliance host supported network-based application delivery
US20070208834A1 (en) * 2006-02-14 2007-09-06 Nanamura Roberto N On-demand software service system and method
US20090210317A1 (en) * 2002-09-16 2009-08-20 Yahoo! Inc. On-line software rental
US8024523B2 (en) 2007-11-07 2011-09-20 Endeavors Technologies, Inc. Opportunistic block transmission with time constraints
US8438298B2 (en) 2001-02-14 2013-05-07 Endeavors Technologies, Inc. Intelligent network streaming and execution system for conventionally coded applications
US8509230B2 (en) 1997-06-16 2013-08-13 Numecent Holdings, Inc. Software streaming system and method
US20140244791A1 (en) * 2013-02-27 2014-08-28 Greenbutton Limited Method for intercepting an instruction produced by an application on a computer
US8831995B2 (en) 2000-11-06 2014-09-09 Numecent Holdings, Inc. Optimized server for streamed applications
US8892738B2 (en) 2007-11-07 2014-11-18 Numecent Holdings, Inc. Deriving component statistics for a stream enabled application
US10021168B2 (en) 2012-09-11 2018-07-10 Numecent Holdings, Inc. Application streaming using pixel streaming

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040015587A1 (en) * 2002-06-21 2004-01-22 Kogut-O'connell Judy J. System for transferring tools to resources
WO2005041003A1 (en) * 2003-10-28 2005-05-06 Fujitsu Limited Management system, management method and management program
US7231199B2 (en) * 2004-02-27 2007-06-12 Research In Motion Limited Data protection for applications on a mobile electronic device
US8806476B2 (en) * 2006-03-14 2014-08-12 International Business Machines Corporation Implementing a software installation process
US7937328B2 (en) * 2006-06-01 2011-05-03 International Business Machines Corporation Digital rights management
US20080181197A1 (en) * 2007-01-29 2008-07-31 International Business Machines Corporation Delivering Unified User Experience By Automatically Teaming Up Information Appliances With General Purpose PC Through Internet
US20090254890A1 (en) * 2008-04-04 2009-10-08 Electronics And Telecommunications Research Institute Apparatus and method for generating install-less software from installation package of software
US8015450B1 (en) * 2009-03-26 2011-09-06 Symantec Corporation Systems and methods for detecting and automatically installing missing software components
US8997172B2 (en) * 2010-11-08 2015-03-31 Citrix Systems, Inc. Controlling information disclosure during application streaming and publishing
US9344464B2 (en) * 2012-11-30 2016-05-17 Lenovo (Singapore) Pte. Ltd. Provisioning of player for content
US20150178059A1 (en) * 2013-12-20 2015-06-25 Amazon Technologies, Inc. Application launching
WO2016105399A1 (en) * 2014-12-23 2016-06-30 Hewlett Packard Enterprise Development Lp Prevention of a predetermined action regarding data
CN114785767A (en) * 2022-03-17 2022-07-22 中国电信集团工会上海市委员会 Method and system for connecting TDengine without installing client

Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4924378A (en) * 1988-06-13 1990-05-08 Prime Computer, Inc. License mangagement system and license storage key
US5375206A (en) * 1991-03-11 1994-12-20 Hewlett-Packard Company Method for licensing software
US5438508A (en) * 1991-06-28 1995-08-01 Digital Equipment Corporation License document interchange format for license management system
US5613089A (en) * 1989-04-28 1997-03-18 Softel, Inc. Method and apparatus for remotely controlling and monitoring the use of computer software
US5717604A (en) * 1995-05-25 1998-02-10 Wiggins; Christopher Network monitoring system for tracking, billing and recovering licenses
US5767850A (en) * 1996-06-24 1998-06-16 Intel Corporatoin Relocatable menu icon for accessing an application in a graphical user interface
US5892900A (en) * 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US5923885A (en) * 1996-10-31 1999-07-13 Sun Microsystems, Inc. Acquisition and operation of remotely loaded software using applet modification of browser software
US5926635A (en) * 1997-02-05 1999-07-20 Hewlett Packard Company Method for reducing complexities when communicating between tasks
US5925127A (en) * 1997-04-09 1999-07-20 Microsoft Corporation Method and system for monitoring the use of rented software
US5953005A (en) * 1996-06-28 1999-09-14 Sun Microsystems, Inc. System and method for on-line multimedia access
US6026437A (en) * 1998-04-20 2000-02-15 International Business Machines Corporation Method and system in a computer network for bundling and launching hypertext files and associated subroutines within archive files
US6058445A (en) * 1997-05-13 2000-05-02 Micron Electronics, Inc. Data management method for adding or exchanging components on a running computer
US6327579B1 (en) * 1993-11-04 2001-12-04 Christopher M. Crawford Online computer services including help desk, anti-virus and/or application service features
US6334118B1 (en) * 1997-07-31 2001-12-25 Siemens Aktiengesellschaft Software rental system and method for renting software
US20030040962A1 (en) * 1997-06-12 2003-02-27 Lewis William H. System and data management and on-demand rental and purchase of digital data products
US20050198239A1 (en) * 1999-12-22 2005-09-08 Trevor Hughes Networked computer system

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6138140A (en) 1995-07-14 2000-10-24 Sony Corporation Data processing method and device
US6260078B1 (en) 1996-07-03 2001-07-10 Sun Microsystems, Inc. Using a distributed object system to find and download java-based applications
KR100227151B1 (en) 1997-01-09 1999-10-15 진교문 Method of common accessing application program for multi point communication

Patent Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4924378A (en) * 1988-06-13 1990-05-08 Prime Computer, Inc. License mangagement system and license storage key
US5613089A (en) * 1989-04-28 1997-03-18 Softel, Inc. Method and apparatus for remotely controlling and monitoring the use of computer software
US5375206A (en) * 1991-03-11 1994-12-20 Hewlett-Packard Company Method for licensing software
US5438508A (en) * 1991-06-28 1995-08-01 Digital Equipment Corporation License document interchange format for license management system
US6327579B1 (en) * 1993-11-04 2001-12-04 Christopher M. Crawford Online computer services including help desk, anti-virus and/or application service features
US5717604A (en) * 1995-05-25 1998-02-10 Wiggins; Christopher Network monitoring system for tracking, billing and recovering licenses
US5767850A (en) * 1996-06-24 1998-06-16 Intel Corporatoin Relocatable menu icon for accessing an application in a graphical user interface
US5953005A (en) * 1996-06-28 1999-09-14 Sun Microsystems, Inc. System and method for on-line multimedia access
US5892900A (en) * 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US5923885A (en) * 1996-10-31 1999-07-13 Sun Microsystems, Inc. Acquisition and operation of remotely loaded software using applet modification of browser software
US5926635A (en) * 1997-02-05 1999-07-20 Hewlett Packard Company Method for reducing complexities when communicating between tasks
US5925127A (en) * 1997-04-09 1999-07-20 Microsoft Corporation Method and system for monitoring the use of rented software
US6058445A (en) * 1997-05-13 2000-05-02 Micron Electronics, Inc. Data management method for adding or exchanging components on a running computer
US20030040962A1 (en) * 1997-06-12 2003-02-27 Lewis William H. System and data management and on-demand rental and purchase of digital data products
US6334118B1 (en) * 1997-07-31 2001-12-25 Siemens Aktiengesellschaft Software rental system and method for renting software
US6026437A (en) * 1998-04-20 2000-02-15 International Business Machines Corporation Method and system in a computer network for bundling and launching hypertext files and associated subroutines within archive files
US20050198239A1 (en) * 1999-12-22 2005-09-08 Trevor Hughes Networked computer system

Cited By (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8509230B2 (en) 1997-06-16 2013-08-13 Numecent Holdings, Inc. Software streaming system and method
US9578075B2 (en) 1997-06-16 2017-02-21 Numecent Holdings, Inc. Software streaming system and method
US9094480B2 (en) 1997-06-16 2015-07-28 Numecent Holdings, Inc. Software streaming system and method
US20060259581A1 (en) * 2000-05-15 2006-11-16 Piersol Kurt W Method and apparatus for appliance host supported network-based application delivery
US7788388B2 (en) * 2000-05-15 2010-08-31 Ricoh Co., Ltd. Method and apparatus for appliance host supported network-based application delivery
US9654548B2 (en) 2000-11-06 2017-05-16 Numecent Holdings, Inc. Intelligent network streaming and execution system for conventionally coded applications
US9130953B2 (en) 2000-11-06 2015-09-08 Numecent Holdings, Inc. Intelligent network streaming and execution system for conventionally coded applications
US8831995B2 (en) 2000-11-06 2014-09-09 Numecent Holdings, Inc. Optimized server for streamed applications
US8438298B2 (en) 2001-02-14 2013-05-07 Endeavors Technologies, Inc. Intelligent network streaming and execution system for conventionally coded applications
US8893249B2 (en) 2001-02-14 2014-11-18 Numecent Holdings, Inc. Intelligent network streaming and execution system for conventionally coded applications
US8583558B2 (en) * 2002-09-16 2013-11-12 Yahoo! Inc. On-line software rental
US20090210317A1 (en) * 2002-09-16 2009-08-20 Yahoo! Inc. On-line software rental
US20060053228A1 (en) * 2004-09-03 2006-03-09 Ophir Rachman Method and apparatus for allowing sharing of streamable applications
US9124653B2 (en) * 2004-09-03 2015-09-01 Symantec Corporation Method and apparatus for allowing sharing of streamable applications
US20060136389A1 (en) * 2004-12-22 2006-06-22 Cover Clay H System and method for invocation of streaming application
US11121928B2 (en) 2005-03-23 2021-09-14 Numecent Holdings, Inc. Opportunistic block transmission with time constraints
US9781007B2 (en) 2005-03-23 2017-10-03 Numecent Holdings, Inc. Opportunistic block transmission with time constraints
US8898391B2 (en) 2005-03-23 2014-11-25 Numecent Holdings, Inc. Opportunistic block transmission with time constraints
US10587473B2 (en) 2005-03-23 2020-03-10 Numecent Holdings, Inc. Opportunistic block transmission with time constraints
US9300752B2 (en) 2005-03-23 2016-03-29 Numecent Holdings, Inc. Opportunistic block transmission with time constraints
US8527706B2 (en) 2005-03-23 2013-09-03 Numecent Holdings, Inc. Opportunistic block transmission with time constraints
US7937458B2 (en) * 2006-02-14 2011-05-03 Nanamura Roberto N On-demand software service system and method
US20070208834A1 (en) * 2006-02-14 2007-09-06 Nanamura Roberto N On-demand software service system and method
US8892738B2 (en) 2007-11-07 2014-11-18 Numecent Holdings, Inc. Deriving component statistics for a stream enabled application
US9436578B2 (en) 2007-11-07 2016-09-06 Numecent Holdings, Inc. Deriving component statistics for a stream enabled application
US8024523B2 (en) 2007-11-07 2011-09-20 Endeavors Technologies, Inc. Opportunistic block transmission with time constraints
US10445210B2 (en) 2007-11-07 2019-10-15 Numecent Holdings, Inc. Deriving component statistics for a stream enabled application
US8661197B2 (en) 2007-11-07 2014-02-25 Numecent Holdings, Inc. Opportunistic block transmission with time constraints
US11119884B2 (en) 2007-11-07 2021-09-14 Numecent Holdings, Inc. Deriving component statistics for a stream enabled application
US11740992B2 (en) 2007-11-07 2023-08-29 Numecent Holdings, Inc. Deriving component statistics for a stream enabled application
US10021168B2 (en) 2012-09-11 2018-07-10 Numecent Holdings, Inc. Application streaming using pixel streaming
US9729610B2 (en) * 2013-02-27 2017-08-08 Greenbutton Limited Method for intercepting an instruction produced by an application on a computer
US20140244791A1 (en) * 2013-02-27 2014-08-28 Greenbutton Limited Method for intercepting an instruction produced by an application on a computer

Also Published As

Publication number Publication date
US7171390B1 (en) 2007-01-30

Similar Documents

Publication Publication Date Title
US20070130075A1 (en) System and method for executing a rental software program in distributed computing environment
JP4707837B2 (en) System and method for executing a rental software program in a distributed computing environment
US7934210B1 (en) System and method for updating one or more programs and their environment
JP4796966B2 (en) System and method and API for progressive installation of software applications
US6256668B1 (en) Method for identifying and obtaining computer software from a network computer using a tag
US7577751B2 (en) Software streaming system and method
US6189051B1 (en) System and method for manufacturing hard disk master by downloading selected programs and drivers from a host through a network
US6230319B1 (en) Managing interruption while downloading data over a network
US6282711B1 (en) Method for more efficiently installing software components from a remote server source
US6959320B2 (en) Client-side performance optimization system for streamed applications
US9270732B2 (en) System and method for automatically uploading updates
US9357031B2 (en) Applications as a service
US20060048136A1 (en) Interception-based resource detection system
US6915486B2 (en) Customizing a graphical user interface of a host application
WO2001065368A2 (en) A distributed operating network and method for using and implementing same
US20060047798A1 (en) System and method for automated capture, editing, replication, and deployment of server configurations
JP2001508575A (en) Software Update Manager
JP2008262580A (en) Software execution control system and software execution control program
JP2002533838A (en) System and method for dynamic file access on client server
US8494964B1 (en) Software as a service via virtualization
US20060053228A1 (en) Method and apparatus for allowing sharing of streamable applications
US7813964B2 (en) Click and run software purchasing
US8213038B2 (en) Client call service
US20050091073A1 (en) System and method for erasing a hard drive via a computer network
WO2001055876A9 (en) Web-based appliance

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION