WO1994016508A1 - Software evaulation and distribution apparatus, system, and method - Google Patents

Software evaulation and distribution apparatus, system, and method Download PDF

Info

Publication number
WO1994016508A1
WO1994016508A1 PCT/US1994/000097 US9400097W WO9416508A1 WO 1994016508 A1 WO1994016508 A1 WO 1994016508A1 US 9400097 W US9400097 W US 9400097W WO 9416508 A1 WO9416508 A1 WO 9416508A1
Authority
WO
WIPO (PCT)
Prior art keywords
die
key
software product
user
copy
Prior art date
Application number
PCT/US1994/000097
Other languages
French (fr)
Other versions
WO1994016508A9 (en
Original Assignee
Infonow Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infonow Corporation filed Critical Infonow Corporation
Priority to AU59906/94A priority Critical patent/AU5990694A/en
Publication of WO1994016508A1 publication Critical patent/WO1994016508A1/en
Publication of WO1994016508A9 publication Critical patent/WO1994016508A9/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress

Definitions

  • the present invention relates to an apparatus and a method for distributing computer software, such as computer programs, directly to the user.
  • Software publishers normally sell computer software to corporate users and to consumers through distributors and retailers. This system is disadvantageous to both the publisher and the customer.
  • the software publisher must also provide a stock of physical copies of its programs to the distribution system.
  • the software publisher must provide copies in various formats, for example, on 5 W -inch or 3 'A -inch discs, high density, or low density, and must supply them in quantities sufficient to meet a forecast demand. If demand is greater than forecast, the software publisher must arrange for additional copies to made available quickly. If demand is less than forecast, the publisher must deal with returns.
  • Corporate software evaluators must find and analyze a vast amount of available software product information. They must understand a rapidly- changing industry, and satisfy the divergent software needs of individuals in their organization. Software evaluators are often the key to acceptance and productive use of personal computing software throughout an organization.
  • the software publisher can communicate directly with the person making the software buying decision, i.e., the user. It is also desirable for the publisher to be able to provide information directly to the user to aid the user in evaluating various software products and in making a purchasing decision. It is desirable to provide the user the ability to compare features of competing products, to see a demonstration of each product on his/her computer, to test a working copy of a product, and to have access to reviews of competing products conducted by third parties. It is also desirable for the user to be able to manufacture copies of the software product that he/she eventually chooses to avoid the delay involved in obtaining such copies from a retailer.
  • the user can then install the chosen product onto his/her computers) from the manufactured copies. It is also desirable to enable the user to order large quantities of copies of the selected software products to be drop-shipped directly from a warehouse. These features are also advantageous for the software publisher, since they reduce the number of copies that the publisher needs to provide to retailers.
  • 4,528,643 of Freeny, Jr. describes a system for reproducing information in a material object at a point of sale location.
  • the information to be reproduced is provided in encrypted form to the point of sale location from a remote location.
  • the point of sale location transmits to the remote location a request code, including a catalog number, requesting clearance to reproduce the information indicated by the catalog number in a material object.
  • the remote location transmits an owner authorization code, including the catalog number, in response to the request code.
  • the point of sale location decrypts the encrypted information and reproduces the information in a material object.
  • patent lacks any means for the software developer to communicate directly with the user, and any means to aid the user in comparing various potential software packages before making a purchasing decision.
  • the system also requires that the catalog number of the information be transmitted back and forth between the user and the remote location.
  • the system also requires that the information be uniquely encrypted for each user. This is clearly impractical for a system which requires that the encrypted copies be mass produced for distribution to many users.
  • United States Patents Nos. 4,827,508, 4,977,594, and 5,050,213 to Shear describe a system in which textual databases are provided to an user in encrypted form stored on, for example, an optical disc.
  • the user may, subject to credit limits, decrypt selected parts, or all, of the encrypted databases.
  • the user's decryption of data bases, or parts of them, is metered.
  • the metered data is communicated to a remote site, whence the user is billed. Measures are included to disable the user's ability to decrypt more of the data base if, for example, the user fails to pay his/her bill.
  • the system described in the Shear patents also lacks any means for the software developer to communicate directly with the user, and any means to aid the user in comparing various potential software packages before making a purchasing decision.
  • the remote site is only advised of the user's use of the data base after the user has used the data base. This presents the owner of the data base with the need to balance the risk of unpaid bills against putting onerous restrictions on the user's use of the database.
  • the apparatus provides an apparatus for making a copy of a software product from an encrypted copy of the software product.
  • the apparatus comprises a reading device that reads the encrypted copy of the software product and a communication device that sends an outgoing message to a remote site, the outgoing message including a request for a key for the encrypted copy, and receives a return message from the remote site in response to the outgoing message.
  • the return message includes a coded key.
  • the apparatus also includes a key decoding device that decodes the coded key to provide the key, a decrypting device that receives a read out of the encrypted copy of the software product from the reading device, uses the key to decrypt the read out of the encrypted copy of the software product to provide the software product.
  • the apparatus includes a copy making device that receives the software product from the decrypting device and makes the copy of the software product.
  • the invention also provides an apparatus for assisting a user to select one of plural competing products.
  • the apparatus comprises a data base in which is stored data indicating, for each of the plural competing products, that the product includes each of plural preselected features.
  • the apparatus also includes a device for the user to select at least one of the plural preselected features as at least one selected feature, and a device to search the data base means to provide a search result.
  • the apparatus includes a search result display device that displays the search result.
  • the invention also provides a system for a central office to distribute to plural users a copy of a software product.
  • the system comprises a central office and a user apparatus.
  • the central office includes an encrypting device that encrypts the software product using a key, and makes an encrypted copy of the encrypted software product.
  • the central office also includes a distribution system for distributing the encrypted copy to the users, a key storing device that stores the key, and a coding device that provides a coded key by coding the key using a user identification received from the user.
  • a central communication device at the central office receives from the user an incoming message including a request for the key for the encrypted copy, and a user identification identifying the user.
  • the central communication device also transmits to the user in response to the incoming message a return message including the coded key.
  • the user's apparatus includes a user communication device that transmits the incoming message received by the central office, and receives the return message transmitted by the central office in response to the incoming message.
  • the user's apparatus also includes a key decoding device that decodes the coded key, using the user identification, to provide the key, a reading device that reads the encrypted copy received from the central office, a decrypting device that receives a read out of the encrypted copy from the reading device, and uses the key to decrypt the read out of the encrypted copy to provide the software product.
  • the user's apparatus includes a copy making device that receives the software product from the decrypting device and makes the copy of the software product.
  • the invention also provides a method for a central office to distribute to plural users a copy of a software product.
  • the software product is provided, is encrypted using a key, and an encrypted copy is made of the encrypted software product.
  • the encrypted copy is distributed to the users, and the key is stored.
  • the central office receives from a user an incoming message including a request for the key for the encrypted copy, and a user identification identifying the user.
  • the central office encodes the key using the user identification to provide a coded key, and transmits to the user in response to the incoming message a return message including the coded key.
  • the incoming message is transmitted to the central office, and the return message transmitted by the central office in response to the incoming message is received.
  • the coded key is decoded, using the user identification, to provide the key.
  • the encrypted copy received from the central office is read, and the encrypted copy is decrypted using the key to provide the software product. Finally, the copy is made of the software product.
  • the invention finally provides a method for assisting a user to operate a computer program with a graphical user interface.
  • a display including a constant help box and a pointer are provided.
  • the pointer has a position on the display.
  • a user input device that determines the position of the pointer on the display, and includes a selection device operable by the user.
  • help messages are provided.
  • the position of the pointer on the display is determined.
  • the result of the user operating the selection device at the position of the pointer on the display is determined.
  • a help message is selected in response to the result just determined.
  • the selected help message is displayed in the constant help box.
  • Figure 1 A shows a block diagram of the professional software evaluation and distribution apparatus and system according to the invention.
  • Figure IB shows a block diagram of the consumer software evaluation and distribution apparatus and system according to the invention.
  • Figure 2A shows the main worksheet screen of the professional software evaluation and distribution apparatus and system according to the invention.
  • Figure 2B shows the main worksheet screen of the professional software evaluation and distribution apparatus and system according to the invention with the category selection box displayed.
  • Figure 2C shows the search results box of the professional software evaluation and distribution apparatus and system according to the invention after a search has been performed.
  • Figure 2D shows the search results box of the professional software evaluation and distribution apparatus and system according to the invention during a search for the title of a product.
  • Figure 3A shows the features compare screen of the professional software evaluation and distribution apparatus and system according to the invention.
  • Figure 3B shows the features compare screen of the professional software evaluation and distribution apparatus and system according to the invention with the features selection box displayed.
  • Figure 3C shows the features compare screen of the professional software evaluation and distribution apparatus and system according to the invention after a features comparison has been made.
  • Figure 3D shows the features compare screen of the professional software evaluation and distribution apparatus and system according to the invention with the features selection box displayed, before performing a product search by features.
  • Figure 3E shows the features compare screen of the professional software evaluation and distribution apparatus and system according to the invention displaying the results of a product search by features.
  • Figure 4A is a flow chart illustrating the operation of the quotation module of the main program of the professional software evaluation and distribution apparatus and system according to the invention.
  • Figure 4B shows the quotation worksheet of the professional software evaluation and distribution apparatus and system according to the invention.
  • Figure 4C shows the format select dialogue box selected from the quotation worksheet of the professional software evaluation and distribution apparatus and system according to the invention.
  • Figure 4D shows the quotation worksheet of the professional software evaluation and distribution apparatus and system according to the invention after the format has been selected for the two products shown.
  • Figure 4E shows the quotation worksheet of the professional software evaluation and distribution apparatus and system according to the invention after the quotation has been received from the central office.
  • Figure 5A is a flow chart illustrating the operation of the purchasing module of the main program of the professional software evaluation and distribution apparatus and system according to the invention.
  • Figure 5B shows the purchase order worksheet of the professional software evaluation and distribution apparatus and system according to the invention
  • Figure 6A is a flow chart illustrating the operation of the desktop vending module of the main program of the professional software evaluation and distribution apparatus and system according to the invention.
  • Figure 6B shows the desktop vending control screen of the professional software evaluation and distribution apparatus and system according to the invention
  • Figure 7A shows the catalog screen of the consumer software evaluation and distribution apparatus and system according to the invention.
  • Figure 7B shows the purchasing screen of the consumer software evaluation and distribution apparatus and system according to the invention
  • a first aspect of the present invention relates to a software evaluation apparatus and method that help a professional software evaluator to evaluate competing software products to select one of them to purchase.
  • the first aspect of the present invention also relates to a software distribution apparatus, system, and method by means of which the professional software evaluator or purchasing agent can electronically purchase a copy of the product selected using the software evaluation aspect of the invention, or otherwise selected.
  • the professional software evaluator or purchasing agent electronically can make a copy of the selected software product using the apparatus. The copy thus made is then ready for installation on a computer in the normal way.
  • the process of making a copy of a selected software product using the apparatus will be called "desktop vending.”
  • the workstation 10 includes floppy disc drives 12 and 13 that may be used for making copies during the desktop vending process, and a modem 14 for communicating with the central office 20 via a dial-up line or other communication link 16.
  • the workstation 10 and the central office 20 form the software evaluation and distribution system according to the invention.
  • the workstations of other users are connected to the central office via dial-up lines or other communication links (not shown).
  • the workstation 10 may form part of a network (not shown) that provides all or some of the workstation facilities to be described herein to one or more stations on the network.
  • all stations on the network may have the software evaluation facilities to be described, and may be able to obtain a quotation, but only one or two stations on the network may be allowed to order products and/or to desktop vend products.
  • all products on the network may be able to use all facilities of the system.
  • the central office 20 includes the modem 38 linked to the central computer 40.
  • the central computer accesses the database 42 in which keys used in the desktop vending process are kept, and in which users' accounts are kept.
  • the central computer is also linked to the warehouse 50, whence products that are not desktop vended are shipped to the user.
  • the central office 20 provides the user with a complete copy of each of plural software products stored on the mass storage medium 18.
  • the central office may provide the user with complete copies of five different word processing programs, three different spreadsheet programs, four different data base management programs, ten different font packages, and many other programs.
  • the copies of the products stored on the mass storage medium 18 are encrypted, and so cannot be used by the user without the appropriate key.
  • encrypted products may be distributed to the user via a wide-band telecommunications link.
  • the main program includes a software evaluation module that enables the user to evaluate any of the software products stored on the mass storage medium 18.
  • the user may also use the software evaluation module to evaluate additional products that are not in the user's possession, but that can be drop-shipped to the user in response to an order electronically transmitted from the workstation 10 to the central office 20, or for which the central office can issue an electronic license.
  • An important feature of the software evaluation module is that it enables the user to identify all available products that have one or more features selected by the user.
  • the software evaluation module provides a list of features from which the user can select one or more features considered important.
  • the software evaluation module then provides a list of programs having the selected feature. The user can then compare competing software products feature by feature.
  • the software evaluation module may include an electronic "brochure" for each software product, copies of reviews of each product by third parties, or, if reviews are not available, other materials provided by third parties, or a bibliography of reviews and other information.
  • the software evaluation module also includes self-running or limited-use demonstrations of available products to aid further the user's purchasing decision.
  • the software evaluation module additionally provides an electronic mail system to enable the user to mail questions to, and to receive answers and other useful information from, the publisher of a selected product via the central office.
  • the user uses the software distribution apparatus according to the invention to acquire one or more copies of the selected product.
  • the software distribution apparatus is normally provided as part of the same computer-based workstation as the software evaluation apparatus, although a separate apparatus may be used.
  • the main program also includes a quotation module, which prompts the user to indicate the one or more products selected for purchase, the quantity of each required, and the delivery method.
  • Delivery options include shipping copies of the product to the user from the central office, desktop vending, in which the central office authorizes the workstation to make one or more copies of each selected product, or an electronic license, in which the central office causes the workstation issue a license to install the selected product on additional computers.
  • the workstation 10 transmits the data entered into the quotation module by the user, as a request for a quotation, to the central office 20.
  • the central office then transmits a quotation back to the workstation.
  • the quotation includes a price for each of the selected products, and a reference number.
  • the quotation module displays the received quotation to the user.
  • the quotation may also include a sales tax amount, a shipping amount, a grand total, and an indication of whether the user's credit is good for the grand total of the quotation. The user can save the quotation for use later, if desired.
  • the user then runs the purchasing module from the main program, which causes the workstation 10 to transmit the reference number of the quotation to the central office 20. This indicates that the user accepts the quotation. This may be done any time while the quotation is valid, e.g., 30 days.
  • the central office transmits a return message accepting the order. If any of the products in the order are indicated to be desktop vended, the central office also transmits, for each product to be desktop vended, a unique coded key and quantity indicating the number of copies of the product the user is authorized to make by desktop vending.
  • the workstation 10 stores the coded keys and the quantities in a secure memory device for later use.
  • the main program finally includes a desktop vending module.
  • the user runs the desktop vending module, which allows the user to indicate which of the products for which a key has been received he/she wishes to make.
  • the desktop vending module then invites the user to select one of several available formats for the copy. Possible formats include Sc ⁇ inch or S i-inch high density or low density floppy discs, a network version, or a working copy for direct installation onto the user's hard disc.
  • the desktop vending module then obtains the key for the product selected by decoding the coded key, searches the mass storage medium 18 for the encrypted copy of the selected product corresponding to the format selected, and issues instructions to the user for making the copy. For example, if the copy is to be made onto floppy discs, the desktop vending module invites the user to insert a floppy disc corresponding to the format selected into the appropriate disc drive in the workstation 10. The desktop vending module decrypts the encrypted copy using the decoded coded key and makes a copy of the result in the selected format, e.g. , on the floppy disc.
  • the desktop vending module will invite the user to insert additional floppy discs into the disc drive until all the floppy discs constituting the copy have been made.
  • Each floppy disc made during this process corresponds to a floppy disc in the version of the product distributed through the normal retail distribution system.
  • the desktop vending module decreases the stored quantity for the product by one. If the stored quantity is greater than zero, the product remains in the display of products available for desktop vending so that the user can make additional authorized copies. Once the stored quantity reaches zero, the product is deleted from the display of products available for desktop vending, and its coded key is deleted from the secure memory device. As part of a subsequent communication session with the central office 20, the desktop vending module will indicate to the central office, via the modem 14 ( Figure 1), when all the copies that were authorized for desktop vending in a given quotation have been made. The central office forwards part of this information to the software publisher(s) for each product desktop vended. This enables the publisher to register the user as a user automatically.
  • the workstation 10 includes the central processing unit 11, and operates under the command of a main program stored on the hard disc 22 and is controlled by the user providing inputs using the keyboard 24 and/or the mouse 26. Outputs are displayed to the user by the monitor 28 or by a printer (not shown).
  • the workstation 10 includes a secure memory device 30.
  • the secure memory device 30 has plural memory locations, such as the memory location 31, each of which has a unique secure memory address.
  • One memory location in the secure memory device 30 stores the user identification number, a unique number identifying the user.
  • Other memory locations in the secure memory device are used to store the coded keys and quantities that are received from the central office 20.
  • One coded key and one quantity is stored in the secure memory device for each product to be desktop vended.
  • the secure memory increases the security of the encryption process by storing the user identification number, and the coded keys and quantities received from the central office in a location that is not readily accessible to the user, instead of in the workstation's memory.
  • the secure memory device 30 is provided by the dongle 30 attached to a parallel port 32 of the workstation 10.
  • the dongle 30 has 30 memory locations, each identified by a unique secure memory address.
  • the secure memory device can be provided by a secured portion of the user's hard disc 22, or by other known secure memory techniques. So that the central station can provide the same set of encrypted files to all users yet deny users the ability to pass a key from one user to another, the system provides for a unique encoding to be applied to each key before the central station 20 transmits the key to the workstation 10.
  • the unique encoding is applied as follows: when the user orders from the central office one or more copies of one or more products to be desktop vended, the workstation determines the addresses of n random unoccupied storage locations in the secured memory device 30, where n is the total number of products to be desktop vended. The workstation then transmits these addresses, effectively as random numbers, together with the user identification number, which it reads out of one of the storage locations in the secure memory device. The workstation also stores the transmitted secure memory addresses.
  • the central office Before transmitting the key for each product ordered by the workstation, the central office encodes each key to provide a coded key.
  • the encoding uses an algorithm that uses the key for the product, the secure memory address received from the workstation for each product, and the user identification number received from the workstation.
  • the central station 20 transmits a coded key for each product to be desktop vended back to the workstation 10.
  • the central station also transmits to the workstation a quantity for each product, which is the number of copies of the product that the user is authorized to make by desktop vending. This prevent the user from using a single key to make multiple copies of the product.
  • the central office may include several random numbers in the return transmission to the workstation. The random numbers make it more difficult for someone monitoring the return transmission to determine the coded keys.
  • the workstation 10 stores the encoded keys and quantities received from the central office 20 in the secure memory device.
  • the workstation stores each encoded key and its corresponding quantity at the address in secure memory used to encode the key.
  • the workstation may store part of each coded key in the secure memory device, and may store the rest of each coded key elsewhere in the workstation to make it more difficult for someone to determine the coded keys. The following explanation will assume that all of each coded key is stored in the secured memory device.
  • the workstation retrieves the encoded key and the secure memory address for the product to be desktop vended, and the user identification number from the secure memory device, and uses these parameters in a decoding algorithm complementary to the encoding algorithm at the central office to derive the key from the coded key.
  • the workstation also retrieves the quantity for the product from the secure memory device.
  • the workstation then retrieves the encrypted copy of the product, decrypts it using the key, and makes the number of copies determined by the quantity.
  • the workstation 10 includes a compact disc read-only memory (CD-ROM) drive as the mass storage medium 18, and the encrypted copies of the software packages available for desktop vending are distributed to the user on CD-ROM.
  • CD-ROM holds about 600-680 MB of data, costs of the order of one dollar to manufacture, and can be mailed cheaply without special precautions.
  • the central office it is feasible for the central office to send a new disc to each user frequently, such as once per month. This is advantageous for both the user and the software publisher since it ensures that the latest version of a publisher's product is immediately available to each user.
  • An additional advantage is that a publisher can have an encrypted copy of a new product (or a new version of an existing product) included in a time-locked file on a CD-ROM distributed to the user before the new product's release date. The user cannot use the new product until the release date, when the time lock on the file opens.
  • the ability of the system to time lock files also means that a publisher can withdraw a product from sale part ⁇ way through the period of validity of a CD-ROM. For example, the publisher can withdraw the present version of its product on the same day as the new version is released.
  • the security of the encrypted files is increased by storing the encrypted copies on the CD-ROM in large files containing many encrypted copies such that the individual encrypted copies are not recognized by operating system in the workstation 10.
  • An encrypted location file that includes a table of starting address offsets and file lengths for all the encrypted copies on the CD-ROM is also stored on the CD-ROM.
  • the desktop vending module reads the encrypted location file off the CD-ROM, decrypts it, looks up in the location file the starting address offset and file length on the CD-ROM of the encrypted copy to be decrypted. The decrypted location file is then erased from the workstation's memory.
  • the CD-ROM In addition to encrypted copies of the products available for desktop vending, the CD-ROM also stores the product data base used by the search and features compare facilities of the software evaluation module, and the capsules, the product reviews, and demonstration programs that can be accessed by the software evaluation module. Storing this information on the CD-ROM enables the information to be updated concordantly with updating the encrypted products stored on the CD-ROM. To speed up access to this information, the file allocation table for this part of the CD-ROM is copied to the hard disc 22 in workstation. Each time the user receives a new CD- ROM, an installation module in the main program copies the file allocation table from the CD-ROM onto the hard disk 22.
  • the software evaluation module then reads the file allocation table off the hard disc, looks up the location on the CD-ROM of the desired file, and causes the CD-ROM drive to seek directly to the point on the CD-ROM found in the file allocation table. This significantly increases the speed at which the software evaluation module retrieves its various files from the CD-ROM.
  • the software evaluation module looks up the location of the file using a fast seek on the hard disk instead of using a much slower seek on the CD-ROM.
  • GUI graphical user interface
  • the main program and its subsidiary program modules run under a graphical user interface (GUI), such as Windows.
  • GUI graphical user interface
  • the graphical user interface allows the user to select the various program modules described above by pointing and clicking using a mouse, or by using the keyboard. The user may similarly select various options within each module.
  • the main program provides a shell from which the various program modules may be run by selecting an appropriate icon.
  • the software evaluation module helps the user to find one or more software products that meet his/her needs.
  • the module enables the user to search to identify several products that potentially could fulfill the user's requirements, and then enables the user to examine each product in detail, and to compare selected products feature by feature, to help the user make a final selection.
  • the basic search facility of the software evaluation module requires the user first to establish search parameters.
  • the main worksheet is arranged to allow the user to select graphically a Boolean combination of search parameters.
  • Products may be selected by specifying operating system (e.g., DOS, Windows, MAC), category (e.g., spreadsheet, word processing), publisher(s), title, or by AND-OR combinations of these parameters.
  • the software evaluation function then searches the product data base for titles that match the search parameters.
  • the software evaluation module displays the results of all searches as a list of product titles.
  • the product data base stored on the mass storage medium 18 includes information relating to all the products stored as encrypted copies on the mass storage medium. Also included in the products data base is information relating to additional products that may be ordered from the central office for delivery to the user by a means other than desktop vending.
  • the database includes information indicating the category of the product, its publisher, its operating system, and its Manufacturer's Recommended Selling Price (MSRP).
  • MSRP Manufacturer's Recommended Selling Price
  • the database includes, for each product, codes representing the features of the product.
  • the features of the product are provided to the central office by the product's publisher.
  • the central office issues a list of standardized available features for each category of products, e.g., word processors. However, the publisher may add to the list of standardized available features if the product includes one or more unique features.
  • the data base entry for a product that operates with one or more other primary products includes codes that represent the primary product(s) with which the product operates.
  • the main program displays the main worksheet screen 202 shown in Figure 2A.
  • the search parameter selectors marked Title 211, Publisher 213, Category 215, and OpSys 217 are marked.
  • the bottom of the main worksheet screen is a row of icons with which the user can select various product evaluation and product vending facilities. The operation of these icons will be described below.
  • Selecting any one of the Title, Publisher, Category, and OpSys selectors causes a drop down box of available search parameters to appear.
  • the drop-down box defines an 'OR' logic direction.
  • the user may select one or more search parameters in each drop-down box.
  • With the OR logic of the drop-down box a product found by the search will have any one of the selected search parameters. For example, if the user selects MSDOS and Windows in the OpSys box, the software evaluation module will display products will run under MSDOS OR under Windows. On the other hand, if the user selects only MSDOS in the Opsys drop-down box, the software evaluation module will display fewer products, since only products those running under MSDOS will be shown.
  • the selectors Title, Publisher, Category, and OpSys define an AND logic direction. With the AND logic of the selectors, a product will be found by the search only if it meets all of the parameters defined by the selectors. For example, if the user selects Borland in the Publisher drop ⁇ down box, Spreadsheets in the Category drop-down box, and MSDOS in the OpSys drop-down box, the software evaluation module will only display those products that are spreadsheets AND are published by Borland AND that run under MSDOS.
  • the OR logic of the drop-down boxes operates in combination with the AND logic of the selectors.
  • the software evaluation module will display more products since it will display those products that are spreadsheets AND are published by Borland AND that run under MSDOS OR Windows. Because of the AND logic of the selectors, the user can increase the number of products found by not selecting one of the selectors.
  • the user selects the Worksheet] icon 223, and decides on one or more search parameters. For example, the user wishing to purchase a new spreadsheet program for MSDOS would first select the Category button 215. This causes the software evaluation module to display a drop-down box 221 containing a list of available categories, such as spreadsheets, word processing, etc., as shown in Figure 2B. The user would select the category "spreadsheets.” Alternatively, the user can select the Category button 215 and start typing characters into the box below the Category button. This causes the software evaluation module to display the drop-down box 221 containing a list of available categories with a category designated by the typed in characters already selected.
  • the user would then select the OpSys button 217. This closes the drop-down box 221, and causes the software evaluation program to display drop-down box (not shown), similar to the drop-down box 221, containing a list of operating systems. From the list of operating systems, the user would select the operating system MSDOS, directly, or by typing in characters. The user would then select the SEARCH button 207. This causes the software evaluation module to close the OpSys drop-down box, and to search the products database for the products that meet the selected search parameters, i.e., that are a spreadsheet AND run under MSDOS.
  • the software evaluation module displays the results of the search in the search results box 251 shown in Figure 2C. The user can then review the search results, select anywhere between none and all of the products found, and add the selected products to the main worksheet.
  • the software evaluation module displays a list of the titles of the products found by the search, e.g., the products 204 and 206, in the search results box 251. The user can then select any or none of the displayed products, and then select the ADD button 253 to add die selected products to the main worksheet.
  • the user can select products one at a time, in which case, the user selects the ADD button 253 after each selection to add the selected product to the main worksheet.
  • the user can hold the appropriate control key down while selecting products with the mouse.
  • the user selects the ADD button to add the selected products to the main worksheet.
  • the user selects the DONE button 255 to close the search results box 251, and to return to the main worksheet screen. Irrespective of the selection method used, the selected products will be displayed in the main worksheet.
  • the user may locate a potential search result quickly by typing characters into the Search For box 252. This locates the potential search result more quickly than scrolling down the display. For example, a search using Microsoft in the Publisher field produces a list of products that fills the search results box over three times. Typing the characters "W,” "O,” "R” into the search box 252 locates the various versions of Microsoft Word almost instantly. The user may then add products to the main worksheet as described above.
  • the software evaluation module After most of its different search modes, the software evaluation module produces a search results box similar to the search results box 251, whose operation has just been described. Accordingly, the above description of the operation of the search results box 251 will be referred to below.
  • the software evaluation module displays the search results box 257 shown in Figure 2D.
  • the search results box 257 is substantially the same as the search results box shown in Figure 2C, except that the box displays a list of the titles of all the available products.
  • the user selects one or more of the displayed products to add to the main worksheet, using the selection methods described above in connection with Figure 2C.
  • the user selects the DONE button 259 to close the search results box 257, and to return to the main worksheet screen.
  • the user may remove products from the list of products displayed in the main worksheet 202 by selecting them and using the DELETE button 205.
  • the user may alternatively search for products using the software evaluation module's Features Compare facility by selecting the Compare icon 225.
  • the user may select, from a list of available features, one or more key features.
  • the software evaluation module searches the products database for all the products having the selected feature(s). Techniques for searching databases for items meeting a set of search parameters are well known, and will not be described here. The detailed operation of searching using the Features Compare facility will be described later.
  • the user may also search by selecting the What's New icon 227.
  • the software evaluation module performs a search similar to the basic search initiated by selecting the SEARCH button 207, as described above, but the search only displays products that meet the search criteria and which have been added to the products database since the last update.
  • the user may search for products that complement or add value to a selected primary product.
  • the user first selects one or more primary products displayed in the main worksheet screen 202, as described above.
  • the user may also select other search parameters such as Publisher, Category, and OpSys.
  • the user selects the Additions icon 229.
  • This causes the software evaluation module to display a search results box, similar to that shown in Figure 2C, containing a list of products that add value to the selected primary product. For example, if the user selects a desktop publishing program as the primary product, the search resulting from selecting the Additions icon 229 could display a list of font packages for use with the primary desktop publishing program.
  • the software evaluation module displays search results in a search results drop-down box similar to the search results box 251, shown in Figure 2C.
  • the user may then select some or all the products displayed in the search results box, as described above, and add them to the main worksheet 202, as described above. If the search results box has been generated by the feature compare facility, the selected search products are added to the feature compare display, which will be described in detail below.
  • the user may save the worksheet resulting from any search for later evaluation by selecting a save option (not shown) displayed when the FILE button 201 is selected.
  • the user may then re-display the results of a search by selecting the open option (not shown) displayed when the FILE button is selected.
  • the software evaluation module includes several facilities that enable the user to evaluate and compare the products found by the search.
  • the main worksheet screen 202 ( Figure 2A) displays a row of icons at the bottom of the screen with which the user can select the various evaluation options. Before selecting an evaluation option, the user must select one of the products displayed on the main worksheet. Then, selecting the Capsules icon 231 allows the user to view information about the selected product.
  • the Capsules icon causes the software evaluation module to display on the screen brochure text and graphic information provided by the publisher of the selected product. The user may print this information, if desired.
  • Selecting the Reviews icon 233 enables the user to read what software experts and professional reviewers have to say about the selected product. If copies of such information are not available, the Reviews icon can display a bibliography of reviews, or other information from third parties regarding the selected product. This information is, again, provided by the publisher of the product, and saves the user from having to search through many publications to find such information.
  • Selecting the Demo icon 235 enables the user either to view a slide- show type demonstration or to operate a limited-use demonstration version of the selected product.
  • the demonstration software is, again, provided by die publisher to show the capabilities of the selected product.
  • Selecting the Test Drive icon 237 enables a corporate user to try the actual product before buying.
  • the user may electronically order from the central office, and desktop vend, if desktop vending is available for the selected product, the complete product for a free trial for a predetermined trial period, for example, 30 days. Manuals are available upon request, with a charge for shipping, and a full cost charge if the manuals are damaged or are not returned when the product is returned within the trial period. If the user elects to keep the product, or if the user does not electronically "return" the product before the end of the trial period, the central office generates an invoice and offers the documentation to the user if the documentation has not previously been shipped.
  • the features compare facility of the software evaluation module will next be described. This facility enables the user to compare competing products feature-by-feature, and enables the user to search for products having one of more selected features. Using the features compare facility to make a feature-by-feature comparison of products found in a search will be first described.
  • the user first uses one of the search facilities of the software evaluation module described above to select the products to compare.
  • the results of the search are displayed in the main worksheet 202, as described above.
  • the user may also add additional titles to the main worksheet, if desired.
  • the user selects the products to be compared using the mouse, and then selects the Compare icon 225, which displays the features compare screen shown in Figure 3A.
  • compare screen 301 At the top of the features compare screen 301 are the FILE button 303, the HELP button 305, and the DELETE ITEM button 307. Below this set of buttons are displays for CATEGORY 311, FEATURES 313, and TITLES 315.
  • the icons 223, 225, 227, 229, 231, 233, 235 and 237 are the same as the icons 223, 225, 227, 229, 231, 233, 235 and 237 in the main worksheet screen 202 ( Figure 2A), and enable the user to select the software evaluation and vending facilities indicated by these icons from the features compare screen, as well as from the main worksheet screen.
  • the features compare screen includes five title boxes 317, 319, 321, 323, and 325 in which the titles of the products being compared are displayed. Although the five title boxes allow the titles of only five products to be displayed at once, the features compare facility can compare the features of many more than five products. The adjacent five products displayed in the title boxes are selected using the horizontal scroll bar 316.
  • the features compare facility automatically enters the titles of products that the user has selected in the main worksheet screen 202 into the title boxes. However, since features are category-specific, the features compare facility will only enter into the features compare screen the titles of those products that are in the same category. The features compare facility also automatically enters into the title boxes the titles of any products the user has selected in the search results box of the Find Title function of the features compare facility. This aspect of the features compare facility will be described in detail below.
  • the user may also enter titles directly into the title boxes 317, 319, 321, 323, and 325 by selecting the category button 311, and then selecting a category from the drop-down box that then appears.
  • the user selects the Titles button 315, which causes a drop-down box containing a list of titles to appear.
  • the user can then select one or more titles from the titles displayed in the drop-down box, and can add the selected titles to the features compare screen by selecting an ADD button located in the drop ⁇ down box. Selecting the DONE button in the drop-down box returns the user to the feamres compare screen.
  • the user selects the category button 311, and selects a category from the drop-down box that then appears. Selecting a category is required because features are category-specific.
  • the user selects the Feamres button 313, which causes the drop-down box 302, shown in Figure 3B, to appear containing a list of the available features.
  • the user can the select one or more feamres from the list of available feamres.
  • the user selects the ADD button 304. This closes the drop-down box 302, and causes the features compare screen to display the matrix display 327, as shown in Figure 3C.
  • the columns 327, 329, 331, 333, and 335 extend from the five title boxes 317, 319, 321, 323, and 325, respectively, and the selected features are copied into successive rows 318, 320, 322, 324, 326, 328,and 330.
  • the software evaluation module then completes the matrix display 337 by searching the entries for the selected products in the product data base to determine whether each of the selected products has each of the selected feamres.
  • the module displays the results of the search in the matrix display 337.
  • the completed matrix display is shown in Figure 3C.
  • An "X" in a box of the matrix display indicates that the product in the column in which the "X" appears has the feature in the row in which the "X" appears.
  • the "X" 306 indicates that Quattro Pro Special Edition, version 1.0 has an automatic file save capability that Quattro Pro, version 4.0 lacks.
  • the matrix display 337 of the features compare screen enables the user to make a feature-by-feature comparison of the selected products under consideration.
  • the features compare screen 301 includes two additional buttons that operate after the user has selected one of the products displayed on the feamres compare screen.
  • the Final Word button 339 displays a message from the publisher of the selected product. The statement provides details of the advantages of the selected product, and information regarding the publisher's customer service offerings.
  • the Ask the Publisher button 341 enables the user to communicate directly with the publisher of the selected product. Selecting the Ask the Publisher button causes the software evaluation module to display an electronic message form for the user to fill out with questions about the selected product.
  • the software evaluation module uses the modem 14 ( Figure 1) to send the electronic message form to a Bulletin Board Service (BBS) at the central office. Publishers call the Bulletin Board to pick up electronic messages and send electronic reply messages.
  • BSS Bulletin Board Service
  • the electronic message form includes a Receive button that automatically calls the central office to re-access the user's BBS mailbox to download an electronic message including responses to his/her questions, and other useful information provided by the publisher.
  • the user can save the reply message to a file, and can also edit the reply message.
  • the Ask the Publisher facility provides a direct link between the user and die publisher. All communications are conducted confidentially, but the central office 20 monitors the BBS daily to help publishers respond in a more timely way to questions posted on the service.
  • the user first selects the Compare icon 225 from the main worksheet screen 202. This causes the software evaluation module to display the feamres compare screen. The user selects the Category button 311, and selects a category from the drop-down box that then appears. Selecting a category is necessary because features are category-specific. Next, the user selects the Feamres button 313, which causes the drop-down box 308 to appear displaying a list of the available feamres.
  • the user can select one feature on which to search by selecting one of the feamres shown in the feature list.
  • the user can select several feamres on which to search by holding down the appropriate control key on the keyboard, and selecting several feamres shown in the feature list.
  • the user selects the Find Titles button 310 at the bottom of the drop-down box 308.
  • This causes the software evaluation module to search the products database to determine which one or ones of the available products has the selected feature, or, if the user selected more than one feature, all the selected feamres.
  • the software evaluation module then displays the drop-down box 351, below the TITLES button 315, in which it lists the titles of the products it has found. This is shown in Figure 3E.
  • the software evaluation module displays the selected titles in the title boxes 317-on, and displays die feamres on which it carried out the search for titles in the first rows 318-on.
  • the user can now add additional features to the feamres compare screen by selecting the Feamres button 313, to carry out a side-by-side comparison of the selected products.
  • the user may additionally or alternatively copy the titles displayed in the feamres compare screen to the main worksheet screen 202.
  • the electronic ordering aspect of the professional system will now be described in more detail.
  • the electronic ordering aspect runs as a number of program modules running under the main program on the workstation 10 ( Figure 1).
  • the main program includes the request for quotation module illustrated in Figure 4A.
  • the request for quotation module is run by selecting the Quote icon 255 from either the main worksheet screen 202 ( Figure 2A) or the features compare screen 301 ( Figure 3A).
  • the user will normally select some or all of the titles listed in the main worksheet screen 202 ( Figure 2A) before selecting the Quote icon 257.
  • the quotation module displays die quotation worksheet 401, shown in Figure 4B.
  • the quotation worksheet includes the Quantity column 403, the Publisher column 405, the Title column 407, the MSRP column 409, the Price column 411, and the Extended amount column 413.
  • the quotation worksheet also includes the QUOTE button 415.
  • the quotation module tests whether the user has selected titles in the main worksheet 202. If the result of this test is TRUE, the quotation module, at the step 105, partially fills out the quotation worksheet 401 with the selected titles in the Title column 407, and die respective publisher in the Publisher column 405, as shown in Figure 4B. Otherwise, the quotation module executes the step 107, where the user is invited to enter titles into the quotation worksheet. The user does this by selecting the Title button 407, and selecting the required titles from the drop-down box (not shown) that then appears.
  • the user selects a title, such as the title shown in line 414 of the quotation worksheet.
  • This causes the format selection dialogue box 421 shown in Figure 4C to open.
  • the user first selects one of the version selection buttons 418, 419, and 420 to select a single-user version, a multi-user version, or an upgrade version, respectively.
  • the quotation module displays the alternative formats in which the selected version of the selected product can be delivered to the user.
  • the formats displayed are version- specific. These alternatives include shipping copies of the product to the user from the central office (in which case the user must select the required disc size), desktop vending, in which the central office authorizes the workstation to make one or more copies of the selected product, or an electronic license, in which the central office causes the workstation issue a license to install the selected product on additional computers.
  • the program Professional File, version 2.0 can only be acquired as discs shipped to the user. A choice of 5% -inch (line 429) and 3V2-inch (line 427) discs is available. Desktop vending and an electronic license are not available.
  • the user may obtain additional information about each alternative format by selecting the Description button 423.
  • the user selects a format by selecting one of the alternatives presented, enters the quantity desired, which the quotation module automatically enters in the quantity column 417, and selects the OK button 425, which closes the dialogue box.
  • the format of the selected version of the selected product selected using the format selection dialogue box will be called die chosen format.
  • the user may select more than one chosen format for each product in the quotation worksheet.
  • the quotation module returns to the quotation worksheet where it adds a line showing the chosen format that has just been chosen, and the MSRP of the chosen format. For example, as shown in Figure 4C, the quotation module adds to the quotation worksheet a line 431 showing the chosen format of the product shown in line 414, and die MSRP of the chosen format.
  • the quotation module also includes in the added line, but does not display, a stockkeeping number that is unique to the chosen format.
  • the quotation module tests whether the user has selected the QUOTE button 415. If the QUOTE button has not been selected, i.e., die result of the test is FALSE, the quotation module returns to step 109 to allow the user to select the chosen format and enter the quantity of the other products in the quotation worksheet.
  • die user may select one of several shipping options by selecting the shipping drop-down box 433.
  • the user When the user has selected the chosen format and has entered the quantity for all the products in the quotation worksheet, the user selects the QUOTE button 415. This causes the quotation module to produce a TRUE result at step 113, and die program advances to step 115.
  • the quotation module causes the workstation 10 to transmit the quotation worksheet, as a request for a quotation, to the central office 20.
  • the quotation module only transmits a site identifier, a number that uniquely identifies die workstation, a code indicating the shipping method, and for each product in the quotation worksheet, the stockkeeping number and quantity of each chosen format of the product.
  • the request for quotation module then advances to step 117, where it causes the modem 14 to remain on line waiting for a return message from the central office 20.
  • the central office 20 assigns a reference number to the received request for a quotation, stores the data received in the request for a quotation together with the reference number, and generates and stores the information required to respond to the request.
  • the central office then transmits the re rn message back to the workstation.
  • the quotation module waiting at step 117, receives and stores die return message, and then hangs up the line.
  • the return message consists simply of several price pairs, a sub total, a tax amount, a shipping amount, a total, the reference number, and an expiry date for the quotation. There is one price pair for each chosen format in the quotation worksheet. One price in each price pair is the unit price, the other price in each price pair is the extended amount.
  • the return message may also include an indication of whether the user's credit is good for the grand total amount of the quotation.
  • the quotation module enters the received information into the Price column 411, the Extended Amount column 413, the Subtotal box 435, the Tax box 437, the Shipping box 439, die Total box 441, die Reference number box 443, and die Expiry date box 445 in the quotation worksheet, as shown in Figure 4E.
  • the quotation module men returns execution to the main program.
  • the user can save the completed quotation worksheet for use later, if desired, using the SAVE AS option (not shown) that appears when the user selects the FILE button 447.
  • die user displays die completed quotation worksheet (if it is not already displayed) by, for example, using the OPEN option (not shown) displayed when die user selects the FILE button in the main worksheet 202. This may be done any time while the quotation is valid, e.g., within 30 days of when die user received die quotation.
  • the user selects all the products displayed in the quotation worksheet and then selects the Purchase icon 257 ( Figure 2A). This causes the main program to run the purchasing module, illustrated in Figure 5A.
  • the purchasing module displays die purchase order worksheet 451, shown in Figure 5B.
  • the purchase order worksheet is displayed with the data copied from the quotation worksheet partially filled out in the order details area 453.
  • the purchase order worksheet may also be displayed with the billing and shipping addresses entered in the spaces 455 and 457, respectively.
  • the purchasing module then advances to step 123, at which it tests whether the chosen format for any of the products displayed in the purchase order worksheet is desktop vending. If the result of this test is FALSE, the quotation module advances to step 129. Otherwise, the purchasing module advances to step 125, where it determines the addresses of n random unoccupied storage locations in the secure memory device, where n is the total number of products to be made be desktop vending in the purchase order. The purchasing module men advances to step 127, at which it changes the status of the random unoccupied storage locations to "occupied.”
  • the purchasing module tests whether the user has selected die PURCHASE button 461. If the test returns a FALSE result, the program reverts to step 129. While the program is waiting, the user completes the purchase order, including selecting die Method of Payment dialogue box 459, which drops down for the user to enter either a purchase order number, or a credit card number. The user can also enter his/her own information into the Reference Number box 460.
  • step 131 the purchasing module causes the workstation 10 to transmit the reference number to the central office 20. Also transmitted is the data shown in the purchase order, except the data that was copied from the request for quotation worksheet.
  • step 133 the purchasing module causes the user identification number, and, for each product to be desktop vended, a secure memory address and a quantity in order.
  • the purchasing module men advances to step 133, where it waits for a return message from the central office in response to the transmitted purchase order.
  • step 129 There is no need, in step 129, for the purchase module to transmit to the central office the information copied into the purchase order from the quotation worksheet, since the central office already has this information. Part of this information was included in the original request for a quotation and die central office provided die rest of this information in response to the request for a quotation.
  • the reference number transmitted with die purchase order indicates to the central office that the user accepts the quotation. The reference number also enables the central office to link the purchase order with die data it stored when it prepared die quotation from which the purchase order is derived.
  • die central office 20 Upon receiving the purchase order, die central office 20 checks whether the quote on which the purchase order is based is still valid. If the quote is no longer valid, die central office will treat the purchase order as a request for a quotation, and will return a quotation to die user, instead of acknowledging die purchase order. Only after the user accepts the new quote by sending die purchase order to the central office once more will the central office treat the received purchase order as a valid purchase order.
  • the central office checks that the received order number is valid. If the purchase order includes a credit card number, the central office automatically obtains approval for the amount of the transaction from the credit card company. The central office forwards the part (if any) of the order related to items to be shipped to the warehouse for shipment.
  • die central office For each product to be desktop vended, die central office retrieves from the data base 42 the key for decrypting the encrypted copy of the product.
  • the central office encodes die key for each product with an encoding algorithm, described above, which uses, in addition to the key, the user identification number and one of die secure memory addresses received from the workstation 10, taken in order.
  • die key For each product to be desktop vended, five different coded keys are generated.
  • the central office 20 transmits a return message accepting the order, which the purchasing module receives at step 133.
  • die return message includes a coded key and a quantity for each product to be desktop vended.
  • the purchasing module causes the workstation to store each coded key and each quantity received.
  • the coded key and die quantity for each product are stored together in the secure memory device 30 at the secure memory address that was used to encode die key.
  • the purchasing module returns control to the main program.
  • the user may copy the titles of products directly from the main worksheet 202 ( Figure 2A). If the user copies the tides of products directiy from the main worksheet 202, the purchasing module requires the user to select a chosen format and to enter a quantity for each product. The purchasing module men provides a quotation, similar to that provided by die quotation module but displayed on die purchase order worksheet. The user must then accept the quotation displayed by die purchasing module before the purchasing module can cany out the purchasing transaction described above.
  • the main program also includes die desktop vending module shown in Figure 6A.
  • the user wants to make copies of a product for which a coded key has been received, the user selects the Desktop Vending icon 259 from any of the screens, such as the main worksheet screen 202 and die features compare screen 301 in which it is displayed. This causes the desktop vending module to execute.
  • the desktop vending module prompts the user to enter an identification and a password, which it checks. The desktop vending module will only advance to the next step if it recognizes the user and the password is correct. Otherwise, desktop vending module will return execution to the main program.
  • the desktop vending module displays die desktop vending screen 471 shown in Figure 6B. In the display area 473, the desktop vending screen displays a line for each product, and displays die quantity of copies of that product for which a coded key has been received.
  • the user selects the product tiiat he/she wishes to desktop vend.
  • die desktop vending module checks whether die user has selected one of die icons at the bottom of the desktop vending program. If the result of the test is TRUE, the desktop vending module returns execution to the main program. Otherwise, the desktop vending module proceeds to step 147, where it displays a license agreement.
  • the user must indicate that he/she accepts the license agreement before execution can proceed to the next step. If the user refuses to accept the license agreement, execution returns to step 145 so that the user can select another product to desktop vend, if another product is available for desktop vending.
  • the desktop vending module displays a serial number for the copy of the product to be made.
  • the desktop vending module displays in the area 475 all of the several formats in which a copy of the product can be desktop vended, e.g., 360k, 720k, 1.2M, 1.44M, or R2R, a ready-to-run copy on the hard disc. The user selects one of the indicated formats by selecting the appropriate one of the buttons 477.
  • the desktop vending module tests whether the user has selected die Manufacture button 479. When the result of the test is FALSE, the desktop vending module returns to step 155. Otherwise it advances to step 157, where it decodes die coded key for the product selected.
  • the desktop vending module retrieves the coded key and die user identification number from the locations in the secure memory device where they were stored.
  • the desktop vending module men invokes die complementary decoding algorithm, which extracts the key using the coded key, die user identification number, and die address of die location in die secure memory device where die coded key was stored.
  • the desktop vending module seeks the encrypted copy of the selected product corresponding to the format selected in step 153, and, a step 161, it issues instructions to the user for making me copy. For example, it the copy is being made on floppy discs, die desktop vending module invites die user to insert a floppy disc corresponding to die format selected into the appropriate disc drive in the workstation. At step 163, it displays, and may print on a printer (not shown) attached to the workstation, appropriate instructions for labelling the copy. At step 165, the desktop vending module decrypts die encrypted copy using the decoded coded key and makes a copy of the result. The desktop vending module indicates its progress at making the copy in the display area 481.
  • the desktop vending module tests whether the copy is complete. If the copy is being made to floppy discs, it checks whether it has made all the discs constituting die copy. If it has, the desktop vending module advances to step 169, where it retrieves the quantity for the product from the secure memory device and decreases die quantity by one. At step 171, it tests whether the quantity is greater than zero, i.e., whether all the copies of the product have been made. If the quantity is greater than zero, the desktop vending module proceeds to step 173, where it returns the quantity to the secure memory device, and returns to step 145.
  • the desktop vending module proceeds to step 175, where it erases the coded key and quantity from the secure memory device, and deletes die product from the desktop vending display.
  • the desktop vending module After executing either step 173 or step 175, the desktop vending module returns to step 145, so that additional copies can be made, if there are keys for additional products stored in the secure memory device.
  • me desktop vending module returns to step 161, where it displays additional instructions to the user, such as inviting the user to insert a floppy disc.
  • additional instructions to the user such as inviting the user to insert a floppy disc.
  • die desktop vending module may ran a script program to install groups and icons into the user's graphic user interface, and/or to modify certain housekeeping programs, such as AUTOEXEC.BAT and CONFIG.SYS in MSDOS to accommodate die newly-installed product.
  • the desktop vending module will indicate to the central office, via the modem 14 ( Figure 1), when all the copies that were authorized for desktop vending in a given purchase order have been made.
  • the central office passes part of this information on to the publishers) of the products in the purchase order to facilitate registering the user as a user of the products.
  • the invention also relates to a consumer version of the software evaluation apparatus and method and of die software distribution apparatus, system, and method.
  • the consumer system, shown in Figure IB is similar to the professional system: components of the consumer system corresponding to those of die professional system shown in Figure 1 A have the same reference number with die letter "A" added.
  • the consumer system will now be described in more detail, with reference to Figure IB.
  • the consumer system is based on die consumer's own computer 10A.
  • the consumer system provides die consumer with software that configures his/her computer as the consumer software evaluation apparatus and die consumer software distribution apparatus according to the invention.
  • the consumer's computer constitutes the workstation 10A
  • die mass storage device such as the hard disc 22 A
  • the consumer's computer constitutes the mass storage medium.
  • Data files provided by die central office 20 A are installed on die consumer's mass storage device, preferably before the consumer buys the computer.
  • the data files possibly include a narrower selection of copies of encrypted software products than in the professional system, depending on die capacity of the consumer's mass storage device.
  • the data files also include an unencrypted copy of each of a main program and program modules similar to the main program and die program modules, respectively, described above.
  • the data files include die product data base used by die search facility of the software evaluation module, and die capsules, and die demonstration programs that can be accessed by die software evaluation module.
  • the data files can be installed by die mass storage device manufacturer, by die manufacturer of the computer, or by the dealer selling the computer to the consumer.
  • the central office provides to these installing entities a mass storage medium, such as a CD-ROM.
  • the mass storage medium includes different sets of data files for installation on different-sized mass storage devices, such that an acceptable proportion of the capacity of the mass storage device is left free.
  • Known data compression techniques can be used to reduce die amount of spaced on die mass storage device occupied by the encrypted copies of the products.
  • the central office may provide to the installing entities mass storage devices containing a greater variety of sets of data files than that dictated only by the different capacities of mass storage devices. Possessing this greater variety of sets of data files would enable the installing entity to offer the consumer a choice in the number of software products installed as encrypted copies on the user's mass storage device.
  • the central office could also enable an installing entity to offer the user a choice in the type or types of software product installed as encrypted copies on his-her mass storage device. It would also be possible for the central office to provide certain installing entities a mass storage medium, such as a CD-ROM containing individual encrypted copies of a wide variety of software products.
  • the central office would then authorize such entities to customize the selection of products that they transfer as encrypted copies from the mass storage medium received from the central office to the user's mass storage device.
  • the central office would provide such installing entities with a program that would add icons and files relating to the selected products to the software evaluation module that the dealer would then also install on the user's mass storage device.
  • the encrypted copies are stored on die user's mass storage device such that their presence is recognized by die computer's operating system. This prevents the user's computer from writing over the encrypted copies, and allows the consumer to delete all or some of the encrypted copies any time.
  • the process by which the user obtains authorization to decrypt one or more of the encrypted copies on die mass storage device in the consumer system is similar to that used in the professional system.
  • the modem 14A may be omitted from the consumer system since the consumer system provides for communicating with the central office 20A using die touch-tone telephone 46, instead of a modem.
  • the touch-tone telephone 46 is connected to the automated voice response unit (VRU) 44 at the central office 20A via the dial-up line 48, or via another suitable communication link.
  • VRU automated voice response unit
  • the voice response unit 44 at the central office 20A is connected to die central computer 40A, and, together with die user operating the touch- tone telephone 46, transfers data between the central computer and die user's computer 10A.
  • the relevant modules of the main program in the user's computer display on die screen 28A the information that the user must enter using the keypad of die touch-tone telephone 46, and die order in which the information must be entered. Alternatively, the relevant modules can print out the information, with spaces for the user to enter the information received from the central office, by the user's printer (not shown).
  • the touch-tone keys 0 - 9 are used for data, and die * and # keys for "return” and "error-redo” commands.
  • the VRU "speaks" numbers generated by die central computer 40A, and also "reads back" groups of numbers entered by die user to enable the user to check the accuracy of his/her input.
  • the user uses the keyboard 24A to enter the numbers “spoken” by the VRU into the computer 10A.
  • die same data is transferred back and forth at each step of the process of ordering products from die central office.
  • the central office system also allows the user to deal witii a live operator. This is especially vital when the user places his/her first order, which requires a great deal of information be transmitted. Even witii data compression, over 150 digits have to be entered. The probability of pressing this many digits witiiout error is small, so a read-back of each number entered is required. This reduces die chances of errors, but considerably increases me time required to enter die information. To avoid this problem, the first-time caller may bypass the VRU 44 and provide die first-use information to a live operator.
  • the live operator After the live operator has entered die new user's information into the central computer 40A, the live operator gives the new user a customer number, encoded key(s) if the user has purchased a desktop vended product, and transaction / quote / return numbers. These numbers are encrypted before being given to the user. The user uses the computer keyboard 28A to enter these numbers into his/her computer 10A.
  • the user For the second and subsequent calls from the user, the user enters his/her customer number and can choose whether to continue with die VRU, or to transfer to a live operator. Use of a live operator is required if the user indicates that the customer data given in the first call has changed.
  • die encrypted copy of each product in the consumer system is an encrypted copy of an installed, ready-to-run version of the program.
  • the consumer system does not offer desktop vending to floppy discs.
  • the central office ships to the user a set of floppy discs for each product die user desktop vends, together with the documentation for the product.
  • the decrypted copy of the software package is written back onto the mass storage device, such as the hard disc 22A, in the consumer's computer.
  • the encrypted copy of the product that was desktop vended is then deleted. If the encrypted copy was not compressed, die decrypted copy is written over the encrypted copy, and die amount of available space on the mass storage device remains unchanged when die encrypted copy is replaced by die decrypted copy.
  • the order module of die consumer system includes a routine that generates and stores a random number, called a "seed," for each product that will be desktop vended.
  • the user transmits a seed to die central office for each product to be desktop vended.
  • the central office codes die key using the seed as one coding parameter, instead of coding die key using the secure memory address as one coding parameter as in the professional system.
  • the order module in die consumer system then decodes die coded key for a product using the seed it generated for that product as one decoding parameter.
  • the coded key transmitted to the user is shorter than in die professional system.
  • die key length is kept die same, but central office transmits only a coded partial key to the user.
  • the complement of the partial key i.e., what must be added to die partial key to provide die full key, for each product stored on die user's mass storage device as an encrypted copy, is also encrypted and stored in a key file on the consumer's mass storage device.
  • the central computer 40A generates the coded partial key by first looking up in the data base 42A the key for the product indicated by die user.
  • the central computer encodes die partial key using a suitable coding algorithm that generates the coded partial key in response to the partial key, the user identification number, and die seed number.
  • the central computer adds to the coded partial key the address for the complement of the key in the key file, and some additional, non-functional, digits.
  • the central computer transmits the resulting password to the user.
  • the order module in the user's computer upon receiving a password, extracts the coded partial key and die key file address from die password.
  • the order module then decodes die coded partial key using a decoding algorithm that operates in response to the coded partial key, and die seed number and die user identification number stored in the user's computer.
  • the order module next retrieves the file of encrypted complementary keys stored on die user's mass storage device, decrypts die file, and extracts from the file the complementary key indicated by die key address in the password. Finally, the order module inserts the partial key into the complementary key to provide die full key, which it then uses to decrypt the encrypted copy of the product.
  • the user may only make four unsuccessful attempts to enter the password for desktop vending a product. After four unsuccessful attempts, the fifth attempt must be correct. Otherwise, the order module re-encodes die password, so that the co ⁇ ect password changes every five attempts. This reduces the vulnerability of the system to programs that serially generate all combinations of a multi ⁇ character password to determine die correct password. However, unlike other systems that attempt to reduce this type of vulnerability, the present system does not shut down if an incorrect password is repeatedly entered. The system thus avoids die inconvenience of having to provide a "super password" to restart after a self-defensive shutdown.
  • the main program of the consumer system runs under a graphical user interface, such as Windows.
  • the user selects the various program modules that run under die main program by selecting an icon displayed on die main screen.
  • the product evaluation module in die consumer system offers fewer features than the professional system.
  • the main screen 501 is shown in Figure 7A.
  • the main screen includes a scrollable display area 503.
  • the display in the display area depends on which module of die main program is running.
  • Figure 7A shows the catalog display generated by die catalog module in die display area 503.
  • icons for Brochures 505, Demonstrations 507, and Order 509 At the top of the main screen are arranged a File button 511, a Utilities button 513, and a Help button 515.
  • a File button 511 At the top of the main screen are arranged a File button 511, a Utilities button 513, and a Help button 515.
  • At the bottom of the main screen are forward, back, and next arrows 517, 519, and 520 respectively, which changes what is shown in the display area 503.
  • the catalog button allows the user to return to the main catalog display at any time.
  • the constant help display 523 of die consumer system's animated help system appears at the bottom of the main screen.
  • the constant help display tracks the mouse pointer, and displays a message telling the user what would happen if the user were to click on the mouse.
  • the animated help feamre is activated if, at any time the user is operating the system, a lack of keyboard or mouse activity for more than a predetermined time suggests that the user may not know what to do next.
  • the animated help feature makes this determination, it takes over control of the mouse pointer and moves it to where it determines the user ought to move it next. It then displays in the constant help box a message telling the user what would happen if the user were to click on die mouse with die mouse pointer positioned as the animated help feamre has positioned it.
  • the animated help feature the displays a box asking the user if he/she wants to take the suggested action, with Yes and No buttons for the user to select. If the user follows the suggestion made by die animated help feamre, the animated help feamre will guide die user until the user once more takes command by moving the mouse him/her self.
  • Hardware products can also be sold through the consumer system.
  • Figure 7A various categories of hardware are shown displayed on die left side of die catalog display in the display area 503. Hardware products are sold and delivered to the user the same way as software products, except tiiat hardware products cannot be desktop vended.
  • die word “product” will refer to both hardware and software, but, with respect to desktop vending, die word “product” will refer to software only.
  • Each available product is represented by an icon in the display area 503.
  • the icons of products not currendy in view can be seen by operating die scroll bar 504.
  • Some icons, such as the icon 525, marked "data management,” can indicate a category of products, such as databases, spreadsheets, or word processing programs. If the user selects an icon indicating a category, the catalog screen in the display area 503 will display die icons of only those products tiiat fall within the chosen category. Thus, for example, if the user selects the icon 503, the catalog screen will only display database management programs.
  • the user can discover more about a selected product by dragging die icon for die product into the Brochure folder 506 next to the Brochure icon 505.
  • the user can drag several icons into the Brochure folder 506, if desired.
  • the user can select the Brochure icon 505.
  • This causes the catalog module to display in the display area 503 a brochure, and a list of feamres, for the product whose icon the user first dragged into the brochure folder 506.
  • the information provided to die user by this facility is supplied by die publisher.
  • the user may scroll through the brochure using me scroll bar 504, and may men view die brochure for the product whose icon the user next dragged into the brochure folder 506 by selecting die forward arrow 517.
  • the user may return to viewing the first brochure at any time by selecting the reverse arrow 519, or may view the brochure for the next product by selecting the forward arrow 517 again.
  • the user may also view the brochure for the next product, irrespective of whetiier the user has selected it, by selecting me next arrow 520.
  • the user may return to the catalog display at any time by selecting die Catalog button 521.
  • the user may also drag one or more of die displayed icons into the Demo folder 508 next to Demo icon 507.
  • the catalog module will cause the Demo icon to grey out, or otherwise appear non-functional if no demonstration program is available for the product selected.
  • selecting the Demo icon 507 causes the catalog module to run a demonstration program provided by die publisher of the first product whose icon the user dragged into the Demo folder 508.
  • the demonstration is displayed in die display area 503.
  • the user can use the forward, back, and next arrows 517, 519, and 520, and the Catalog button 521, to select the demonstration program to view in the same way as he/she used tiiese controls to select the brochure to view.
  • the order module displays die order form screen 551 shown in Figure 7B.
  • the order form module displays die tides of die products whose icons die user dragged into the order folder in the display area 553.
  • die consumer system will describe the transmission of data back and forth between the user's computer 10A and the central office 20A.
  • This interchange of data will be described in terms of direct interchange between the modem 14A in die user's computer 10A and die modem 38A in die central office via the dial-up line 16A.
  • this interchange of data could equally well take place by the user reading data off the display 28A and entering it into the touch-tone telephone 46, this data being received by die VRU 44 at die central office 20A; and by die user hearing data "spoken" by the VRU 44, and using the keyboard 24A to enter the data into his/her computer 10A.
  • the order module transmits to the central office simply the titie(s) of the product(s) displayed on die order fo ⁇ n worksheet.
  • the central office sends back a price quotation, good for thirty days, and a quote number.
  • the price quotation will also cause the order module to display a message asking the user if he/she wishes to place an order now. If the user accepts, the ordering process proceeds to the next step. Otherwise, the user can save the quotation using a Save option (not shown) displayed when die user selects the Files button 555. The user can then retrieve and re-display die quotation later using an Open option displayed when die user selects the Files button.
  • die user selects the Order Form icon 509 once again, and calls up the previously-received quote, as just described. The user then fills out the rest of the order form worksheet shown in Figure 7B, and selects the button 557, which displays an additional screen in which the user enters details of die credit card tiiat he/she will use to pay for the products being purchased. If the consumer has chosen desktop vending, die order module generates and stores a seed, as described above, for each product to be desktop vended.
  • the order module establishes communication witii the central office and transmits the quote number to the central office 20A. Also transmitted is die all the information entered into the order form, the user's identification number, the user's selection of drop-shipping or desktop vending, and any seeds generated.
  • die central office In response to the data received, die central office transmits a return message back to the user acknowledging die order.
  • the central office ships discs and documentation for all products tiiat are electronically ordered, even for products that are supplied using desktop vending. Thus, the central office forwards die order to die warehouse 50A for shipping.
  • die order acknowledgment includes a password for each desktop vending copy that will be made.
  • the order module extracts the coded partial key and die key table address from the password, and decodes die coded partial key using a decoding algorithm that operates in response to the coded partial key, and die seed number and user identification number stored in the user's computer.
  • the order module retrieves die key table from the user's mass storage device, decrypts it, and die inserts the partial key into the complementary key indicated by die key table address to provide die full key, as described above.
  • the order module tiien uses the full key to decrypt the encrypted copy of the product stored on die user's mass storage device, and makes a copy of the product back on the mass storage device.
  • die order module deletes die encrypted copy of the product from the mass storage device.
  • die order module may run a script program to install groups and icons into the user's graphical user interface, and/or to modify certain housekeeping programs, such as AUTOEXEC.BAT and CONFIG.SYS in MSDOS to accommodate die newly-installed product.
  • the main screen also includes die Utilities button 513. Selecting the Utilities button enables die user to run a utility to de-fragment the user's mass storage device after a product has been desktop vended. This improves the performance of the user's mass storage device.

Abstract

The workstation (10) includes floppy disk drives (12, 13) and a modem (14) for communicating with the central office (20) via a communication link (16). The central office (20) includes a modem (38) linked to the central computer (40). The central office (20) provides the user of the system with a complete copy of each of plural software products stored on the mass storage medium (18). The software copies that are stored on the mass storage medium (18) are encrypted so that they cannot be used by a user who has not paid for them.

Description

Software Evaluation and Distribution Apparatus, System, and Method
Background of the Invention
The present invention relates to an apparatus and a method for distributing computer software, such as computer programs, directly to the user. Software publishers normally sell computer software to corporate users and to consumers through distributors and retailers. This system is disadvantageous to both the publisher and the customer.
Software publishers typically spend one third of their total budget on product development, and two-thirds on sales and marketing. Of that sales and marketing percentage, a substantial percentage is spent on providing profit incentives to existing distribution channels. The publisher also has to provide to the retailer strategies and tactics for reaching potential corporate clients and consumers, strategies and tactics that, when executed by the retailer may not successfully reach their target.
The software publisher must also provide a stock of physical copies of its programs to the distribution system. The software publisher must provide copies in various formats, for example, on 5 W -inch or 3 'A -inch discs, high density, or low density, and must supply them in quantities sufficient to meet a forecast demand. If demand is greater than forecast, the software publisher must arrange for additional copies to made available quickly. If demand is less than forecast, the publisher must deal with returns. Corporate software evaluators must find and analyze a vast amount of available software product information. They must understand a rapidly- changing industry, and satisfy the divergent software needs of individuals in their organization. Software evaluators are often the key to acceptance and productive use of personal computing software throughout an organization.
Purchasing agents have to choose from broad and complex product offerings and configurations, and have to decide which choice best suits the needs of the organization.
To be able to sell its products, the software publisher needs to reach and influence those with decision-making power. This is not an easy task.
Publishers spend large sums on promotional campaigns. Since this practice is common throughout the software industry, corporate software evaluators are inundated with advertising, industry trade shows, telemarketers, seminars, and reseller calls. It is rare when the evaluators have time to pay attention to even one time-consuming promotion.
Software publishers face similar problems selling to consumers, and consumers face problems similar to those faced by professional software evaluators in deciding the optimum program to use for their applications. In addition, once the consumer has bought a program, he/she must face the task of installing the software on his/her computer, and, often, of configuring the software for his/her system. The software developer must provide support and assistance for such activities by the consumer.
In view of the above, it is desirable to provide a software vending system in which the software publisher can communicate directly with the person making the software buying decision, i.e., the user. It is also desirable for the publisher to be able to provide information directly to the user to aid the user in evaluating various software products and in making a purchasing decision. It is desirable to provide the user the ability to compare features of competing products, to see a demonstration of each product on his/her computer, to test a working copy of a product, and to have access to reviews of competing products conducted by third parties. It is also desirable for the user to be able to manufacture copies of the software product that he/she eventually chooses to avoid the delay involved in obtaining such copies from a retailer. The user can then install the chosen product onto his/her computers) from the manufactured copies. It is also desirable to enable the user to order large quantities of copies of the selected software products to be drop-shipped directly from a warehouse. These features are also advantageous for the software publisher, since they reduce the number of copies that the publisher needs to provide to retailers.
It is also desirable to provide the consumer with at least some of the software product evaluation facilities set forth above, and to provide the consumer with the ability to install the product directly on the hard disc of his/her computer. This saves the consumer the trouble of installing and configuring the chosen software, and reduces the amount of installation support that the publisher must provide to the consumer.
Modern computer programs are very large. For example, WordPerfect for Windows 5.2 is distributed as data-compressed files on seven 1.44 MB high-density floppy discs. This makes it infeasible, using current, widely-available telecommunications technology, for the software publisher to distribute products to the user electronically via modem. However, it is foreseen that, as wide bandwidth telecommunications links become cheaper and more available, the system to be described below can distribute encrypted copies of software products using a telecommunications link.
With current telecommunications technology, it is more practical to handle the large quantities of data involved by providing the user with a "warehouse" of products stored on a mass-storage device. To save the user from having to pay for all the products received at once, the copies of the products provided to the user are encrypted. The user then may make one or more copies of one or more selected products in the "warehouse" by obtaining, in return for payment or a promise to pay, a key with which to decrypt each encrypted copy.
For such a "warehouse'' based system to be economically viable, it must be possible to mass produce and distribute cheaply the warehouses of encrypted copies. To prevent unauthorized decryption, the encrypted copies must be encrypted with sufficient security that the cost of making an unauthorized decrypted copy must be greater than the cost of lawfully obtaining the decryption key. Also, to prevent a first user from giving a lawfully-obtained key to a second user for the second user's use, the key must be unique to each user, even though both users have the same encrypted copy. Finally, to prevent a user from making more copies of a product than the user has paid for, the system must control the number of copies a user can made using each key received. United States Patent No. 4,528,643 of Freeny, Jr. describes a system for reproducing information in a material object at a point of sale location. The information to be reproduced is provided in encrypted form to the point of sale location from a remote location. The point of sale location transmits to the remote location a request code, including a catalog number, requesting clearance to reproduce the information indicated by the catalog number in a material object. The remote location transmits an owner authorization code, including the catalog number, in response to the request code. Upon receiving the authorization code, the point of sale location decrypts the encrypted information and reproduces the information in a material object. The system described in the Freeny, Jr. patent lacks any means for the software developer to communicate directly with the user, and any means to aid the user in comparing various potential software packages before making a purchasing decision. The system also requires that the catalog number of the information be transmitted back and forth between the user and the remote location. The system also requires that the information be uniquely encrypted for each user. This is clearly impractical for a system which requires that the encrypted copies be mass produced for distribution to many users.
United States Patents Nos. 4,827,508, 4,977,594, and 5,050,213 to Shear describe a system in which textual databases are provided to an user in encrypted form stored on, for example, an optical disc. The user may, subject to credit limits, decrypt selected parts, or all, of the encrypted databases. The user's decryption of data bases, or parts of them, is metered. The metered data is communicated to a remote site, whence the user is billed. Measures are included to disable the user's ability to decrypt more of the data base if, for example, the user fails to pay his/her bill.
The system described in the Shear patents also lacks any means for the software developer to communicate directly with the user, and any means to aid the user in comparing various potential software packages before making a purchasing decision. Moreover, in the Shear system, the remote site is only advised of the user's use of the data base after the user has used the data base. This presents the owner of the data base with the need to balance the risk of unpaid bills against putting onerous restrictions on the user's use of the database.
Objects and Summary of the Invention
It is an object of the invention to provide a software evaluation system that affords the software publisher a low-cost, effective, and direct contact with the user.
It is an object of the invention to provide a software evaluation system that provides the user with the latest, most accurate information about the software publisher's products, promotions, pricing, upgrades, and new releases. It is an object of the invention to provide a software evaluation system that provides self-running or controlled demonstrations of a software developer's products to the user.
It is an object of the invention to provide a system for distributing software products in which the user can make a copy or copies of a selected software product for installation on the user's computer.
It is an object of the invention to provide a system for distributing software products that enables a user to obtain instantly an electronic license to install a selected software product on additional computers. It is an object of the invention to provide a system for distributing software that provides automatic registration of all users of software products purchased using the system, and reduces the cost of registering users for the software publisher.
It is an object of the invention to provide a system for distributing software products in which the software publisher can provide a product in a large variety of floppy disc formats, in network versions, and in versions for direct installation on the user's hard disc without the costs normally associated with stocking and distributing a large variety of formats.
It is an object of the invention to provide a system for distributing software products that has a reduced distribution cost compared with the normal system of distributing copies of a software product via retail distribution.
It is an object of the invention to provide a system for distributing software products in which the costs associated with product obsolescence and product write downs in the normal retail distribution system are reduced.
It is an object of the invention to provide a system for distributing software products that reduces the time and trouble required for a user to install a software product on his/her computer. It is an object of the invention to provide a system for distributing software products in which encrypted copies of selected software products are mass produced and/or are cheaply distributed to users.
It is an object of the invention to provide a system for distributing software products in which, to prevent unauthorized use, encrypted copies of software products are encrypted with sufficient security that the cost of making an unauthorized decrypted copy is greater than the cost of lawfully obtaining the decryption key.
It is an object of the invention to provide a system for distributing software products system for distributing software products that prevents a first user from giving a lawfully-obtained key to a second user for the second user's use, even though both users have the same encrypted copy.
It is an object of the invention to provide a system for distributing software products that prevents a user from making from the encrypted copy of a product more copies than the user has paid for, even though each copy will be made from the same encrypted copy.
Finally, it is an object of the invention to provide a system for evaluating and distributing software products that meets all of the above objects, and runs on a computer network. Accordingly, the apparatus provides an apparatus for making a copy of a software product from an encrypted copy of the software product. The apparatus comprises a reading device that reads the encrypted copy of the software product and a communication device that sends an outgoing message to a remote site, the outgoing message including a request for a key for the encrypted copy, and receives a return message from the remote site in response to the outgoing message. The return message includes a coded key. The apparatus also includes a key decoding device that decodes the coded key to provide the key, a decrypting device that receives a read out of the encrypted copy of the software product from the reading device, uses the key to decrypt the read out of the encrypted copy of the software product to provide the software product. Finally, the apparatus includes a copy making device that receives the software product from the decrypting device and makes the copy of the software product.
The invention also provides an apparatus for assisting a user to select one of plural competing products. The apparatus comprises a data base in which is stored data indicating, for each of the plural competing products, that the product includes each of plural preselected features. The apparatus also includes a device for the user to select at least one of the plural preselected features as at least one selected feature, and a device to search the data base means to provide a search result. Finally, the apparatus includes a search result display device that displays the search result.
The invention also provides a system for a central office to distribute to plural users a copy of a software product. The system comprises a central office and a user apparatus. The central office includes an encrypting device that encrypts the software product using a key, and makes an encrypted copy of the encrypted software product. The central office also includes a distribution system for distributing the encrypted copy to the users, a key storing device that stores the key, and a coding device that provides a coded key by coding the key using a user identification received from the user. A central communication device at the central office receives from the user an incoming message including a request for the key for the encrypted copy, and a user identification identifying the user. The central communication device also transmits to the user in response to the incoming message a return message including the coded key. The user's apparatus includes a user communication device that transmits the incoming message received by the central office, and receives the return message transmitted by the central office in response to the incoming message. The user's apparatus also includes a key decoding device that decodes the coded key, using the user identification, to provide the key, a reading device that reads the encrypted copy received from the central office, a decrypting device that receives a read out of the encrypted copy from the reading device, and uses the key to decrypt the read out of the encrypted copy to provide the software product. Finally, the user's apparatus includes a copy making device that receives the software product from the decrypting device and makes the copy of the software product.
The invention also provides a method for a central office to distribute to plural users a copy of a software product. At the central office, the software product is provided, is encrypted using a key, and an encrypted copy is made of the encrypted software product. The encrypted copy is distributed to the users, and the key is stored. The central office receives from a user an incoming message including a request for the key for the encrypted copy, and a user identification identifying the user. The central office encodes the key using the user identification to provide a coded key, and transmits to the user in response to the incoming message a return message including the coded key. In the user's apparatus, the incoming message is transmitted to the central office, and the return message transmitted by the central office in response to the incoming message is received. The coded key is decoded, using the user identification, to provide the key. The encrypted copy received from the central office is read, and the encrypted copy is decrypted using the key to provide the software product. Finally, the copy is made of the software product.
The invention finally provides a method for assisting a user to operate a computer program with a graphical user interface. A display including a constant help box and a pointer are provided. The pointer has a position on the display. Also provided is a user input device, that determines the position of the pointer on the display, and includes a selection device operable by the user. Finally, help messages are provided. The position of the pointer on the display is determined. The result of the user operating the selection device at the position of the pointer on the display is determined. A help message is selected in response to the result just determined. Finally, the selected help message is displayed in the constant help box.
Brief Description of the Drawings
Figure 1 A shows a block diagram of the professional software evaluation and distribution apparatus and system according to the invention.
Figure IB shows a block diagram of the consumer software evaluation and distribution apparatus and system according to the invention.
Figure 2A shows the main worksheet screen of the professional software evaluation and distribution apparatus and system according to the invention.
Figure 2B shows the main worksheet screen of the professional software evaluation and distribution apparatus and system according to the invention with the category selection box displayed.
Figure 2C shows the search results box of the professional software evaluation and distribution apparatus and system according to the invention after a search has been performed.
Figure 2D shows the search results box of the professional software evaluation and distribution apparatus and system according to the invention during a search for the title of a product.
Figure 3A shows the features compare screen of the professional software evaluation and distribution apparatus and system according to the invention.
Figure 3B shows the features compare screen of the professional software evaluation and distribution apparatus and system according to the invention with the features selection box displayed.
Figure 3C shows the features compare screen of the professional software evaluation and distribution apparatus and system according to the invention after a features comparison has been made. Figure 3D shows the features compare screen of the professional software evaluation and distribution apparatus and system according to the invention with the features selection box displayed, before performing a product search by features.
Figure 3E shows the features compare screen of the professional software evaluation and distribution apparatus and system according to the invention displaying the results of a product search by features.
Figure 4A is a flow chart illustrating the operation of the quotation module of the main program of the professional software evaluation and distribution apparatus and system according to the invention.
Figure 4B shows the quotation worksheet of the professional software evaluation and distribution apparatus and system according to the invention.
Figure 4C shows the format select dialogue box selected from the quotation worksheet of the professional software evaluation and distribution apparatus and system according to the invention.
Figure 4D shows the quotation worksheet of the professional software evaluation and distribution apparatus and system according to the invention after the format has been selected for the two products shown.
Figure 4E shows the quotation worksheet of the professional software evaluation and distribution apparatus and system according to the invention after the quotation has been received from the central office.
Figure 5A is a flow chart illustrating the operation of the purchasing module of the main program of the professional software evaluation and distribution apparatus and system according to the invention.
Figure 5B shows the purchase order worksheet of the professional software evaluation and distribution apparatus and system according to the invention
Figure 6A is a flow chart illustrating the operation of the desktop vending module of the main program of the professional software evaluation and distribution apparatus and system according to the invention. Figure 6B shows the desktop vending control screen of the professional software evaluation and distribution apparatus and system according to the invention
Figure 7A shows the catalog screen of the consumer software evaluation and distribution apparatus and system according to the invention.
Figure 7B shows the purchasing screen of the consumer software evaluation and distribution apparatus and system according to the invention
Detailed Description of the Invention
A first aspect of the present invention relates to a software evaluation apparatus and method that help a professional software evaluator to evaluate competing software products to select one of them to purchase. The first aspect of the present invention also relates to a software distribution apparatus, system, and method by means of which the professional software evaluator or purchasing agent can electronically purchase a copy of the product selected using the software evaluation aspect of the invention, or otherwise selected. Within minutes of selecting a product to purchase, the professional software evaluator or purchasing agent electronically can make a copy of the selected software product using the apparatus. The copy thus made is then ready for installation on a computer in the normal way. The process of making a copy of a selected software product using the apparatus will be called "desktop vending."
Normally, the professional software evaluation apparatus and the software distribution apparatus are combined in a single, computer-based workstation, and the invention will be described in terms of such a workstation, with reference to Figure 1A. The workstation 10 includes floppy disc drives 12 and 13 that may be used for making copies during the desktop vending process, and a modem 14 for communicating with the central office 20 via a dial-up line or other communication link 16. The workstation 10 and the central office 20 form the software evaluation and distribution system according to the invention. The workstations of other users (not shown) are connected to the central office via dial-up lines or other communication links (not shown).
The workstation 10 may form part of a network (not shown) that provides all or some of the workstation facilities to be described herein to one or more stations on the network. For example, all stations on the network may have the software evaluation facilities to be described, and may be able to obtain a quotation, but only one or two stations on the network may be allowed to order products and/or to desktop vend products. Alternatively, all products on the network may be able to use all facilities of the system.
The central office 20 includes the modem 38 linked to the central computer 40. The central computer accesses the database 42 in which keys used in the desktop vending process are kept, and in which users' accounts are kept. The central computer is also linked to the warehouse 50, whence products that are not desktop vended are shipped to the user.
In the professional system, the central office 20 provides the user with a complete copy of each of plural software products stored on the mass storage medium 18. For example, the central office may provide the user with complete copies of five different word processing programs, three different spreadsheet programs, four different data base management programs, ten different font packages, and many other programs. To prevent the user from using the software products in his/her possession without paying for them (or to save the user for having to pay for all the products at once) the copies of the products stored on the mass storage medium 18 are encrypted, and so cannot be used by the user without the appropriate key. Alternatively, in a future system, encrypted products may be distributed to the user via a wide-band telecommunications link. Techniques for encrypting data, and for decrypting encrypted data using a key are well known, and will not be described here. The main program includes a software evaluation module that enables the user to evaluate any of the software products stored on the mass storage medium 18. The user may also use the software evaluation module to evaluate additional products that are not in the user's possession, but that can be drop-shipped to the user in response to an order electronically transmitted from the workstation 10 to the central office 20, or for which the central office can issue an electronic license.
An important feature of the software evaluation module is that it enables the user to identify all available products that have one or more features selected by the user. The software evaluation module provides a list of features from which the user can select one or more features considered important. The software evaluation module then provides a list of programs having the selected feature. The user can then compare competing software products feature by feature.
The software evaluation module may include an electronic "brochure" for each software product, copies of reviews of each product by third parties, or, if reviews are not available, other materials provided by third parties, or a bibliography of reviews and other information.
The software evaluation module also includes self-running or limited-use demonstrations of available products to aid further the user's purchasing decision.
The software evaluation module additionally provides an electronic mail system to enable the user to mail questions to, and to receive answers and other useful information from, the publisher of a selected product via the central office.
Once the user has decided which software product to purchase, the user then uses the software distribution apparatus according to the invention to acquire one or more copies of the selected product. As stated above, the software distribution apparatus is normally provided as part of the same computer-based workstation as the software evaluation apparatus, although a separate apparatus may be used.
The main program also includes a quotation module, which prompts the user to indicate the one or more products selected for purchase, the quantity of each required, and the delivery method. Delivery options include shipping copies of the product to the user from the central office, desktop vending, in which the central office authorizes the workstation to make one or more copies of each selected product, or an electronic license, in which the central office causes the workstation issue a license to install the selected product on additional computers.
The workstation 10 transmits the data entered into the quotation module by the user, as a request for a quotation, to the central office 20. The central office then transmits a quotation back to the workstation. The quotation includes a price for each of the selected products, and a reference number. The quotation module displays the received quotation to the user. The quotation may also include a sales tax amount, a shipping amount, a grand total, and an indication of whether the user's credit is good for the grand total of the quotation. The user can save the quotation for use later, if desired.
If the user decides to accept the quotation, the user then runs the purchasing module from the main program, which causes the workstation 10 to transmit the reference number of the quotation to the central office 20. This indicates that the user accepts the quotation. This may be done any time while the quotation is valid, e.g., 30 days. In response, the central office transmits a return message accepting the order. If any of the products in the order are indicated to be desktop vended, the central office also transmits, for each product to be desktop vended, a unique coded key and quantity indicating the number of copies of the product the user is authorized to make by desktop vending. The workstation 10 stores the coded keys and the quantities in a secure memory device for later use. The main program finally includes a desktop vending module. When the user wants to make a copy of a product for which a coded key has been received, the user runs the desktop vending module, which allows the user to indicate which of the products for which a key has been received he/she wishes to make. The desktop vending module then invites the user to select one of several available formats for the copy. Possible formats include Sc¬ inch or S i-inch high density or low density floppy discs, a network version, or a working copy for direct installation onto the user's hard disc.
The desktop vending module then obtains the key for the product selected by decoding the coded key, searches the mass storage medium 18 for the encrypted copy of the selected product corresponding to the format selected, and issues instructions to the user for making the copy. For example, if the copy is to be made onto floppy discs, the desktop vending module invites the user to insert a floppy disc corresponding to the format selected into the appropriate disc drive in the workstation 10. The desktop vending module decrypts the encrypted copy using the decoded coded key and makes a copy of the result in the selected format, e.g. , on the floppy disc. If the copy is being made onto floppy discs, and the copy requires more than one floppy disc, the desktop vending module will invite the user to insert additional floppy discs into the disc drive until all the floppy discs constituting the copy have been made. Each floppy disc made during this process corresponds to a floppy disc in the version of the product distributed through the normal retail distribution system.
When the copy is complete, the desktop vending module decreases the stored quantity for the product by one. If the stored quantity is greater than zero, the product remains in the display of products available for desktop vending so that the user can make additional authorized copies. Once the stored quantity reaches zero, the product is deleted from the display of products available for desktop vending, and its coded key is deleted from the secure memory device. As part of a subsequent communication session with the central office 20, the desktop vending module will indicate to the central office, via the modem 14 (Figure 1), when all the copies that were authorized for desktop vending in a given quotation have been made. The central office forwards part of this information to the software publisher(s) for each product desktop vended. This enables the publisher to register the user as a user automatically.
In the professional system, the workstation 10 includes the central processing unit 11, and operates under the command of a main program stored on the hard disc 22 and is controlled by the user providing inputs using the keyboard 24 and/or the mouse 26. Outputs are displayed to the user by the monitor 28 or by a printer (not shown).
The workstation 10 includes a secure memory device 30. The secure memory device 30 has plural memory locations, such as the memory location 31, each of which has a unique secure memory address. One memory location in the secure memory device 30 stores the user identification number, a unique number identifying the user. Other memory locations in the secure memory device are used to store the coded keys and quantities that are received from the central office 20. One coded key and one quantity is stored in the secure memory device for each product to be desktop vended. The secure memory increases the security of the encryption process by storing the user identification number, and the coded keys and quantities received from the central office in a location that is not readily accessible to the user, instead of in the workstation's memory.
In the preferred embodiment, the secure memory device 30 is provided by the dongle 30 attached to a parallel port 32 of the workstation 10. The dongle 30 has 30 memory locations, each identified by a unique secure memory address. Alternatively, the secure memory device can be provided by a secured portion of the user's hard disc 22, or by other known secure memory techniques. So that the central station can provide the same set of encrypted files to all users yet deny users the ability to pass a key from one user to another, the system provides for a unique encoding to be applied to each key before the central station 20 transmits the key to the workstation 10.
The unique encoding is applied as follows: when the user orders from the central office one or more copies of one or more products to be desktop vended, the workstation determines the addresses of n random unoccupied storage locations in the secured memory device 30, where n is the total number of products to be desktop vended. The workstation then transmits these addresses, effectively as random numbers, together with the user identification number, which it reads out of one of the storage locations in the secure memory device. The workstation also stores the transmitted secure memory addresses.
Before transmitting the key for each product ordered by the workstation, the central office encodes each key to provide a coded key. The encoding uses an algorithm that uses the key for the product, the secure memory address received from the workstation for each product, and the user identification number received from the workstation.
Because of this encoding, it can be seen that:
(1) the coded keys for different products will be different because the key for each product is different;
(2) the coded keys for identical orders from different users will be different because each user has a different user identification number; and
(3) the coded keys for identical orders placed by the same user at different times will be different because of the randomization of the secure memory addresses.
The central station 20 transmits a coded key for each product to be desktop vended back to the workstation 10. The central station also transmits to the workstation a quantity for each product, which is the number of copies of the product that the user is authorized to make by desktop vending. This prevent the user from using a single key to make multiple copies of the product. Finally, the central office may include several random numbers in the return transmission to the workstation. The random numbers make it more difficult for someone monitoring the return transmission to determine the coded keys.
The workstation 10 stores the encoded keys and quantities received from the central office 20 in the secure memory device. The workstation stores each encoded key and its corresponding quantity at the address in secure memory used to encode the key. The workstation may store part of each coded key in the secure memory device, and may store the rest of each coded key elsewhere in the workstation to make it more difficult for someone to determine the coded keys. The following explanation will assume that all of each coded key is stored in the secured memory device.
When the user performs desktop vending, the workstation retrieves the encoded key and the secure memory address for the product to be desktop vended, and the user identification number from the secure memory device, and uses these parameters in a decoding algorithm complementary to the encoding algorithm at the central office to derive the key from the coded key. The workstation also retrieves the quantity for the product from the secure memory device. The workstation then retrieves the encrypted copy of the product, decrypts it using the key, and makes the number of copies determined by the quantity.
In the professional system, the workstation 10 includes a compact disc read-only memory (CD-ROM) drive as the mass storage medium 18, and the encrypted copies of the software packages available for desktop vending are distributed to the user on CD-ROM. A CD-ROM holds about 600-680 MB of data, costs of the order of one dollar to manufacture, and can be mailed cheaply without special precautions. Thus, it is feasible for the central office to send a new disc to each user frequently, such as once per month. This is advantageous for both the user and the software publisher since it ensures that the latest version of a publisher's product is immediately available to each user.
An additional advantage is that a publisher can have an encrypted copy of a new product (or a new version of an existing product) included in a time-locked file on a CD-ROM distributed to the user before the new product's release date. The user cannot use the new product until the release date, when the time lock on the file opens. The ability of the system to time lock files also means that a publisher can withdraw a product from sale part¬ way through the period of validity of a CD-ROM. For example, the publisher can withdraw the present version of its product on the same day as the new version is released.
Regular distribution of new CD-ROMs also provides a convenient path for the software publisher to distribute product enhancements, bug fixes, updates (silent or otherwise), new software or hardware drivers, and other new information to each user.
The security of the encrypted files is increased by storing the encrypted copies on the CD-ROM in large files containing many encrypted copies such that the individual encrypted copies are not recognized by operating system in the workstation 10. An encrypted location file that includes a table of starting address offsets and file lengths for all the encrypted copies on the CD-ROM is also stored on the CD-ROM. During the desktop vending process, which will be described in detail below, the desktop vending module reads the encrypted location file off the CD-ROM, decrypts it, looks up in the location file the starting address offset and file length on the CD-ROM of the encrypted copy to be decrypted. The decrypted location file is then erased from the workstation's memory.
In addition to encrypted copies of the products available for desktop vending, the CD-ROM also stores the product data base used by the search and features compare facilities of the software evaluation module, and the capsules, the product reviews, and demonstration programs that can be accessed by the software evaluation module. Storing this information on the CD-ROM enables the information to be updated concordantly with updating the encrypted products stored on the CD-ROM. To speed up access to this information, the file allocation table for this part of the CD-ROM is copied to the hard disc 22 in workstation. Each time the user receives a new CD- ROM, an installation module in the main program copies the file allocation table from the CD-ROM onto the hard disk 22. The software evaluation module then reads the file allocation table off the hard disc, looks up the location on the CD-ROM of the desired file, and causes the CD-ROM drive to seek directly to the point on the CD-ROM found in the file allocation table. This significantly increases the speed at which the software evaluation module retrieves its various files from the CD-ROM. The software evaluation module looks up the location of the file using a fast seek on the hard disk instead of using a much slower seek on the CD-ROM.
Operation of the professional system will now be described in detail. The main program and its subsidiary program modules run under a graphical user interface (GUI), such as Windows. The graphical user interface allows the user to select the various program modules described above by pointing and clicking using a mouse, or by using the keyboard. The user may similarly select various options within each module. The main program provides a shell from which the various program modules may be run by selecting an appropriate icon.
The software evaluation module will be described first. The software evaluation module helps the user to find one or more software products that meet his/her needs. The module enables the user to search to identify several products that potentially could fulfill the user's requirements, and then enables the user to examine each product in detail, and to compare selected products feature by feature, to help the user make a final selection.
The basic search facility of the software evaluation module requires the user first to establish search parameters. As will be described below, the main worksheet is arranged to allow the user to select graphically a Boolean combination of search parameters. Products may be selected by specifying operating system (e.g., DOS, Windows, MAC), category (e.g., spreadsheet, word processing), publisher(s), title, or by AND-OR combinations of these parameters. The software evaluation function then searches the product data base for titles that match the search parameters. The software evaluation module displays the results of all searches as a list of product titles.
The product data base stored on the mass storage medium 18 includes information relating to all the products stored as encrypted copies on the mass storage medium. Also included in the products data base is information relating to additional products that may be ordered from the central office for delivery to the user by a means other than desktop vending. For each product, the database includes information indicating the category of the product, its publisher, its operating system, and its Manufacturer's Recommended Selling Price (MSRP). The database includes, for each product, codes representing the features of the product. The features of the product are provided to the central office by the product's publisher. To enable the software evaluation module to make meaningful product comparisons, the central office issues a list of standardized available features for each category of products, e.g., word processors. However, the publisher may add to the list of standardized available features if the product includes one or more unique features. Finally, the data base entry for a product that operates with one or more other primary products includes codes that represent the primary product(s) with which the product operates.
The main program displays the main worksheet screen 202 shown in Figure 2A. At the top of the screen are the operating buttons marked FILE 201, HELP 203, DELETE 205, and SEARCH 207. Immediately below these buttons are the search parameter selectors marked Title 211, Publisher 213, Category 215, and OpSys 217. At the bottom of the main worksheet screen is a row of icons with which the user can select various product evaluation and product vending facilities. The operation of these icons will be described below.
Selecting any one of the Title, Publisher, Category, and OpSys selectors causes a drop down box of available search parameters to appear. The drop-down box defines an 'OR' logic direction. The user may select one or more search parameters in each drop-down box. With the OR logic of the drop-down box, a product found by the search will have any one of the selected search parameters. For example, if the user selects MSDOS and Windows in the OpSys box, the software evaluation module will display products will run under MSDOS OR under Windows. On the other hand, if the user selects only MSDOS in the Opsys drop-down box, the software evaluation module will display fewer products, since only products those running under MSDOS will be shown.
The selectors Title, Publisher, Category, and OpSys define an AND logic direction. With the AND logic of the selectors, a product will be found by the search only if it meets all of the parameters defined by the selectors. For example, if the user selects Borland in the Publisher drop¬ down box, Spreadsheets in the Category drop-down box, and MSDOS in the OpSys drop-down box, the software evaluation module will only display those products that are spreadsheets AND are published by Borland AND that run under MSDOS. The OR logic of the drop-down boxes operates in combination with the AND logic of the selectors. If in the previous search, the user selected both MSDOS and Windows in the OpSys drop-down box, the software evaluation module will display more products since it will display those products that are spreadsheets AND are published by Borland AND that run under MSDOS OR Windows. Because of the AND logic of the selectors, the user can increase the number of products found by not selecting one of the selectors.
To begin a search, the user selects the Worksheet] icon 223, and decides on one or more search parameters. For example, the user wishing to purchase a new spreadsheet program for MSDOS would first select the Category button 215. This causes the software evaluation module to display a drop-down box 221 containing a list of available categories, such as spreadsheets, word processing, etc., as shown in Figure 2B. The user would select the category "spreadsheets." Alternatively, the user can select the Category button 215 and start typing characters into the box below the Category button. This causes the software evaluation module to display the drop-down box 221 containing a list of available categories with a category designated by the typed in characters already selected. For example, typing in the characters "S," "P," "R" opens the drop-down box and selects the category "spreadsheets." If the user actually wants the category "spreadsheet utilities," it is a simple matter for the user to use the mouse or the arrow keys to move the selection bar down one line.
The user would then select the OpSys button 217. This closes the drop-down box 221, and causes the software evaluation program to display drop-down box (not shown), similar to the drop-down box 221, containing a list of operating systems. From the list of operating systems, the user would select the operating system MSDOS, directly, or by typing in characters. The user would then select the SEARCH button 207. This causes the software evaluation module to close the OpSys drop-down box, and to search the products database for the products that meet the selected search parameters, i.e., that are a spreadsheet AND run under MSDOS.
If the user then wished to see spreadsheet programs that ran under either MSDOS or Windows, the user would reopen the OpSys drop down box, additionally select Windows, and select the SEARCH button 207. This would cause the software evaluation module to close the OpSys drop-down box, and to search the products database for the products that meet the selected search parameters, i.e., that are a spreadsheet AND ran under MSDOS OR Windows. So that the user may review the results of a search before adding products found by the search to the main worksheet 202, the software evaluation module displays the results of the search in the search results box 251 shown in Figure 2C. The user can then review the search results, select anywhere between none and all of the products found, and add the selected products to the main worksheet. The software evaluation module displays a list of the titles of the products found by the search, e.g., the products 204 and 206, in the search results box 251. The user can then select any or none of the displayed products, and then select the ADD button 253 to add die selected products to the main worksheet.
The user can select products one at a time, in which case, the user selects the ADD button 253 after each selection to add the selected product to the main worksheet. Alternatively, the user can hold the appropriate control key down while selecting products with the mouse. When the user has finished selecting products, he/she then selects the ADD button to add the selected products to the main worksheet. The user then selects the DONE button 255 to close the search results box 251, and to return to the main worksheet screen. Irrespective of the selection method used, the selected products will be displayed in the main worksheet.
If the search produces a long list of products in the search results box 251, the user may locate a potential search result quickly by typing characters into the Search For box 252. This locates the potential search result more quickly than scrolling down the display. For example, a search using Microsoft in the Publisher field produces a list of products that fills the search results box over three times. Typing the characters "W," "O," "R" into the search box 252 locates the various versions of Microsoft Word almost instantly. The user may then add products to the main worksheet as described above.
After most of its different search modes, the software evaluation module produces a search results box similar to the search results box 251, whose operation has just been described. Accordingly, the above description of the operation of the search results box 251 will be referred to below.
Instead of searching for products by publisher, category, and/or operating system, as described above, the user may wish simply to evaluate several products, the titles of which are already known to the user. In this case, the user would simply select the Title button 211. The software evaluation module displays the search results box 257 shown in Figure 2D. The search results box 257 is substantially the same as the search results box shown in Figure 2C, except that the box displays a list of the titles of all the available products. The user then selects one or more of the displayed products to add to the main worksheet, using the selection methods described above in connection with Figure 2C. Again, when the user has finished selecting titles, the user selects the DONE button 259 to close the search results box 257, and to return to the main worksheet screen.
The user may remove products from the list of products displayed in the main worksheet 202 by selecting them and using the DELETE button 205.
The user may alternatively search for products using the software evaluation module's Features Compare facility by selecting the Compare icon 225. When the user uses this facility, the user may select, from a list of available features, one or more key features. The software evaluation module then searches the products database for all the products having the selected feature(s). Techniques for searching databases for items meeting a set of search parameters are well known, and will not be described here. The detailed operation of searching using the Features Compare facility will be described later.
The user may also search by selecting the What's New icon 227. In response to this selection, the software evaluation module performs a search similar to the basic search initiated by selecting the SEARCH button 207, as described above, but the search only displays products that meet the search criteria and which have been added to the products database since the last update.
Finally, the user may search for products that complement or add value to a selected primary product. To perform such a search, the user first selects one or more primary products displayed in the main worksheet screen 202, as described above. The user may also select other search parameters such as Publisher, Category, and OpSys. The user then selects the Additions icon 229. This causes the software evaluation module to display a search results box, similar to that shown in Figure 2C, containing a list of products that add value to the selected primary product. For example, if the user selects a desktop publishing program as the primary product, the search resulting from selecting the Additions icon 229 could display a list of font packages for use with the primary desktop publishing program.
Irrespective of the search method, the software evaluation module displays search results in a search results drop-down box similar to the search results box 251, shown in Figure 2C. The user may then select some or all the products displayed in the search results box, as described above, and add them to the main worksheet 202, as described above. If the search results box has been generated by the feature compare facility, the selected search products are added to the feature compare display, which will be described in detail below.
The user may save the worksheet resulting from any search for later evaluation by selecting a save option (not shown) displayed when the FILE button 201 is selected. The user may then re-display the results of a search by selecting the open option (not shown) displayed when the FILE button is selected.
The software evaluation module includes several facilities that enable the user to evaluate and compare the products found by the search. The main worksheet screen 202 (Figure 2A) displays a row of icons at the bottom of the screen with which the user can select the various evaluation options. Before selecting an evaluation option, the user must select one of the products displayed on the main worksheet. Then, selecting the Capsules icon 231 allows the user to view information about the selected product. The Capsules icon causes the software evaluation module to display on the screen brochure text and graphic information provided by the publisher of the selected product. The user may print this information, if desired.
Selecting the Reviews icon 233 enables the user to read what software experts and professional reviewers have to say about the selected product. If copies of such information are not available, the Reviews icon can display a bibliography of reviews, or other information from third parties regarding the selected product. This information is, again, provided by the publisher of the product, and saves the user from having to search through many publications to find such information.
Selecting the Demo icon 235 enables the user either to view a slide- show type demonstration or to operate a limited-use demonstration version of the selected product. The demonstration software is, again, provided by die publisher to show the capabilities of the selected product.
Selecting the Test Drive icon 237 enables a corporate user to try the actual product before buying. The user may electronically order from the central office, and desktop vend, if desktop vending is available for the selected product, the complete product for a free trial for a predetermined trial period, for example, 30 days. Manuals are available upon request, with a charge for shipping, and a full cost charge if the manuals are damaged or are not returned when the product is returned within the trial period. If the user elects to keep the product, or if the user does not electronically "return" the product before the end of the trial period, the central office generates an invoice and offers the documentation to the user if the documentation has not previously been shipped.
The features compare facility of the software evaluation module will next be described. This facility enables the user to compare competing products feature-by-feature, and enables the user to search for products having one of more selected features. Using the features compare facility to make a feature-by-feature comparison of products found in a search will be first described.
The user first uses one of the search facilities of the software evaluation module described above to select the products to compare. The results of the search are displayed in the main worksheet 202, as described above. The user may also add additional titles to the main worksheet, if desired. The user selects the products to be compared using the mouse, and then selects the Compare icon 225, which displays the features compare screen shown in Figure 3A.
At the top of the features compare screen 301 are the FILE button 303, the HELP button 305, and the DELETE ITEM button 307. Below this set of buttons are displays for CATEGORY 311, FEATURES 313, and TITLES 315.
At the bottom of the features compare screen 301 are the icons 223, 225, 227, 229, 231, 233, 235 and 237. These icons are the same as the icons 223, 225, 227, 229, 231, 233, 235 and 237 in the main worksheet screen 202 (Figure 2A), and enable the user to select the software evaluation and vending facilities indicated by these icons from the features compare screen, as well as from the main worksheet screen.
Below the TITLES display 315, the features compare screen includes five title boxes 317, 319, 321, 323, and 325 in which the titles of the products being compared are displayed. Although the five title boxes allow the titles of only five products to be displayed at once, the features compare facility can compare the features of many more than five products. The adjacent five products displayed in the title boxes are selected using the horizontal scroll bar 316.
The features compare facility automatically enters the titles of products that the user has selected in the main worksheet screen 202 into the title boxes. However, since features are category-specific, the features compare facility will only enter into the features compare screen the titles of those products that are in the same category. The features compare facility also automatically enters into the title boxes the titles of any products the user has selected in the search results box of the Find Title function of the features compare facility. This aspect of the features compare facility will be described in detail below.
The user may also enter titles directly into the title boxes 317, 319, 321, 323, and 325 by selecting the category button 311, and then selecting a category from the drop-down box that then appears. Next, the user selects the Titles button 315, which causes a drop-down box containing a list of titles to appear. The user can then select one or more titles from the titles displayed in the drop-down box, and can add the selected titles to the features compare screen by selecting an ADD button located in the drop¬ down box. Selecting the DONE button in the drop-down box returns the user to the feamres compare screen.
The user selects the category button 311, and selects a category from the drop-down box that then appears. Selecting a category is required because features are category-specific. The user then selects the Feamres button 313, which causes the drop-down box 302, shown in Figure 3B, to appear containing a list of the available features. The user can the select one or more feamres from the list of available feamres. The user then selects the ADD button 304. This closes the drop-down box 302, and causes the features compare screen to display the matrix display 327, as shown in Figure 3C. In the matrix display, the columns 327, 329, 331, 333, and 335, extend from the five title boxes 317, 319, 321, 323, and 325, respectively, and the selected features are copied into successive rows 318, 320, 322, 324, 326, 328,and 330.
The software evaluation module then completes the matrix display 337 by searching the entries for the selected products in the product data base to determine whether each of the selected products has each of the selected feamres. The module displays the results of the search in the matrix display 337. The completed matrix display is shown in Figure 3C. An "X" in a box of the matrix display indicates that the product in the column in which the "X" appears has the feature in the row in which the "X" appears. For example, the "X" 306 indicates that Quattro Pro Special Edition, version 1.0 has an automatic file save capability that Quattro Pro, version 4.0 lacks. The matrix display 337 of the features compare screen enables the user to make a feature-by-feature comparison of the selected products under consideration.
The features compare screen 301 includes two additional buttons that operate after the user has selected one of the products displayed on the feamres compare screen. The Final Word button 339 displays a message from the publisher of the selected product. The statement provides details of the advantages of the selected product, and information regarding the publisher's customer service offerings.
The Ask the Publisher button 341 enables the user to communicate directly with the publisher of the selected product. Selecting the Ask the Publisher button causes the software evaluation module to display an electronic message form for the user to fill out with questions about the selected product. The software evaluation module uses the modem 14 (Figure 1) to send the electronic message form to a Bulletin Board Service (BBS) at the central office. Publishers call the Bulletin Board to pick up electronic messages and send electronic reply messages.
Later, the user will re-select the Ask the Publisher button 341. The electronic message form includes a Receive button that automatically calls the central office to re-access the user's BBS mailbox to download an electronic message including responses to his/her questions, and other useful information provided by the publisher. The user can save the reply message to a file, and can also edit the reply message. The Ask the Publisher facility provides a direct link between the user and die publisher. All communications are conducted confidentially, but the central office 20 monitors the BBS daily to help publishers respond in a more timely way to questions posted on the service.
Using the features compare facility to search for those of the available products that include feamres selected by the user will now be described with reference to Figures 3D and 3E. To use the feamres compare facility for this purpose, the user first selects the Compare icon 225 from the main worksheet screen 202. This causes the software evaluation module to display the feamres compare screen. The user selects the Category button 311, and selects a category from the drop-down box that then appears. Selecting a category is necessary because features are category-specific. Next, the user selects the Feamres button 313, which causes the drop-down box 308 to appear displaying a list of the available feamres. The user can select one feature on which to search by selecting one of the feamres shown in the feature list. Alternatively, the user can select several feamres on which to search by holding down the appropriate control key on the keyboard, and selecting several feamres shown in the feature list.
The user then selects the Find Titles button 310 at the bottom of the drop-down box 308. This causes the software evaluation module to search the products database to determine which one or ones of the available products has the selected feature, or, if the user selected more than one feature, all the selected feamres. The software evaluation module then displays the drop-down box 351, below the TITLES button 315, in which it lists the titles of the products it has found. This is shown in Figure 3E.
The user can select any or all of the titles listed in the drop-down box 351 by using the mouse while holding down the appropriate control key on the keyboard. The user then selects the ADD button 353. This closes the drop-down box 351, and re-displays the features compare screen shown in Figure 3C. In the matrix display 337, the software evaluation module displays the selected titles in the title boxes 317-on, and displays die feamres on which it carried out the search for titles in the first rows 318-on.
The user can now add additional features to the feamres compare screen by selecting the Feamres button 313, to carry out a side-by-side comparison of the selected products. The user may additionally or alternatively copy the titles displayed in the feamres compare screen to the main worksheet screen 202.
The electronic ordering aspect of the professional system will now be described in more detail. The electronic ordering aspect runs as a number of program modules running under the main program on the workstation 10 (Figure 1).
The main program includes the request for quotation module illustrated in Figure 4A. The request for quotation module is run by selecting the Quote icon 255 from either the main worksheet screen 202 (Figure 2A) or the features compare screen 301 (Figure 3A). The user will normally select some or all of the titles listed in the main worksheet screen 202 (Figure 2A) before selecting the Quote icon 257.
In the step 101, the quotation module displays die quotation worksheet 401, shown in Figure 4B. The quotation worksheet includes the Quantity column 403, the Publisher column 405, the Title column 407, the MSRP column 409, the Price column 411, and the Extended amount column 413. The quotation worksheet also includes the QUOTE button 415.
At step 103, the quotation module tests whether the user has selected titles in the main worksheet 202. If the result of this test is TRUE, the quotation module, at the step 105, partially fills out the quotation worksheet 401 with the selected titles in the Title column 407, and die respective publisher in the Publisher column 405, as shown in Figure 4B. Otherwise, the quotation module executes the step 107, where the user is invited to enter titles into the quotation worksheet. The user does this by selecting the Title button 407, and selecting the required titles from the drop-down box (not shown) that then appears.
At step 109, the user selects a title, such as the title shown in line 414 of the quotation worksheet. This causes the format selection dialogue box 421 shown in Figure 4C to open. The user first selects one of the version selection buttons 418, 419, and 420 to select a single-user version, a multi-user version, or an upgrade version, respectively.
In response to the user's version selection, the quotation module displays the alternative formats in which the selected version of the selected product can be delivered to the user. The formats displayed are version- specific. These alternatives include shipping copies of the product to the user from the central office (in which case the user must select the required disc size), desktop vending, in which the central office authorizes the workstation to make one or more copies of the selected product, or an electronic license, in which the central office causes the workstation issue a license to install the selected product on additional computers. In the example shown, the program Professional File, version 2.0 can only be acquired as discs shipped to the user. A choice of 5% -inch (line 429) and 3V2-inch (line 427) discs is available. Desktop vending and an electronic license are not available. The user may obtain additional information about each alternative format by selecting the Description button 423. The user selects a format by selecting one of the alternatives presented, enters the quantity desired, which the quotation module automatically enters in the quantity column 417, and selects the OK button 425, which closes the dialogue box. The format of the selected version of the selected product selected using the format selection dialogue box will be called die chosen format. The user may select more than one chosen format for each product in the quotation worksheet.
At step 111, the quotation module returns to the quotation worksheet where it adds a line showing the chosen format that has just been chosen, and the MSRP of the chosen format. For example, as shown in Figure 4C, the quotation module adds to the quotation worksheet a line 431 showing the chosen format of the product shown in line 414, and die MSRP of the chosen format. The quotation module also includes in the added line, but does not display, a stockkeeping number that is unique to the chosen format.
At step 113, the quotation module tests whether the user has selected the QUOTE button 415. If the QUOTE button has not been selected, i.e., die result of the test is FALSE, the quotation module returns to step 109 to allow the user to select the chosen format and enter the quantity of the other products in the quotation worksheet.
At any point during the execution of steps 109 and 111, die user may select one of several shipping options by selecting the shipping drop-down box 433.
When the user has selected the chosen format and has entered the quantity for all the products in the quotation worksheet, the user selects the QUOTE button 415. This causes the quotation module to produce a TRUE result at step 113, and die program advances to step 115.
At step 115 the quotation module causes the workstation 10 to transmit the quotation worksheet, as a request for a quotation, to the central office 20. The quotation module only transmits a site identifier, a number that uniquely identifies die workstation, a code indicating the shipping method, and for each product in the quotation worksheet, the stockkeeping number and quantity of each chosen format of the product. The request for quotation module then advances to step 117, where it causes the modem 14 to remain on line waiting for a return message from the central office 20.
The central office 20 assigns a reference number to the received request for a quotation, stores the data received in the request for a quotation together with the reference number, and generates and stores the information required to respond to the request. The central office then transmits the re rn message back to the workstation. The quotation module, waiting at step 117, receives and stores die return message, and then hangs up the line.
The return message consists simply of several price pairs, a sub total, a tax amount, a shipping amount, a total, the reference number, and an expiry date for the quotation. There is one price pair for each chosen format in the quotation worksheet. One price in each price pair is the unit price, the other price in each price pair is the extended amount. The return message may also include an indication of whether the user's credit is good for the grand total amount of the quotation.
At step 119, the quotation module enters the received information into the Price column 411, the Extended Amount column 413, the Subtotal box 435, the Tax box 437, the Shipping box 439, die Total box 441, die Reference number box 443, and die Expiry date box 445 in the quotation worksheet, as shown in Figure 4E. The quotation module men returns execution to the main program. The user can save the completed quotation worksheet for use later, if desired, using the SAVE AS option (not shown) that appears when the user selects the FILE button 447.
If the user decides to accept the quotation, die user displays die completed quotation worksheet (if it is not already displayed) by, for example, using the OPEN option (not shown) displayed when die user selects the FILE button in the main worksheet 202. This may be done any time while the quotation is valid, e.g., within 30 days of when die user received die quotation. The user selects all the products displayed in the quotation worksheet and then selects the Purchase icon 257 (Figure 2A). This causes the main program to run the purchasing module, illustrated in Figure 5A.
At step 121 the purchasing module displays die purchase order worksheet 451, shown in Figure 5B. The purchase order worksheet is displayed with the data copied from the quotation worksheet partially filled out in the order details area 453. The purchase order worksheet may also be displayed with the billing and shipping addresses entered in the spaces 455 and 457, respectively.
The purchasing module then advances to step 123, at which it tests whether the chosen format for any of the products displayed in the purchase order worksheet is desktop vending. If the result of this test is FALSE, the quotation module advances to step 129. Otherwise, the purchasing module advances to step 125, where it determines the addresses of n random unoccupied storage locations in the secure memory device, where n is the total number of products to be made be desktop vending in the purchase order. The purchasing module men advances to step 127, at which it changes the status of the random unoccupied storage locations to "occupied."
At step 129, the purchasing module tests whether the user has selected die PURCHASE button 461. If the test returns a FALSE result, the program reverts to step 129. While the program is waiting, the user completes the purchase order, including selecting die Method of Payment dialogue box 459, which drops down for the user to enter either a purchase order number, or a credit card number. The user can also enter his/her own information into the Reference Number box 460.
When the purchase order is complete, the user selects the PURCHASE button 461. This causes the test at step 129 to yield a TRUE result, and die purchasing module advances to step 131, where the purchasing module causes the workstation 10 to transmit the reference number to the central office 20. Also transmitted is the data shown in the purchase order, except the data that was copied from the request for quotation worksheet. Finally, if one or more products are to be desktop vended, die workstation transmits the user identification number, and, for each product to be desktop vended, a secure memory address and a quantity in order. The purchasing module men advances to step 133, where it waits for a return message from the central office in response to the transmitted purchase order.
There is no need, in step 129, for the purchase module to transmit to the central office the information copied into the purchase order from the quotation worksheet, since the central office already has this information. Part of this information was included in the original request for a quotation and die central office provided die rest of this information in response to the request for a quotation. The reference number transmitted with die purchase order indicates to the central office that the user accepts the quotation. The reference number also enables the central office to link the purchase order with die data it stored when it prepared die quotation from which the purchase order is derived.
Upon receiving the purchase order, die central office 20 checks whether the quote on which the purchase order is based is still valid. If the quote is no longer valid, die central office will treat the purchase order as a request for a quotation, and will return a quotation to die user, instead of acknowledging die purchase order. Only after the user accepts the new quote by sending die purchase order to the central office once more will the central office treat the received purchase order as a valid purchase order.
If the purchase order includes an order number, the central office checks that the received order number is valid. If the purchase order includes a credit card number, the central office automatically obtains approval for the amount of the transaction from the credit card company. The central office forwards the part (if any) of the order related to items to be shipped to the warehouse for shipment.
For each product to be desktop vended, die central office retrieves from the data base 42 the key for decrypting the encrypted copy of the product. The central office encodes die key for each product with an encoding algorithm, described above, which uses, in addition to the key, the user identification number and one of die secure memory addresses received from the workstation 10, taken in order. Thus, if, for example, five products are to be desktop vended, five different coded keys are generated.
The central office 20 transmits a return message accepting the order, which the purchasing module receives at step 133. If the chosen format of any of the products in the purchase order is desktop vending, die return message includes a coded key and a quantity for each product to be desktop vended. At step 135, the purchasing module causes the workstation to store each coded key and each quantity received. The coded key and die quantity for each product are stored together in the secure memory device 30 at the secure memory address that was used to encode die key. At step 137, the purchasing module returns control to the main program.
As an alternative to copying the titles, chosen format, and quantity of products from the quotation worksheet into the purchase order worksheet, the user may copy the titles of products directly from the main worksheet 202 (Figure 2A). If the user copies the tides of products directiy from the main worksheet 202, the purchasing module requires the user to select a chosen format and to enter a quantity for each product. The purchasing module men provides a quotation, similar to that provided by die quotation module but displayed on die purchase order worksheet. The user must then accept the quotation displayed by die purchasing module before the purchasing module can cany out the purchasing transaction described above.
The main program also includes die desktop vending module shown in Figure 6A. When the user wants to make copies of a product for which a coded key has been received, the user selects the Desktop Vending icon 259 from any of the screens, such as the main worksheet screen 202 and die features compare screen 301 in which it is displayed. This causes the desktop vending module to execute. At step 141, the desktop vending module prompts the user to enter an identification and a password, which it checks. The desktop vending module will only advance to the next step if it recognizes the user and the password is correct. Otherwise, desktop vending module will return execution to the main program.
At step 143, the desktop vending module displays die desktop vending screen 471 shown in Figure 6B. In the display area 473, the desktop vending screen displays a line for each product, and displays die quantity of copies of that product for which a coded key has been received. At step 145, the user selects the product tiiat he/she wishes to desktop vend. At 146, die desktop vending module checks whether die user has selected one of die icons at the bottom of the desktop vending program. If the result of the test is TRUE, the desktop vending module returns execution to the main program. Otherwise, the desktop vending module proceeds to step 147, where it displays a license agreement. At step 149, the user must indicate that he/she accepts the license agreement before execution can proceed to the next step. If the user refuses to accept the license agreement, execution returns to step 145 so that the user can select another product to desktop vend, if another product is available for desktop vending.
At step 151, the desktop vending module displays a serial number for the copy of the product to be made. At step 153, the desktop vending module displays in the area 475 all of the several formats in which a copy of the product can be desktop vended, e.g., 360k, 720k, 1.2M, 1.44M, or R2R, a ready-to-run copy on the hard disc. The user selects one of the indicated formats by selecting the appropriate one of the buttons 477.
At step 155, the desktop vending module tests whether the user has selected die Manufacture button 479. When the result of the test is FALSE, the desktop vending module returns to step 155. Otherwise it advances to step 157, where it decodes die coded key for the product selected. The desktop vending module retrieves the coded key and die user identification number from the locations in the secure memory device where they were stored. The desktop vending module men invokes die complementary decoding algorithm, which extracts the key using the coded key, die user identification number, and die address of die location in die secure memory device where die coded key was stored.
At step 159 the desktop vending module seeks the encrypted copy of the selected product corresponding to the format selected in step 153, and, a step 161, it issues instructions to the user for making me copy. For example, it the copy is being made on floppy discs, die desktop vending module invites die user to insert a floppy disc corresponding to die format selected into the appropriate disc drive in the workstation. At step 163, it displays, and may print on a printer (not shown) attached to the workstation, appropriate instructions for labelling the copy. At step 165, the desktop vending module decrypts die encrypted copy using the decoded coded key and makes a copy of the result. The desktop vending module indicates its progress at making the copy in the display area 481.
At step 167, the desktop vending module tests whether the copy is complete. If the copy is being made to floppy discs, it checks whether it has made all the discs constituting die copy. If it has, the desktop vending module advances to step 169, where it retrieves the quantity for the product from the secure memory device and decreases die quantity by one. At step 171, it tests whether the quantity is greater than zero, i.e., whether all the copies of the product have been made. If the quantity is greater than zero, the desktop vending module proceeds to step 173, where it returns the quantity to the secure memory device, and returns to step 145.
Otherwise, the desktop vending module proceeds to step 175, where it erases the coded key and quantity from the secure memory device, and deletes die product from the desktop vending display. After executing either step 173 or step 175, the desktop vending module returns to step 145, so that additional copies can be made, if there are keys for additional products stored in the secure memory device.
If, at step 167, the copy is not complete, me desktop vending module returns to step 161, where it displays additional instructions to the user, such as inviting the user to insert a floppy disc. During desktop vending to floppy discs, each disc made during this process corresponds to a disc in the version of the product distributed through the normal retail distribution system.
After making a copy of a ready-to-run product on die user's hard disc, die desktop vending module may ran a script program to install groups and icons into the user's graphic user interface, and/or to modify certain housekeeping programs, such as AUTOEXEC.BAT and CONFIG.SYS in MSDOS to accommodate die newly-installed product.
As part of a subsequent communication session with the central office, the desktop vending module will indicate to the central office, via the modem 14 (Figure 1), when all the copies that were authorized for desktop vending in a given purchase order have been made. The central office passes part of this information on to the publishers) of the products in the purchase order to facilitate registering the user as a user of the products.
The invention also relates to a consumer version of the software evaluation apparatus and method and of die software distribution apparatus, system, and method. The consumer system, shown in Figure IB, is similar to the professional system: components of the consumer system corresponding to those of die professional system shown in Figure 1 A have the same reference number with die letter "A" added.
The consumer system will now be described in more detail, with reference to Figure IB. The consumer system is based on die consumer's own computer 10A. The consumer system provides die consumer with software that configures his/her computer as the consumer software evaluation apparatus and die consumer software distribution apparatus according to the invention.
In the consumer version of die system, the consumer's computer constitutes the workstation 10A, and die mass storage device, such as the hard disc 22 A, in the consumer's computer constitutes the mass storage medium. Data files provided by die central office 20 A are installed on die consumer's mass storage device, preferably before the consumer buys the computer. The data files possibly include a narrower selection of copies of encrypted software products than in the professional system, depending on die capacity of the consumer's mass storage device. The data files also include an unencrypted copy of each of a main program and program modules similar to the main program and die program modules, respectively, described above. Finally, the data files include die product data base used by die search facility of the software evaluation module, and die capsules, and die demonstration programs that can be accessed by die software evaluation module.
The data files can be installed by die mass storage device manufacturer, by die manufacturer of the computer, or by the dealer selling the computer to the consumer. The central office provides to these installing entities a mass storage medium, such as a CD-ROM. The mass storage medium includes different sets of data files for installation on different-sized mass storage devices, such that an acceptable proportion of the capacity of the mass storage device is left free. Known data compression techniques can be used to reduce die amount of spaced on die mass storage device occupied by the encrypted copies of the products.
The central office may provide to the installing entities mass storage devices containing a greater variety of sets of data files than that dictated only by the different capacities of mass storage devices. Possessing this greater variety of sets of data files would enable the installing entity to offer the consumer a choice in the number of software products installed as encrypted copies on the user's mass storage device. The central office could also enable an installing entity to offer the user a choice in the type or types of software product installed as encrypted copies on his-her mass storage device. It would also be possible for the central office to provide certain installing entities a mass storage medium, such as a CD-ROM containing individual encrypted copies of a wide variety of software products. The central office would then authorize such entities to customize the selection of products that they transfer as encrypted copies from the mass storage medium received from the central office to the user's mass storage device. The central office would provide such installing entities with a program that would add icons and files relating to the selected products to the software evaluation module that the dealer would then also install on the user's mass storage device.
The encrypted copies are stored on die user's mass storage device such that their presence is recognized by die computer's operating system. This prevents the user's computer from writing over the encrypted copies, and allows the consumer to delete all or some of the encrypted copies any time.
The process by which the user obtains authorization to decrypt one or more of the encrypted copies on die mass storage device in the consumer system is similar to that used in the professional system. However, the modem 14A may be omitted from the consumer system since the consumer system provides for communicating with the central office 20A using die touch-tone telephone 46, instead of a modem. The touch-tone telephone 46 is connected to the automated voice response unit (VRU) 44 at the central office 20A via the dial-up line 48, or via another suitable communication link.
The voice response unit 44 at the central office 20A is connected to die central computer 40A, and, together with die user operating the touch- tone telephone 46, transfers data between the central computer and die user's computer 10A. The relevant modules of the main program in the user's computer display on die screen 28A the information that the user must enter using the keypad of die touch-tone telephone 46, and die order in which the information must be entered. Alternatively, the relevant modules can print out the information, with spaces for the user to enter the information received from the central office, by the user's printer (not shown).
The touch-tone keys 0 - 9 are used for data, and die * and # keys for "return" and "error-redo" commands. The VRU "speaks" numbers generated by die central computer 40A, and also "reads back" groups of numbers entered by die user to enable the user to check the accuracy of his/her input. The user uses the keyboard 24A to enter the numbers "spoken" by the VRU into the computer 10A.
Irrespective of whether communication between the user's computer 10A and die central office 20A is by modem or by touch-tone telephone and die VRU, die same data is transferred back and forth at each step of the process of ordering products from die central office.
The central office system also allows the user to deal witii a live operator. This is especially vital when the user places his/her first order, which requires a great deal of information be transmitted. Even witii data compression, over 150 digits have to be entered. The probability of pressing this many digits witiiout error is small, so a read-back of each number entered is required. This reduces die chances of errors, but considerably increases me time required to enter die information. To avoid this problem, the first-time caller may bypass the VRU 44 and provide die first-use information to a live operator.
After the live operator has entered die new user's information into the central computer 40A, the live operator gives the new user a customer number, encoded key(s) if the user has purchased a desktop vended product, and transaction / quote / return numbers. These numbers are encrypted before being given to the user. The user uses the computer keyboard 28A to enter these numbers into his/her computer 10A.
For the second and subsequent calls from the user, the user enters his/her customer number and can choose whether to continue with die VRU, or to transfer to a live operator. Use of a live operator is required if the user indicates that the customer data given in the first call has changed.
Finally, to save the consumer having to perform an installation procedure for each product that he/she obtains by desktop vending, die encrypted copy of each product in the consumer system is an encrypted copy of an installed, ready-to-run version of the program. The consumer system does not offer desktop vending to floppy discs. The central office ships to the user a set of floppy discs for each product die user desktop vends, together with the documentation for the product. During the decrypting process, the decrypted copy of the software package is written back onto the mass storage device, such as the hard disc 22A, in the consumer's computer. The encrypted copy of the product that was desktop vended is then deleted. If the encrypted copy was not compressed, die decrypted copy is written over the encrypted copy, and die amount of available space on the mass storage device remains unchanged when die encrypted copy is replaced by die decrypted copy.
The security arrangements in the consumer system differ in detail from those in the professional system. The consumer system lacks the secure memory device 30 of die professional system shown in Figure 1 A. To provide unique coding of each coded key transmitted to the user, the order module of die consumer system includes a routine that generates and stores a random number, called a "seed," for each product that will be desktop vended. As will be described in more detail below, the user transmits a seed to die central office for each product to be desktop vended. The central office codes die key using the seed as one coding parameter, instead of coding die key using the secure memory address as one coding parameter as in the professional system. The order module in die consumer system then decodes die coded key for a product using the seed it generated for that product as one decoding parameter. Because the consumer system provides for coded keys to be entered manually, the coded key transmitted to the user is shorter than in die professional system. To provide an acceptable security level without requiring the user to enter an unacceptably long coded key, die key length is kept die same, but central office transmits only a coded partial key to the user. The complement of the partial key, i.e., what must be added to die partial key to provide die full key, for each product stored on die user's mass storage device as an encrypted copy, is also encrypted and stored in a key file on the consumer's mass storage device.
The central computer 40A generates the coded partial key by first looking up in the data base 42A the key for the product indicated by die user. The central computer encodes die partial key using a suitable coding algorithm that generates the coded partial key in response to the partial key, the user identification number, and die seed number. Finally, the central computer adds to the coded partial key the address for the complement of the key in the key file, and some additional, non-functional, digits. The central computer transmits the resulting password to the user.
The order module in the user's computer, upon receiving a password, extracts the coded partial key and die key file address from die password. The order module then decodes die coded partial key using a decoding algorithm that operates in response to the coded partial key, and die seed number and die user identification number stored in the user's computer. The order module next retrieves the file of encrypted complementary keys stored on die user's mass storage device, decrypts die file, and extracts from the file the complementary key indicated by die key address in the password. Finally, the order module inserts the partial key into the complementary key to provide die full key, which it then uses to decrypt the encrypted copy of the product.
As a further security feature, the user may only make four unsuccessful attempts to enter the password for desktop vending a product. After four unsuccessful attempts, the fifth attempt must be correct. Otherwise, the order module re-encodes die password, so that the coπect password changes every five attempts. This reduces the vulnerability of the system to programs that serially generate all combinations of a multi¬ character password to determine die correct password. However, unlike other systems that attempt to reduce this type of vulnerability, the present system does not shut down if an incorrect password is repeatedly entered. The system thus avoids die inconvenience of having to provide a "super password" to restart after a self-defensive shutdown.
Operation of the consumer system will now be described. As in the professional system, the main program of the consumer system runs under a graphical user interface, such as Windows. As in the professional system, the user selects the various program modules that run under die main program by selecting an icon displayed on die main screen. The product evaluation module in die consumer system offers fewer features than the professional system.
The main screen 501 is shown in Figure 7A. The main screen includes a scrollable display area 503. The display in the display area depends on which module of die main program is running. Figure 7A shows the catalog display generated by die catalog module in die display area 503.
Also displayed on die main screen are icons for Brochures 505, Demonstrations 507, and Order 509. At the top of the main screen are arranged a File button 511, a Utilities button 513, and a Help button 515. At the bottom of the main screen are forward, back, and next arrows 517, 519, and 520 respectively, which changes what is shown in the display area 503. The catalog button allows the user to return to the main catalog display at any time.
Finally, the constant help display 523 of die consumer system's animated help system appears at the bottom of the main screen. The constant help display tracks the mouse pointer, and displays a message telling the user what would happen if the user were to click on the mouse. The animated help feamre is activated if, at any time the user is operating the system, a lack of keyboard or mouse activity for more than a predetermined time suggests that the user may not know what to do next. Once the animated help feature makes this determination, it takes over control of the mouse pointer and moves it to where it determines the user ought to move it next. It then displays in the constant help box a message telling the user what would happen if the user were to click on die mouse with die mouse pointer positioned as the animated help feamre has positioned it. The animated help feature the displays a box asking the user if he/she wants to take the suggested action, with Yes and No buttons for the user to select. If the user follows the suggestion made by die animated help feamre, the animated help feamre will guide die user until the user once more takes command by moving the mouse him/her self.
Hardware products can also be sold through the consumer system. In Figure 7A, various categories of hardware are shown displayed on die left side of die catalog display in the display area 503. Hardware products are sold and delivered to the user the same way as software products, except tiiat hardware products cannot be desktop vended. Thus, in the following description, die word "product" will refer to both hardware and software, but, with respect to desktop vending, die word "product" will refer to software only.
Each available product is represented by an icon in the display area 503. The icons of products not currendy in view can be seen by operating die scroll bar 504. Some icons, such as the icon 525, marked "data management," can indicate a category of products, such as databases, spreadsheets, or word processing programs. If the user selects an icon indicating a category, the catalog screen in the display area 503 will display die icons of only those products tiiat fall within the chosen category. Thus, for example, if the user selects the icon 503, the catalog screen will only display database management programs.
The user can discover more about a selected product by dragging die icon for die product into the Brochure folder 506 next to the Brochure icon 505. The user can drag several icons into the Brochure folder 506, if desired. Then, the user can select the Brochure icon 505. This causes the catalog module to display in the display area 503 a brochure, and a list of feamres, for the product whose icon the user first dragged into the brochure folder 506. The information provided to die user by this facility is supplied by die publisher.
The user may scroll through the brochure using me scroll bar 504, and may men view die brochure for the product whose icon the user next dragged into the brochure folder 506 by selecting die forward arrow 517. The user may return to viewing the first brochure at any time by selecting the reverse arrow 519, or may view the brochure for the next product by selecting the forward arrow 517 again. The user may also view the brochure for the next product, irrespective of whetiier the user has selected it, by selecting me next arrow 520. The user may return to the catalog display at any time by selecting die Catalog button 521.
The user may also drag one or more of die displayed icons into the Demo folder 508 next to Demo icon 507. The catalog module will cause the Demo icon to grey out, or otherwise appear non-functional if no demonstration program is available for the product selected. After one or more products have been dragged into the Demo folder, selecting the Demo icon 507 causes the catalog module to run a demonstration program provided by die publisher of the first product whose icon the user dragged into the Demo folder 508. The demonstration is displayed in die display area 503. The user can use the forward, back, and next arrows 517, 519, and 520, and the Catalog button 521, to select the demonstration program to view in the same way as he/she used tiiese controls to select the brochure to view. Once the user has decided to buy one or more products, he/she drags die icons representing the selected products into the Order folder 510 next to the Order Form icon 509. The user then selects the Order Form icon 509, which causes the main program to execute the order module. The order module displays die order form screen 551 shown in Figure 7B. The order form module displays die tides of die products whose icons die user dragged into the order folder in the display area 553.
The next part of the description of die consumer system will describe the transmission of data back and forth between the user's computer 10A and the central office 20A. This interchange of data will be described in terms of direct interchange between the modem 14A in die user's computer 10A and die modem 38A in die central office via the dial-up line 16A. However, it will be understood that this interchange of data could equally well take place by the user reading data off the display 28A and entering it into the touch-tone telephone 46, this data being received by die VRU 44 at die central office 20A; and by die user hearing data "spoken" by the VRU 44, and using the keyboard 24A to enter the data into his/her computer 10A.
The order module transmits to the central office simply the titie(s) of the product(s) displayed on die order foπn worksheet. In response, the central office sends back a price quotation, good for thirty days, and a quote number. The price quotation will also cause the order module to display a message asking the user if he/she wishes to place an order now. If the user accepts, the ordering process proceeds to the next step. Otherwise, the user can save the quotation using a Save option (not shown) displayed when die user selects the Files button 555. The user can then retrieve and re-display die quotation later using an Open option displayed when die user selects the Files button.
If the user decides to accept the quote and place an order, and die quote is not already displayed, die user selects the Order Form icon 509 once again, and calls up the previously-received quote, as just described. The user then fills out the rest of the order form worksheet shown in Figure 7B, and selects the button 557, which displays an additional screen in which the user enters details of die credit card tiiat he/she will use to pay for the products being purchased. If the consumer has chosen desktop vending, die order module generates and stores a seed, as described above, for each product to be desktop vended.
Once the user has completed die order form worksheet, the order module establishes communication witii the central office and transmits the quote number to the central office 20A. Also transmitted is die all the information entered into the order form, the user's identification number, the user's selection of drop-shipping or desktop vending, and any seeds generated.
In response to the data received, die central office transmits a return message back to the user acknowledging die order. The central office ships discs and documentation for all products tiiat are electronically ordered, even for products that are supplied using desktop vending. Thus, the central office forwards die order to die warehouse 50A for shipping.
If the user has selected desktop vending, die order acknowledgment includes a password for each desktop vending copy that will be made. The order module extracts the coded partial key and die key table address from the password, and decodes die coded partial key using a decoding algorithm that operates in response to the coded partial key, and die seed number and user identification number stored in the user's computer. The order module retrieves die key table from the user's mass storage device, decrypts it, and die inserts the partial key into the complementary key indicated by die key table address to provide die full key, as described above. The order module tiien uses the full key to decrypt the encrypted copy of the product stored on die user's mass storage device, and makes a copy of the product back on the mass storage device. Finally, the order module deletes die encrypted copy of the product from the mass storage device. After making the copy some products, die order module may run a script program to install groups and icons into the user's graphical user interface, and/or to modify certain housekeeping programs, such as AUTOEXEC.BAT and CONFIG.SYS in MSDOS to accommodate die newly-installed product.
The main screen also includes die Utilities button 513. Selecting the Utilities button enables die user to run a utility to de-fragment the user's mass storage device after a product has been desktop vended. This improves the performance of the user's mass storage device.
Note: die trademarks used herein for illustratimg the operation of the apparatus, system, and metiiod of the invention are the property of their respective owners,

Claims

ClaimsWe claim:
1. An apparatus for making a copy of a software product from an encrypted copy of die software product, the apparatus comprising: a reading means for reading the encrypted copy of the software product; a communication means for transmitting an outgoing message to a remote site, the outgoing message including a request for a key for the encrypted copy, and for receiving a return message from the remote site in response to the outgoing message, the return message including a coded key; a key decoding means for decoding die coded key to provide die key; a decrypting means for receiving a read out of die encrypted copy of the software product from the reading means, and for using the key to decrypt the read out of die encrypted copy of die software product to provide die software product; and a copy making means for receiving the software product from the decrypting means and for making the copy thereof.
2. The apparatus of claim 1, wherein: the apparatus additionally comprises a generating means for generating a random number for the outgoing message, and for storing the random number; die outgoing message additionally includes die random number and data identifying the apparatus; and die key decoding means decodes die coded key using the stored random number for die outgoing message corresponding to the remm message wherein the coded key is received, and die data identifying die apparatus.
3. The apparatus of claim 2, wherein: the apparatus additionally includes a secure memory means for storing the encoded key in one of plural storage locations, each storage location having an address; and die generating means includes a means for randomly selecting an unoccupied memory location in the secure memory means, and for providing die address of die selected unoccupied memory location as the random number.
4. The apparatus of claim 3, wherein the secure memory means is additionally for storing the data identifying die apparatus.
5. The apparatus of claim 1, wherein: the apparatus is for making a copy of a selected software product selected from plural software products, die copy being made from an encrypted copy of the selected software product; die reading means is for reading out die encrypted copy of the selected software product from a medium wherein plural encrypted copies are fixed, each encrypted copy corresponding to one of the plural software products; die apparatus additionally comprises an input means for receiving an input indicating selection of die selected software product from among the plural software products; die outgoing message includes a first outgoing part including data identifying die selected software product, and a request for a quotation of a cost of making a copy of the selected software product; die return message includes a first return part in response to the first outgoing part, the first return part including the quotation and a reference number identifying the quotation; die outgoing message additionally includes a second outgoing part sent in response to the first return part, the second outgoing part including die reference number, and an acceptance of the quotation; and die return message additionally includes a second remm part in response to the second outgoing part, the second return part including die reference number and die coded key for die selected software product.
6. The apparatus of claim 5, wherein: the apparatus additionally comprises a generating means for generating and storing a random number for the outgoing message; the outgoing message additionally includes die random number and data identifying die apparatus; and die key decoding means decodes die coded key using the stored random number for the outgoing message corresponding to the remm message wherein the coded key is received, and die data identifying die apparatus.
7. The apparatus of claim 5, wherein: the reading means is additionally for reading a key file fixed in the medium, die key file including an encrypted complementary partial key for each of the plural software products, each encrypted complementary partial key having a key file address in the key file; the communication means is for receiving a remm message including a coded partial key and die key file address for the selected software product; die key decoding means includes: a partial key decoding means for decoding die coded partial key to provide a partial key, a means for extracting the encrypted complementary partial key for the selected software product from the address in me key file indicated by die received key file address, a means for decrypting die encrypted complementary partial key to provide die complementary partial key, and a means for combining the partial key and die complementary partial key to provide die key.
8. The apparatus of claim 7, wherein: the apparatus additionally comprises a generating means for generating a random number for the outgoing message, and for storing the random number; the outgoing message additionally includes die random number and data identifying die apparatus; and die partial key decoding means decodes die coded partial key using the stored random number for the outgoing message corresponding to die remm message wherein the encoded key is received, and die data identifying die apparatus.
9. The apparatus of claim 5, wherein: the apparatus is for making a copy of selected software products selected from plural software products, each copy being made from an encrypted copy of each selected software product; die reading means is for reading out the encrypted copy of each selected software product from the medium; the input means is for receiving inputs indicating selection of die selected software products from among the plural software products; die first outgoing part* includes data identifying each selected software product and a request for a quotation of a cost of making a copy of each selected software product; the second remm part includes a coded key for each selected software product; die key decoding means is for decoding die coded key for each selected software product to provide die key for each selected software product; die decrypting means is for receiving a read out of die encrypted copy of each selected software product from the reading means, and for using the respective key to decrypt die read out of die encrypted copy of each selected software product to provide die respective selected software product; and die copy making means is for receiving each selected software product from the decrypting means and for making the copy thereof.
10. The apparatus of claim 9, wherein: the apparatus additionally comprises a generating means for generating and storing a random number for each selected software product; die outgoing message additionally includes die random number for each selected software product and data identifying die apparatus; and die key decoding means decodes the coded key for each selected software product using the respective stored random number and die data identifying die apparatus.
11. The apparatus of claim 10, wherein: the apparatus additionally includes a secure memory means for storing the encoded key for each selected software product in one of plural memory locations, each memory location having an address; and die generating means includes a means for, for each selected software product: randomly selecting an unoccupied memory location in die secure memory means, and providing die address of die selected unoccupied memory location as die random number for the selected software product.
12. The apparatus of claim 5, wherein: the reading means is additionally from reading out from the medium a data base indicating, for each of the plural software products, which of plural preselected features the product includes; and die input means includes: a means for the user to select at least one of the plural preselected feamres as at least one selected feamre, a means for searching the data base to provide a search result, the search result including a software product that includes the at least one selected feature, a display means for displaying the search result, and a means for selecting from the search result a software product as the selected software product.
13. The apparatus of claim 9, wherein: the apparatus is for making a number of copies of each of selected software products, each copy being made from an encrypted copy of each selected software product; die input means is additionally for receiving inputs indicating die quantity of copies to be made of each selected software product; die first outgoing part additionally includes die quantity of copies to be made of each selected software product, and includes a request for a quotation of a cost of making the copies of each selected software product; die second remm part additionally includes die quantity of copies to be made of each selected software product; die copy making means is for receiving from the decrypting means the respective selected software product for each copy and for making the copy thereof; and die apparatus additionally includes a means for decreasing die quantity of copies to be made of each selected software product by one each time the copy making means makes a copy of the respective selected software product, and for erasing the key for the respective selected software product to prevent additional copies being made when die quantity of copies to be made of die respective selected software product reaches zero.
14. The apparatus of claim 13, wherein: the apparatus additionally comprises a means for generating and storing a random number for each selected software product; die outgoing message additionally includes die random number for each selected software product, and data identifying die apparatus; and die key decoding means decodes die encoded key for each selected software product using the respective stored random number and die data identifying die apparatus.
15. The apparatus of claim 14, wherein: the apparatus additionally includes a secure memory means for storing the encoded key and die quantity for each selected software product in one of plural memory locations, each memory location having an address; and die generating means includes a means for, for each selected software product: randomly selecting an unoccupied memory location in the secure memory means, and providing the address of die selected unoccupied memory location as die random number for the selected software product.
16. The apparatus of claim 1, wherein: the apparatus is for making a quantity of copies of the software product from an encrypted copy of the software product; die apparatus additionally comprises an input means for receiving an input indicating die quantity of copies to be made of die software product; die outgoing message includes die quantity of copies, and die remm message includes die quantity; the copy making means is for receiving from the decrypting means the software product for each copy and for making the copy thereof; and die apparatus additionally includes a means for decreasing die quantity of copies to be made of die software product by one each time the copy making means makes a copy of the software product, and for erasing the key for the software product to prevent additional copies being made when die quantity of copies to be made of me software product reaches zero.
17. The apparatus of claim 16, wherein: the apparatus additionally comprises a generating means for generating and storing a random number for the software product; die outgoing message additionally includes the random number and data identifying die apparatus; and die key decoding means decodes die coded key using the stored random number, and die data identifying the apparatus.
18. The apparatus of claim 17, wherein: the apparatus additionally includes a secure memory means for storing the encoded key and die quantity in one of plural memory locations, each memory location having an address; and die generating means includes a means for: randomly selecting an unoccupied memory location in the secure memory means, and providing the address of die selected unoccupied memory location as die random number.
19. The apparatus of claim 16, wherein: the apparatus is for making a quantity of copies of a selected software product selected from plural software products, die copies being made from an encrypted copy of the selected software product; die reading means is for reading out die encrypted copy of the selected software product from a medium wherein plural encrypted copies are fixed, each encrypted copy corresponding to one of die plural software products; die input means is additionally for receiving an input indicating selection of the selected software product from among the plural software products; die outgoing message includes a first outgoing part including data identifying the selected software product, the quantity of copies to be made of die selected software product, and a request for a quotation of a cost of making the copies of the selected software product; die remm message includes a first remm part in response to the first outgoing part, the first return part including die quotation and a reference number identifying the quotation; die outgoing message additionally includes a second outgoing part sent in response to the first return part, the second outgoing part including the reference number, and an acceptance of the quotation; and die remm message additionally includes a second remm part in response to the second outgoing part, the second return part including die reference number and die encoded key for the selected software product.
20. The apparatus of claim 19, wherein: the apparatus additionally comprises a means for generating and storing a random number for the selected software product; die outgoing message additionally includes die random number and data identifying die apparatus; and die key decoding means decodes die encoded key using the stored random number and die data identifying die apparatus.
21. The apparatus of claim 20, wherein: the apparatus additionally includes a secure memory means for storing the encoded key and die quantity in one of plural memory locations, each memory location having an address; and die generating means includes a means for: randomly selecting an unoccupied memory location in the secure memory means, and providing die address of die selected unoccupied memory location as die random number.
22. The apparatus of claim 1, wherein: the communication means is for receiving a remm message including a coded partial key; the apparatus additionally includes a means for reading out an encrypted complementary partial key, the complementary partial key being complementary to the partial key; and die key decoding means includes: a partial key decoding means for decoding die coded partial key to provide die partial key, a means for decrypting the encrypted complementary partial key to provide die complementary partial key, and a means for combining the partial key and die complementary partial key to provide die key.
23. The apparatus of claim 22, wherein: the apparatus additionally comprises a generating means for generating a random number for the outgoing message, and for storing the random number; the outgoing message additionally includes die random number and data identifying die apparatus; and die partial key decoding means decodes die coded partial key using the stored random number for the outgoing message corresponding to die remm message wherein the coded partial key is received, and die data identifying die apparatus.
24. The apparatus of claim 1, wherein: the apparatus includes a mass storage device whereon the encrypted copy of die software product is fixed; and the copy making means makes the copy of the software product on die mass storage device.
25. The apparatus of claim 1, wherein: the encoded copy is fixed in a Compact Disc Read-Only Memory (CD-ROM); the reading means includes a Compact Disc Read-Only Memory drive, and the copy making means includes a floppy disc drive.
26. The apparatus of claim 1, wherein the communication means is additionally for receiving the encrypted copy.
27. An apparatus for assisting a user to select one of plural competing products, the apparatus comprising: a data base means for storing data indicating, for each of the plural competing products, which of plural preselected feamres the product includes; a means for the user to select at least one of the plural preselected feamres as at least one selected feature; a means for searching the data base means to provide a search result; and a display means for displaying die search result.
28. The apparatus of claim 27, wherein the means for the user to select at least one of the plural preselected feamres includes: a search parameter selecting means for the user to select at least one search parameter; a first logic means for providing an AND relationship between search parameters when the search parameter selecting means selects at least two search parameters; a feamre selecting means for the user to select from within each search parameter at least one preselected feamre; a second logic means for providing an OR relationship between preselected features within a search parameter when the feature selecting means selects at least two preselected feamres.
29. The apparatus of claim 28, wherein, when the search parameter selecting means selects a first search parameter and a second search parameter, and die feature selecting means selects preselected feamres Fll and F12 from within the first search parameter, and die feamre selecting means selects preselected feamre F21 from within the second search parameter, the search results display displays all products having the feamres ((Fll OR F12) AND (F21)).
30. The apparatus of claim 28, wherein: the apparatus additionally includes a search display means for: displaying die search parameters on a first axis of an orthogonal arrangement, and displaying, when a search parameter is selected, die preselected features for the selected search parameter on a second axis of the orthogonal arrangement; and die search parameter selecting means is for selecting at least one search parameter from the search parameters displayed by die search display means; and die feamre selecting means is for selecting at least one preselected feamre from the preselected feamres displayed on die search display means.
31. The apparatus of claim 27, wherein: the apparatus additionally includes a means for the user to select at least one of the plural competing products as at least one selected product; and die display means displays die search results by: displaying, in rows and columns in a matrix arrangement, the at least one selected product and die at least one selected feamre, each selected product being displayed in each one of the rows and die columns and each selected product being displayed in each other of die columns and die rows, placing a symbol where a row and a column intersect to indicate tiiat the selected product in the one of the row and die column includes die selected feature in the other of die column and
Figure imgf000071_0001
32. The apparatus of claim 31, wherein, in the matrix arrangement, the selected products are displayed in the columns.
33. The apparatus of claim 27, wherein: the display means displays die search result by displaying a list of all of the competing products including die at least one of die plural preselected feamres selected by die user; and die display means additionally includes a means for the user to select at least one of die displayed products for inclusion in an additional list.
34. The apparatus of claim 27, additionally comprising: a means for selecting a selected competing product; and a means for selecting a display of information relating to the selected competing product.
35. The apparatus of claim 34, wherein the data base consists of a category and displayable information for each competing product.
36. The apparatus of claim 27, additionally comprising: a means for selecting a selected competing product; and a means for selecting a demonstration of die selected competing product.
37. The apparatus of claim 27, additionally comprising: a means for selecting a selected competing product; and a means for obtaining a copy of the selected competing product for testing purposes for a predetermined period of time.
38. The apparatus of claim 27, wherein the data base consists of a category for each competing product.
39. A system for a central office to distribute to plural users a copy of a software product, die system comprising: a central office, including: an encrypting means for encrypting the software product using a key, and for making an encrypted copy of the encrypted software product, a distributing means for distributing die encrypted copy to the users, a key storing means for storing the key, a central communication means for receiving an incoming message from a user, the incoming message including a request for the key for the encrypted copy, and a user identification identifying the user, and a coding means for providing a coded key by coding die key using the user identification, wherein the central communication means is additionally for transmitting a remm message to the user in response to the incoming message, the remm message including die coded key; and a user's apparatus, including: a user communication means for transmitting the incoming message received by die central office, and for receiving the return message transmitted by die central office in response to the incoming message, a key decoding means for decoding die coded key, using the user identification, to provide die key, a reading means for reading die encrypted copy received from the central office, a decrypting means for receiving a read out of die encrypted copy from the reading means, and for using the key to decrypt the read out of die encrypted copy to provide the software product, and a copy making means for receiving the software product from die decrypting means and for making the copy thereof.
40. The system of claim 39, wherein: the system additionally comprises, in the user's apparatus, a means for generating and storing a random number; the user communication means transmits and the central communication means receives the incoming message additionally including die random number; the coding means provides die coded key by coding die key using the random number and the user identification; and die key decoding means decodes die coded key using the stored random number and die user identification.
41. The system of claim 39, wherein: the system is for the central office to distribute to the plural users a copy of a selected software product, each user being able to select the selected software product from among plural software products; die encrypting means is for receiving the plural software products, for encrypting each software product using a key, and for making an encrypted copy of each software product, die encrypting means encrypting each software product using a different key; the distributing means distributes a medium including an encrypted copy of each software product to each user; the key storage means stores the key for each software product; die system additionally comprises, in the user's apparatus, an input means for receiving an input indicating selection of the selected software product from among the plural software products; die user communication means transmits and die central communication means receives the incoming message additionally including data identifying die selected software product; die coding means provides die coded key by coding die key for the selected software product; the central communication means transmits and die user communication means receives the return message including die coded key for the selected software product; and die reading means is for selecting the encrypted copy of the selected software product from the plural encrypted copies on the medium received from the central office, and for reading out from the medium the encrypted copy of the selected software product.
42. The system of claim 41, wherein: the system is for the central office to distribute to the plural users a copy of plural selected software products, each user being able to select the plural selected software products from among the plural software products; die central communication means receives the incoming message additionally including data identifying each selected software product; die coding means provides die coded key by coding die key for each selected software product; die central communication means transmits and die user communication means receives the remm message including die coded key for each selected software product; die input means is for receiving inputs indicating selection of die selected software products from among the plural software products; die central communication means transmits and die user communications means receives the remm message including the coded key for each selected software product; die key decoding means is for decoding die coded key for each selected software product to provide die key for each selected software product; die reading means is for selecting die encrypted copy of each selected software product from the plural encrypted copies on the medium received from the central office, and for reading out from the medium die encrypted copy of each selected software product; die decrypting means is for receiving a read out of the encrypted copy of each selected software product from the reading means, and for using the respective key to decrypt die read out of the encrypted copy of each selected software product to provide die respective selected software product; and die copy making means is for receiving each selected software product from the decrypting means and for making the copy thereof.
43. The system of claim 42, wherein: the system additionally comprises, in die user's apparatus, a means for generating and storing a random number for each selected software product; die user communication means transmits and die central communication means receives the incoming message additionally including the random number for each selected software product; die coding means provides die coded key for each selected software product by coding die key for die selected software product using the respective random number and die user identification; and die key decoding means decodes die coded key for each selected software product, using the respective stored random number and die user identification, to provide die key for each selected software product.
44. The system of claim 42, wherein: the system is for the central office to distribute to die plural users a quantity of copies of plural selected software products, each user being able to select the plural selected software products from among the plural software products, and die quantity of copies of each selected software product to make; the central communication means receives the incoming message additionally including die quantity of copies of each selected software product to be made; die input means is additionally for receiving inputs indicating die quantities of copies to be made of each selected software product; the central communication means transmits and die user communication means receives the remm message additionally including the quantity for each selected software product; die copy making means is for receiving from the decrypting means the respective selected software product for each copy and for making the copy thereof; and die system additionally includes, in the user's apparatus, a means for decreasing die quantity for each selected software product by one each time the copy making means makes a copy of the respective selected software product, and for erasing the key for the respective selected software product to prevent additional copies being made when die quantity for the respective selected software product reaches zero.
45. The system of claim 44, wherein: the system additionally comprises, in the user's apparatus, a means for generating and storing a random number for each selected software product; die central communication means receives the incoming message additionally including a random number for each selected software product; die coding means provides die coded key for each selected software product by coding die key for each selected software product using the user identification and die respective random number; and die key decoding means decodes die coded key for each selected software product, using the respective stored random number and die user identification, to provide die key for each selected software product.
46. The system of claim 41, wherein: the encrypting means is additionally for: dividing die key for each software product into a partial key and a complementary partial key, encrypting die complementary partial key to provide an encrypted complementary partial key, and arranging the encrypted complementary partial keys for the plural software products in a key file, each encrypted complementary partial key having a key file address in the key file; the distributing means distributes to die users the medium wherein the key file is additionally fixed; die key storing means is for storing the partial key and die key file address for each of the plural software products; die coding means is for coding die partial key for the selected software product using the user identification to provide a coded partial key for the selected software product, and for combining die coded partial key and the key file address for the selected software product; die central communication means transmits the remm message including the coded partial key and die key file address for the selected software product; die reading means is additionally for reading die key file from the medium; die key decoding means is for deriving die key from the coded partial key and die encrypted complementary partial key, and includes: a partial key decoding means for decoding die coded partial key, using the user identification, to provide die partial key, a means for extracting die encrypted complementary partial key for die selected software product from the address in die key file indicated by die received key file address for the selected software product, a means for decrypting the encrypted complementary partial key to provide die complementary partial key, and a means for combining the partial key and die complementary partial key to provide die key.
47. The system of claim 46, wherein: the system additionally comprises, in the user's apparatus, a means for generating and storing a random number; and die user communication means transmits and die central communication means receives the incoming message additionally including die random number; the coding means provides the coded partial key for the selected software product by coding die partial key for the selected software product using the user identification and die random number; and die partial key decoding means decodes die coded partial key for the selected software product, using the stored random number and die user identification, to provide die partial key for the selected software product.
48. The system of claim 41, wherein: the user's apparatus includes a mass storage medium; die system additionally includes a transfer means for transferring an encrypted copy of each software product from a transfer medium to the mass storage medium; and die distributing means distributes to users a medium whereon an encrypted copy of each software product is fixed by providing die transfer medium to the transfer means for transfer to the user's mass storage medium.
49. The system of claim 41, wherein: the system is for the central office to distribute to the plural users a copy of a selected software product, each user being able to select the selected software product from a set of plural software products, each user being able to select the set of plural software products from plural sets of plural software products; die user's apparatus includes a mass storage medium; die system additionally includes: a set selection means for receiving an input indicating a selection by die user of a selected set of plural software products from among the plural sets of plural software products, and a transfer means for transferring from a transfer medium to the mass storage medium an encrypted copy of each software product in the selected set of plural software products; and die distributing means is for distributing to users a medium whereon an encrypted copy of each software product in a selected set of plural software products is fixed, die distributing means distributing the medium whereon an encrypted copy of each software product in a selected set of plural software products is fixed by providing die transfer medium to the transfer means for transfer to the user's mass storage medium.
50. The system of claim 41, wherein: the distribution means distributes to die users a medium wherein there is additionally fixed a data base indicating, for each of the plural software products, tiiat the product includes each of plural preselected feamres; the reading means is additionally for reading die data base from the medium; and die input means includes: a means for die user to select at least one of the plural preselected features as at least one selected feature, a means for searching the data base to provide a search result, the search result including a software product that includes die at least one selected feamre, a display means for displaying die search result, and a means for selecting from the search result a software product as the selected software product.
51. The system of claim 39, wherein: the system is for the central office to distribute to the plural users a number of copies of the software product, each user being able to select the quantity of copies to make; the system additionally comprises, in the user's apparatus, an input means for receiving an input indicating die quantity of copies of the software product to be made; die user communication means transmits and die central communication means receives the incoming message additionally including die quantity; die central communication means transmits and die user communication means receives the remm message additionally including the quantity; the copy making means is for receiving from the decrypting means the software product for each copy and for making the copy thereof; and die system additionally includes, in die user's apparatus, a means for decreasing die quantity by one each time the copy making means makes a copy of the software product, and for erasing die key for the software product to prevent additional copies being made when die quantity reaches zero.
52. The system of claim 51, wherein: die system additionally comprises, in the user's apparatus, a means for generating and storing a random number for the software product; and die user communication means transmits and die central communication means receives the incoming message additionally including die random number; the coding means provides die coded key by coding die key for the software product using the user identification and die random number; and die key decoding means decodes die coded key using the respective stored random number and die user identification, to provide die key.
53. The system of claim 51, wherein: the system is for the central office to distribute to the plural users a quantity of copies of a selected software product, each user being able to select the selected software product from among plural software products, and die quantity of copies to make; the encrypting means is for receiving the plural software products, for encrypting each software product using a key, and for making an encrypted copy of each software product, die encrypting means encrypting each software product using a different key; die distributing means distributes a medium including an encrypted copy of each software product to each user; the key storage means stores the key for each software product; die input means is additionally for receiving an input indicating selection of die selected software product from among the plural software products; the user communication means transmits and die central communication means receives the incoming message additionally including data identifying die selected software product; die coding means provides a coded key by coding die key for the selected software product; die central communication means transmits and die user communication means receives the remm message including die coded key for the selected software product; and die reading means is for selecting the encrypted copy of the selected software product from the plural encrypted copies on the medium received from the central office, and for reading out from the medium die encrypted copy of the selected software product as the software product.
54. The system of claim 53, wherein: the system additionally comprises, in the user's apparatus, a means for generating and storing a random number for the selected software product; die central communication means receives the incoming message additionally including die random number; the coding means provides die coded key for each copy by coding the key for the selected software product using the user identification and die random number; and die key decoding means decodes die coded key, using the stored random number and die user identification, to provide die key.
55. The system of claim 39, wherein: the encrypting means is additionally for dividing die key into a partial key and a complementary partial key, and for encrypting the complementary partial key to provide an encrypted partial key; die distributing means is additionally for distributing die encrypted partial key to the users; the key storing means is for storing the partial key; the coding means is for coding die partial key, using the user identification, to provide a coded partial key; the central communication means transmits the return message including the coded partial key; the key decoding means is for deriving die key from the coded partial key and die encrypted partial key, and includes: a partial key decoding means for decoding die coded partial key to provide a partial key, a means for decrypting die encrypted partial key to provide die complementary partial key, and a means for combining the partial key and the complementary partial key to provide die key.
56. The system of claim 55, wherein: the system additionally comprises, in the user's apparatus, a means for generating and storing a random number; the user communication means transmits and die central communication means receives the incoming message additionally including die random number; the coding means provides die partial coded key by coding die key using the user identification and die random number; and die partial key decoding means decodes die coded partial key, using the stored random number and die user identification, to provide die partial key.
57. The system of claim 39, wherein: the user's apparatus includes a mass storage device whereon the encrypted copy is fixed; and die copy making means makes the copy of the software product on die mass storage device.
58. The system of claim 39, wherein: the system includes a Compact Disc Read-Only Memory (CD-ROM) whereon the encrypted copy is fixed; die reading means includes a Compact Disc Read-Only Memory drive; and die copy making means includes a floppy disc drive.
59. The system of claim 39, wherein the distribution means includes die central communication means additionally transmitting the encrypted copy and die user communication means additionally receiving the encrypted copy.
60. The system of claim 39, wherein: the distribution means distributes an identical encrypted copy to each user; and die central communication means transmits a remm message including a different coded key to each user.
61. The system of claim 39, wherein: the central communication means includes a voice response unit means for: receiving the incoming message transmitted by a touch-tone telephone, and transmitting the remm message by "speaking;" and die user communication means includes: a display means for displaying die incoming message to the user, a touch-tone telephone means for transmitting the incoming message in response to the user's input into the touch-tone telephone means of the incoming message displayed on die display means, and an input means for receiving the remm message by the user hearing the remm message "spoken" by the voice response unit means and entering the return message into the input means.
62. The system of claim 39, wherein: die central communication means includes a live operator: receiving the incoming message spoken by the user, and transmitting the retum message by speaking the remm message to the user; and die user communication means includes: a display means for displaying die incoming message to the user, die user transmitting the incoming message by speaking the incoming message displayed on die display means, and an input means for receiving the retum message by the user hearing the retum message spoken by the live operator and die user entering the remm message into the input means.
63. A method for a central office to distribute to plural users a copy of a software product, die metiiod comprising the steps of: at the central office: providing die software product, encrypting die software product using a key, and making an encrypted copy of the encrypted software product, distributing die encrypted copy to the users, storing the key, receiving an incoming message from a user, the incoming message including a request for the key for the encrypted copy, and a user identification identifying the user, and coding die key using the user identification to provide a coded key, transmitting a remm message to the user in response to the incoming message, die remm message including die coded key; and in a user's apparatus: transmitting die incoming message to the central office, and receiving the remm message transmitted by die central office in response to the incoming message, decoding die coded key, using the user identification, to provide die key, reading die encrypted copy received from the central office, using the key to decrypt die read encrypted copy to provide die software product, and making the copy of the software product.
64. The method of claim 63, wherein: the metiiod additionally comprises the step of, in the user's apparatus, generating and storing a random number; in the step of receiving an incoming message from the user, receives the incoming message additionally includes die random number; in the step of coding die key, die key is coded using the random number and die user identification; and in the step of decoding die coded key, die coded key is decoded using the stored random number and die user identification.
65. The method of claim 63, wherein: the method is for the central office to distribute to the plural users a copy of a selected software product, each user being able to select the selected software product from among plural software products; die providing step includes providing die plural software products, and a medium; die encrypting step includes encrypting each software product using a different key to provide an encrypted copy of the software product; die distributing step includes distributing to each user the medium wherein an encrypted copy of each software product is fixed; die key storing step includes storing the key for each software product; die metiiod additionally comprises, in the user's apparatus, receiving an input indicating selection of die selected software product from among the plural software products; in the incoming message receiving step, the incoming message additionally includes data identifying the selected software product; in the key coding step, the coded key is provided by coding die key for die selected software product; in the remm message transmitting step, the retum message includes die coded key for the selected software product; and die encrypted copy reading step includes die steps of: selecting die encrypted copy of the selected software product from the plural encrypted copies on the medium received from the central office, and reading out from the medium die encrypted copy of the selected software product.
66. The method of claim 65, wherein: the method is for the central office to distribute to the plural users a copy of plural selected software products, each user being able to select the plural selected software products from among the plural software products; in the incoming message receiving step, the incoming message additionally includes data identifying each selected software product; in the key coding step, a coded key for each selected product is provided by coding die key for each selected software product; in the retum message transmitting step, the retum message includes die coded key for each selected software product; die receiving step includes receiving inputs indicating selection of die selected software products from among the plural software products; in the retum message transmitting step the retum message includes die coded key for each selected software product; in the key decoding step, the coded key for each selected software product is decoded to provide die key for each selected software product; in the encrypted copy selecting step, the encrypted copy of each selected software product is selected from the plural encrypted copies on the medium received from the central office; in the encrypted copy reading out step, the encrypted copy of each selected software product is read out from the medium; in die decrypting step, a read out of die encrypted copy of each selected software product is received and die respective key is used to decrypt die read out of die encrypted copy of each selected software product to provide die respective selected software product; and in the copy making step, each selected software product is received and die copy thereof is made.
67. The method of claim 66, wherein: the method additionally comprises, in the user's apparatus, the step of generating and storing a random number for each selected software product; in the incoming message receiving step, the incoming message additionaUy includes die random number for each selected software product; in the key coding step, the coded key for each selected software product is provided by coding die key for the selected software product using the respective random number and die user identification; and in the key decoding step, the coded key for each selected software product is decoded using the respective stored random number and die user identification to provide die key for each selected software product.
68. The method of claim 42, wherein: the method is for the central office to distribute to the plural users a quantity of copies of plural selected software products, each user being able to select the plural selected software products from among the plural software products, and die quantity of copies of each selected software product to make; in the incoming message receiving step, the incoming message additionaUy includes die quantity of copies of each selected software product to be made; die input receiving step additionaUy includes receiving inputs indicating die quantities of copies to be made of each selected software product; in the remm message transmitting step, the retum message additionaUy includes die quantity for each selected software product; in the copy making step, the respective selected software product for each copy is received and die copy thereof is made; and die metiiod additionaUy die steps of, in the user's apparatus: decreasing the quantity for each selected software product by one each time die copy making step makes a copy of the respective selected software product, and erasing the key for the respective selected software product to prevent additional copies being made when die quantity for the respective selected software product reaches zero.
69. The method of claim 65, wherein: the encrypting step includes die steps of: dividing die key for each software product into a partial key and a complementary partial key, encrypting die complementary partial key to provide an encrypted complementary partial key, and arranging the encrypted complementary partial keys for the plural software products in a key file, each encrypted complementary partial key having a key file address in the key file; in the distributing step, the medium wherein the key file is additionaUy fixed is distributed to users; in the key storing step, the partial key and die key file address for each of the plural software products are stored; the key coding step includes coding die partial key for the selected software product using the user identification to provide a coded partial key for the selected software product, and combining the coded partial key and die key file address for the selected software product; in the retum message transmitting step, the retum message includes die coded partial key and die key file address for the selected software product; in the reading step, the key file is additionaUy read from the medium; die key decoding step derives die key from the coded partial key and die encrypted complementary partial key, and includes die steps of: decoding die coded partial key, using the user identification, to provide die partial key, extracting the encrypted complementary partial key for the selected software product from the address in the key file indicated by die received key file address for the selected software product, decrypting the encrypted complementary partial key to provide die complementary partial key, and combining the partial key and die complementary partial key to provide the key.
70. A metiiod for assisting a user to operate a computer program with a graphical user interface, the method comprising the steps of: providing a display including a constant help box and a pointer, the pointer having a position on die display; providing a user input device, die user input device determining the position of die pointer on the display, and including a selection device operable by the user; providing help messages; determining the position of die pointer on the display; determining a result of the user operating die selection device at the position of die pointer on the display; selecting a help message in response to the result determined in the deteπnining step; and displaying die selected help message in die constant help box.
71. The method of claim 70, wherein: the steps of determining die position of die pointer on the display includes die steps of: detecting inactivity, when the pointer has not moved for a predetermined time, and when inactivity is detected: determining that die computer program is waiting for the user to provide an input, determining an input to suggest to the user, taking control of the pointer, and moving die pointer to a position on the display corresponding to the suggested input, advancing to the help message selecting step, and die metiiod additionaUy comprises the steps of, after the step of displaying die selected help message: displaying a first button and a second button, and an additional message prompting the user to select the Yes button to accept the suggested input, and providing die suggested input to the program when the user selects the first button.
PCT/US1994/000097 1993-01-07 1994-01-06 Software evaulation and distribution apparatus, system, and method WO1994016508A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU59906/94A AU5990694A (en) 1993-01-07 1994-01-06 Software evaulation and distribution apparatus, system, and method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US126293A 1993-01-07 1993-01-07
US08/001,262 1993-01-07

Publications (2)

Publication Number Publication Date
WO1994016508A1 true WO1994016508A1 (en) 1994-07-21
WO1994016508A9 WO1994016508A9 (en) 1994-09-29

Family

ID=21695161

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1994/000097 WO1994016508A1 (en) 1993-01-07 1994-01-06 Software evaulation and distribution apparatus, system, and method

Country Status (2)

Country Link
AU (1) AU5990694A (en)
WO (1) WO1994016508A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0795809A2 (en) * 1996-03-11 1997-09-17 Kabushiki Kaisha Toshiba Secure software distribution system and software utilization scheme
WO1998033296A1 (en) * 1997-01-23 1998-07-30 Commonwealth Bank Of Australia Distribution system with authentication
DE19925910B4 (en) * 1999-06-07 2005-04-28 Siemens Ag Method for processing or processing data
US8024399B2 (en) 1994-05-31 2011-09-20 Twintech E.U., Limited Liability Company Software distribution over a network

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4658093A (en) * 1983-07-11 1987-04-14 Hellman Martin E Software distribution system
US4692858A (en) * 1984-02-02 1987-09-08 Trillian Computer Corporation Visual interface between user and computer system
US4772882A (en) * 1986-07-18 1988-09-20 Commodore-Amiga, Inc. Cursor controller user interface system
US4984155A (en) * 1988-08-29 1991-01-08 Square D Company Order entry system having catalog assistance
US4999806A (en) * 1987-09-04 1991-03-12 Fred Chernow Software distribution system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4658093A (en) * 1983-07-11 1987-04-14 Hellman Martin E Software distribution system
US4692858A (en) * 1984-02-02 1987-09-08 Trillian Computer Corporation Visual interface between user and computer system
US4772882A (en) * 1986-07-18 1988-09-20 Commodore-Amiga, Inc. Cursor controller user interface system
US4999806A (en) * 1987-09-04 1991-03-12 Fred Chernow Software distribution system
US4984155A (en) * 1988-08-29 1991-01-08 Square D Company Order entry system having catalog assistance

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
REFERENCE TO MICROSOFT WORD: Microsoft Word Document Processing Program Version 4.0 for The Apple Macintosh, MICROSOFT CORP., 1988, p.p. 121, 202, 203. *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8024399B2 (en) 1994-05-31 2011-09-20 Twintech E.U., Limited Liability Company Software distribution over a network
US8069204B2 (en) 1994-05-31 2011-11-29 Twintech E.U., Limited Liability Company Providing and receiving content over a wireless communication system
US9111604B2 (en) 1994-05-31 2015-08-18 Intellectual Ventures I Llc Software and method that enables selection of on-line content from one of a plurality of network content service providers in a single action
US9484077B2 (en) 1994-05-31 2016-11-01 Intellectual Ventures I Llc Providing services from a remote computer system to a user station over a communications network
US9484078B2 (en) 1994-05-31 2016-11-01 Intellectual Ventures I Llc Providing services from a remote computer system to a user station over a communications network
EP0795809A2 (en) * 1996-03-11 1997-09-17 Kabushiki Kaisha Toshiba Secure software distribution system and software utilization scheme
EP0795809A3 (en) * 1996-03-11 2003-08-13 Kabushiki Kaisha Toshiba Secure software distribution system and software utilization scheme
WO1998033296A1 (en) * 1997-01-23 1998-07-30 Commonwealth Bank Of Australia Distribution system with authentication
DE19925910B4 (en) * 1999-06-07 2005-04-28 Siemens Ag Method for processing or processing data

Also Published As

Publication number Publication date
AU5990694A (en) 1994-08-15

Similar Documents

Publication Publication Date Title
US6523117B2 (en) System and method of online deciphering data on storage medium
JP5132311B2 (en) How to do retail sales analysis
US4949257A (en) Automated merchandising system for computer software
US6141006A (en) Methods for executing commercial transactions in a network system using visual link objects
US9727703B2 (en) Software distribution method and apparatus
US9607333B2 (en) Network-based sales system with a customizable user interface
US6061057A (en) Network commercial system using visual link objects
US20020004744A1 (en) Micro-target for broadband content
US20010056405A1 (en) Behavior tracking and user profiling system
US20020087475A1 (en) Method and system for preventing illegal use of digital contents, processing program thereof, and recording medium for the program
JPH10222579A (en) Virtual sales system, electronic data distribution, license and rental managing method
US20060064389A1 (en) Method and apparatus for the distribution of digitised information on demand
JP3947919B2 (en) Information processing system, information processing apparatus and method, and program
US8126812B1 (en) Digital content vending, delivery, and maintenance system
WO2022011289A1 (en) A method for incorporating a blockchain in a multi-level marketing system
US20120323792A1 (en) Multi platform and operating system digital content vending, delivery, and maintenance system
US20020066094A1 (en) System and method for distributing software
WO1994016508A1 (en) Software evaulation and distribution apparatus, system, and method
WO1994016508A9 (en) Software evaulation and distribution apparatus, system, and method
US20110022497A1 (en) Creation and maintenance of an electronic commerce listings catalog
CN101295395A (en) Network information processing system and information processing method
JP2002259416A (en) Medium with information acquisition program recorded thereon, information transmission device, medium with preservation term management program recorded thereon, character information display structure, commodity retrieval device, charge for delivery calculation device, introduction device
US20070185818A1 (en) Content sales support method and content sales support apparatus in super distribution system
WO2001001316A2 (en) A system, method and article of manufacture for an electronic software distribution, post-download payment scheme with encryption capabilities
KR100993918B1 (en) Information processing system, information processing apparatus and method

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AU CA JP NZ

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FR GB GR IE IT LU MC NL PT SE

COP Corrected version of pamphlet

Free format text: PAGES 1-53,DESCRIPTION,PAGES 54/98,CLAIMS,PAGES 1/14-14/14,DRAWINGS,REPLACED BY NEW PAGES BEARING THE SAME NUMBER;DUE TO LATE TRANSMITTAL BY THE RECEIVING OFFICE

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
NENP Non-entry into the national phase

Ref country code: CA

122 Ep: pct application non-entry in european phase
DPE2 Request for preliminary examination filed before expiration of 19th month from priority date (pct application filed from 20040101)