throbber
United States Patent [19J
`Ahmad
`
`I lllll llllllll Ill lllll lllll lllll lllll lllll 111111111111111111111111111111111
`US005925127 A
`[11] Patent Number:
`[45] Date of Patent:
`
`5,925,127
`Jul. 20, 1999
`
`[54] METHOD AND SYSTEM FOR MONITORING
`THE USE OF RENTED SOFTWARE
`
`5,758,069
`5,890,664
`
`5/1998 Olsen ................................. 396/187.01
`................................ 380/4
`8/1998 Coley et al.
`
`[75]
`
`Inventor: Arshad Ahmad, Bellevue, Wash.
`
`[73] Assignee: Microsoft Corporation, Redmond,
`Wash.
`
`[21] Appl. No.: 08/831,801
`
`[22] Filed:
`
`Apr. 9, 1997
`
`Related U.S. Application Data
`
`Int. Cl.6
`...................................................... G06F 11/00
`[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
`
`[56]
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`4,924,378
`5,375,206
`5,438,508
`5,499,340
`5,671,412
`5,708,709
`5,717,604
`5,745,879
`
`.. ... ... ... ... .... ... ... 364/200
`5 /1990 Hershey et al.
`12/1994 Hunter et al. .. ... ... ... ... .... ... ... ... 395 /200
`8/1995 Wyman ................................... 364/401
`3/1996 Barritz ............................... 395/184.01
`9 /1997 Christiano ... ... .... ... ... ... ... ... .... .. 395 /615
`1/1998 Rose ............................................ 380/4
`2/1998 Wiggens ............................. 364/514 C
`4/1998 Wyman ....................................... 705/1
`
`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(cid:173)
`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(cid:173)
`ule. The Check-in/Check-out module provides required
`licensing information for the rented software program mod(cid:173)
`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(cid:173)
`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 )
`
`,-------------1 _________ _
`------,
`I
`I
`I
`I
`I
`
`120
`
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`L _________ _
`
`140
`
`APPID +DEFAULT CID+ LICENSE INFO
`
`CICO
`
`SM GENERA TED CID
`
`SOFI'WARE
`MONITOR
`
`LICENSE INFO
`
`PROGRAM
`MODULE
`
`100
`
`-------------------
`
`IPR2016-01271
`UNIFIED 1029
`
`

`
`.....::.
`N
`~
`....
`Ul
`N
`\C
`....
`Ul
`
`O'I
`
`'"""' 0 .....,
`~ .....
`rF.J. =(cid:173)~
`
`~ F-
`
`\C
`\C
`'"""'
`\C
`~=
`N
`
`~ = ......
`~ ......
`~
`•
`\JJ.
`d •
`
`l LOCAL AREA
`'
`I L ________ l
`I
`I
`I
`
`47
`
`\
`
`MONITOR
`\
`
`'\
`
`_fr."-') 1
`
`1· =r-
`
`I
`
`1
`
`I
`I
`I
`I
`
`-
`
`20
`
`......... ..
`
`............. ..
`
`APPLICATION
`
`PROGRAMS
`
`
`
`3€>
`
`...............................
`
`COMPUTER
`
`REMOTE
`
`49
`
`52
`
`ii iii iii iii I B
`KEYBOARD
`
`DATA
`
`42
`
`·.
`
`I NETWORK
`
`INTERFACE
`NETWORK
`
`INTERFACE
`SERIAL PORT
`
`51
`
`4&
`
`------;;-NETWORK
`1 WIDE AREA
`r--_,
`I
`I
`
`I
`1
`I
`
`53
`
`I
`
`34
`
`33
`
`INTERFACE
`
`DISK
`
`OPTICAL
`
`SYSTEM BUS
`
`I
`
`ADAPTER I
`VIDEO
`
`( 48
`
`"l
`
`PROGRAM
`
`MODULES
`PROGRAM
`
`OTHER
`
`37 38~ .......... .
`
`················· ... 29~31
`··.
`
`(@)
`·:...::: .. ::-\ L~ \o t
`
`·· .... 28
`
`27
`
`OPERATING I APPLICATION
`................. ·
`.. ·
`...
`. ··
`..
`·"
`.... ·····
`
`PROGRAMS
`
`SYSTEM
`
`
`
`3€>
`
`35
`
`....... ·
`.. ·
`.·
`
`INTERFACE
`DISK DRIVE
`MAGNETIC
`
`INTERFACE
`
`DRIVE
`
`HARD DISK
`
`____ ....,
`
`23
`
`UNIT
`
`PROCESSING
`
`I
`
`I
`
`22 c21
`
`------
`
`PROGRAM
`
`------~
`
`------
`
`DATA
`
`[-
`
`PROGRAM MODULES
`37
`
`OTHER
`
`PROGRAMS
`APPLICATION 36
`
`SYSTEM
`
`OPERATING 35
`
`~1
`
`(RAM) 25
`
`BIOS
`
`1
`
`--------
`
`(ROM) ~
`SYSTEM MEMORY
`
`-----------------------~
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`r: --
`
`

`
`.....::.
`N
`~
`....
`Ul
`N
`\C
`....
`Ul
`
`O'I
`0 .....,
`N
`~ .....
`'Jl =(cid:173)~
`
`~ F-
`
`\C
`\C
`""""
`\C
`~=
`N
`
`~ = ......
`
`~ ......
`~
`•
`\JJ.
`d •
`
`~
`
`60
`
`I
`__ If, .---i 2
`
`Lil-
`
`I
`
`88n11
`
`• ••
`
`88b'
`
`•••
`
`STATION
`••• END USER
`
`STATION
`END-USER
`
`COMPUTER
`PERSONAL
`
`70n
`
`POINT
`ACCESS
`
`NETWORK
`
`~-----
`
`•
`•
`•
`
`i----~~~-___, NETWORK
`
`POINT
`ACCESS
`
`• • • • •
`85c
`
`85b
`
`88n
`
`20
`
`POINT OF PRESENCE
`
`LOCAL ACCESS PROVIDER
`
`BACKBONE NETWORK
`
`65n
`
`GSb
`
`• • •
`
`BACKBONE NETWORK
`
`BACKBONE NETWORK
`
`700J
`
`POINT
`ACCESS
`
`NETWORK
`
`65C>.J
`
`(GOVERNMENT)
`(UNIVERSITY) ••• WEB SERVER
`
`SERVER
`
`WEB
`
`• • •
`
`SERVER
`
`WEB
`
`SERVER
`RENTAL
`
`75n
`
`75b
`
`raon I
`
`BOb
`
`L-------________ _J
`I
`I
`I
`I
`I
`I
`I WEB SERVER
`I
`I 80o.;
`i1NTERNET SITE (RENTAL SERVICE PROVIDER)-1JSo.,
`
`

`
`U.S. Patent
`
`Jul. 20, 1999
`
`Sheet 3 of 6
`
`5,925,127
`
`750.,
`
`,---_':=1_ ------------, I
`
`~o
`
`60
`
`USER'S
`COMPUI'ER
`
`i.--
`
`~
`
`~
`
`I 800..\
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`
`I 3
`LA·
`I Uj-
`
`(95
`
`SOITWARE
`MONITOR
`
`140
`-
`
`CICO
`
`120
`-
`
`PROGRAM
`MODULE
`
`100
`-
`
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`l
`I
`I
`I
`I
`L - - - - - - - - - - - - ______ j
`
`

`
`U.S. Patent
`
`Jul. 20, 1999
`
`Sheet 4 of 6
`
`5,925,127
`
`COMPUTER 20 ~
`
`, _____________ l _____________ _
`I
`
`120
`
`140
`
`APPID +DEFAULT CID+ LICENSE INFO
`
`CICO
`
`SM GENERA TED CID
`
`II
`I
`I
`I
`I
`
`J
`
`I
`I
`I
`
`J
`
`I
`I
`I
`I
`:
`I
`I
`I
`I
`I
`I
`I
`:
`L _____________________________ I
`
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`:
`I
`I
`I
`I
`/
`
`SOFTWARE
`MONITOR
`
`~~~
`
`APPID
`
`PROGRAM
`MODULE
`
`100
`
`3lfllj'- 4-
`1
`
`

`
`U.S. Patent
`
`Jul. 20, 1999
`
`Sheet 5 of 6
`
`5,925,127
`
`CICO OFFERS
`APPIDTOSM
`
`SM STORES
`LICENSE INFO
`
`550
`
`CICOSTORES
`UNIQUE CID
`
`560
`
`CICO
`TRANSFERS
`LICENSE INFO
`TOSM
`
`LA·
`I 5A
`I 37
`
`ERROR(cid:173)
`ILLEGAL USAGE
`
`640
`
`650
`
`TO 660 (F1G S(b))
`
`

`
`U.S. Patent
`
`Jul. 20, 1999
`
`Sheet 6 of 6
`
`5,925,127
`
`FROM 650 (FIG S(a)
`
`SM RETURNS
`VALID MSG TO
`PROGRAM
`MODULE
`
`SM DELETES
`CICO
`
`SM STARTS
`INTERNAL
`TIMER
`
`RUN PROGRAM
`MODULE
`
`660
`
`670
`
`680
`
`685
`
`6~0
`
`YES
`
`USE OF
`PROGRAM
`MODULE
`TERMINATED
`
`Di:./'' 58
`
`I
`
`

`
`5,925,127
`
`1
`METHOD AND SYSTEM FOR MONITORING
`THE USE OF RENTED SOFTWARE
`
`FIELD 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.
`
`2
`service provider to rent a particular software program mod(cid:173)
`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
`5 module rental method and system that allow software appli(cid:173)
`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.
`
`BACKGROUND OF THE INVENTION
`
`10
`
`SUMMARY OF THE INVENTION
`
`Since the dawning of the computer age, users of comput(cid:173)
`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 office computer.
`Familiar software program modules include word process(cid:173)
`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 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(cid:173)
`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 progr~m
`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(cid:173)
`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 unlicensed
`use.
`Therefore, there is a need in the art for a software program
`module rental method and system that allow the rental
`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 rental
`service provider to rent a particular software program mod(cid:173)
`ule for a set period and to prevent the renter/user of that
`program module from unauthorized extension of the rental
`period.
`There is also a need in the art for a software program
`module rental method and system that allow the rental
`
`25
`
`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
`15 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(cid:173)
`rized vendor of the software program module via the Inter-
`20 net. The Check-in/Check-out module provides required
`licensing information for the rented software program mod(cid:173)
`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
`authorization message is issued to the computer program
`30 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(cid:173)
`nated after the elapse of the licensed use. The step of
`tracking the use of the computer program during the licensed
`35 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
`40 the computer program and determining whether the Soft(cid:173)
`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
`45 response to receipt of the identification information about
`the computer program, the Software Monitor module deter(cid:173)
`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
`50 message to indicate an error state.
`The step in which the Software Monitor module deter(cid:173)
`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-
`55 tion about the computer program maintained by the Soft(cid:173)
`ware Monitor module. In response to the comparison, the
`Software Monitor module may determine whether the infor(cid:173)
`mation about the computer program sent by the computer
`program matches the identification information about .the
`60 computer program maintained by the Software Momtor
`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
`65 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
`
`

`
`5,925,127
`
`5
`
`3
`Monitor module can determine whether the licensed time of
`use has expired. The Software Monitor module may deter(cid:173)
`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(cid:173)
`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(cid:173)
`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(cid:173)
`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, 40
`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(cid:173)
`ule previously has been used.
`Prior to the step of causing the Software Monitor module 45
`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 50
`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 55
`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 60
`the CICO module.
`In another aspect of the present invention, a computer(cid:173)
`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- 65
`ule has instructions which, when executed by a computer,
`perform a number of steps. The Software Monitor module
`
`10
`
`4
`receives identification information for the computer pro(cid:173)
`gram from a Check-in/Check-out (CICO) module. The Soft(cid:173)
`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
`15 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
`20 identification information for the computer program to the
`Software Monitor module and to transfer licensing informa(cid:173)
`tion for the computer program to the Software Monitor
`module. The Software Monitor module is operative to
`receive the identification information from the CICO
`25 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
`30 Software Monitor module may be further operative to deter(cid:173)
`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
`35 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 the
`Internet is provided. A computer program 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 the
`Internet. A Check-in/Check-out (CICO) module and a Soft(cid:173)
`ware Monitor module are also downloaded from the remote
`server to the local computing device via the Internet. Iden(cid:173)
`tification information for the computer program is received
`by the Software Monitor module from the CICO module.
`The Software Monitor module verifies that the CICO mod(cid:173)
`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 the
`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 the
`licensed time of use.
`These and other features, advantages, and aspects of the
`present invention will be more clearly understood and
`appreciated from a review of the following detailed descrip(cid:173)
`tion of the disclosed embodiments and by reference to the
`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.
`
`

`
`5,925,127
`
`5
`FIG. 2 is a functional block diagram of the Internet
`representing a portion of the operating environment of an
`exemplary embodiment of the present invention.
`FIG. 3 is a simplified block diagram illustrating the
`downloading of software program modules from a remote 5
`server to a user's computer via the Internet.
`FIG. 4 is a simplified block diagram illustrating the
`interaction between three separate software program mod(cid:173)
`ules embodying an exemplary embodiment of the present
`invention.
`FIGS. 5(a) and 5(b) are flow diagrams illustrating the
`operation of an exemplary embodiment of the present inven(cid:173)
`tion.
`
`DETAILED DESCRIPTION
`
`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
`10 described herein are machine operations performed in con(cid:173)
`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,
`15 aspects of the present invention and the preferred to oper(cid:173)
`ating environment will be described.
`
`20
`
`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(cid:173)
`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(cid:173)
`sion 8.0, produced by Microsoft Corporation of Redmond, 25
`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 30
`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(cid:173)
`tributed computing environment, including remote file
`servers, computer servers, and memory storage devices.
`Each of these conventional distributed computing compo(cid:173)
`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(cid:173)
`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
`
`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
`35 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(cid:173)
`munications network. In a distributed computing
`environment, program modules may be located in both local
`40 and remote memory storage devices.
`With reference to FIG. 1, an exemplary system for imple(cid:173)
`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
`45 memory to the processing unit 21. The system memory 22
`includes read only memory (ROM) 24 and random access
`memory (RAM) 25. A basic input/output system 26 (BI OS),
`containing the basic routines that help to transfer informa(cid:173)
`tion between elements within the personal computer 20,
`50 such as during start-up, is stored in ROM 24. The personal
`computer 20 further includes a hard disk drive 27, a mag(cid:173)
`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
`55 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(cid:173)
`face 33, and an optical drive interface 34, respectively. The
`drives and their associated computer-readable media provide
`60 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
`65 magnetic cassettes, flash memory cards, digital video disks,
`Bernoulli cartridges, and the like, may also be used in the
`exemplary operating environment.
`
`

`
`5,925,127
`
`8
`present invention. The Internet 60 includes a plurality of
`backbone networks 65a through 65n. These backbone net(cid:173)
`works form an international grid of high-speed, high-
`capacity data communication lines interconnecting a num(cid:173)
`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(cid:173)
`work access points 70a through 70n. These network access
`points are interfaces through which information is commu(cid:173)
`nicated from one backbone network to another. The con(cid:173)
`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 80a through
`80n. 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 85a through 85n 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(cid:173)
`ferred embodiment of the present invention, the personal
`computer 20, shown in FIG. 1, is an end-user station. As
`30 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 88n, the point of
`presence 85b provides Internet access to end user stations
`88a' through 88n', etc. All together, the points of presence 85
`35 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.
`
`7
`A number 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(cid:173)
`gram data 38. A user may enter commands and information
`into the personal computer 20 through a keyboard 40 and 5
`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 10
`system bus, but may be connected by other interfaces, such
`as a game port or a universal serial bus (USE). A monitor 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 15
`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 20
`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 25
`in FIG. 1 include a local area network (LAN) 51

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