throbber
US006134593A
`6,134,593
`(11) Patent Number:
`(5
`United States Patent
`Alexanderetal.
`[45] Date of Patent:
`Oct. 17, 2000
`
`
`[54] AUTOMATED METHOD FOR ELECTRONIC
`SOFTWAREDISTRIBUTION
`
`[75]
`
`Inventors: Marc A. Alexander, Clackamas;
`Gerald B. Feldkamp; Bernard R
`Strathern, both of Beaverton,all of
`Oreg.
`
`[73] Assignee: CCComplete, Inc., Portland, Oreg.
`
`[21] Appl. No.: 08/941,643
`[22]
`Filed:
`Sep. 30, 1997
`[51] Unt. C17 cicccecccesseeesseen GO6F 15/16; GO6E 15/173
`[52] US. CI
`709/229: 709/225: 709/219:
`—— “709/300:705 [54; 705, Ad: 705 26; 705/39:
`. 7171: 713200: 743201: 1302
`
`>
`~?
`.
`-
`:
`[58] Field of Sieroadsoe35.35, Joeooer:
`
`705/54 55. 18. 26- 7137159 165. 200.
`awe 340/825 3I: 380 3
`“ve
`NY
`References Cited
`U.S. PATENT DOCUMENTS
`
`[56]
`
`4,658,093
`5,319,705
`5,337,357
`5,375,206
`
`4/1987 Hellman occ eceesseecreteteeees 705/52
`6/1994 Halter et al.
`..
`.
`
`8/1994 Chou et al.
`...
`12/1994 Hunter et ab. oe eeceeeeeees 395/200
`
`5,490,216
`5,652,793
`5,809,144
`5,835,911
`5,898,777
`
`2/1996 Richardson, IIT 0... eee 705/59
`eseseceeeceeees 380/4
`7/1997 Priem et al.
`occ
`
`........
`wa 705/52
`9/1998 Sirbu etal.
`
`11/1998 Nakagawaet al.
`.
`» 707/203
`4/1999 Tycksen et al... eee 380/4
`.
`.
`.
`Primary Examiner—Mark H. Rinehart
`Assistant Examiner—Beatriz Prieto
`Attorney, Agent, or Firm—Blakely Sokoloff Taylor &
`Zafman, LLP
`ABSTRACT
`[57]
`A methodfor a user to automatically order, unlock and pay
`for a vendor software application via an automated tele-
`phony and/orInternet system. The user requests access to a
`vendor software application. If access is not allowed, the
`user transmits a computing deviceidentifier identifying the
`computing device on which the vendor software application
`is executing,
`a vendor software product distribution
`identifier, and a vendoridentifier to a aserver. Pricing data is
`provided to the user, and payment for the vendor software
`application is processed before access is granted thereto.
`After payment processing, the server then transmits a pass-
`word to the client based on the identifiers. Thercafter, the
`user enters the password to gain access to and execute the
`vendor software application to which access was previously
`denied.
`
`17 Claims, 4 Drawing Sheets
`
`420
`
`430
`
`
`
`
`
`INSTALLATION IDENTIFIER
`
`450
`
`
`

`
`s.
`
`s“
`
`
`
`410
`
`PRODID
`
`
`
`
` 400
`
`EXP DATE ——>
`
`PASSWORD
`
`Google Exhibit 1070
`Google v. VirtaMove
`
`Google Exhibit 1070
`Google v. VirtaMove
`
`

`

`U.S. Patent
`
`Sheet 1 of 4
`
`6,134,593
`
`100
`
`Oct. 17, 2000
`
`FIG.1
`
`

`

`U.S. Patent
`
`Oct. 17, 2000
`
`Sheet 2 of 4
`
`6,134,593
`
`002
`
`6Dl
`
`0&2
`
`qOle
`
`BOLNOILVOIMIdd¥M/SHOONSA
`
`NOILVOMdd¥M/SHOONSA
`
`Oecd
`
`‘NOILONNS
`
`SWIL
`
`YO
`
`4035Y9s30
`
`ALIVNOLLONNA
`
`

`

`U.S. Patent
`
`Oct. 17, 2000
`
`Sheet 3 of 4
`
`6,134,593
`
`START
`
`INSTALL VENDOR SW|__395
`APPLICATION
`RETRIEVE AND DISPLAY
`INSTALLATION ID
`
`CREATE INSTALL ID
`AND CLIENT ID
`
`310
`
`LAUNCH VENDOR S/W
`APPLICATION
`
`315
`
`TRANSMIT INSTALLID
`AND DISTRIBUTE ID
`
`TO SERVER
`
`340
`
`PROCESS PAYMENT
`
`345
`
`EXECUTE MODULE
`210a
`
`
`
`EXECUTE
`MODULE 210b
`?
`
`YES
`
`330
`210b LOCKED
`2
`
`
`
`NO
`
`YES
`
`TRANSMIT PASSWORD
`TO CLIENT DEVICE
`
`350
`
`ENTER PASSWORD
`
`355
`
`EXECUTE MODULE
`210b
`
`FIG. 3
`
`

`

`U.S. Patent
`
`Oct. 17, 2000
`
`Sheet 4 of 4
`
`6,134,593
`
`430
`
`440
`
`VENDORID
`
`CLIENT DEVICE ID
`
`i
`ty
`ty
`tr
`li
`“
`
`! i
`
`)
`
`I!tI
`
`I
`I
`i
`f
`i
`
`t'
`
`
`
`450
`
`420
`
`PRODDISTID
`
`
`
`“
`
`~“~ XN.~~
`
`
`
`
`
`410
`
`
`
`
`
`PROD ID
`
`INSTALLATION IDENTIFIER
`
`EXP DATE ——>
`
`PASSWORD
`
`
`400
`
`FIG. 4
`
`

`

`6,134,593
`
`1
`AUTOMATED METHOD FOR ELECTRONIC
`SOFTWAREDISTRIBUTION
`
`CROSS REFERENCE TO RELATED
`APPLICATIONS
`
`Not applicable.
`
`STATEMENT REGARDING FEDERALLY
`SPONSORED RESEARCH OR DEVELOPMENT
`
`Not Applicable.
`
`COPYRIGHT NOTICE
`
`Contained herein is material that is subject to copyright
`protection. ‘The copyright owner has no objection to the
`facsimile reproduction of the patent disclosure by any per-
`son as it appears in the Patent and Trademark Office patent
`files or records, but otherwise reserves all rights to the
`copyright whatsoever.
`
`BACKGROUND OF THE INVENTION
`
`1. Field of the Invention
`
`The present invention is related to the field of electronic
`software distribution. In particular, the present invention is
`related to an automated method for software unlocking and
`paymentprocessing to allow execution of the software by a
`user on a client computing system in a client-server com-
`puting environment.
`2. Description of the Related Art
`Sales of products and services traditionally have been
`transacted by sales people or agents. More recently, sales of
`products and services,
`in particular high technology
`products, including software products, have been transacted
`by a combination of sales people and electronic delivery
`and/or payment systems. Consumers today increasingly
`expect
`immediate access to products, services and
`information, via telecommunications-,
`intranet-, Internet-,
`cable-, and satellite-based commerce systems or combina-
`tions thereof.
`
`Telecommunications technology including predictive
`dialers, automated call management systems and database
`management
`technology has enabled “teleservice” to
`become a more cost-effective way of reaching consumers.
`Inbound tclescrvice activity, often in a customer service
`application, is growing rapidly, placing demands on corpo-
`rate staffing requirements to handle increased call loads
`while providing faster delivery of products, services, and
`information to the consumer.
`
`Moreover, communications between customers and ven-
`dors are labor intensive with telephone service representa-
`tives providing the primary link between a vendor andits
`customers. The representatives are responsible for a cus-
`tomer’s impressions. Although labor often represents a high
`percentage of vendor’s costs, most vendors under-invest in
`their employees and have both high turnover and a high
`percentage of part-time employees.
`To increase cost-effectiveness, what is needed is an auto-
`mated inbound, non-operator intervention call-handling
`system, capable of operating 24 hours a day, scven days a
`week, via which consumers can order products and services
`or obtain information without interaction with telephone
`service representatives. Automation provides the vendor
`with the opportunity to segment customers into those who
`can purchase products or services, or have their issues
`resolved automatically, and those who need personal attcn-
`
`2
`tion that can be provided by fewer, better skilled, and
`higherpaid telephone service representatives. In particular,
`whatis needed is an automated system via which consumers
`can order software products without interaction with tele-
`phone service representatives.
`BRIEF SUMMARY OF THE INVENTION
`
`A method is disclosed for a user to automatically order,
`unlock and pay for a software application from a vendorvia
`a computer-automated telephony and/or Internet ordering
`system in a client-server computing environment. The user,
`proximate to the client device, requests access to at least a
`portion of a vendor software application generally via the
`applicationitself. If access is not allowed, the user transmits
`product distribution and installation identifiers to a server.
`The server processesthe identifiers and transmits a password
`to the user based thereon, wherein the user enters the
`password at the client to gain access to and execute that
`portion of the vendor software application to which access
`waspreviously denied. The method also provides for pro-
`cessing payment for the vendor software application before
`access is granted thereto.
`BRIEF DESCRIPTION OF THE SEVERAL
`VIEWS OF THE DRAWINGS
`
`The present invention is illustrated by way of example
`and not limitation in the following figures. Like references
`indicate similar elements, in which:
`FIG. 1 is a block diagram of client-server computing
`environment in which an cmbodiment of the present inven-
`tion may beutilized.
`FIG. 2 is a block diagram illustrating a functional or
`temporal allocation of modules comprising a vendor soft-
`ware application as may be utilized in an embodimentof the
`present invention.
`FIG. 3 is a flow diagram of an embodimentof the present
`invention.
`
`FIG. 4 is a diagram of the elements comprising the
`password generated according to an embodiment of the
`present invention.
`DETAILED DESCRIPTION OF THE
`INVENTION
`
`The present invention is related to an automated method
`for software unlocking and payment processing to allow
`execution of the software by a user on a client computing
`system in a client-server computing environment. In the
`following description, numerous specific details are set forth
`in order to provide a thorough understanding of the present
`invention. It will be apparent, however, to one of ordinary
`skill in the art that the present invention may be practiced
`without these specific details. In other instances, well-known
`systems, architectures, and techniques have not been shown
`to avoid unnecessarily obscuring the present invention.
`With reference to FIG.1, a client-server computing envi-
`ronment 100 as may be utilized by an embodiment of the
`present invention is illustrated. A client computing device
`110, or simply, client 110, e.g., a Personal Computer (PC),
`is capable of communicating with a server 150, either by
`way of the Public Switched Telephone Network (PSTN) 130
`or Internet 125. Additionally, a user of the client may
`communicate with server 150 via telephone 105,
`for
`example, to configure clicnt 110 by sclecting options via
`keypad entry on the telephone which cause server 150 to
`communicate parameters to client 110 necessary for desired
`configuration and operation of clicnt 110.
`
`10
`
`20
`
`25
`
`30
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`

`

`6,134,593
`
`3
`In alternative embodiments, client 110 may be a host,
`workstation, network device, personal digital assistant,
`mobile computer, or other general or special purpose com-
`puting device executing a general or special purpose oper-
`aling system and one or more software applications. In the
`illustration, client 110 accesses PSTN 130 via a local loop
`111 to Central Office (CO) 120. Client 110 may include an
`internal modem or be associated with an external modem
`necessary for communication over local loop 111, which
`may transmit voice and/or data in analog or digital format.
`An internal or external microphone 109 is connected to
`client 110 to provide a means for voice input to client 110,
`whichin turn, processes the voice input and communicates,
`as appropriate, with the server based onthe input. Client 110
`also accesses the Internet 125 via Internet Service Provider
`115. Other systems for communicating between client and
`server not shown include wireless communications, ¢.g.,
`radio, cellular radio or satellite communications. Server 150
`may also be a host, workstation or network device, or other
`gencral or special purpose computing device executing a
`general or special purpose operating system and one or more
`software applications. Server 150 can communicate with
`clients, e.g., client 110 via the same or similar communica-
`tion channels described above with respect to client 110.
`With reference to FIG. 2, client 110 executes at least one
`vendor software application 200. According to the preferred
`embodiment, vendor application 200 is executed locally by
`a processor within client 110. However, it is understood by
`those of ordinary skill in the art that vendor application 200
`may be accessed and/or executed remotely on server 150, or
`another server (not shown), according to well known pro-
`cedures for such execution in the client-server computing
`environment 100. Additionally, the vendor application, or
`portions or modules thereof, may be executed in a distrib-
`uted or other well known computing environment.
`Vendor software application 200 may comprise multiple
`modules or routines, for example module 210a and 2105,
`where module 210a is accessible and may be executed upon
`installation of the application 200 and module 2105 is
`locked and inaccessible uponinstallation. However, module
`210b may later be unlocked and executable after payment or
`some other vendor requirementis provided bythe userto the
`vendor according to the automated procedure embodied by
`the present invention. The modules maybe delineated by, for
`example,
`time, function, or degree of functionality. For
`instance, a user may be allowedto freely access and execute
`module 210a for a periad of time, say 30 days, after which
`time payment must be rendered for access to continuc, as
`represented by module 2105, as is common with shareware
`applications. Alternatively, a user may opt to purchase a
`portion of a vendor software application or one module in a
`suite of vendor software applications, say an accounts pay-
`able module, at one point in time, and then later purchase
`another module, say an accounts receivable module. As yet
`another example, module 210a may be a demonstration
`module providing limited functionality, whereas module
`210b maybe a commercial module providing full function-
`ality. While both modules may be installed together or
`separately on the client or a computing device accessible by
`the client, the user can only freely access and execute the
`demonstration module. The commercial module is acces-
`
`sible only after paymentis received by the vendor according
`to the steps discussed below. Of course, although not shown
`in FIG. 2, it is understood that multiple modules 210b may
`beinstalled andinitially inaccessible by theuser, 1.e., locked,
`until such time as the vendor’s requirements for access,1.e.,
`unlocking, are met.
`
`10
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`Unlocking software routine 220 is shown embedded
`between or linking modules 210@ and 2105 of vendor
`software application 200. In the preferred embodiment, the
`unlocking routine 220 provides a set of Application Pro-
`gramming Interfaces (APIs) via which the vendor can pro-
`cess the locking and unlocking of module 2105. By provid-
`ing a set of APIs that the vendor software application can
`call, the unlocking routine may be reused by the same or
`other vendors. While FIG. 2 illustrates the unlocking soft-
`ware routine as embeddedin the vendor software application
`200, it is understood that the routine may be separate from
`and externally linked to or called from the vendor software
`application 200.
`Payment software routine 230 is also shown embedded
`between or linking modules 210a and 2105 of vendor
`software application 200. As with the unlocking routine 220,
`the payment routine provides a set of APIs. The vendor can
`call the APIs to process payment for the module 210d, as
`will be discussed more fully below.
`In the preferred
`embodiment, payment routine 230 is separate from but
`utilized in conjunction with unlocking routine 220 to pro-
`vide the user with an automated method for unlocking and
`paying for module 210b of the vendor software application.
`With reference now to FIG. 3, the method for automati-
`cally unlocking and paying for at
`least a portion, e.g.,
`module 2105, of the vendor software application 200 is
`described. A user begins at step 305 by first installing the
`vendor software application 200, including modules 210a
`and 2106. According to one embodiment, at the time the
`vendor software applicationis installed, an installation iden-
`tifier based on the vendor andthe client computing device is
`created and stored at step 310 for later access by the client
`computing device. The installation identifier may be stored
`in the client computing device, a peripheral device or
`computing device accessible bythe client computing device,
`€.g.,
`in permanent nonvolatile memory, on magnetic or
`optical media, or other forms of permanent storage media.
`The installation identifier is once defined but may be used
`many times for separate products from a given vendor.
`Additionally, as will be described in more detail below, a
`client device identifier, which is related to the installation
`identifier, and based on the client computing device,
`is
`created and stored in the same mamner as the installation
`identifier. According to a second embodiment, the installa-
`tion and client identifiers are created and stored at or after
`
`the time the user attempts to execute a locked module.
`According to yet another embodiment,the identifiers may be
`created and stored after the module has been unlocked and
`
`payment received therefor.
`Application 200 is then launched at step 315. For
`example, given a PC operating under the Microsoft Win-
`dows™ operating system, a user might select application
`200 for execution by double clicking with an input device
`such as a mouse on an icon in a window, wherein the icon
`represents an executable file for the vendor software appli-
`cation. In one embodiment, module 210a begins executing
`at step 320, and as a next step at 325, module 210a
`determines whether module 210b is to be executed, accord-
`ing to further user input. For example, if a user selects an
`icon representing module 2105, then module 210a deter-
`mines module 210b is to be executed. At step 330, module
`210a determines whether module 210b can be executed,i.e.,
`whether module 210b is locked. If the module is unlocked,
`it can be immediately executed at step 360.
`it cannot be
`If, however, the module 2105 is locked,
`executed without first processing payment for the module
`and providing a password for the module. In particular,
`
`

`

`6,134,593
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`5
`module 210a calls the unlocking software routine 220 to
`determine whether the user previously purchased module
`2105. The unlocking software routine 220 determines
`whether the user previously purchased module 210b by
`searching for a password for module 2105. The password is
`either stored in or accessible by client computing device 110,
`the presence of which indicates payment has already been
`received for module 210b, as will be apparent from the
`discussion below. If module 2106 is not locked, ie., if a
`password is detected for module 2105, then module 210a
`automatically starts executing module 210d at step 360, and
`no further interaction with the unlocking routine 220 is
`required.
`It will be understood bythose of ordinary skill in the art
`that
`the module 2105 may be packaged in a separate
`executable file or integrated with module 210a, with access
`to restricted portions of the vendor software application 200
`controlled in either case by whether module 2105 was
`purchased as determined by the presence of a password for
`module 210b. Additionally, while the embodiment described
`above executes module 210a, which in turn, determines
`whether to execute module 2105 with the help of unlocking
`module 220, it is understood that either module 210¢ or
`2105 may be executed, but not necessarily both, as in the
`case where 210a represents a demonstration module and
`module 2105 represents a fully functioning module.
`Furthermore, in an alternative embodiment, the executing
`module 210a may first determine whether module 2105 is
`locked, and if not, then determine whether to execute the
`module.
`
`6
`operation performed by demo_mod.exeis to call the API for
`the unlocking routine 220 to determine whether the user
`previously purchased the fully functioning version (i.e.,
`commercial software module) of the vendor software appli-
`cation. If so, then demo__mod.exe automatically starts full__
`mod.exe, which is the commercial software module of the
`vendor software application, and no further interaction with
`the unlocking routine API is thereafter required.
`If demo_mod.exe determines that an appropriate pass-
`word is not stored in or accessible by the client computing
`device, demo_mod.exe displays buttons labeled Preview
`and Purchase. If the user clicks on Preview, then demo__
`mod.exe continues executing. If, however, the user clicks on
`Purchase, then demo__mod.exestarts the payment routine
`230. When the user purchases the fully functioning com-
`mercial software module full_mod.exe, a password for
`full_mod.exe is stored in the client computing device or a
`permanent nonvolatile storage location accessible by the
`client computing device, so that subsequent invocations of
`the vendor software application cause the full_mod.exe
`software module to be executed, via demo_mod.exe.
`At step 335, the payment routine displays on a display
`device associated with the client computing device a tele-
`phone number, generally a toll-free 800 or 888 telephone
`number, for the user to call to access the server 150. In
`addition, the payment routine conveys the purchase price of
`module 2105, payment options and instructions, and
`prompts the user to enter the installation identifier, and the
`vendor software product distribution identifier. (Recall the
`installation identificr, based on the clicnt computing device
`If module 210¢@ begins executing at step 320, receives
`and vendor, wasstored in the client computing device or the
`input at step 325 to execute module 2105, and determines,
`like at
`the time the vendor software application was
`in conjunction with unlocking routine 220 at step 330 that
`installed. The installation identifier is retrieved at step 335
`module 210is locked, then payment routine 230 is called
`and displayed on the display device when the payment
`so that the user can purchase the software, receive a pass-
`routine is invoked and the user is provided with instructions
`word for executing the module 2105 and then begin execut-
`for processing payment for module 2105).
`ing the module. Alternatively, according to another
`In response to the prompts displayed on the display device
`embodiment, steps 325 and 330 may be reversed. For
`associated with the client computing device, the user inputs
`example, if module 210a begins executing at step 320 and
`the installation identifier displayed on the display device, as
`determines at step 325 that module 210d is locked, then
`well as the vendor software product distribution identifier, or
`module 210a provides the user with the choice of whether to
`simply, product distribution identifier. The product distribu-
`execute module 2105 at step 330. In either embodiment,
`tion identifier may be, for example, printed onalabelaffixed
`module 210a determines whether module 2105 is locked by
`to a Compact Disc (CD) case in which a compact disc media
`calling the unlocking software routine 220. Module 2105 is
`storing the vendor software application is shipped. In one
`locked if payment has not been received for the module.
`embodiment, at step 340,
`the installation identifier and
`Unlocking routine 220 determines that module 2105 is
`product distribution identifier are transmitted to the server
`locked and that payment for
`the module has not been
`via a telephone transmission initiated by the user via touch
`received if there is no password stored in or otherwise
`tone input at telephone 105. In an alternative embodiment,
`accessible by the client computing device. If the module
`installation identifier and product distribution identifier are
`2105 is locked, the unlocking routine indicates such to the
`supplied by the user via an input device, such as microphone
`module 210a. Auserinterface screen is displayed by module
`109 or a keyboard associated with the client computing
`210a on a display device associated with the client comput-
`device and transmitted to the server over the Internet 125 or
`ing device providing instructions to the user for activating,
`World Wide Web.
`Le., unlocking, the module 210.
`An example of the steps described thus far is now
`provided for a vendor software application having both a
`demonstration software module and a fully functioning
`commercial software module. The example assumes the
`vendor software application has already been installed on
`the client 110 to whatever degree chosen by the vendor. In
`a PC/ Microsoft Windows™ cnvironment, a user double-
`clicks on an icon representing the executable file for a
`vendorsoftware application, which may appear either within
`the installation directory or as a shortcut on the desktop. The
`executable file is called demo_mod.exe and is the demon-
`stration version (i.e., demonstration software module) of the
`vendor software application supplicd by the vendor. The first
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`The server 150 may be configured, maintained and oper-
`ated by a third party other than the vendor. For example,
`vendors may outsource the automated method of unlocking
`and paying for their software applications as contemplated
`by the present invention to a third party. The toll-free 800 or
`888 telephone numberthat the user dials when accessing the
`server for purposes of unlocking and paying for a vendor’s
`software application serves as an index to the third party
`indicating one of perhaps multiple vendors for which such
`services are being provided by the third party.
`A database on the server 150 maintains information
`regarding at least one vendor,asis the case when the vendor
`maintains the server, or multiple vendors, in the case where
`
`

`

`6,134,593
`
`7
`vendors outsource the unlocking and payment processing to
`a third party. In the latter case, separate tables are maintained
`per each vendor, in which are stored installation identifiers
`and product distribution identifiers. When an installation
`identifier and productdistribution identifier are provided by
`a user to the server, the appropriate vendor table in which to
`search for such identifiers is located in the database accord-
`ing to, for example, the toll free numberdialed by the user.
`If the installation identifier and product distribution identi-
`fier are located in the appropriate vendortable, the server
`produces a password, or unlocking key, and passes the same
`to the client computing device at step 350, after payment for
`the application has been processed at step 345, as discussed
`in below.
`
`At step 345,the user has input the productdistribution and
`installation identifiers, and the server looks up the pricing
`information related to the vendor software productidentified
`by the two identifiers. The pricing information is confirmed
`to the user. User prompting and input regarding credit card
`information,e.g., credit card number, type, and expiration,is
`transmitted via an automated Interactive Voice Response
`(IVR) system utilizing touch tone techniques with telephone
`105, or alternatively, via an Internet session or the like
`between the client 110 and the server 150.
`
`After payment for the module has been processed, a
`password generation routine executing on the server takes
`the product distribution identifier and installation identifier
`and creates a unique password through a mathematical
`routine. The mathematical routine varies uniquely by client
`and product such that different passwords are gencrated for
`different software products for a particular vendor.
`The password may be communicated to the client com-
`puting device by any one of a number of means,including
`butnot limited to a data communicationslink with the client
`110, such as the Internet 125, including a World Wide Web,
`FTP or Telnet session, or a telecommunications link
`utilizing, for example, Interactive Voice Response (IVR)
`technology in connection with telephone 105 and corre-
`sponding touch tone or DTMFtone techniques, the impor-
`tant point being that the method for providing the password
`is entirely automated—nointeraction with a telephone ser-
`vice representative is required.
`In one embodiment, an
`additional step of checking the password against an expira-
`tion date associated with the module is performed. The
`expiration date could be prompted to and input by the user
`as part of the unlocking or payment processing routines, or
`stored either at
`the client or server at
`installation or
`attempted execution, and retrieved as part of the unlocking
`or payment processing routines.
`Forreinstallation of a software module, a public version
`of the password, along with an associated expiration date, is
`stored in or accessible by the client computing device, for
`example, in a ASCII file, so that it may be viewed by the
`user. Given that there is a configurable numberof times that
`the user can attempt to unlock a locked software module, the
`public password does not present a security threat.
`With reference to FIG. 4, the password 400 created and
`transmitted by the server 150 to the client computing device
`110 is derived from a number of different identifiers and
`
`procedures. The product distribution identificr 420,
`described above, is vendor specific and application software
`product specific. Thus, it provides, in part, the identity of the
`product being unlockedoractivated, and providesthe ability
`to track the numberof software applications distributed (on,
`for example, CDs) and successfully activated from multiple
`distributors at multiple locations. Thus, as is shown in FIG.
`
`5
`
`10
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`8
`4, the product distribution identifier 420 comprises at least
`a product identifier 410 that identifies a particular software
`vendor’s application software product. For example, differ-
`ent versions of the same product may havedifferent product
`identifiers.
`
`Additionally, the product distribution identifier 420 may
`comprise a distribution identifier, a location identifier, and a
`checksum (none of which are shown in TIG. 4). The
`distribution identifier may indicate, for example, a particular
`build or compilation of the software application, or distri-
`bution channel. The location identifier may identify the
`geographical location to which the software application (as
`stored, for example, on permanent storage media such as a
`CD) wasshipped, either byitself or as a unit in a lot or block
`shipment. The product distribution identifier thus provides
`the ability for a vendor to track any numberof products
`according to any numberof distribution methods.
`The installation identifier 450, from which the password
`is also partly derived, comprises a vendoridentifier 430 and
`a clicnt computing device identificr 440, or simply, clicnt
`identifier 440. The vendoridentifier 430, of course, identifies
`the vendorthat is selling or licensing the software applica-
`tion for which the password is being provided. The client
`computing device identifier 440 identifies the particular
`machine or computing device on which the vendor’s soft-
`ware application has been installed, and is hidden from the
`user. The client identifier can be created and stored in the
`
`client computing device at the same time the installation
`identifier
`is stored,
`i.c., when the vendor software
`application, or relevant portion thereof, such as module
`2105,is installed on the client computing device. Just as is
`the installation identifier,
`the client identifier is machine
`dependent—.e., it is based on the client computing device
`or combination of the client computing device and vendor.
`At run-time, the password and client identifier are checked
`to verify that they correspond correctly. If they do,
`the
`application or module, whatever the case may be, can be
`executed.
`
`There is a mathematical relationship between the pass-
`word andclient identifier. However, encryptionis utilized to
`secure the client
`identifier to the password, so that
`the
`relationship between the client identifier and password is
`obscured. The encryption involves a multi-step process: the
`installation identifier is derived through encryption of the
`client identifier; the installation identifier is then encrypted;
`and the password then derived in part through the encrypted
`installation identifier.
`
`With reference again to FIG. 3, at step 355, upon recciv-
`ing the password from the server,
`the payment routine
`displays the password on the display device attached to the
`client computing device and prompts the user to enter the
`password to activate the application 210b. The user then
`enters the password, by one of various means, including
`keyboard, microphone 109 or telephone 105 input. The
`password is then verified by the payment routine. If the
`passwordis verified, the paymentroutine transfers control to
`the application 2106 at step 360. Optionally, the payment
`routine transfers control to module 210a or 2105, cither of
`whichcalls the unlocking routine to verify both payment for
`and authorization to use the module 210b. If the password is
`determined to be incorrect by the unlocking routine (c.g.,
`through incorrect data entry on the telephone keypad or
`input device for the client computing device), an error
`message is displayed on the display devicc. Some number of
`attempts to unlock the module 2105,e.g., three, is provided,
`after which the user is prevented from further attempts, e.g.,
`to prevent tying up an IVR port on the server, or prevent a
`
`

`

`6,134,593
`
`9
`hacker from attempting many possible combinations of
`product distribution and installation identifiers.
`In the
`embodimentutilizing the TVR system, once module 2105, or
`full_mod.exe in our example above, is activated, the user
`hangs up from the IVR. The IVR system records the
`activation that just transpired, including l

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