WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Secure software rental system using distributed software    
United States Patent5548645   
Link to this pagehttp://www.wikipatents.com/5548645.html
Inventor(s)Ananda; Mohan (15910 Ventura Blvd., Suite 800, Eucino, CA 91436)
AbstractA system is disclosed for providing secure access and execution of application software by a first computer while a communication link is maintained between the first computer and a second computer. More specifically, a secure software rental system is disclosed. The system enables a user in a remote location using the first computer and a modem to connect to the second computer, transfer an application software either from the second computer or from a local storage device to the first computer, and execute the application software on the first computer while connected to the second computer. When the communication link between the second computer and the first computer is interrupted or terminated, the application software no longer executes on the first computer. This is accomplished by integrating header software with the application software. The application software stored in the second computer or in the local storage device is integrated with the header software to provide a security feature. The use of header software allows the user to execute the application software only while the user is continuously connected to the second computer. This prevents the user from copying the application software, and subsequently executing the application software after interrupting or terminating the communications link between the second and first computers.



 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5548645
Secure software rental system using distributed software - US Patent 5548645 Drawing
Secure software rental system using distributed software
Inventor     Ananda; Mohan (15910 Ventura Blvd., Suite 800, Eucino, CA 91436)
Owner/Assignee    
Patent assignment
All assignments
Publication Date     August 20, 1996
Application Number     08/271,472
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     July 7, 1994
US Classification     705/52 713/183
Int'l Classification     H04L 009/00
Examiner     Cangialosi; Salvatore
Assistant Examiner    
Attorney/Law Firm     Hecker & Harriman
Address
Parent Case     This is a continuation-in-part of patent application entitled "Secure Software Rental System," application Ser. No. 08/178,398, filed on Dec. 22, 1993, now U.S. Pat. No. 5,495,411.
Priority Data    
USPTO Field of Search     380/4 380/25 364/401
Patent Tags     secure software rental distributed software
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5495411
Ananda
705/32
Feb,1996

[0 after 0 votes]
5457746
Dolphin

Oct,1995

[0 after 0 votes]
5398285
Borgelt
380/30
Mar,1995

[0 after 0 votes]
5392351
Hasebe

Feb,1995

[0 after 0 votes]
5388211
Hornbuckle
717/178
Feb,1995

[0 after 0 votes]
5371792
Asai
705/59
Dec,1994

[0 after 0 votes]
5163097
Pegg
713/183
Nov,1992

[0 after 0 votes]
5123045
Ostrovsky
713/190
Jun,1992

[0 after 0 votes]
5083309
Beysson

Jan,1992

[0 after 0 votes]
5060263
Bosen
713/184
Oct,1991

[0 after 0 votes]
5010571
Katznelson
705/53
Apr,1991

[0 after 0 votes]
4433207
Best
713/190
Feb,1984

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


I claim:

1. A method for securely renting software, the method comprising the steps of:

establishing a communication link between a first computer and a second computer;

loading in said first computer at least one application software from a plurality of application softwares stored in a local storage device;

executing said at least one application software on said first computer, by periodically obtaining authorization from said second computer, wherein said authorization is obtained when a first dynamic password generated by said first computer matches a second dynamic password generated by said second computer; and

terminating execution of said at least one application software when said authorization is not obtained.

2. The method of claim 1, wherein said local storage device is a CD-ROM.

3. The method of claim 1 or 2 wherein said communication link between said first and second computers is established through modems.

4. The method of claim 1 wherein said loading step comprises the steps of:

selecting said locale storage device for accessing said at least one application software; and

storing in said first computer a selection time indicating when said selecting step is performed.

5. The method of claim 4 wherein said first and second dynamic passwords comprise a time difference between said selection time and a current time of a processor of said first computer.

6. The method of claim 5 wherein said first and second dynamic passwords further comprise a user identification password and an application software identification number.

7. The method of claim 1 or 2 wherein said step of establishing said communication link between said first computer and said second computer comprises the steps of:

executing a communication manager on said first computer; and

said first computer accessing said second computer using said communication manager to begin a rental session.

8. A method of providing secure software rental, comprising the steps of:

transferring a communication manager from a central rental facility to a user computer:

initiating a rental session by accessing said central rental facility using said communication manager, said communication manager executing on said user computer;

selecting a rental application from a plurality of rental applications stored in a local storage device, said rental application comprising an application software and an asynchronous header;

loading said selected rental application from said local storage device to said user computer;

executing said rental application on said user computer;

said rental application initiating said asynchronous header for dynamic password verification to ensure continuous communication between said user computer and said central rental facility; and

continuously checking to determine if said dynamic password verification is successful using said header, said header terminating said rental application when said dynamic password verification fails.

9. The method of claim 8, wherein said rental application is loaded from a CD-ROM.

10. The method of claim 8 wherein said rental application is terminated by said asynchronous header sending a message to said application software.

11. A method of synchronously verifying a continuous connection between first and second computers while a rental application software executes on said first computer, said rental application comprising a header, said first and second computers electronically connected by a communications path, comprising the steps of:

(a) determining a loading time, the loading time being the time when said rental application is loaded from a local storage device to said first computer;

(b) transferring said loading time from said first computer to said second computer;

(c) computing a time difference between a system time of said first computer and said loading time using said header;

(d) generating a first dynamic password dependent on said time difference using said header;

(e) transmitting a password verification request comprising said system time to said second computer;

(f) checking for a password verification response from said second computer, said header terminating said rental application when a password verification response is not received;

(g) comparing a received dynamic password of said password verification response with said first dynamic password, said received dynamic password generated by said second computer, said header terminating said rental application when said received dynamic password and said first dynamic password do not match;

(h) allowing a first time interval to lapse;

(i) repeating steps (c)-(h).

12. The method of claim 11 wherein said local storage device is a CD-ROM.

13. The method of claim 11 wherein said password verification request and said password verification response are encrypted by said first and said second computers respectively.

14. The method of claim 11 wherein said first dynamic password is stored in memory means of said first computer.

15. The method of claim 11 wherein said first dynamic password is further dependent on a user identifier and an application identifier.

16. The method of claim 11 wherein said password verification request further comprises a user identifier and an application identifier.

17. The method of claim 11 wherein said first time interval is thirty seconds.

18. The method of claim 11 wherein said step of checking for a password verification response is performed after a second time interval elapses.

19. The method of claim 18 wherein said second time interval is thirty seconds.

20. The method of claim 13 further comprising the step of decrypting said password verification request and said password verification response by said second and said first computers respectively.
 Description Submit all comments and votes
 


BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to the field of secure software rental systems.

2. Background Art

The use of personal computers (PC) and communication modems (CM) has increased significantly in recent years and is expected to continue to grow. Using electronic mail capabilities, PC users communicate more frequently amongst themselves. Additionally, centralized computer systems have evolved allowing PC users to access large databases. Such databases include various information libraries: news, weather, sports, stock markets, entertainment, education, and so on. Access to such databases is commonly controlled so that users must subscribe to the centralized computer systems. In a typical session, the user connects to the centralized computer system using the PC, transfers information to the user's PC, and is further usable without being connected to the database of the centralized computer system. The centralized computer system enables a large number of users to concurrently access the database of the central computer system.

While centralized computer systems frequently provide access to information databases, such systems less frequently provide access to copyrighted application software. The primary reason for not providing copyrighted application software from databases of centralized computer systems is due to a lack of tamper-proof security methods and apparatuses for preventing unauthorized copying of copyrighted application software. Prior art systems do not provide a comprehensive method or apparatus for permitting the rental of copyrighted application software without having any possibility of the copyrighted application software being copied and used without being connected to the database.

A prior art system, disclosed in U.S. Pat. Nos. 4,796,181 and 5,047,928 issued to John D. Wiedemer on Jan. 3, 1989 and Sep. 10, 1991, respectively, implements a computer software security and billing system that enciphers an application program using a numeric key. The computer of the user requires a hardware security device and a removable billing device. Both devices carry unique codes. The security device containing the billing device is coupled to the user's computer. A security program accesses the application software and writes billing information into the billing device. The billing module must be periodically replaced so the user can be charged for the software usage. Thus, the system of Wiedemer is directed to a security device including a billing device that is installed in a user's computer for enciphering/deciphering software and billing for usage of the software. This system disadvantageously requires special hardware for billing use of application software and does not use a dynamic password for preventing unauthorized use of application software.

Another prior art system, disclosed in U.S. Pat. No. 4,999,806 issued to Fred Chernow, et al., on Mar. 12, 1991, is a system for distributing software by telephone. A central station accepts credit card information, transmits an acceptance code to a caller, and terminates the call. The central station first verifies the caller's credit card, and then calls back the caller. The transaction is continued after receiving the acceptance code. The central station transfers a control transfer program and initialization program to the caller. The caller (or purchaser) executes the initialization program so that the central station can control the caller's computer. The control transfer program then transfers a protection program for ensuring that a copying program is not resident in the memory of the caller's computer. A storing program is then transferred to the caller's computer for modifying the purchased program for storage on the caller's computer. The purchased program is then transferred to the caller's computer. During execution of the system for distributing software, the various transmitted programs are erased so that only a copy of the purchased software remains on the caller's computer. Thus, the system of Chernow, et al., is directed to a system of transmitting copy protected versions of software to a caller's computer for a limited amount of time similar to a demonstration. The system of Chernow et al., is similar to copy protection of software and does not use a dynamic password for preventing unauthorized use of application software.

A further prior art system, disclosed in U.S. Pat. No. 5,138,712 issued to John R. Corbin on Aug. 11, 1992, implements a method and apparatus for licensing software on a computer network. Encrypted license information is stored in a license token, and is sorted in a database controlled by a license server. To access a program, the license server locates the correct license token for a software application and transmits the license token to a license library. The application has an attached application specific license access module that decodes the licensing token. The license information is verified by license library routines coupled to the software application. The license is then checked out and the license token is updated. The application specific license access module encodes the updated license token before returning it to the license server. Thus, only a single application can be breached by unauthorized cracking of an encrypted application. Thus, the system of Corbin is directed to providing network protection against unauthorized use of software in a computer network.

Thus, the prior art is not able to provide a dynamic secure software rental system.

SUMMARY OF THE PRESENT INVENTION

The present invention is a system for providing secure access and execution of application software stored on a first computer by a second computer using a communication device while a communication link is maintained between the first and second computers. More specifically, the present invention is a secure software rental system. The system enables a user in a remote location using a personal computer and a modem to connect to a central rental facility, transfer application software from the central rental facility to the remote computer, and execute the application software on the remote computer while electronically connected to the central rental facility. When the communication link between the central and remote computers is interrupted or terminated, the application software no longer executes on the remote computer. This is accomplished by integrating header software with the application software according to the present invention.

The application software stored on the central rental facility is integrated with the header software to provide a security feature of the present invention. The use of header software allows the user to only execute the application software while the user is electronically connected to the central rental facility continuously. This prevents the user from copying the application software to a storage device of the remote computer, and subsequently executing the application software after interrupting or terminating the communications link between the central and remote computers.

The system of the present invention comprises a plurality of remote computers, communication modems, a multiuser communication modem, a database computer, and a memory system. The user connects the remote computer to the database of the central rental facility using methods well-known in the art of computer communications. However, the central rental facility requires the user to provide a unique user identification password to access the system. Each user of the system is allocated a unique user identification password.

A plurality of users having remote computers are able to communicate with the central rental facility using multiuser communication modem coupled to the central rental facility. The database computer comprises a multiuser, multitasking controller, password validation modules, user registration databases, and memory system. When a user transmits a password to the central rental facility, the central rental facility activates the user registration database through the user password module. The user registration database contains information about each user that is stored in a separate file for each user. The user validation module compares the password with the password stored in the user registration database for the user. When the password is validated, the controller of the central rental facility establishes continuous connection with the remote computer of the user. Otherwise, communications with the remote computer are terminated.

When the continuous connection between the central rental facility and the remote computer is established, the user is able to access rental application software database through a directory request module of the central rental facility. The multiuser controller of the central rental facility initiates the interface between the user and the rental application software database. The user is then able to select application software from the rental application software database. When the user selects a software application, the multiuser controller of the central rental facility transfers the software application to the remote computer using a file transfer module. The software is transmitted through the multiuser communication modem of the central rental facility and the communication modem of the remote computer to the user.

When the application software is transferred to the remote computer, the central rental facility registers a transfer time. The transfer time is temporarily stored in the user file for transfer of the application software. The temporary storage on the central rental facility is only maintained during the time that the user is continuously connected to the central rental facility. The multiuser controller of the central rental facility stores the transfer time of each application software that the user transfers in a separate file. The multiuser controller also transmits a message containing the transfer time and an identification number for each transmitted application software to the remote computer. The message is encrypted by the central rental facility before transfer, and transmission of the message is accomplished transparently to the user. The user is then able to execute the application software.

The application software executes normally on the remote computer without any apparent modification of the application software. However, each application software of the rental application software database is modified to include header software. The application software is coupled to the header software by interface parameters. When executing the application software, the header software is an integral part of the application software and is executed as part of the initialization process for the application software. The interface parameters are adapted to the application software although the header software is the same for all application software. The internal functions of the header software includes a rental security manager, user processor clock interface, user operating system interface, and user display interface. The header software primarily carries out dynamic password verification, which is an asynchronous process with respect to the functions of the application software and is carried out at finite intervals of time.

The rental security manager performs functions including interfacing with the communication manager that in turn interfaces with the communication modem, interfacing with the controller of the central rental facility, and interfacing with the application software. Also, the rental security manager generates passwords, correlate passwords, executes authorization verification, continues authorization verification, and terminates execution of the application software. The user processor clock interface obtains the current time from the user processor at finite intervals and provides it to the rental security manager. The user operating system interface determines the appropriate interface parameters for executing the application software on the operating system on the remote computer. The user display interface generates and provides messages to the user as necessary.

When the user executes the application software, the rental security manager initiates authorization verification. The authorization verification process begins by obtaining the time through the user processor clock interface. The rental security manager decrypts the authorization verification message containing the rental application software transfer time from the central rental facility. It determines the time difference between the transfer time from the central rental facility and the user processor clock time of the remote computer. The rental security manager generates a new authorization verification password using the time difference and the user identification password. It stores the new authorization verification password temporarily in a store of the rental security manager. The rental security manager then prepares a message containing the clock time, the user identification password, and identification number of the application software. The rental security manager encrypts the message, and transfers it to the central rental facility.

The multiuser controller of the central rental facility decrypts the transmitted message. It then computes a time difference by differencing the user processor clock time and the transfer time. The transfer time was stored previously in the user file for the application software. The multiuser controller generates an authorization verification password using the time difference computed by the controller and the decrypted user identification password. The multiuser controller creates a new message containing the processor clock time, the user identification password, and the authorization verification password. The message is encrypted by the multiuser controller, and transmitted to the remote computer.

The rental security manager decrypts the received message. The decrypted message is compared against the stored user processor clock time, the user identification password, and the authorization verification password using the password correlation module. When the password correlation module completes successfully, the authorization verification process is completed and the application software continues to execute. Otherwise, the authorization verification fails and termination of the executing application software is initiated. The user is notified of the authorization verification failure. The system performs the authorization verification process three times consecutively when failures occur before terminating the application software execution. The above listed steps are repeated at fixed time intervals during execution of the application software. The authorization verification process occurs transparently to the user when successful.

The authorization verification method thus prevents the user from circumventing the rental scheme in three ways. In one case, it prevents the user from transferring the application software to the remote computer and disconnecting the communication link while executing the application software. This attempt fails because the rental security manager is unable to communicate with the central rental facility. In another case, the authorization verification method prevents the user from copying the application software to a storage device, disconnecting the communication link, and re-executing the application software. This attempt fails because the transfer time is not available or the rental security manager is unable to communicate with the central rental facility. In yet another case, it prevents the user from establishing a communication link, without responding to any inquiry from the database computer, and re-executing a previously copied version of the application software that was stored on the remote computer. This attempt fails because the previous transfer time (or a CD-ROM time in the embodiment described below) cannot be found on the central rental facility.

In one embodiment, the invention comprises downloading an application software from a local storage device such as a CD-ROM instead of downloading from the central rental facility. However, the user still needs to establish communication with and obtain authorization from the central rental facility for successful execution of the application software. This results in saving the time required to download the application software from the central rental facility while at the same time maintaining a secure software rental system.

Thus, the present invention provides a secure system for allowing remote execution of rental application software and monitoring the time period that the application software is executed. The system also allows a single user to access more than one application software while independently monitoring each execution of application software using the multiuser, multitasking controller of the central rental facility. The multiuser, multitasking controller of the central rental facility is also capable of interfacing with a plurality of users concurrently.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram illustrating a remote user computer system and a central rental facility;

FIG. 2 is a diagram further illustrating the remote user computer system and the central rental facility;

FIG. 3 is a diagram illustrating a rental application comprising an application software and a header according to the present invention;

FIG. 4 is a flow diagram illustrating the present invention for preventing execution of a rental application stored in the user computer and the user computer is not connected to the central rental facility;

FIG. 5 is a flow diagram further illustrating FIG. 4;

FIG. 6 is a flow diagram illustrating the present invention when a rental application stored on the storage media of the user computer is executed after connecting to the database computer without transferring the rental application from the database computer and without responding to any inquiry from the database computer;

FIGS. 7A-7B are flow diagrams further illustrating FIG. 6;

FIG. 8 is a flow diagram illustrating transfer of a communication manager from the central rental facility to the remote user computer system;

FIG. 9 is a flow diagram illustrating the step 1118 of FIG. 11 of the present invention;

FIGS. 10A-10D are flow diagrams illustrating the asynchronous header password verification process of the present invention;

FIG. 11 is a flow diagram illustrating the present invention for providing a secure software rental system when the application software is downloaded from a central rental facility;

FIGS. 12 is a diagram illustrating a central rental facility and a remote user computer system with a local storage device; and

FIG. 13 is a flow diagram illustrating the present invention for providing a secure software rental system when the application software is downloaded from a local storage device.

DETAILED DESCRIPTION OF THE PRESENT INVENTION

A method and apparatus for providing a secure software rental system is described. In the following description, numerous specific details, such as number and nature of messages, communication applications, etc., are described in detail in order to provide a more thorough description of the present invention. It will be apparent, however, to one skilled in the art, that the present invention may be practiced without these specific details. In other instances, well-known features have not been described in detail so as not to unnecessarily obscure the present invention.

The Secure Software Rental System and a User Computer

FIG. 1 is a diagram illustrating a remote user computer system 150 connected to a central rental facility 180 by electronic communications path 136A for securely renting software. The remote user computer system 150 includes user computer 102, a display device 104, a keyboard 114, and a communication modem 106. The central rental facility 180 includes database computer 122, a display device 124, a keyboard 128, and a multiuser communication modem 126. Coupling 112 connects user computer 102 to display 104 for providing output to a user. Coupling 114 connects keyboard 108 to user computer 102 for providing input from a user. Modem 106 is connected to user computer 102 by coupling 110.

Modem 106 of remote user computer system 150 is coupled to multiuser communication modem 126 by communication path 136A. In the preferred embodiment of the present invention, communication path 136A is a telephone transmission line. The present invention is not limited to a telephone transmission line, and other communication paths may be utilized without departing from the scope of the present invention. Multiuser modem 126 is coupled to a plurality of communication paths 136A-136C for establishing communications with a plurality of remote user computer systems concurrently. Multiuser modem 126 is connected to database computer 122 by coupling 120. Coupling 132 connects database computer 122 to display 124 for providing output to an operator. Coupling 114 connects keyboard 128 to database computer 122 for providing input from an operator. While a single keyboard 128 and display device 124 are illustrated in FIG. 1, it should be apparent to a person skilled in the art that the present invention may be practiced with a plurality of such devices coupled to the database computer.

The user computer 102 of the remote user computer system 150 comprises a processing means coupled to main memory (e.g., random access memory RAM and/or read only memory ROM), secondary storage means (e.g., media storage systems and/or CDROM), and input/output ports for communicating with other devices including keyboards, printers, displays, etc. As is well-known in the art, the user computer system 150 may further include printing devices for providing hard copy output from the user computer 102, CD-ROM drives for storing information including multimedia information, scanning devices for providing electronic images as input, and manual input devices (e.g., mice, pen systems, etc.) for providing input. The database computer 122 is a multitasking, multiuser computer capable of executing a plurality of processes in parallel. In the preferred embodiment of the present invention, a file server workstation operating the Windows operating environment is used as the database computer 122. However, the present invention may be implemented using a mainframe computer or a plurality of computers connected and operated in parallel for the database computer 122. Similarly, the central rental facility may further comprise printing devices, CD-ROM drives, scanning devices, manual input devices, etc.

In the present invention, a user accesses the central rental facility 180 using the remote user computer system 150 illustrated in FIG. 1. The remote user computer system 150 comprises the elements necessary for accessing the central rental facility 180. The user connects to the central rental facility 180 using communication methods well-known in the art for connecting to other database systems (e.g., Compuserve, etc.). The secure software rental system of the present invention requires that each user be assigned or allocated a unique user identification password. The user identification password is necessary for accessing the central rental facility 180. When electronically connected to the remote user computer system 150 using the modem 106, the central rental facility 180 requests the user to provide the user identification password. The user inputs the user identification password through the keyboard 108 to user computer 102. User computer 102 transmits the user identification password to the central rental facility using modem 106. The database computer 122 of central rental facility 180 receives the user identification password through multiuser modem 126. When the database computer 122 receives the user identification password, the database computer 122, as illustrated in FIG. 2, retrieves the user registration database 212 using electronic connection 260 from system memory/storage 220.

Modules of the Central Rental Facility

In FIG. 2, the user computer 102 comprises a rental application 284 and communication manager 280. The database computer 122 includes communication manager 202, multiuser controller 222, a plurality of control modules 204-210, databases 212-214, and system memory/storage 220. The user computer 102 is coupled to the database computer 122 through the multiuser modem 126 of the central rental facility 180, as illustrated in FIG. 1. The rental application 284 comprising header 284A and application 284B is coupled to communication manager 280 by connection 282. Communication manager 280 is coupled to modem 106 by connection 110. Modem 106 of the remote user computer system 150 is coupled to multiuser modem 126 through communication path 136A.

Multiuser modem 126 is coupled to communication manager 202 by connection 120. Communication manager 202 is coupled to multiuser controller 222 by connection 200. Multiuser controller 222 is coupled to user password validation module 204, directory request module 206, file transfer module 208, and user status module 210 by connections 230, 232, 234, and 236, respectively. The user password validation module is connected to user registration database 212 by coupling 240. The directory request module 206 is connected to the rental application database 214 by coupling 242. The file transfer module 208 is coupled to the rental application database 214 and user memory 216 by coupling 244 and 246, respectively. The user status module 210 is connected to user memory 216 and transaction log database 218 by coupling 248 and 250, respectively. User registration database 212, rental application database 214, user memory 216, and transaction log database 218 to system memory/storage 220 by connections 260, 262, 264, and 266, respectively.

The central rental facility 180 is operated by the multiuser controller 222 that is capable of processing a plurality of users and interfaces with various subsystem elements including multiuser modem 126. Initially, the multiuser controller 222 recognizes that the user has transmitted a user identification password to the central rental facility 180, thereby causing the controller 222 to activate the user registration database 212 through the user password validation module 204. The user registration database 212 contains stored information regarding the identifications of authorized users of the secure software rental system, as well as other relevant information regarding users, in an identifiable file for each user. The user identification password may comprise, up to a predetermined number of characters, any combination of letters of the alphabet and numbers. For example, the Social Security number of the user may be used as the user identification password.

The password validation module 204 performs a check to determine whether or not the transmitted user identification password is authorized by first retrieving and then searching the user registration database 212. When the search fails to locate the user in the user registration database 212, the user password validation module 204 notifies the multiuser controller 222 of the failure. The password validation module 204 transmits the status of the search to controller 222 characterizing the user identification password transfer to the central rental facility 180 as an unauthorized access. The multiuser controller 222 transmits an appropriate message to the remote user computer system 150 that is displayed on its display 104 (shown in FIG. 1), and the central rental facility 180 terminates the connection to the remote user computer system 150.

When the search performed by the password validation module 204 successfully locates the user in the user registration database 212, the user password validation module 204 transmits validity information to the multiuser controller 222. The multiuser controller 222 establishes continuous connection between the central rental facility 180 and the remote user computer system 150 using communication manager 202. This enables the user to directly access the database of the central rental facility 180 (including the rental application database 214) using the remote user computer system 150. The multiuser controller 222 initiates the interface between the remote user computer system 150 and the rental application database 214 by a series of queries from the multiuser controller 222 to the user and by receiving appropriate responses from the user.

The user selects an application software by reviewing the directory of the rental application database 214 using the directory request module 206. In response to an appropriate user command, the multiuser controller 222 transfers the selected application software from the rental application database 214 using the file transfer module. The file transfer module is electronically coupled to the rental application database 214 by connection 244, and it transfers the selected application software from the rental application database through multiuser communication modem 126 to the remote user computer system 150. The multiuser controller 222 transmits the selected application software by means of the communication manager 202 through the multiuser modem 126 across communication path 136A to modem 106 that is controlled by communication manager 280 of the user computer 102.

At the time of the application software transfer to the remote user computer system 150, the multiuser controller 222 registers a transfer time for the application software obtained from the timer clock of the database computer 122. In the preferred embodiment of the present invention, the time of the database computer is measure to a precision of nanoseconds. The transfer time is temporarily stored in the user file of the user registration database 212. The temporarily stored transfer time is kept until the user terminates the communication link between the remote user computer system 150 and the central rental facility 180. If the user transfers another software application from the rental application database 214 to the remote user computer system 150 during the same time period that the user has already transferred an application software from the central rental facility 180, the multiuser controller 222 registers and stores the transfer time of the latter application software. In this manner, during a rental session when the remote user computer system 150 is continuously connected to the central rental facility 180, the multiuser controller 222 maintains a listing of transfer times containing the transfer time of each application software.

In addition to the transfer time of the application software, the multiuser controller transmits a message containing the transfer time of the selected application software and an identification number for the application. The information contained in the message is not displayed to the user. The multiuser controller 222 of the database computer 122 includes encryption and decryption capabilities. Thus, the multiuser controller 222 encrypts the message before transmitting it to the user computer 102.

Once the transfer of an application software t