U.S. patent application number 11/700166 was filed with the patent office on 2007-06-07 for system and method for executing a rental software program in distributed computing environment.
Invention is credited to Jai-Wan Ahn, Dong-Ho Song.
Application Number | 20070130075 11/700166 |
Document ID | / |
Family ID | 37681987 |
Filed Date | 2007-06-07 |
United States Patent
Application |
20070130075 |
Kind Code |
A1 |
Song; Dong-Ho ; et
al. |
June 7, 2007 |
System and method for executing a rental software program in
distributed computing environment
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.
Inventors: |
Song; Dong-Ho; (Seoul,
KR) ; Ahn; Jai-Wan; (Seoul, KR) |
Correspondence
Address: |
DLA PIPER RUDNICK GRAY CARY US, LLP
2000 UNIVERSITY AVENUE
E. PALO ALTO
CA
94303-2248
US
|
Family ID: |
37681987 |
Appl. No.: |
11/700166 |
Filed: |
January 30, 2007 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
09641535 |
Aug 18, 2000 |
7171390 |
|
|
11700166 |
Jan 30, 2007 |
|
|
|
Current U.S.
Class: |
705/51 |
Current CPC
Class: |
G06F 8/60 20130101; G06Q
10/02 20130101 |
Class at
Publication: |
705/051 |
International
Class: |
G06Q 99/00 20060101
G06Q099/00 |
Foreign Application Data
Date |
Code |
Application Number |
Dec 31, 1999 |
KR |
1999-68380 |
Claims
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.
Description
PRIORITY CLAIM
[0001] 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
[0002] 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
[0003] 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.TM. directory in a
Microsoft Windows.TM. 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.TM.
operating system.
[0004] 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.
[0005] 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
[0006] 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.
[0007] 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.
[0008] 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.
[0009] 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.
[0010] 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.
[0011] 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.
[0012] 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
[0013] 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:
[0014] 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;
[0015] FIG. 2 is a block diagram depicting a user computer system
shown in FIG. 1;
[0016] FIG. 3 is a block diagram describing a server computer
system shown in FIG. 1;
[0017] 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;
[0018] FIGS. 5A and 5B are flowcharts illustrating more details of
the method shown in FIG. 4;
[0019] FIG. 6 is a flowchart depicting a method for cleaning up the
rental process shown in FIG. 4;
[0020] FIG. 7 is an exemplary diagram describing a list of rental
software programs displayed in a server computer system shown in
FIG. 1;
[0021] FIG. 8 is an exemplary diagram describing a list of rental
software programs displayed in a user computer system shown in FIG.
1;
[0022] FIG. 9 is a diagram illustrating the streaming of software
applications files in accordance with the invention; and
[0023] 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
[0024] 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.
[0025] 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.
[0026] 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.
[0027] 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.
[0028] 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.
[0029] 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.
[0030] 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.
[0031] 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.
[0032] 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.
[0033] 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.
[0034] 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.
[0035] 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.
[0036] 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.
[0037] 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.
[0038] 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.
[0039] The user-information database 302 stores the identification
information of the user computer system 10 and billing information
of the user computer system 10.
[0040] 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.
[0041] 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).
[0042] 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.
[0043] 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.
[0044] 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.
[0045] 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.
[0046] 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.
[0047] The schedule manager 310 manages a schedule of requests from
the user computer system and other user computer systems (not
shown).
[0048] The session manager 311 manages a communication session
between the user computer system 10 and the server computer system
16.
[0049] 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.
[0050] 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.
[0051] 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.
[0052] 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.
[0053] 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.
[0054] 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.
[0055] 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.
[0056] 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.
[0057] 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.
[0058] 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.
[0059] At step S446, a process manager contained in the user
computer system creates and runs a process corresponding to the
main executable file.
[0060] 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.
[0061] 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.
[0062] 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.
[0063] 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.
[0064] 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.
[0065] 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.
[0066] 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.
[0067] 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.
[0068] 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.
[0069] 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.
[0070] 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.
[0071] 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.
[0072] 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.
[0073] 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.
* * * * *