`
`[19]
`
`[11] Patent Number:
`
`5,925,127
`
`Ahmad
`[45] Date of Patent:
`Jul. 20, 1999
`
`
`U8005925127A
`
`[54] METHOD AND SYSTEM FOR MONITORING
`THE USE OF RENTED SOFTWARE
`
`5,758,069
`5,890,664
`
`5/1998 Olsen ................................. 396/187.01
`8/1998 Coley et al.
`................................ 380/4
`
`[75]
`
`Inventor: Arshad Ahmad, Bellevue, Wash.
`
`[73] Assignee: Microsoft Corporation, Redmond,
`Wash.
`
`Kr
`
`OTHER PUBLICATIONS
`Mtt“F R t:A O Nt”PCWkA.
`a ’
`or
`en
`pps
`ver
`e ’
`ee ’
`pr
`amer,
`21, 1997, p. 16.
`
`[21] Appl. No.: 08/831,801
`
`[22]
`
`Filed:
`
`Apr. 9, 1997
`
`Primary Examiner—Joseph E. Palys
`Attorney, Agent, or Firm—Jones & Askew, LLP
`
`[57]
`
`ABSTRACT
`
`Related US. Application Data
`5
`
`~~~~~ G06F 11/00
`Int. Cl'
`[51]
`
`[52] U-S- Cl- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 713/200
`[58] Field of Search ............................... 395/18201, 186,
`395/18801, 187.01; 380/3, 9, 23, 25; 707/203,
`9, 10; 702/203, 9, 10
`
`[56]
`
`References CitEd
`U.S. PATENT DOCUMENTS
`
`4,924,378
`5,375,206
`574387508
`594999340
`5,671,412
`5,708,709
`5,717,604
`5,745,879
`
`...... 364/200
`5/1990 Hershey et a1.
`
`
`~~~~~~ 395/200
`12/1994 Hunter 91 a1~
`8/1995 Wyn?“ ------------ 364/401
`
`3/1996 Barr}? """"
`‘ 395/184‘01
`9/1997 Chrlstlano ..
`...... 395/615
`1/1998 Rose ..................... 380/4
`
`...... 364/514 C
`2/1998 Wiggens
`4/1998 Wyman ....................................... 705/1
`
`A method and system for monitoring the use of a rented
`software program module. A rented software program mod-
`ule is downloaded from an Internet site operated by an
`authorized software rental service provider along with a
`Check-in/Check-out module and a Software Monitor mod-
`ule. The Check-in/Check-out module provides required
`licensing information for the rented software program mod-
`ule to the Software Monitor module. The Software Monitor
`
`module monitors use of the rented software program module
`while it is in use by the user. Particularly,
`the Software
`Monitor prevents use of the rented software program module
`after the expiration of the licensed usage time or licensed
`number of uses. The Software Monitor prevents unautho-
`rized copying of the software program module. The desired
`software program module may be rented on a pay-per-use
`basis
`'
`
`24 Claims, 6 Drawing Sheets
`
`COMPUTER 20
`
`APPID + DEFAULT CID + LICENSE INFO
`
`
`
`
`
` APPID
`
`
`SM GENERATED CID
`
`LICENSE INF0
`
`Apple Exhibit 1233 Page 00001
`
`Apple Exhibit 1233 Page 00001
`
`
`
`US. Patent
`
`te
`
`6
`
`7n
`
`mm535855.
`
`:-I'll-II'IIIII
`
`lllllllllllllll0«a»?an;71.IIIL
`
`fi035:
`
`mob—20:
`
`//
`
`_NNN
`
`9_mm%_mgmuofiM,_zoF<oE§<
`7”Cw.m255m
`new85:57:mugmmsz.egg—Emus—mm.<55MmE855$5855
`
`
`
`em855592—az~25605
`
`5:21:63“$4282$259:
`50352_$835:.EE5:me455.02.52325852:
`
`
`
`_umSEE
`
`
`
`/can;Gama—09E
`
`
`
`Err—<3:2:07:55.5
`
`5,3$9228
`may—comm9$5.onmango:522:25.3Eéuofi
`
`
`
`
`
`5.02mi
`
`SwamiWzoF<oE§<ozfifiaao
`
`Page 00002
`
`Page 00002
`
`
`
`
`
`
`US. Patent
`
`Jul. 20, 1999
`
`Sheet 2 0f 6
`
`5,925,127
`
`:0?»me
`
`mmm00<
`
`EZ—Om
`
`:me
`
`
`
`cm»nmn
`
`
` _szszmgou.erbium—>58_”EB—mmmafia—mKai—mmn«min—mmm?
`
`
`”EB—mm5:53:5:85£2.sz_:omL6%_
`
`ammlrIamgwowMm>mmmmzmwwfim§awzc
`
`__
`
`
`
`:05n.mm
`
`
`
`VHZOBPHZwZOHv—Ufiu
`
`
`
`55352$5855.
`
`m—Uzmmmgm
`
`omm3mm
`
`
`M8238:no925mano925..mango:$531:63
`5925m0oooo8235:.
`
`c1028mm2%‘8
`...ll...llEE
`
`
`
`ZO—hflbwZOEZHm
`
`cmm
`
`)omm
`
`ON
`
`Page 00003
`
`Page 00003
`
`
`
`
`
`
`
`
`US. Patent
`
`Jul. 20, 1999
`
`Sheet 3 M6
`
`5,925,127
`
`
`
`Page 00004
`
`Page 00004
`
`
`
`US. Patent
`
`Jul. 20, 1999
`
`Sheet 4 M6
`
`5,925,127
`
`I— ___________________________
`
`COMPUTER20 j
`
`
`
`[20
`
`
`
`
`
`
`APPID
`
`APPID + DEFAULT CID + LICENSE INFO
`
`SM GENERATED CID
`
`LICENSE INF0
`
`Page 00005
`
`Page 00005
`
`
`
`US. Patent
`
`Jul. 20, 1999
`
`Sheet 5 M6
`
`5,925,127
`
`500”"‘)
`
`CICO OFFERS
`APPID T0 SM
`
`SM STORES
`
`LICENSE INFO
`
`SM STORES
`APPID AND
`REQUESTS CID
`
`PROGRAM
`MODULE
`LAUNCHED
`
`570
`
`580
`
`5 IO
`
`520
`
`535
`
`CICO RETURNS
`cm T0 SM
`
`
`
`550
`
`SM SENDS
`
`INVALID MSG
`TO CICO
`
`SAME CID
`.,
`AT SM.
`
`90
`
`5
`
`N0
`
`SM LOADED?
`
`YES
`
`PROG. MODULE
`SENDS APPID
`T0 SM 8:
`REQUESTS
`LICENSE INFO
`
`600
`
`ERROR-SM
`INACTIVE
`
`SM RETURNS
`UNIQUE C1D TO
`CICO
`
`630
`
`6IO
`
` APPH)
`
`PRESENT AT
`SM?
`
`
`
`
`5 SO
`
`5
`
`60
`
`CICO STORES
`
`UNIQUE CID
`
`CICO
`TRANSFERS
`LICENSE INFO
`T0 SM
`
`ERROR _
`ILLEGAL USAGE
`
`TIME
`REMAINING?
`
`NO
`
`6 4 0
`
`YES
`
`650
`
`_ZE%Z 5A
`
`._
`
`.
`
`TO 660 (FIG 5(b))
`
`Page 00006
`
`Page 00006
`
`
`
`US. Patent
`
`Jul. 20, 1999
`
`Sheet 6 M6
`
`5,925,127
`
`FROM 650 (FIG 5(a)
`
`
`
`660
` SM RETURNS
`VALID MSG TO
`PROGRAM
`MODULE
`
`
`
`
`
`
`680
`
`685
`
`690
`
`PR
`OGRAM
`RUN
`D
`MO ULE
`
`TIME
`REMAINING?
`
`N
`
`0
`
`SM DELETES
`CICO
`
`SM STARTS
`INTERNAL
`TIMER
`
`670
`
`
`
`
`
`
`
`
`
`_ fig?_ 53
`
`Page 00007
`
`Page 00007
`
`
`
`5,925,127
`
`1
`METHOD AND SYSTEM FOR MONITORING
`THE USE OF RENTED SOFTWARE
`
`FIEI D OF INVENTION
`
`The present invention relates generally to a method and
`system for monitoring the use of a software program
`module, and particularly, relates to a method and system for
`monitoring the use of a rented software program module.
`BACKGROUND OF THE INVENTION
`
`2
`service provider to rent a particular software program mod-
`ule and prevent unauthorized copying of that software
`program module by the renter/user.
`There is a further need in the art for a software program
`module rental method and system that allow software appli-
`cations to be rented on a pay—per—use basis from a remote
`rental service provider while allowing the rental service
`provider to monitor use of the rented software application.
`SUMMARY OF THE INVENTION
`
`The present invention satisfies the above described needs
`by providing a method and system for monitoring the use of
`a rented software program module. A desired software
`program module is registered with a central registration site
`called a Software Registry. The software program module is
`downloaded along with a Check-in/Check-out module and a
`Software Monitor module. All three software modules may
`be downloaded from a remote server operated by an autho-
`rized vendor of the software program module via the Inter-
`net. The Check—in/Check—out module provides required
`licensing information for the rented software program mod-
`ule to the Software Monitor module. The Software Monitor
`module monitors use of the rented software program module
`while it is in use by the user. The desired software program
`module may be rented on a pay—per—use basis.
`Generally described, in one aspect, the present invention
`provides a method for monitoring the use of a computer
`program. The method includes verifying the user’s license to
`use the computer program during a licensed time of use. An
`authoriAation message is issued to the computer program
`which allows the computer program to be used by the user.
`The use of the computer program is tracked during the
`licensed use. Use of the computer program may be termi-
`nated after the elapse of the licensed use. The step of
`tracking the use of the computer program during the licensed
`time of use may include preventing unauthorized copying of
`the computer program.
`The step of verifying the license to use the computer
`program can be accomplished by causing the computer
`program to call a Software Monitor module for monitoring
`the computer program and determining whether the Soft—
`ware Monitor module is active. If the computer program
`determines the Software Monitor module is active,
`the
`computer program sends identification information about
`the computer program to the Software Monitor module. In
`response to receipt of the identification information about
`the computer program, the Software Monitor module deter-
`mines whether the computer program is licensed for use. If
`the computer program determines the Software Monitor
`module is not active, the computer program issues an error
`message to indicate an error state.
`The step in which the Software Monitor module deter—
`mines whether the computer program is licensed for use may
`include causing the Software Monitor module to compare
`the identification information about the computer program
`sent by the computer program with identification informa-
`tion about the computer program maintained by the Soft—
`ware Monitor module. In response to the comparison, the
`Software Monitor module may determine whether the infor-
`mation about the computer program sent by the computer
`program matches the identification information about the
`computer program maintained by the Software Monitor
`module.
`
`The step of tracking the use of the computer program
`during the licensed rise can include the Software Monitor
`module starting a timer to record the time of use of the
`computer program. 'lhe computer program may query the
`Software Monitor module as to whether a licensed time of
`use has expired. In response to the query,
`the Software
`
`Page 00008
`
`15
`
`30
`
`Since the dawning of the computer age, users of comput-
`ers have quickly come to rely on a variety of software
`program modules to assist them in their daily work or play.
`
`Typically, a computer user purchases software program
`
`
`
`modules for use on his or her home or 0 ice computer.
`Familiar software program modules include word process-
`ing applications, data spreadsheet applications and computer
`games. Unfortunately, software program modules can be
`very expensive, and the prospective user may only desire use
`of a particular program module for a brief period of time. For ~
`example, a business may require the use of a tax application
`only during its year-end tax return preparation Likewise, a
`person may desire to be entertained by a particular computer
`game only for a few hours.
`To solve these needs, a variety of computer software
`program modules may be rented for specified periods of
`time from a variety of sources, such as local consumer
`electronics retailers, computer program retailers, or from
`television video and computer games vendors. However, a
`problem with the rental of software program modules arises
`because typically the renter/user has physical control of the
`program module on some media such as a floppy disk.
`Unfortunately, the renter/user often copies the program 10
`module onto a personal floppy disk or onto the hard drive of
`his or her computer. Thus, the renter/user can thwart the
`program module owner’s copyrights and the license agree-
`ments between the program module owner and the rental
`service provider.
`Additionally, the rental service provider has very little
`control over the amount of use that is made of a particular
`program module because it is impractical to rent program
`modules for small periods and because the rental service
`provider has no way of monitoring use of the program
`module. Moreover, attempts to pre-program a set period of
`use, such as four hours, may be easily thwarted by resetting
`the system clock of the user’s computer.
`In the prior art, non-software pay-per-use systems are
`available in such areas as the familiar television pay—per—use
`example. Pay-per-use television is mostly restricted to one-
`time viewing, such as a single movie or sports event. Some
`pay-per-use systems include standard hourly rates, daily
`rates, or weekend. rates. Unfortunately, as with the rental of
`software program modules, little has been done to prevent
`the renter of such pay-per-use programs from illegally
`copying the programs for subsequent unpaid and unlicensec
`use.
`
`35
`
`4O
`
`55
`
`Therefore, there is a need in the art for a software program
`module rental method and system that allow the renta
`service provider to monitor the use of rented software
`program modules.
`There is also a need in the art for a software program
`module rental method and system that allow the renta
`service provider to rent a particular software program mod—
`ule for a set period and to prevent the renter/user of that
`program module from unauthorized extension of the renta
`period.
`There is also a need in the art for a software program
`module rental method and system that allow the renta
`
`
`
`60
`
`65
`
`Page 00008
`
`
`
`5,925,127
`
`3
`Monitor module can determine whether the licensed time of
`use has expired. The Software Monitor module may deter-
`mine whether the licensed time of use has expired by reading
`the elapsed time of use recorded by the timer and comparing
`the elapsed time of use with the licensed time of use.
`Alternatively, the step of tracking the use of the computer
`program during the licensed use can include the Software
`Monitor module starting a counter to record the total number
`of uses of the computer program; querying the Software
`Monitor module as to whether the licensed number of uses
`has been expended; and in response to the query, causing the
`Software Monitor module to determine whether the licensed
`number of uses has been expended. The step of causing said
`Software Monitor module to determine whether the licensed
`number of uses has been expended, comprises the steps of
`reading the total number of uses recorded by the counter;
`and comparing the total number of uses with the licensed
`number of uses. The method may also prevent unauthorized
`copying of said computer program.
`In another aspect of the present invention, a Check-in/
`Check-out (CICO) module, a computer program, and a
`Software Monitor module are launched onto a user’s com-
`puter. The computer program is launched after the CICO
`module is launched. The CICO module provides licensing
`information for
`the computer program to the Software
`Monitor module. In response to the licensing information
`provided by the CICO module, the Software Monitor mod-
`ule authorizes use of the computer program. Preferably, the
`Software Monitor module stores the licensing information
`and deletes the CICO module after the Software Monitor
`module receives the licensing information from the CICO
`module.
`
`Preferably the Software Monitor module also secures the
`CICO module from unauthorized use. The step of securing
`the CICO module from unauthorized use may include caus—
`ing the Software Monitor module to generate a unique
`identification for the CICO module. The Software Monitor
`encodes the CICO module with the unique identification.
`The Software Monitor module stores the unique CICO
`module identification. After a first use of the CICO module,
`the Software Monitor module may prevent subsequent use
`of the CICO module by causing the Software Monitor to
`check whether the unique identification for the CICO mod-
`ule previously has been used.
`Prior to the step of causing the Software Monitor module
`to generate a unique identification for the CICO module, the
`CICO module preferably sends an identification for the
`computer program to the Software Monitor module, The
`Software Monitor module may store the identification for
`the computer program in a database maintained by the
`Software Monitor module. The Software Monitor module
`also may request a CICO module identification (CID) from
`the CICO module. In response to the request, the CICO
`module sends a CID to the Software Monitor module. In
`response to receipt of the CID, the Software Monitor module
`may perform a database lookup for a previously stored CID
`matching the CID received from the CICO module. If the
`Software Monitor module finds a previously stored CID
`matching the CID received from the CICO module,
`the
`Software Monitor module may send an invalid message to
`the CICO module.
`
`In another aspect of the present invention, a computer-
`readable medium is provided. A Software Monitor module
`for monitoring the use of a computer program is stored on
`the computer—readable medium. The Software Monitor mod—
`ule has instructions which, when executed by a computer,
`perform a number of steps. The Software Monitor module
`
`15
`
`30
`
`35
`
`4O
`
`50
`
`55
`
`60
`
`65
`
`4
`receives identification information for the computer pro-
`gram from a Check-in/Check-out (CICO) module. The Soft-
`ware Monitor module verifies the CICO module has not
`been previously used and receives licensing information
`from the CICO module for the computer program. The
`Software Monitor module verifies the license to use the
`computer program and issues an authorization message to
`the computer program. The Software Monitor module tracks
`the use of the computer program during the licensed use.
`The step of tracking the use of the computer program
`during the licensed time of use may include preventing
`unauthorized copying of the computer program. That step
`may also include preventing use of the computer program
`after the expiration of the licensed time of use. Alternatively,
`that step may also include preventing use of the computer
`program after a licensed number of uses has been expended.
`In another aspect of the present invention, a system for
`monitoring the use of a computer program is provided which
`includes a Software Monitor module and a Check-in/Check
`out module. The CICO module is operative to transfer
`identification information for the computer program to the
`Software Monitor module and to transfer licensing informa-
`tion for the computer program to the Software Monitor
`module. The Software Monitor module is operative to
`receive the identification information from the CICO
`module, to receive the licensing information from the CICO
`module,
`to verify license to use the computer program
`during a licensed time of use,
`to issue an authorization
`message to the computer program, and to track the use of the
`computer program during the licensed time of use. The
`Software Monitor module may be further operative to deter—
`mine whether the CICO module previously has been used,
`and to delete the CICO module after receiving the licensing
`information from the CICO module. The Software Monitor
`module may be further operative to prevent the computer
`program from running longer than the licensed time of use,
`and to prevent unauthorized copying of the computer pro-
`gram.
`In another aspect of the present invention, a method for
`monitoring the use of a computer program rented via tie
`Internet is provided. A computer progam is registered on a
`Software Registry, and the Software Registry may be located
`on a remote server. The computer program is downloaded
`from a remote server to a local computing device via tie
`Internet. A Check-in/Check-out (CICO) module and a So t-
`ware Monitor module are also downloaded from the remote
`server to the local computing device via the Internet. Iden-
`tification information for the computer program is received
`by the Software Monitor module from the CICO modu e.
`The Software Monitor module verifies that the CICO mod-
`ule has not been previously used. Licensing information is
`received by the Software Monitor module from the CICO
`module for the computer program and the license to use tie
`computer program during a licensed time of use is verified.
`An authorization message is issued by the Software Monitor
`module to the computer program. The Software Monitor
`module tracks use of the computer program during tie
`licensed time of use.
`
`These and other features, advantages, and aspects of tie
`present
`invention will be more clearly understood and
`appreciated from a review of the following detailed descri
`—
`tion of the disclosed embodiments and by reference to tie
`appended drawings and claims.
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`
`
`FIG. 1 is a block diagram of a computer that provides a
`portion of the operating environment for an exemplary
`embodiment of the present invention.
`
`Page 00009
`
`Page 00009
`
`
`
`5,925,127
`
`5
`HG. 2 is a functional block diagram of the Internet
`representing a portion of the operating environment of an
`exemplary embodiment of the present invention.
`HG. 3 is a simplified block diagram illustrating the
`downloading of software program modules from a remote
`server to a user’s computer via the Internet.
`HG. 4 is a simplified block diagram illustrating the
`interaction between three separate software program mod-
`ules embodying an exemplary embodiment of the present
`invention.
`
`HGS. 5(a) and 5(1)) are flow diagrams illustrating the
`operation of an exemplary embodiment of the present inven-
`tion.
`
`DETAILED DESCRIPTION
`
`The present invention is directed to a method and system
`for monitoring the use of a rented software program module
`by a rental service provider of that software program mod-
`ule. As will be understood, the present invention may be
`used for monitoring a variety of program modules, such as
`application programs, operating system modules, Internet
`browsers, etc. In an exemplary embodiment of the present
`invention, an application program, such as “WORD,” ver-
`sion 8.0, produced by Microsoft Corporation of Redmond,
`Wash, may be rented by an end user for use during some
`specified period of time. The present invention allows a
`rental service provider to track the use of the rented software
`program module to prevent unauthorized extension of a
`licensed period of use and to prevent unauthorized copying
`of the rented software program module.
`The detailed description which follows is represented
`largely in terms of processes and symbolic representations
`of operations by conventional computer components,
`including a processor, memory storage devices for
`the
`processor, connected display devices, and input devices.
`Furthermore,
`these processes and operations may utilize
`conventional computer components in a heterogeneous dis—
`tributed computing environment,
`including remote file
`servers, computer servers, and memory storage devices.
`Each of these conventional distributed computing compo-
`nents is accessible by the processor via a communication
`network.
`
`The processes and operations performed by the computer
`include the manipulation of signals by a processor or remote
`server and the maintenance of these signals within data
`structures resident in one or more of the local or remote
`memory storage devices. Such data structures impose a
`physical organization upon the collection of data stored
`within a memory storage device and represent specific
`electrical or magnetic elements. These symbolic represen-
`tations are the means used by those skilled in the art of
`computer programming and computer construction to most
`effectively convey teachings and discoveries to others
`skilled in the art.
`For the purposes of this discussion, a process is generally
`conceived to be a sequence of computer-executed steps
`leading to a desired result. These steps generally require
`physical manipulations of physical quantities. Usually,
`though not necessarily, these quantities take the form of
`electrical, magnetic, or optical signals capable of being
`stored,
`transferred, combined, compared, or otherwise
`manipulated. It is conventional for those skilled in the art to
`refer to these signals as bits, bytes, words, values, elements,
`symbols, characters,
`terms, numbers, points, records,
`objects, images, files or the like. It should be kept in mind,
`however, that these and similar terms should be associated
`
`15
`
`30
`
`35
`
`4O
`
`55
`
`60
`
`65
`
`6
`with appropriate physical quantities for computer
`operations, and that these terms are merely conventional
`labels applied to physical quantities that exist within and
`during operation of the computer.
`It should also be understood that manipulations within the
`computer are often referred to in terms such as adding,
`calling, comparing, receiving, sending,
`transferring,
`transmitting, etc. which are often associated with manual
`operations performed by a human operator. The operations
`described herein are machine operations performed in con—
`junction with various input provided by a human operator or
`user that interacts with the computer.
`Referring now to the drawings, in which like numerals
`represent
`like elements throughout
`the several figures,
`aspects of the present invention and the preferred to oper-
`ating environment will be described.
`Exemplary Operating Environment
`HG. 1 and the following discussion are intended to
`provide a brief, general description of a suitable computing
`environment in which the invention may be implemented.
`While the invention will be described in the general context
`of an program module that runs on an operating system in
`conjunction with a personal computer, those skilled in the art
`will recognize that the invention also may be implemented
`in combination with other program modules.
`Generally, program modules include routines, programs,
`components, data structures, etc.
`that perform particular
`tasks or implement particular abstract data types. Moreover,
`those skilled in the art will appreciate that the invention may
`be practiced with other computer system configurations,
`including hand—held devices, multiprocessor systems,
`microprocessor-based or programmable consumer
`electronics, minicomputers, mainframe computers, and the
`like. The invention may also be practiced in distributed
`computing environments where tasks are performed by
`remote processing devices that are linked through a com-
`munications network.
`In a distributed computing
`environment, program modules may be located in both local
`and remote memory storage devices.
`With reference to FIG. 1, an exemplary system for imple-
`menting the invention includes a conventional personal
`computer 20,
`including a processing unit 21, a system
`memory 22, and a system bus 23 that couples the system
`memory to the processing unit 21. The system memory 22
`includes read only memory (ROM) 24 and random access
`memory (RAM) 25. Abasic input/output system 26 (BIOS),
`containing the basic routines that help to transfer informa-
`tion between elements within the personal computer 20,
`such as during start-11p, is stored in ROM 24. The personal
`computer 20 further includes a hard disk drive 27, a mag-
`netic disk drive 28, e.g., to read from or write to a removable
`disk 29, and an optical disk drive 30, e.g., for reading a
`CD-ROM disk 31 or to read from or write to other optical
`media. The hard disk drive 27, magnetic disk drive 28, and
`optical disk drive 30 are connected to the system bus 23 by
`a hard disk drive interface 32, a magnetic disk drive inter-
`face 33, and an optical drive interface 34, respectively. The
`drives and their associated computer-readable media provide
`nonvolatile storage for the personal computer 20. Although
`the description of computer—readable media above refers to
`a hard disk, a removable magnetic disk and a CD-ROM disk,
`it should be appreciated by those skilled in the art that other
`types of media which are readable by a computer, such as
`magletic cassettes, flash memory cards, digital video disks,
`Bernoulli cartridges, and the like, may also be used in the
`exemplary operating environment.
`
`Page 00010
`
`Page 00010
`
`
`
`5,925,127
`
`7
`Anumber of program modules may be stored in the drives
`and RAM 25, including an operating system 35, one or more
`program modules 36, other program modules 37, and pro-
`gram data 38. Auser may enter commands and information
`into the personal computer 20 through a keyboard 40 and
`pointing device, such as a mouse 42. Other input devices
`(not shown) may include a microphone, joystick, game pad,
`satellite dish, scanner, or the like. These and other input
`devices are often connected to the processing unit 21
`through a serial port interface 46 that is coupled to the
`system bus, but may be connected by other interfaces, such
`as a game port or a universal serial bus (USB). Amonitor 47
`or other type of display device is also connected to the
`system bus 23 Via an interface, such as a Video adapter 48.
`In addition to the monitor, personal computers typically
`include other peripheral output devices (not shown), such as
`speakers or printers.
`The personal computer 20 may operate in a to networked
`environment using logical connections to one or more
`remote computers, such as a remote computer 49. The ~
`remote computer 49 may be a server, a router, a peer device
`or other common network node, and typically includes many
`or all of the elements described relative to the personal
`computer 20, although only a memory storage device 50 has
`been illustrated in FIG. 1. The logical connections depicted
`in FIG. 1 include a local area network (LAN) 51 and a wide
`area network (WAN) 52. Such networking environments are
`commonplace in offices, enterprise—wide computer
`networks, intranets and the Internet, which is illustrated in
`FIG. 2.
`
`15
`
`30
`
`When used in a LAN networking environment, the per—
`sonal computer 20 is connected to the LAN 51 through a
`network interface 53. When used in a WAN networking
`environment, the personal computer 20 typically includes a
`modem 54 or other means for establishing communications
`over the WAN 52, such as the Internet. The modem 54,
`which may be internal or external, is connected to the system
`bus 23 via the serial port
`interface 46. In a networked
`environment, program modules depicted relative to the
`personal computer 20, or portions thereof, may be stored in
`the remote memory storage device. It will be appreciated
`that the network connections shown are exemplary and other
`means of establishing a communications link between the
`computers may be used.
`As will be discussed in detail below, an exemplary
`embodiment of the present invention provides for the down-
`loading of rented software program modules from a remote
`server via the Internet. The Internet has in recent years
`become a mainstream commercial communication resource.
`E-mail and remote access to computer servers are currently
`widely used tools for reaching customers.
`The participants in the Internet are a wide variety of
`machines, organizations, and individuals, all able to com-
`municate and share information. Physically, the Internet is
`an interconnected collection of thousands of computer
`networks,
`tens of thousands of computers, and tens of
`millions of individual stations operated by end users. The
`user of the preferred embodiment of the present invention is
`preferably such an end-user. As is well known to those
`skilled in the art, to access an Internet site, an end user need
`only transmit the site’s universal resource locator (URL)
`created in accordance with the standardized Domain Name
`System (DNS).
`FIG. 2 is a functional block diagram of the Internet 60, a
`distributed computing network that provides a portion of the
`operating environment for the preferred embodiment of the
`
`35
`
`4O
`
`55
`
`60
`
`65
`
`8
`present invention. The Internet 60 includes a plurality of
`backbone networks 6511 through 651. These backbone net—
`works form an international grid of high-speed, high-
`capacity data communication lines interconnecting a num-
`ber of massive computers that serve as large-scale
`processing points or nodes. The backbone networks 65 are
`interconnected with each other through a plurality of net-
`work access points 70a through 70/1. These network access
`points are interfaces through which information is commu-
`nicated from one backbone network to another. The con-
`figuration and operation of the Internet backbone is well
`known to those skilled in the art and will not be further
`described herein.
`
`The Internet 60 includes a plurality of Internet sites 75a
`through 75n. These Internet sites are generally operated by
`corporations, universities, and governmental organizations.
`Each Internet site may include one or more repositories of
`information and resources that may be accessed over the
`Internet. Each Internet site, as represented by the Internet
`site 75a, may include a plurality of web servers 8051 through
`8011. Each of these web servers may provide “home pages”
`to be visited, files to be read or downloaded, applications to
`be shared, and the like.
`The Internet 60 also includes a plurality of points of
`presence 8511 through 8511. that are operated by local access
`providers. These local access providers are in the business of
`providing Internet access to end user stations. In the pre—
`ferred embodiment of the present invention,
`the personal
`computer 20, shown in FIG. 1, is an end-user station. As
`shown in FIG. 2, the point of presence 85a provides Internet
`access to the personal computer 20 (end user station) and
`other end user stations 88a through 8811,
`the point of
`presence 85b provides Internet access to end user stations
`8811‘ through 8811', etc. All together, the points of presence 85
`can provide Internet access to numerous end-user stations
`88. Each point of presence 85, and each end user 88, may,
`but need not, provide home pages [or access by others on the
`Internet 60.
`
`Description of an Exemplary Embodiment
`
`As briefly discussed above, the present invention allows
`a software program module rental service provider to moni-
`tor use of rented software program modules downloaded
`onto a user’s computer from a memory storage device, such
`as a remote server 80a (FIG. 2) via the Internet. As is well
`known to those skilled in the art, software program modules
`may include a variety of programs, such as software
`applications, operating system modules, Internet browsers,
`utilities programs, etc. In an exemplary embodiment, the
`present invention is used to monitor the use of program
`modules downloaded to a user’s computer over the Internet,
`from a remote server operated by the rental service provider