throbber
Ulllted States Patent
`
`[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 100
`
`Page 0000
`
`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 80

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket