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

Software evaulation and distribution apparatus, system, and method

Info

Publication number
WO1994016508A9
WO1994016508A9 PCT/US1994/000097 US9400097W WO9416508A9 WO 1994016508 A9 WO1994016508 A9 WO 1994016508A9 US 9400097 W US9400097 W US 9400097W WO 9416508 A9 WO9416508 A9 WO 9416508A9
Authority
WO
WIPO (PCT)
Prior art keywords
key
software product
user
copy
selected software
Prior art date
Application number
PCT/US1994/000097
Other languages
French (fr)
Other versions
WO1994016508A1 (en
Filing date
Publication date
Application filed filed Critical
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

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 coiporate 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 ⁇ 4 -inch or 3Vi-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.
  • a software vending Systran 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 dr ⁇ p-sh ⁇ ped 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 enciypted 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 enciypted for each user. This is clearly impractical for a system which requires that the enciypted 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 enciypted 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 enciypted copy of the software product.
  • the apparatus comprises a reading device that reads the enciypted 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 enciypted 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 enciypted 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 raicrypts the software product using a key, and makes an enciypted copy of the encrypted software product.
  • the central office also includes a distribution system for distributing the enciypted 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 enciypted copy is made of the enciypted software product.
  • the enciypted 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 enciypted 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 enciypted copy received from the central office is read, and the enciypted 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 deteimines 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 Systran 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 Systran 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 woiksheet of the professional software evaluation and distribution apparatus and system according to the invention.
  • Figure 4D shows the quotation woiksheet 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 woiksheet 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, Systran,, 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 woikstation 10 may form part of a netwoik (not shown) that provides all or some of the woikstation facilities to be described herein to one or more stations on the netwoik.
  • all stations on the netwoik 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 netwoik may be allowed to order products and/or to desktop vend products.
  • all products on the netwoik 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 woikstation 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-iunning 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 woikstation 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 deliveiy 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 woikstation to make one or more copies of each selected product, or an electronic license, in which the central office causes the woikstation issue a license to install the selected product on additional computers.
  • the woikstation 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 woikstation.
  • 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 woikstation 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 woikstation 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 514- inch or 3- ⁇ -inch high density or low density floppy discs, a netwoik 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 enciypted 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 woikstation 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 d ⁇ stributed 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.
  • 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 publishers) for each product desktop vended. This enables the publisher to register the user as a user automatically.
  • the woikstation 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 woikstation 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 enciyption 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 memoiy.
  • the secure memoiy 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 enciypted 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 woikstation 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 woikstation determines the addresses of n random unoccupied storage locations in the secured memoiy device 30, where n is the total number of products to be desktop vended. The woikstation 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 woikstation also stores the transmitted secure memory addresses.
  • the central office Before transmitting the key for each product ordered by the woikstation, 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 woikstation for each product, and the user identification number received from the woikstation.
  • the central station 20 transmits a coded key for each product to be desktop vended back to the woikstation 10.
  • the central station also transmits to the woikstation a quantity for each product, which is the number of copies of the product that the user is authorized to make by desktop
  • the central office may include several random numbers in the return transmission to the woikstation. The random numbers make it more difficult for someone monitoring the return transmission to determine the coded keys.
  • the woikstation 10 stores the encoded keys and quantities received from the central office 20 in the secure memoiy device.
  • the woikstation stores each encoded key and its corresponding quantity at the address in secure memory used to encode the key.
  • the woikstation may store part of each coded key in the secure memory device, and may store the rest of each coded key elsewhere in the woikstation 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 memoiy device.
  • the woikstation 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 craitral office to derive the key from the coded key.
  • the woikstation also retrieves the quantity for the product from the secure memory device.
  • the woikstation then retrieves the enciypted copy of the product, decrypts it using the key, and makes the number of copies determined by the quantity.
  • the woikstation 10 includes a compact disc read-only mranory (CD-ROM) drive as the mass storage medium 18, and the enciypted 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 enciypted 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 enciypted files is increased by storing the enciypted copies on the CD-ROM in large files containing many encrypted copies such that the individual enciypted copies are not recognized by operating system in the woikstation 10.
  • An enciypted 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 memoiy.
  • the CD-ROM In addition to enciypted 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 enciypted 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 woikstation. 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.
  • the main program and its subsidiary program modules run under a g ⁇ hical user interface (GUI), such as Windows.
  • GUI g ⁇ hical user interface
  • the g ⁇ hical 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 woiksheet 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), publishers), 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 woiksheet screen 202 shown in Figure 2A.
  • the operating buttons maiked FILE 201, HELP 203, DELETE 205, and SEARCH 207.
  • the search parameter selectors maiked Title 211, Publisher 213, Category 215, and OpSys 217.
  • the bottom of the main woiksheet 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 Work[sheet] 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 Systran 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 woiksheet.
  • 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 the selected products to the main woiksheet.
  • 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 woiksheet.
  • 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 woiksheet.
  • 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 woiksheet.
  • the user may locate a potential search result quickly by typing characters into the Search For box 252. This locates tiie 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 woiksheet 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 woiksheet, 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 woiksheet screen.
  • the user may remove products from the list of products displayed in the main woiksheet 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 woiksheet 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 woiksheet 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 woiksheet 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 woiksheet 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 woiksheet. 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 the publisher to show the capabilities of the selected product.
  • Selecting the Test Drive icon 237 enables a coiporate user to try the actual product before buying.
  • the user may electronically order from the craitral 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 woiksheet 202, as described above.
  • the user may also add additional titles to the main woiksheet, 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
  • 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 woiksheet screen 202 ( Figure 2A), and ratable 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 woiksheet 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 woiksheet 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 feamres 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 feamres 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 features 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 Features 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 features from the list of available features.
  • 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 features.
  • 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 features 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 infoimation 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 electromc 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 the 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 woiksheet 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 feamres 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 TTTLES 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 the 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 features compare screen to the main woiksheet 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 woikstation 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 woiksheet screen 202 ( Figure 2A) or the feamres compare screen 301 ( Figure 3A).
  • the user will normally select some or all of the titles listed in the main woiksheet screen 202 ( Figure 2A) before selecting the Quote icon 257.
  • the quotation module displays the quotation woiksheet 401, shown in Figure 4B.
  • the quotation woiksheet includes the Quantity column 403, the Publisher column 405, the Title column 407, the MSRP column 409, the Price column 411, and the Extraided amount column 413.
  • the quotation woiksheet also includes the QUOTE button 415.
  • the quotation module tests whether the user has selected titles in the main woiksheet 202. If the result of this test is TRUE, the quotation module, at the step 105, partially fills out the quotation woiksheet 401 with the selected titles in the Title column 407, and the 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 woiksheet. 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 woiksheet.
  • 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 woikstation to make one or more copies of the selected product, or an electronic license, in which the central office causes the woikstation 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 the chosen format.
  • the user may select more than one chosen format for each product in the quotation woiksheet.
  • the quotation module returns to the quotation woiksheet where it adds a line showing the chosen format that has just been chosen, and the MSRP of the chosen format.
  • the quotation module adds to the quotation woiksheet a line 431 showing the chosen format of the product shown in line 414, and the 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., the result of the test is FALSE, the quotation module returns to step 109 to allow the user to select the chosen format and ratter the quantity of the other products in the quotation woiksheet.
  • the 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 woiksheet, the user selects the QUOTE button 415. This causes the quotation module to produce a TRUE result at step 113, and the program advances to step 115.
  • the quotation module causes the woikstation 10 to transmit the quotation woiksheet, as a request for a quotation, to the central office 20.
  • the quotation module only transmits a site identifier, a number that uniquely identifies the woikstation, a code indicating the shipping method, and for each product in the quotation woiksheet, 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 craitral 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 return message back to the woikstation.
  • the quotation module waiting at step 117, receives and stores the 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.
  • 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, the Total box 441, the Reference number box 443, and the Expiry date box 445 in the quotation woiksheet, as shown in Figure 4E.
  • the quotation module then returns execution to the main program.
  • the user can save the completed quotation woiksheet for use later, if desired, using the SANE AS option (not shown) that appears when the user selects the FILE button 447.
  • the user displays the completed quotation woiksheet (if it is not already displayed) by, for example, using the OPEN option (not shown) displayed when the 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 the user received the quotation.
  • the user selects all the products displayed in the quotation woiksheet 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 the purchase order woiksheet 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 then 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 the 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 the Method of Payment dialogue box 459, which drops down for the user to ratter either a purchase order number, or a credit card number. The user can also ratter his/her own information into the Reference Number box 460.
  • the user selects the PURCHASE button 461. This causes the test at step 129 to yield a TRUE result, and the purchasing module advances to step 131, where the purchasing module causes the woikstation 10 to transmit the reference number to the craitral office 20. Also transmitted is the data shown in the purchase order, except the data that was copied from the request for quotation woiksheet. Finally, if one or more products are to be desktop vended, the woikstation 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 then 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 woiksheet, since the craitral office already has this information. Part of this information was included in the original request for a quotation and the central office provided the rest of this information in response to the request for a quotation.
  • the reference number transmitted with the 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 the data it stored when it prepared the quotation from which the purchase order is derived.
  • the central office 20 Upon receiving the purchase order, the central office 20 checks whether the quote on which the purchase order is based is still valid. If the quote is no longer valid, the central office will treat the purchase order as a request for a quotation, and will return a quotation to the user, instead of acknowledging the purchase order. Only after the user accepts the new quote by sending the purchase order to the craitral 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.
  • the central office For each product to be desktop vended, the central office retrieves from the data base 42 the key for decrypting the encrypted copy of the product.
  • the central office encodes the key for each product with an encoding algorithm, described above, which uses, in addition to the key, the user identification number and one of the secure memory addresses received from the woikstation 10, taken in order.
  • an encoding algorithm described above, which uses, in addition to the key, the user identification number and one of the secure memory addresses received from the woikstation 10, taken in order.
  • 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, the 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 the quantity for each product are stored together in the secure memory device 30 at the secure memory address that was used to encode the key.
  • the purchasing module returns control to the main program.
  • the user may copy the titles of products directly from the main woiksheet 202 ( Figure 2A). If the user copies the titles of products directly from the main woiksheet 202, the purchasing module requires the user to select a chosen fo ⁇ nat and to enter a quantity for each product. The purchasing module then provides a quotation, similar to that provided by the quotation module but displayed on the purchase order worksheet. The user must then accept the quotation displayed by the purchasing module before the purchasing module can carry out the purchasing transaction described above.
  • the main program also includes the desktop vending module shown in Figure 6A. Whrat 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 woiksheet screen 202 and the 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.
  • the desktop vending module shown in Figure 6A. Whrat 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 woiksheet screen 202 and the features compare screen 301 in which it is displayed. This causes the desktop vending module to execute. At step 141, the desktop vending
  • the desktop vending module displays the 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 the quantity of copies of that product for which a coded key has been received.
  • the user selects the product that he/she wishes to desktop vend.
  • the desktop vending module checks whether the user has selected one of the 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-iun 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 the 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 the coded key for the product selected.
  • the desktop vending module retrieves the coded key and the user identification number from the locations in the secure memory device where they were stored. The desktop vending module then invokes the complementary decoding algorithm, which extracts the key using the coded key, the user idraitification number, and the address of the location in the secure memoiy device where the coded key was stored.
  • the desktop vending module seeks the enciypted 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 the copy. For example, it the copy is being made on 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 woikstation.
  • the desktop vending module displays, and may print on a printer (not shown) attached to the woikstation, appropriate instructions for labelling the copy.
  • the desktop vending module decrypts the enciypted 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 the 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 the 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 memoiy 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 memoiy device, and deletes the 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.
  • the desktop vending module remrns to step 161, where it displays additional instructions to the user, such as inviting the user to insert a floppy disc.
  • the desktop vending module remrns to step 161, where it displays additional instructions to the user, such as inviting the user to insert a floppy disc.
  • each disc made during this process corresponds to a disc in the version of the product distributed through the no ⁇ nal retail distribution system.
  • the desktop vending module may run a scr ⁇ t 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 the 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 the 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 the professional Systran shown in Figure 1 A have the same reference number with the letter "A" added.
  • the consumer system will now be described in more detail, with reference to Figure IB.
  • the consumer system is based on the consumer's own computer 10A.
  • the consumer system provides the consumer with software that configures his/her computer as the consumer software evaluation apparatus and the consumer software distribution apparatus according to the invention.
  • the consumer's computer constitutes the woikstation 10A
  • the mass storage device such as the hard disc 22 A
  • the consumer's computer constitutes the mass storage medium.
  • Data files provided by the central office 20A are installed on the consumer's mass storage device, preferably before the consumer buys the computer.
  • the data files possibly include a narrower selection of copies of enciypted software products than in the professional system, depending on the 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 the program modules, respectively, described above.
  • the data files include the product data base used by the search facility of the software evaluation module, and the capsules, and the demonstration programs that can be accessed by the software evaluation module.
  • the data files can be installed by the mass storage device manufacturer, by the manufacturer of the computer, or by the dealer selling the computer to the consumer.
  • the craitral 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 the amount of spaced on the mass storage device occupied by the enciypted 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 ratable 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 craitral office could also ratable an installing entity to offer the user a choice in the type or types of software product installed as enciypted 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 enciypted 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 enciypted copies are stored on the user's mass storage device such that their presence is recognized by the 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 the 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 craitral office 20A using the touch-tone telephone 46, instead of a modem.
  • the touch-tone telephone 46 is connected to the automated voice response unit (NRU) 44 at the central office 20A via the dial-up line 48, or via another suitable communication link.
  • NRU automated voice response unit
  • the voice response unit 44 at the central office 20A is connected to the central computer 40A, and, together with the user operating the touch- tone telephone 46, transfers data between the central comput ⁇ ' and the user's computer 10A.
  • the relevant modules of the main program in the user's computer display on the screen 28A the information that the user must enter using the keypad of the touch-tone telephone 46, and the 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 the * and # keys for "return” and "error-redo” commands.
  • the NRU "speaks" numbers generated by the central computer 40A, and also “reads back” groups of numbers entered by the 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 NRU into the computer 10A.
  • the central office system also allows the user to deal with 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 with data compression, over 150 digits have to be entered. The probability of pressing this many digits without error is small, so a read-back of each number entered is required. This reduces the chances of errors, but considerably increases the time required to enter the information. To avoid this problem, the first-time caller may bypass the NRU 44 and provide the first-use information to a live operator.
  • the live operator After the live operator has entered the new user's information into the craitral co ⁇ uter 40A, the live operator gives the new user a customer number, raicoded 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 the NRU, 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.
  • the encrypted ⁇ y 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 the 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, the decrypted copy is written over the enciypted copy, and the amount of available space on the mass storage device remains unchanged when the enciypted copy is replaced by the decrypted copy.
  • the security arrangements in the consumer system differ in detail from those in the professional system.
  • the consumer system lacks the secure memoiy device 30 of the professional Systran shown in Figure 1 A.
  • the order module of the 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 the central office for each product to be desktop vended.
  • the craitral office codes the key using the seed as one coding parameter, instead of coding the key using the secure memory address as one coding parameter as in the professional system.
  • the order module in the consumer system then decodes the 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 the professional system. To provide an acceptable security level without requiring the user to enter an unacceptably long coded key, the key length is kept the 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 the partial key to provide the full key, for each product stored on the user's mass storage device as an enciypted copy, is also enciypted and stored in a key file on the consumer's mass storage device.
  • the central computer 40 A generates the coded partial key by first looking up in the data base 42A the key for the product indicated by the user.
  • the central computer encodes the partial key using a suitable coding algorithm that generates the coded partial key in response to the partial key, the user identification number, and the 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 the key file address from the password.
  • the order module then decodes the coded partial key using a decoding algorithm that operates in response to the coded partial key, and the seed number and the user identification number stored in the user's computer.
  • the order module next retrieves the file of encrypted complementary keys stored on the user's mass storage device, deciypts the file, and extracts from the file the complementary key indicated by the key address in the password. Finally, the order module inserts the partial key into the complementary key to provide the 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 the password, so that the correct password changes every five attempts.
  • the present system does not shut down if an incorrect password is repeatedly entered. The system thus avoids the 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 the main program by selecting an icon displayed on the main screen.
  • the product evaluation module in the consumer Systran offers fewer features than the professional Systran.
  • 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 the main program is -running.
  • Figure 7A shows the catalog display generated by the catalog module in the 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 the 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 feamre 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 the mouse with the mouse pointer positioned as the animated help feature has positioned it.
  • the animated help feamre 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 the animated help feamre, the animated help feamre will guide the 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 the left side of the catalog display in the display area 503.
  • Hardware products are sold and delivered to the user the same way as software products, except that hardware products cannot be desktop vended.
  • the word “product” will refer to both hardware and software, but, with respect to desktop vending, the 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 currently in view can be seen by operating the scroll bar 504.
  • Some icons, such as the icon 525, maiked "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 the icons of only those products that 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 the icon for the 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 features, for the product whose icon the user first dragged into the brochure folder 506.
  • the information provided to the user by this facility is supplied by the publisher.
  • the user may scroll through the brochure using the scroll bar 504, and may then view the brochure for the product whose icon the user next dragged into the brochure folder 506 by selecting the 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 whether the user has selected it, by selecting the next arrow 520.
  • the user may return to the catalog display at any time by selecting the Catalog button 521.
  • the user may also drag one or more of the displayed icons into the Demo folder 508 next to Drano 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 the publisher of the first product whose icon the user dragged into the Demo folder 508.
  • the demonstration is displayed in the 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 these controls to select the brochure to view.
  • the order module displays the order form screen 551 shown in Figure 7B.
  • the order form module displays the titles of the products whose icons the user dragged into the order folder in the display area 553.
  • the order module transmits to the central office simply the title(s) of the produces) displayed on the order form worksheet.
  • the craitral 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 the user selects the Files button 555. The user can then retrieve and re-display the quotation later using an Open option displayed when the user selects the Files button.
  • the order module If the user decides to accept the quote and place an order, and the quote is not already displayed, the 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 the credit card that he/she will use to pay for the products being purchased. If the consumer has chosen desktop vending, the order module generates and stores a seed, as described above, for each product to be desktop vended.
  • the order module establishes communication with the central office and transmits the quote number to the central office 20A. Also transmitted is the 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.
  • the central office transmits a return message back to the user acknowledging the order.
  • the central office ships discs and documentation for all products that are electronically ordered, even for products that are supplied using desktop vending. Thus, the central office forwards the order to the warehouse 50A for shipping.
  • the order acknowledgment includes a password for each desktop vending copy that will be made.
  • the order module extracts the coded partial key and the key table address from the password, and decodes the coded partial key using a decoding algorithm that operates in response to the coded partial key, and the seed number and user identification number stored in the user's computer.
  • the order module retrieves the key table from the user's mass storage device, decrypts it, and the inserts the partial key into the complementary key indicated by the key table address to provide the full key, as described above.
  • the order module then uses the full key to decrypt the enciypted copy of the product stored on the user's mass storage device, and makes a copy of the product back on the mass storage device.
  • the order module deletes the enciypted copy of the product from the mass storage device.
  • the order module may run a scr ⁇ t 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 the newly-installed product.
  • the main screen also includes the Utilities button 513. Selecting the Utilities button enables the 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 coiporate 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 coiporate 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^4 -inch or 3Vi-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, coiporate software evaluators are inundated with advertising, industry trade shows, telemaiketers, 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 Systran 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 drσp-shφped 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 enciypted 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 enciypted for each user. This is clearly impractical for a system which requires that the enciypted 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 enciypted 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 netwoik 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 Systran of distributing copies of a software product via retail distribution.
It is an object of the invention to provide a Systran 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 Systran 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 enciypted 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 Systran for distributing software products in which, to prevent unauthorized use, enciypted 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 enciypted copy.
It is an object of the invention to provide a system for distributing software products that prevents a user from making from the enciypted 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 netwoik. Accordingly, the apparatus provides an apparatus for making a copy of a software product from an enciypted copy of the software product. The apparatus comprises a reading device that reads the enciypted 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 enciypted 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 enciypted 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 raicrypts the software product using a key, and makes an enciypted copy of the encrypted software product. The central office also includes a distribution system for distributing the enciypted 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 enciypted copy is made of the enciypted software product. The enciypted 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 enciypted 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 enciypted copy received from the central office is read, and the enciypted 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 deteimines 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 Systran 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 Systran 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 woiksheet of the professional software evaluation and distribution apparatus and system according to the invention.
Figure 4D shows the quotation woiksheet 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 woiksheet 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, Systran,, 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 IA. 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 woikstation 10 may form part of a netwoik (not shown) that provides all or some of the woikstation facilities to be described herein to one or more stations on the netwoik. For example, all stations on the netwoik 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 netwoik may be allowed to order products and/or to desktop vend products. Alternatively, all products on the netwoik 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 deciypting enciypted 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 woikstation 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-iunning 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 woikstation 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 deliveiy 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 woikstation to make one or more copies of each selected product, or an electronic license, in which the central office causes the woikstation issue a license to install the selected product on additional computers.
The woikstation 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 woikstation. 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 woikstation 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 woikstation 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 514- inch or 3-Α-inch high density or low density floppy discs, a netwoik 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 enciypted 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 woikstation 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 dϋstributed 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 publishers) for each product desktop vended. This enables the publisher to register the user as a user automatically.
In the professional system, the woikstation 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 woikstation 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 enciyption 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 memoiy.
In the preferred embodiment, the secure memoiy 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 enciypted 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 woikstation 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 woikstation determines the addresses of n random unoccupied storage locations in the secured memoiy device 30, where n is the total number of products to be desktop vended. The woikstation 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 woikstation also stores the transmitted secure memory addresses.
Before transmitting the key for each product ordered by the woikstation, 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 woikstation for each product, and the user identification number received from the woikstation.
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 memoiy addresses.
The central station 20 transmits a coded key for each product to be desktop vended back to the woikstation 10. The central station also transmits to the woikstation a quantity for each product, which is the number of copies of the product that the user is authorized to make by desktop
r. 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 woikstation. The random numbers make it more difficult for someone monitoring the return transmission to determine the coded keys.
The woikstation 10 stores the encoded keys and quantities received from the central office 20 in the secure memoiy device. The woikstation stores each encoded key and its corresponding quantity at the address in secure memory used to encode the key. The woikstation may store part of each coded key in the secure memory device, and may store the rest of each coded key elsewhere in the woikstation 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 memoiy device.
When the user performs desktop vending, the woikstation 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 craitral office to derive the key from the coded key. The woikstation also retrieves the quantity for the product from the secure memory device. The woikstation then retrieves the enciypted copy of the product, decrypts it using the key, and makes the number of copies determined by the quantity.
In the professional Systran, the woikstation 10 includes a compact disc read-only mranory (CD-ROM) drive as the mass storage medium 18, and the enciypted 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 enciypted 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 enciypted files is increased by storing the enciypted copies on the CD-ROM in large files containing many encrypted copies such that the individual enciypted copies are not recognized by operating system in the woikstation 10. An enciypted 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 voiding 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 memoiy.
In addition to enciypted 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 enciypted 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 woikstation. 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 gπφhical user interface (GUI), such as Windows. The gπφhical 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 woiksheet 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), publishers), 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 woiksheet screen 202 shown in Figure 2A. At the top of the screen are the operating buttons maiked FILE 201, HELP 203, DELETE 205, and SEARCH 207. Immediately below these buttons are the search parameter selectors maiked Title 211, Publisher 213, Category 215, and OpSys 217. At the bottom of the main woiksheet 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 Work[sheet] 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 Systran 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 woiksheet 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 woiksheet. 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 the selected products to the main woiksheet.
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 woiksheet. 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 woiksheet. 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 woiksheet.
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 tiie 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 woiksheet 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 woiksheet, 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 woiksheet screen.
The user may remove products from the list of products displayed in the main woiksheet 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 woiksheet 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 woiksheet 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 woiksheet 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 woiksheet 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 woiksheet. 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 the publisher to show the capabilities of the selected product.
Selecting the Test Drive icon 237 enables a coiporate user to try the actual product before buying. The user may electronically order from the craitral 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 woiksheet 202, as described above. The user may also add additional titles to the main woiksheet, 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
TΓΓLES 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 woiksheet screen 202 (Figure 2A), and ratable 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 woiksheet 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 woiksheet 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 feamres 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 feamres 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 features 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 Features 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 features from the list of available features. 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 features. 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 features 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 infoimation 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 electromc 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 the 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 feamres 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 puipose, the user first selects the Compare icon 225 from the main woiksheet 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 feamres 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 TTTLES 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 the 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 features compare screen to the main woiksheet 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 woikstation 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 woiksheet screen 202 (Figure 2A) or the feamres compare screen 301 (Figure 3A). The user will normally select some or all of the titles listed in the main woiksheet screen 202 (Figure 2A) before selecting the Quote icon 257.
In the step 101, the quotation module displays the quotation woiksheet 401, shown in Figure 4B. The quotation woiksheet includes the Quantity column 403, the Publisher column 405, the Title column 407, the MSRP column 409, the Price column 411, and the Extraided amount column 413. The quotation woiksheet also includes the QUOTE button 415.
At step 103, the quotation module tests whether the user has selected titles in the main woiksheet 202. If the result of this test is TRUE, the quotation module, at the step 105, partially fills out the quotation woiksheet 401 with the selected titles in the Title column 407, and the 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 woiksheet. 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 woiksheet. 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 woikstation to make one or more copies of the selected product, or an electronic license, in which the central office causes the woikstation 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 the chosen format. The user may select more than one chosen format for each product in the quotation woiksheet.
At step 111, the quotation module returns to the quotation woiksheet 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 woiksheet a line 431 showing the chosen format of the product shown in line 414, and the 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., the result of the test is FALSE, the quotation module returns to step 109 to allow the user to select the chosen format and ratter the quantity of the other products in the quotation woiksheet.
At any point during the execution of steps 109 and 111, the 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 woiksheet, the user selects the QUOTE button 415. This causes the quotation module to produce a TRUE result at step 113, and the program advances to step 115.
At step 115 the quotation module causes the woikstation 10 to transmit the quotation woiksheet, as a request for a quotation, to the central office 20. The quotation module only transmits a site identifier, a number that uniquely identifies the woikstation, a code indicating the shipping method, and for each product in the quotation woiksheet, 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 craitral 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 return message back to the woikstation. The quotation module, waiting at step 117, receives and stores the 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 woiksheet. 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, the Total box 441, the Reference number box 443, and the Expiry date box 445 in the quotation woiksheet, as shown in Figure 4E. The quotation module then returns execution to the main program. The user can save the completed quotation woiksheet for use later, if desired, using the SANE AS option (not shown) that appears when the user selects the FILE button 447.
If the user decides to accept the quotation, the user displays the completed quotation woiksheet (if it is not already displayed) by, for example, using the OPEN option (not shown) displayed when the 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 the user received the quotation. The user selects all the products displayed in the quotation woiksheet 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 the purchase order woiksheet 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 then 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 the 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 the Method of Payment dialogue box 459, which drops down for the user to ratter either a purchase order number, or a credit card number. The user can also ratter 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 the purchasing module advances to step 131, where the purchasing module causes the woikstation 10 to transmit the reference number to the craitral office 20. Also transmitted is the data shown in the purchase order, except the data that was copied from the request for quotation woiksheet. Finally, if one or more products are to be desktop vended, the woikstation 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 then 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 woiksheet, since the craitral office already has this information. Part of this information was included in the original request for a quotation and the central office provided the rest of this information in response to the request for a quotation. The reference number transmitted with the 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 the data it stored when it prepared the quotation from which the purchase order is derived.
Upon receiving the purchase order, the central office 20 checks whether the quote on which the purchase order is based is still valid. If the quote is no longer valid, the central office will treat the purchase order as a request for a quotation, and will return a quotation to the user, instead of acknowledging the purchase order. Only after the user accepts the new quote by sending the purchase order to the craitral 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, the central office retrieves from the data base 42 the key for decrypting the encrypted copy of the product. The central office encodes the key for each product with an encoding algorithm, described above, which uses, in addition to the key, the user identification number and one of the secure memory addresses received from the woikstation 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, the 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 the quantity for each product are stored together in the secure memory device 30 at the secure memory address that was used to encode the 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 woiksheet into the purchase order worksheet, the user may copy the titles of products directly from the main woiksheet 202 (Figure 2A). If the user copies the titles of products directly from the main woiksheet 202, the purchasing module requires the user to select a chosen foπnat and to enter a quantity for each product. The purchasing module then provides a quotation, similar to that provided by the quotation module but displayed on the purchase order worksheet. The user must then accept the quotation displayed by the purchasing module before the purchasing module can carry out the purchasing transaction described above.
The main program also includes the desktop vending module shown in Figure 6A. Whrat 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 woiksheet screen 202 and the 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 the 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 the quantity of copies of that product for which a coded key has been received. At step 145, the user selects the product that he/she wishes to desktop vend. At 146, the desktop vending module checks whether the user has selected one of the 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-iun 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 the 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 the coded key for the product selected. The desktop vending module retrieves the coded key and the user identification number from the locations in the secure memory device where they were stored. The desktop vending module then invokes the complementary decoding algorithm, which extracts the key using the coded key, the user idraitification number, and the address of the location in the secure memoiy device where the coded key was stored.
At step 159 the desktop vending module seeks the enciypted 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 the copy. For example, it the copy is being made on 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 woikstation. At step 163, it displays, and may print on a printer (not shown) attached to the woikstation, appropriate instructions for labelling the copy. At step 165, the desktop vending module decrypts the enciypted 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 the 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 the 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 memoiy 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 memoiy device, and deletes the 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, the desktop vending module remrns 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 noπnal retail distribution system.
After making a copy of a ready-to-run product on the user's hard disc, the desktop vending module may run a scrφt 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 the 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 the 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 the professional Systran shown in Figure 1 A have the same reference number with the letter "A" added.
The consumer system will now be described in more detail, with reference to Figure IB. The consumer system is based on the consumer's own computer 10A. The consumer system provides the consumer with software that configures his/her computer as the consumer software evaluation apparatus and the consumer software distribution apparatus according to the invention.
In the consumer version of the system, the consumer's computer constitutes the woikstation 10A, and the mass storage device, such as the hard disc 22 A, in the consumer's computer constitutes the mass storage medium. Data files provided by the central office 20A are installed on the consumer's mass storage device, preferably before the consumer buys the computer. The data files possibly include a narrower selection of copies of enciypted software products than in the professional system, depending on the 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 the program modules, respectively, described above. Finally, the data files include the product data base used by the search facility of the software evaluation module, and the capsules, and the demonstration programs that can be accessed by the software evaluation module.
The data files can be installed by the mass storage device manufacturer, by the manufacturer of the computer, or by the dealer selling the computer to the consumer. The craitral 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 the amount of spaced on the mass storage device occupied by the enciypted 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 ratable 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 craitral office could also ratable an installing entity to offer the user a choice in the type or types of software product installed as enciypted 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 enciypted 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 enciypted copies are stored on the user's mass storage device such that their presence is recognized by the 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 the 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 craitral office 20A using the touch-tone telephone 46, instead of a modem. The touch-tone telephone 46 is connected to the automated voice response unit (NRU) 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 the central computer 40A, and, together with the user operating the touch- tone telephone 46, transfers data between the central computα' and the user's computer 10A. The relevant modules of the main program in the user's computer display on the screen 28A the information that the user must enter using the keypad of the touch-tone telephone 46, and the 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 the * and # keys for "return" and "error-redo" commands. The NRU "speaks" numbers generated by the central computer 40A, and also "reads back" groups of numbers entered by the 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 NRU into the computer 10A.
Irrespective of whether communication between the user's computer 10A and the central office 20A is by modem or by touch-tone telephone and the NRU, the same data is transferred back and forth at each step of the process of ordering products from the central office.
The central office system also allows the user to deal with 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 with data compression, over 150 digits have to be entered. The probability of pressing this many digits without error is small, so a read-back of each number entered is required. This reduces the chances of errors, but considerably increases the time required to enter the information. To avoid this problem, the first-time caller may bypass the NRU 44 and provide the first-use information to a live operator.
After the live operator has entered the new user's information into the craitral coπφuter 40A, the live operator gives the new user a customer number, raicoded 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 the NRU, 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, the encrypted αφy 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 the 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, the decrypted copy is written over the enciypted copy, and the amount of available space on the mass storage device remains unchanged when the enciypted copy is replaced by the decrypted copy.
The security arrangements in the consumer system differ in detail from those in the professional system. The consumer system lacks the secure memoiy device 30 of the professional Systran shown in Figure 1 A. To provide unique coding of each coded key transmitted to the user, the order module of the 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 the central office for each product to be desktop vended. The craitral office codes the key using the seed as one coding parameter, instead of coding the key using the secure memory address as one coding parameter as in the professional system. The order module in the consumer system then decodes the 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 the professional system. To provide an acceptable security level without requiring the user to enter an unacceptably long coded key, the key length is kept the 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 the partial key to provide the full key, for each product stored on the user's mass storage device as an enciypted copy, is also enciypted and stored in a key file on the consumer's mass storage device.
The central computer 40 A generates the coded partial key by first looking up in the data base 42A the key for the product indicated by the user. The central computer encodes the partial key using a suitable coding algorithm that generates the coded partial key in response to the partial key, the user identification number, and the 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 the key file address from the password. The order module then decodes the coded partial key using a decoding algorithm that operates in response to the coded partial key, and the seed number and the user identification number stored in the user's computer. The order module next retrieves the file of encrypted complementary keys stored on the user's mass storage device, deciypts the file, and extracts from the file the complementary key indicated by the key address in the password. Finally, the order module inserts the partial key into the complementary key to provide the 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 the password, so that the correct 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 the 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 the 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 the main program by selecting an icon displayed on the main screen. The product evaluation module in the consumer Systran offers fewer features than the professional Systran.
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 the main program is -running. Figure 7A shows the catalog display generated by the catalog module in the display area 503.
Also displayed on the 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 the 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 feamre 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 the mouse with the mouse pointer positioned as the animated help feature has positioned it. The animated help feamre 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 the animated help feamre, the animated help feamre will guide the 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 the left side of the catalog display in the display area 503. Hardware products are sold and delivered to the user the same way as software products, except that hardware products cannot be desktop vended. Thus, in the following description, the word "product" will refer to both hardware and software, but, with respect to desktop vending, the 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 currently in view can be seen by operating the scroll bar 504. Some icons, such as the icon 525, maiked "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 the icons of only those products that 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 the icon for the 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 features, for the product whose icon the user first dragged into the brochure folder 506. The information provided to the user by this facility is supplied by the publisher.
The user may scroll through the brochure using the scroll bar 504, and may then view the brochure for the product whose icon the user next dragged into the brochure folder 506 by selecting the 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 whether the user has selected it, by selecting the next arrow 520. The user may return to the catalog display at any time by selecting the Catalog button 521.
The user may also drag one or more of the displayed icons into the Demo folder 508 next to Drano 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 the publisher of the first product whose icon the user dragged into the Demo folder 508. The demonstration is displayed in the 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 these controls to select the brochure to view. Once the user has decided to buy one or more products, he/she drags the 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 the order form screen 551 shown in Figure 7B. The order form module displays the titles of the products whose icons the user dragged into the order folder in the display area 553.
The next part of the description of the 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 the user's computer 10A and the modem 38A in the 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 the NRU 44 at the central office 20A; and by the user hearing data "spoken" by the NRU 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 title(s) of the produces) displayed on the order form worksheet. In response, the craitral 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 the user selects the Files button 555. The user can then retrieve and re-display the quotation later using an Open option displayed when the user selects the Files button.
If the user decides to accept the quote and place an order, and the quote is not already displayed, the 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 the credit card that he/she will use to pay for the products being purchased. If the consumer has chosen desktop vending, the order module generates and stores a seed, as described above, for each product to be desktop vended.
Once the user has completed the order form worksheet, the order module establishes communication with the central office and transmits the quote number to the central office 20A. Also transmitted is the 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, the central office transmits a return message back to the user acknowledging the order. The central office ships discs and documentation for all products that are electronically ordered, even for products that are supplied using desktop vending. Thus, the central office forwards the order to the warehouse 50A for shipping.
If the user has selected desktop vending, the order acknowledgment includes a password for each desktop vending copy that will be made. The order module extracts the coded partial key and the key table address from the password, and decodes the coded partial key using a decoding algorithm that operates in response to the coded partial key, and the seed number and user identification number stored in the user's computer. The order module retrieves the key table from the user's mass storage device, decrypts it, and the inserts the partial key into the complementary key indicated by the key table address to provide the full key, as described above. The order module then uses the full key to decrypt the enciypted copy of the product stored on the user's mass storage device, and makes a copy of the product back on the mass storage device. Finally, the order module deletes the enciypted copy of the product from the mass storage device. After making the copy some products, the order module may run a scrφt 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 the newly-installed product.
The main screen also includes the Utilities button 513. Selecting the Utilities button enables the 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: the trademarks used herein for illustratimg the operation of the apparatus, system, and method 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 the software product, the apparatus comprising: a reading means for reading the enciypted 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 remrn message from the remote site in response to the outgoing message, the remrn message including a coded key; a key decoding means for decoding the coded key to provide the key; a decrypting means for receiving a read out of the enciypted copy of the software product from the reading means, and for using the key to decrypt the read out of the encrypted copy of the software product to provide the 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; the outgoing message additionally includes the random number and data identifying the apparatus; and the key decoding means decodes the coded key using the stored random number for the outgoing message corresponding to the remrn message wherein the coded key is received, and the data identifying the 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 the generating means includes a means for randomly selecting an unoccupied memory location in the secure memory means, and for providing the address of the 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 the 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, the copy being made from an encrypted copy of the selected software product; the reading means is for reading out the enciypted copy of the selected software product from a medium wherein plural enciypted copies are fixed, each encrypted copy corresponding to one of the plural software products; the apparatus additionally comprises an input means for receiving an input indicating selection of the selected software product from among the plural software products; the outgoing message includes a first outgoing part including data identifying the selected software product, and a request for a quotation of a cost of making a copy of the selected software product; the remrn message includes a first remrn part in response to the first outgoing part, the first remrn part including the quotation and a reference number identifying the quotation; the outgoing message additionally includes a second outgoing part sent in response to the first remrn part, the second outgoing part including the reference number, and an acceptance of the quotation; and the return message additionally includes a second remrn part in response to the second outgoing part, the second return part including the reference number and the coded key for the 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 the random number and data identifying the apparatus; and the key decoding means decodes the coded key using the stored random number for the outgoing message corresponding to the return message wherein the coded key is received, and the data identifying the apparatus.
7. The apparatus of claim 5, wherein: the reading means is additionally for reading a key file fixed in the medium, the key file including an enciypted 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 remrn message including a coded partial key and the key file address for the selected software product; the key decoding means includes: a partial key decoding means for decoding the coded partial key to provide a partial key, a means for extracting the enciypted complementary partial key for the selected software product from the address in the key file indicated by the received key file address, a means for decrypting the enciypted complementary partial key to provide the complementary partial key, and a means for combining the partial key and the complementary partial key to provide the 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 the random number and data identifying the apparatus; and the partial key decoding means decodes the coded partial key using the stored random number for the outgoing message corresponding to the return message wherein the raicoded key is received, and the data identifying the 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; the reading means is for reading out the enciypted copy of each selected software product from the medium; the input means is for receiving inputs indicating selection of the selected software products from among the plural software products; the 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 remrn part includes a coded key for each selected software product; the key decoding means is for decoding the coded key for each selected software product to provide the key for each selected software product; the 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 the read out of the enciypted copy of each selected software product to provide the respective selected software product; and the 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; the outgoing message additionally includes the random number for each selected software product and data identifying the apparatus; and the key decoding means decodes the coded key for each selected software product using the respective stored random number and the data identifying the 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 the 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 the selected unoccupied memoiy location as the 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 the input means 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 to provide a search result, the search result including a software product that includes the at least one selected feamre, 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 enciypted copy of each selected software product; the input means is additionally for receiving inputs indicating the quantity of copies to be made of each selected software product; the first outgoing part additionally includes the 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; the second remrn part additionally includes the quantity of copies to be made of each selected software product; the 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 the apparatus additionally includes a means for decreasing the 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 the quantity of copies to be made of the 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; the outgoing message additionally includes the random number for each selected software product, and data identifying the apparatus; and the key decoding means decodes the encoded key for each selected software product using the respective stored random number and the data identifying the apparatus.
15. The apparatus of claim 14, wherein: the apparatus additionally includes a secure memory means for storing the encoded key and the quantity for each selected software product in one of plural memory locations, each memory location having an address; and the 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 the selected unoccupied memoiy location as the 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 enciypted copy of the software product; the apparatus additionally comprises an input means for receiving an input indicating the quantity of copies to be made of the software product; the outgoing message includes the quantity of copies, and the remrn message includes the quantity; the copy making means is for receiving from the decrypting means t e software product for each copy and for making the copy thereof; and the apparatus additionally includes a means for decreasing the quantity of copies to be made of the 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 the quantity of copies to be made of the 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; the outgoing message additionally includes the random number and data identifying the apparatus; and the key decoding means decodes the coded key using the stored random number, and the 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 the quantity in one of plural memory locations, each memory location having an address; and the generating means includes a means for randomly selecting an unoccupied memory location in the secure memory means, and providing the address of the selected unoccupied memory location as the 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, the copies being made from an encrypted copy of the selected software product; the reading means is for reading out the enciypted copy of the selected software product from a medium wherein plural enciypted copies are fixed, each enciypted copy corresponding to one of the plural software products; the input means is additionally for receiving an input indicating selection of the selected software product from among the plural software products; the outgoing message includes a first outgoing part including data identifying the selected software product, the quantity of copies to be made of the selected software product, and a request for a quotation of a cost of making the copies of the selected software product; the 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; the outgoing message additionally includes a second outgoing part sent in response to the first remrn part, the second outgoing part including the reference number, and an acceptance of the quotation; and the return message additionally includes a second return part in response to the second outgoing part, the second return part including the reference number and the 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; the outgoing message additionally includes the random number and data identifying the apparatus; and the key decoding means decodes the encoded key using the stored random number and the data identifying the apparatus.
21. The apparatus of claim 20, wherein: the apparatus additionally includes a secure memory means for storing the encoded key and the quantity in one of plural memory locations, each memory location having an address; and the generating means includes a means for: randomly selecting an unoccupied memoiy location in the secure memory means, and providing the address of the selected unoccupied memory location as the random number.
22. The apparatus of claim 1, wherein: the communication means is for receiving a remrn message including a coded partial key; the apparatus additionally includes a means for reading out an enciypted complementary partial key, the complementary partial key being complementary to the partial key; and the key decoding means includes: a partial key decoding means for decoding the coded partial key to provide the partial key, a means for decrypting the enciypted complementary partial key to provide the complementary partial key, and a means for combining the partial key and the complementary partial key to provide the 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 the random number and data identifying the apparatus; and the partial key decoding means decodes the coded partial key using the stored random number for the outgoing message corresponding to the remrn message wherein the coded partial key is received, and the data identifying the apparatus.
24. The apparatus of claim 1, wherein: the apparatus includes a mass storage device whereon the encrypted copy of the software product is fixed; and the copy making means makes the copy of the software product on the mass storage device.
25. The apparatus of claim 1, wherein: the encoded copy is fixed in a Compact Disc Read-Only Memoiy (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 enciypted 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 feamre; a means for searching the data base means to provide a search result; and a display means for displaying the 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 feature 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 feamre 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 the feamre selecting means selects preselected feamres Fll and F12 from within the first search parameter, and the feature 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 the search parameters on a first axis of an orthogonal arrangement, and displaying, when a search parameter is selected, the preselected feamres for the selected search parameter on a second axis of the orthogonal arrangement; and the search parameter selecting means is for selecting at least one search parameter from the search parameters displayed by the search display means; and the feamre selecting means is for selecting at least one preselected feamre from the preselected feamres displayed on the 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 the display means displays the search results by: displaying, in rows and columns in a matrix arrangement, the at least one selected product and the at least one selected feamre, each selected product being displayed in each one of the rows and the columns and each selected product being displayed in each other of the columns and the rows, placing a symbol where a row and a column intersect to indicate that the selected product in the one of the row and the column includes the selected feamre in the other of the column and the row.
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 the search result by displaying a list of all of the competing products including the at least one of the plural preselected feamres selected by the user; and the display means additionally includes a means for the user to select at least one of the 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 the 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, the system comprising: a craitral office, including: an encrypting means for encrypting the software product using a key, and for making an enciypted copy of the encrypted software product, a distributing means for distributing the enciypted 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 enciypted copy, and a user identification identifying the user, and a coding means for providing a coded key by coding the key using the user identification, wherein the central communication means is additionally for transmitting a remrn message to the user in response to the incoming message, the return message including the coded key; and a user's apparatus, including: a user communication means for transmitting the incoming message received by the central office, and for receiving the remrn message transmitted by the central office in response to the incoming message, a key decoding means for decoding the coded key, using the user identification, to provide the key, a reading means for reading the encrypted copy received from the central office, a decrypting means for receiving a read out of the enciypted copy from the reading means, and for using the key to decrypt the read out of the enciypted copy to provide the software product, and a copy making means for receiving the software product from the decrypting means and for making the copy thereof.
40. The system of claim 39, wherein: the system additionally comprises, in the user's apparams, 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 the random number, the coding means provides the coded key by coding the key using the random number and the user identification; and the key decoding means decodes the coded key using the stored random number and the 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; the enciypting 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, the encrypting means enciypting each software product using a different key; the distributing means distributes a medium including an enciypted copy of each software product to each user; the key storage means stores the key for each software product; the system additionally comprises, in the user's apparams, an input means for receiving an input indicating selection of the selected software product from among the plural software products; the user communication means transmits and the central communication means receives the incoming message additionally including data identifying the selected software product; the coding means provides the coded key by coding the key for the selected software product; the craitral communication means transmits and the user communication means receives the remrn message including the coded key for the selected software product; and the reading means is for selecting the enciypted 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; the central communication means receives the incoming message additionally including data identifying each selected software product; the coding means provides the coded key by coding the key for each selected software product; the central communication means transmits and the user communication means receives the remrn message including the coded key for each selected software product; the input means is for receiving inputs indicating selection of the selected software products from among the plural software products; the central communication means transmits and the user communications means receives the return message including the coded key for each selected software product; the key decoding means is for decoding the coded key for each selected software product to provide the key for each selected software product; the reading means is for selecting the enciypted 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 the encrypted copy of each selected software product; the 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 the read out of the encrypted copy of each selected software product to provide the respective selected software product; and the 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 the user's apparams, a means for generating and storing a random number for each selected software product; the user communication means transmits and the central communication means receives the incoming message additionally including the random number for each selected software product; the coding means provides the coded key for each selected software product by coding the key for the selected software product using the respective random number and the user identification; and the key decoding means decodes the coded key for each selected software product, using the respective stored random number and the user identification, to provide the key for each selected software product.
44. The system of claim 42, wherein: the system 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 the quantity of copies of each selected software product to make; the central communication means receives the incoming message additionally including the quantity of copies of each selected software product to be made; the input means is additionally for receiving inputs indicating the quantities of copies to be made of each selected software product; the central communication means transmits and the user communication means receives the remrn message additionally including the quantity for each selected software product; the 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 the system additionally includes, in the user's apparatus, a means for decreasing the 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 the 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; the craitral communication means receives the incoming message additionally including a random number for each selected software product; the coding means provides the coded key for each selected software product by coding the key for each selected software product using the user identification and the respective random number, and the key decoding means decodes the coded key for each selected software product, using the respective stored random number and the user identification, to provide the key for each selected software product.
46. The system of claim 41, wherein: the enciypting means is additionally for: dividing the key for each software product into a partial key and a complementary partial key, encrypting the complementary partial key to provide an enciypted complementary partial key, and arranging the encrypted complementary partial keys for the plural software products in a key file, each enciypted complementary partial key having a key file address in the key file; the distributing means distributes to the users the medium wherein the key file is additionally fixed; the key storing means is for storing the partial key and the key file address for each of the plural software products; the coding means is for coding the 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 the coded partial key and the key file address for the selected software product; the central communication means transmits the remrn message including the coded partial key and the key file address for the selected software product; the reading means is additionally for reading the key file from the medium; the key decoding means is for deriving the key from the coded partial key and the encrypted complementary partial key, and includes: a partial key decoding means for decoding the coded partial key, using the user identification, to provide the partial key, a means for extracting the enciypted complementary partial key for the selected software product from the address in the key file indicated by the received key file address for the selected software product, a means for decrypting the enciypted complementary partial key to provide the complementary partial key, and a means for combining the partial key and the complementary partial key to provide the 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 the user communication means transmits and the central communication means receives the incoming message additionally including the random number; the coding means provides the coded partial key for the selected software, product by coding the partial key for the selected software product using the user identification and the random number, and the partial key decoding means decodes the coded partial key for the selected software product, using the stored random number and the user identification, to provide the partial key for the selected software product.
48. The system of claim 41, wherein: the user's apparatus includes a mass storage medium; the system additionally includes a transfer means for transferring an enciypted copy of each software product from a transfer medium to the mass storage medium; and the distributing means distributes to users a medium whereon an enciypted copy of each software product is fixed by providing the 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; the user's apparams includes a mass storage medium; the system additionally includes: a set selection means for receiving an input indicating a selection by the 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 enciypted copy of each software product in the selected set of plural software products; and the distributing means is for distributing to users a medium whereon an enciypted copy of each software product in a selected set of plural software products is fixed, the distributing means distributing the medium whereon an enciypted copy of each software product in a selected set of plural software products is fixed by providing the 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 the users a medium wherein there is additionally fixed a data base indicating, for each of the plural software products, that the product includes each of plural preselected feamres; the reading means is additionally for reading the data base from the medium; and the 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 feamre, 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.
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 the quantity of copies of the software product to be made; the user communication means transmits and the central communication means receives the incoming message additionally including the quantity; the central communication means transmits and the user communication means receives the remrn 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 the Systran additionally includes, in the user's apparams, a means for decreasing the quantity 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 the quantity reaches zero.
52. The system of claim 51, wherein: the system additionally comprises, in the user's apparams, a means for generating and storing a random number for the software product; and the user communication means transmits and the central communication means receives the incoming message additionally including the random number; the coding means provides the coded key by coding the key for the software product using the user identification and the random number; and the key decoding means decodes the coded key using the respective stored random number and the user identification, to provide the 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 the quantity of copies to make; the enciypting means is for receiving the plural software products, for enciypting each software product using a key, and for making an enciypted copy of each software product, the encrypting means enciypting 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; the input means is additionally for receiving an input indicating selection of the selected software product from among the plural software products; the user communication means transmits and the central communication means receives the incoming message additionally including data identifying the selected software product; the coding means provides a coded key by coding the key for the selected software product; the central communication means transmits and the user communication means receives the return message including the coded key for the selected software product; and the reading means is for selecting the enciypted copy of the selected software product from the plural enciypted copies on the medium received from the central office, and for reading out from the medium the enciypted 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; the craitral communication means receives the incoming message additionally including the random number; the coding means provides the coded key for each copy by coding the key for the selected software product using the user idrattification and the random number; and the key decoding means decodes the coded key, using the stored random number and the user identification, to provide the key.
55. The system of claim 39, wherein: the encrypting means is additionally for dividing the key into a partial key and a complementary partial key, and for encrypting the complementary partial key to provide an encrypted partial key; the distributing means is additionally for distributing the enciypted partial key to the users; the key storing means is for storing the partial key; the coding means is for coding the partial key, using the user identification, to provide a coded partial key; the central communication means transmits the remrn message including the coded partial key; the key decoding means is for deriving the key from the coded partial key and the encrypted partial key, and includes: a partial key decoding means for decoding the coded partial key to provide a partial key, a means for decrypting the encrypted partial key to provide the complementary partial key, and a means for combining the partial key and the complementary partial key to provide the 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 the central communication means receives the incoming message additionally including the random number; the coding means provides the partial coded key by coding the key using the user identification and the random number, and the partial key decoding means decodes the coded partial key, using the stored random number and the user identification, to provide the partial key.
57. The system of claim 39, wherein: the user's apparatus includes a mass storage device whereon the enciypted copy is fixed; and the copy making means makes the copy of the software product on the mass storage device.
58. The system of claim 39, wherein: the system includes a Compact Disc Read-Only Memory (CD-ROM) whereon the enciypted copy is fixed; the reading means includes a Compact Disc Read-Only Memory drive; and the copy making means includes a floppy disc drive.
59. The system of claim 39, wherein the distribution means includes the central communication means additionally transmitting the enciypted copy and the 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 the central communication means transmits a remrn 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 remrn message by "speaking;" and the user communication means includes: a display means for displaying the 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 the display means, and an input means for receiving the remrn message by the user hearing the remrn message "spoken" by the voice response unit means and entering the return message into the input means.
62. The system of claim 39, wherein: the central communication means includes a live operator: receiving the incoming message spoken by the user, and transmitting the remrn message by speaking the return 5 message to the user; and the user communication means includes: a display means for displaying the incoming message to the user, the user transmitting the incoming message by speaking the 10 incoming message displayed on the display means, and an input means for receiving the remrn message by the user hearing the remrn message spoken by the live (φerator and the user entering the remrn message into the input means.
63. A method for a central office to distribute to plural users a copy of a software product, the method comprising the steps of: at the central office: providing the software product, enciypting the software product using a key, and making an encrypted copy of the encrypted software product, distributing the 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 enciypted copy, and a user identification identifying the user, and coding the key using the user identification to provide a coded key, transmitting a return message to the user in response to the incoming message, the return message including the coded key; and in a user's apparams: transmitting the incoming message to the central office, and receiving the remrn message transmitted by the central office in response to the incoming message, decoding the coded key, using the user identification, to provide the key, reading the encrypted copy received from the central office, using the key to decrypt the read encrypted copy to provide the software product, and making the copy of the software product.
64. The method of claim 63, wherein: the method 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 the random number; in the step of coding the key, the key is coded using the random number and the user identification; and in the step of decoding the coded key, the coded key is decoded using the stored random number and the 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; the providing step includes providing the plural software products, and a medium; the enciypting step includes enciypting each software product using a different key to provide an encrypted copy of the software product; the distributing step includes distributing to each user the medium wherein an encrypted copy of each software product is fixed; the key storing step includes storing the key for each software product; the method additionally comprises, in the user's apparatus, receiving an input indicating selection of the 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 the key for the selected software product; in the remrn message transmitting step, the return message includes the coded key for the selected software product; and the enciypted copy reading step includes the steps of: selecting the encrypted copy of the selected software product from the plural encrypted copies on the medium received from the craitral office, and reading out from the medium the 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 the key for each selected software product; in the remrn message transmitting step, the remrn message includes the coded key for each selected software product; the receiving step includes receiving inputs indicating selection of the selected software products from among the plural software products; in the remrn message transmitting step the remrn message includes the coded key for each selected software product; in the key decoding step, the coded key for each selected software product is decoded to provide the key for each selected software product; in the enciypted copy selecting step, the enciypted copy of each selected software product is selected from the plural encrypted copies on the medium received from the central office; in the enciypted copy reading out step, the enciypted copy of each selected software product is read out from the medium; in the decrypting step, a read out of the enciypted copy of each selected software product is received and the respective key is used to decrypt the read out of the encrypted copy of each selected software product to provide the respective selected software product; and in the copy making step, each selected software product is received and the 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 additionally includes the random number for each selected software product; in the key coding step, the coded key for each selected software product is provided by coding the key for the selected software product using the respective random number and the 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 the user identification to provide the 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 the quantity of copies of each selected software product to make; in the incoming message receiving step, the incoming message additionally includes the quantity of copies of each selected software product to be made; the input receiving step additionally includes receiving inputs indicating the quantities of copies to be made of each selected software product; in the return message transmitting step, the remrn message additionally includes the quantity for each selected software product; in the copy making step, the respective selected software product for each copy is received and the copy thereof is made; and the method additionally the steps of, in the user's apparatus: decreasing the quantity for each selected software product by one each time the 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 whrat the quantity for the respective selected software product reaches zero.
69. The method of claim 65, wherein: the encrypting step includes the steps of: dividing the key for each software product into a partial key and a complementary partial key, encrypting the complementary partial key to provide an enciypted 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 additionally fixed is distributed to users; in the key storing step, the partial key and the key file address for each of the plural software products are stored; the key coding step includes coding the 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 the key file address for the selected software product; in the return message transmitting step, the return message includes the coded partial key and the key file address for the selected software product; in the reading step, the key file is additionally read from the medium; the key decoding step derives the key from the coded partial key and the encrypted complementary partial key, and includes the steps of: decoding the coded partial key, using the user identification, to provide the partial key, extracting the enciypted complementary partial key for the selected software product from the address in the key file indicated by the received key file address for the selected software product, decrypting the encrypted complementary partial key to provide the complementary partial key, and combining the partial key and the complementary partial key to provide the key.
70. A method 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 the display; providing a user input device, the user input device determining the position of the pointer on the display, and including a selection device operable by the user; providing help messages; determining the position of the pointer on the display; determining a result of the user operating the selection device at the position of the pointer on the display; selecting a help message in response to the result determined in the determining step; and displaying the selected help message in the constant help box.
71. The method of claim 70, wherein: the steps of determining the position of the pointer on the display includes the steps of: detecting inactivity, when the pointer has not moved for a predetermined time, and when inactivity is detected: determining that the 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 the pointer to a position on the display corresponding to the suggested input, advancing to the help message selecting step, and the method additionally comprises the steps of, after the step of displaying the 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 the suggested input to the program when the user selects the first button.
AMENDED CLAIMS
[received by the International Bureau on 13 June 1994 (13.06.94); original claims unchanged; claims 70-71 cancelled (1 page)]
combining the partial key and the complementary partial key to provide the key.
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 WO1994016508A1 (en) 1994-07-21
WO1994016508A9 true 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)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5694546A (en) 1994-05-31 1997-12-02 Reisman; Richard R. System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list
JP3486043B2 (en) * 1996-03-11 2004-01-13 株式会社東芝 Operating method of software distribution system and software system
AUPO474997A0 (en) * 1997-01-23 1997-02-20 Commonwealth Bank Of Australia Distribution system with authentication
DE19925910B4 (en) * 1999-06-07 2005-04-28 Siemens Ag Method for processing or processing data

Family Cites Families (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

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
US9607333B2 (en) Network-based sales system with a customizable user interface
US7016864B1 (en) Interactive upsell advisor method and apparatus for internet applications
US9727703B2 (en) Software distribution method and apparatus
US6141006A (en) Methods for executing commercial transactions in a network system using visual link objects
US20020004744A1 (en) Micro-target for broadband content
US20010056405A1 (en) Behavior tracking and user profiling system
US20020002488A1 (en) Locally driven advertising system
JPH10222579A (en) Virtual sales system, electronic data distribution, license and rental managing method
WO2003054667A2 (en) Global sales by referral network
JP2001344640A (en) Automatic vending machine managing method and automatic vending machine
US20010029472A1 (en) Anonymous purchase and sale system for online shopping and delivery services via computer networks
US8126812B1 (en) Digital content vending, delivery, and maintenance system
EP0681298A2 (en) Game programmed flash memory cartridge
US20020066094A1 (en) System and method for distributing software
KR20020006375A (en) Syetem and method for Intermediating Electronic Commerce
WO1994016508A9 (en) Software evaulation and distribution apparatus, system, and method
WO1994016508A1 (en) Software evaulation and distribution apparatus, system, and method
US20110022497A1 (en) Creation and maintenance of an electronic commerce listings catalog
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
KR980004191A (en) Data vending machine and its management method
KR100993918B1 (en) Information processing system, information processing apparatus and method
IE84235B1 (en) Interative upsell advisor method and apparatus for internet applications
JP2002049819A (en) System and method for service point management, and recording medium where data for service point management are recorded