`
`[19]
`
`[11] Patent Number:
`
`5,925,127
`
`Ahmad
`
`[45] Date of Patent:
`
`Jul. 20, 1999
`
`US005925127A
`
`[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.
`
`OTHER PUBLICATIONS
`Kramer, Matt, “For Rent: Apps Over Net,” PC Week, Apr.
`21, 1997, P. 16.
`
`Primary Examiner—Joseph E. Palys
`Attorney, Agent, or Firm—Jones & Askew, LLP
`
`[57]
`
`ABSTRACT
`
`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
`
`[21] Appl. No.: 08/831,801
`
`[22]
`
`Filed:
`
`Apr. 9, 1997
`
`Re]ated U_s_ Application Data
`
`G06F 11/00
`Int‘ Cl'6
`[51]
`
`[52] U-S- CL . . . . . . . . . . . .
`. . . . . . . . . . . . . . .. 713/200
`[58] Field of Search ............................. .. 395/182.01, 186,
`395/188.01, 187.01; 380/3, 9, 23, 25; 707/203,
`9, 10; 702/203, 9, 10
`
`[59]
`
`References Cited
`Us. PATENT DOCUMENTS
`
`.... .. 364/200
`.... .. 395/200
`- ~ ~ ~ ~~ 364/401
`‘
`9/1997 Christiano ..
`. . . . . . . . .. 380/4
`1/1998 Rose . . . . . . . . . . .
`.... .. 364/514 C
`2/1998 Wiggens
`4/1998 Wyman ..................................... .. 705/1
`
`
`
`5/1990 Hershey et al.
`12/1994 Hunter et al.
`8/1995 WYman - - - - - -
`3/1996 Barritz ..... ..
`
`COMPUTER 20 /1
`
`_ T " — _ '_ — _ _ _ “ “ — ‘ * — ‘ — — — — — - —|
`
`
`
`
`APPID + DEFAULT CH) + LICENSE INFO
`
`SM GENERATED CID
`
`LICENSE INF0
`
`APPID
`
`Apple Exhibit 1003
`
`Page 00001
`
`4,924,378
`5,375,206
`594389508
`5,499,340
`
`5,671,412
`5,708,709
`5,717,604
`5,745,879
`
`I‘
`
`Apple Exhibit 1003
`Page 00001
`
`
`
`U.S. Patent
`
`Jul. 20, 1999
`
`Sheet 1 of 6
`
`5,925,127
`
`5:2q<oo._“mmianozE<-0O¢._
`
`INMHEPC
`
`motzoi/
`
`_~
`
`/,ozammoomm
`
`HHZDuz§<um._o
`
`Ememwm
`
`ZO=_<O—Amn—<
`
`mS~<-UO-m
`
`
`zmoaemz_vEo.$._.mz.55..iimmq<u:.._oOE._HZU<SV5552:
`
`
`
`
`
`mo<,.:m:.z_mu<..Em.~z_mu<,.=::.z.9:27:mu<..Emaz_<._.<n
`
`
`
`
`mmm—.—..E<~_GO~E
`
`
`
`5.5WEEDV55H>~....—Q
`
`m2<mwo~E
`
`H_.—.OEH¢
`
`maeamzoo
`
`1|IL
`
`MMOBEHZ
`
`<5?mars.1llllII
`
`
`
`ZO_.H<U~wEm<UZ~.—.<-mmO
`
`
`
`
`
`zo:.<oE.E<m2<mwo~ESwami
`
`Page 00002
`
`
`
`U.S. Patent
`
`99910:2M...J
`
`Sheet 2 of 6
`
`5,925,127
`
`vEo.$,_.mz
`
`E7309
`
`
`
`mmmUO<5.9552mzomuofi.
`
`Amo
`
`
`
`5.03.52mzo85<m
`
`
`
`5.9552mzomxofi
`
` IIIIJ____?zm=_zmm>oo.er:m~a>_zB_Mm>=mmooomH>mmmxmimmm_mm>~Emmm? _|lIIII
`
`
`mm>:mm5:5_Ems5:545.25.___.omLnow68_d/__63_IIamehom_.
`
`M_Ia%mm.z@w=we.mzwaI,_c
`
`
`
`zomoIIIIIIII
`
`
`
`mozmmmmmoooooaozmmmmmmozumfiino92:5
`
`
`
`
`
`
`
`,3ez.o._no925..mmE>om._mmmoo<A<UOA0mm
`
`
`
`
`
`:n_mmzdmmEmaBmwwomm
`
`IEII...lI
`
`
`
`zoifim3.ZO~.—.<.Hm
`
`Page 00003
`
`
`
`U.S. Patent
`
`99910:2l.uJ
`
`Sheet 3 of 6
`
`5,925,127
`
`Page 00004
`
`
`
`U.S. Patent
`
`Jul. 20, 1999
`
`Sheet 4 of6
`
`5,925,127
`
`T — “ ‘ — _ “ ” _ ‘ “ ‘ ‘ ‘ _ ‘ “ ‘ — “ “ ‘ ‘ ‘ — " ‘ “
`
`COMPUTER20 /I
`
`I20
`
`APPID + DEFAULT CID + LICENSE INFO
`
`SM GENERATED CID
`
`LICENSE INFO
`
`Page 00005
`
`
`
`U.S. Patent
`
`Jul. 20, 1999
`
`Sheet 5 of6
`
`5,925,127
`
`500 /j
`
`CICO OFFERS
`APPID T0 SM
`
`SM STORES
`LICENSE INFO
`
`SM STORES
`APPID AND
`REQUESTS CID
`
`PROGRAM
`MODULE
`LAUNCHED
`
`SM SENDS
`INVALID MSG
`TO CICO
`
`CICO RETURNS
`CD) To SM
`
`SM RETURNS
`UNIQUE cm T0
`CICO
`
`CICO STORES
`UNIQUE CID
`
`CICO
`TRANSFERS
`LICENSE INFO
`T0 SM
`
`SM LOADED?
`
`NO
`
`YES
`
`PROG. MODULE
`SENDS APPID
`TO SM &
`REQUESTS
`LICENSE INFO
`
`6lO
`
`APPH)
`PRESENT AT
`SM?
`
`ERROR-SM
`INACTIVE
`
`ERROR -
`ILLEGAL USAGE
`
`TIME
`REMAINING?
`
`N0
`
`YES
`
`650
`
`T0 660 (FIG 5(b))
`
`_15_—’%_ 5A
`
`Page 00006
`
`
`
`U.S. Patent
`
`Jul. 20, 1999
`
`Sheet 6 of6
`
`5,925,127
`
`FROM 650 (FIG 5(a)
`
`SM RETURNS
`VALID MSG TO
`PROGRAM
`MODULE
`
`SM DELETES
`CICO
`
`SM STARTS
`INTERNAL
`TIMER
`
`PR
`OGRAM
`RUN
`D
`MO ULE
`
`TIIVIE
`REMAINING?
`
`0N
`
`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
`
`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. I.ikewise, 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 lo
`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 tl1e 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-11se programs from illegally
`copying the programs for subsequent unpaid and unlicensec
`use.
`
`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
`
`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 hcensed 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 use can include the Software Monitor
`module starting a timer to record the time of use of the
`computer program. The 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
`
`
`
`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
`
`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
`
`
`
`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 tl1e 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.
`
`and 5(1)) are flow diagrams illustrating the
`HGS.
`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
`
`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
`FIG. 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 11nit 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
`magietic cassettes, flash memory cards, digital video disks,
`Bernoulli cartridges, and the like, may also be used in the
`exemplary operating environment.
`
`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 oflices, enterprise—wide computer
`networks, intranets and the Internet, which is illustrated in
`FIG. 2.
`
`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.
`I11 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 M
`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
`
`8
`present invention. The Internet 60 includes a plurality of
`backbone networks 6511 through 6511. 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 70:1 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 8054 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 for 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.
`Referring now to FIG. 2, a user desiring to rent a
`particular program module, logs onto the Internet, as dis-
`cussed above, and accesses the Internet site 75a of the
`software rental service provider. The user then locates the
`rental server 8