COMPUTATIONALLY EFFICIENT PROCESS AND APPARATUS FOR CONFIGURING A PRODUCT OVER A COMPUTER NETWORK

Abstract: A system for configuring a product using a server and a client is connected by a computer network, wherein the product has multiple possible configurations, and wherein each configuration is defined by a set of standard attributes and a set of optional attributes. The process comprises receiving from the client a request for a base configuration (22) comprising the set of standard attributes, transmitting to the client a plurality of Web pages containing an option data set including all possible optional attributes and a set of commands (30), the set of commands being executed on the client and allowing a user to select the set of optional attributes using the client (32).

Description: COMPUTAΉONALLYEFΠCIENT PROCESS AND APPARATUS FOR CONFIGURING A PRODUCT OVER A COMPUTER NETWORK FIELD OF THE INVENTION Thi t j invention relates to an apparatus and process for configuring a product over a computer m rtworic, and more particularly to an apparatus and process for efficiently configuring a product having multiple possible configurations over a computer network. BACKGROUND Although at first a mere curiosity used by scientific researchers, the Internet has come to be a significant factor in rveryday life. Along with the increasbgly common use of the Internet for entertainment and communication has come a sizeable increase in the use of the Internet in electronic ommerce. At first, e-commerce consisted mainly of merchants selling standardized products such as videos, CD's and books. But more recently, merchant-, have started using the Internet to sail goods that are highly customized, such as automobiles, computers and electronics. For any on of such goods there arc many options from which an Internet user can choose to configure tbeir own customized product. Although great for the user, this customization process posea problems for the merchant because it requires a lair amount of computational power for each transaction. As more people seek to buy these customized products over the Internet, the demand results in increased load on the merchant's server. The increased load on the server in turn degrad » the user's response time and may eventually overwhelm the server and lead to system failures. Thus, there is a premium on finding cfficienr ways to process user requests and configuration of the user's customized product. Exising approaches to selling user-configurable products over a network are generally very inefficient at handling the configuring process, A first approach is to handle all the configuration-related computation on the merchant's server, this is known as "server-side processing . '| Witl> ∞ 1 ™ 6 *-^ 6 processing, every time a user picks a product option or otherwise interacts with the configuration process, he or she interacts with the server, wjhich receives the user's input, processes the option selection, and sends an update of the currently existing configuration to the user. This approach works well if a small number of users are using the merchant's! server. If there are many users using the server— which is, of course, what every merchant wants— he fiequent request from many users demanding computational resources from the server can cause the server to tun extremely slowly and, in extreme cases, to stop functioning altogether. From the user's point of view, this option is slow because of the repeated communications needed with the server and the computation time required for each operation on the busy server. A sjecond approach for configuring customized products over a computer network is to have the merchant's server do some of the processing and have the user's computer, referred to as a clientj do some of the processing. Such an approach relieves the server of some of its computational load, but the remaining load may still be too high for the βerver if the number of clients accessing the system is high, For the user, s approach may still be too slow because of the remaining server load, and because of the multiple communications over the network that must take place between the code processing information on the client and the code processing infoimatiα i on the server. A tjhird approach that has been tried for configuring customized products is to transfer essentially all of the computation involved to the client machine instead of the server. This "client-side processing" approach increases server efficiency, because the server does very Kttle computation and can thus liandlc a very large number of client requests without becoming overwhelmed. The computational load is instead shifted to a widely distributed network of clients that are accessing the server, each of which is probably lightly loaded. Although it increases efficiency, however, client-side processing has so far been applied inefficiently. Currently, when the user uses the client machine to access the server, the server downloads an executable application (te., an applet) onto the client, so that the user can then use the φplet running on the client to configure the product The applets, however, arc usually large pieces of code that take a long time for a user to download outo the client, especially if the client has a slow conn|ection to the Internet. Even users with high-speed Internet acoess to the may have problems downloading the applet, because many net ork firewalls are designed to keep applets Figlne 2 is a block diagram of a server computer which is part of the apparatus of tile present embodiment of the invention. I Fig j -ire 3 is a block diagram of a client computer which is part of the apparatus of the present embodiment of the invention. Figure 4 is a flowchart showing the process by which the Web pages (option pages) shown in figure 5 are pre-generated- Figure 8 is a flowchart showing the option checking process, which is part of the option selection process shown in Figure 7. any other figure refers to the same element i The embodiment of the inventive apparatus and process provides a computationally efficient raieans by which a user can configure an ordώcablc vehicle over a network such as the internet. ΛJIore specifically, the embodiment provides an apparatus and process for configuring a vehicle usij g the portion of the Internet known as the World Wide Web (the "Web")- A vehicle i is defined by a base configuration having a set of standard attributes (i.e., standard equipment), and a set of optional attributes (ie., optional equipment) selected by the user ftom an option data set (ι.«- > atόong all available options available for that base configuration). Thus, for example, a user may want to get a 2000 Toyota 4Runner SR5 with leather seats, CD player and alloy wheels. Ir^ this case, the base configuration is defined by the year, make, model and style of the vehicle— a' 2000 (year) Toyota (make) 4Runner (model) SR5 (style). This base configuration will have a set of standard altributes, such as a certain si_se engine, a certain transmission, etc. To i configure the vehicle, the user selects die set of optional attributes they want— *n this case, leather seats, CD player and alloy wheels— and adds than to the set of standard attributes to arrive at an oiderable vehicle. A vehicle is oiderable if all selected options are compatible with each other (i.e., no conflicting options) and no required options remain uuBelected. Using the apparatus and process, a user connects to a server from their client computer. The apparituε and process achieve their efficiency by transferring most cf the computation involved iψ configuring a vehicle from ihe server to die client; in other words, it exploits client- side processing by transferring to the client computer all the computation involved in selecting a set cf optional attributes. As further explained below, the process and apparatus transfer the bulk of the computation to the client by transferring a set of commands to the client machine. The transferred commands, in th s embodiment a series of pre-generated Web pages, provide the data and logic the user needs to configure their own ordcrablθ vehicle. The commands embedded in the Web pages are written in JavaScript and are executed by a program such as a Web browser. The series of Web pages, known as option pages, are pre-generated for each base configuration, so that whjen a user wants to configure a vehicle it is simply a matter of downloading the pages. Little or do computation is required from the server. Because all the option selection is done using the < »ption pages running on the client, the process is vety computationally efficient since it does not Tpquire multiple communications with the server and does not depend on the server to run the op ion selection process. Thus, the server load is dramatically reduced and the server can simultaneously service many more users, Tap entire process of configuring a vehicle β9 described herein can optionally be coupled with a p i cess and apparatus for purchasing a vehicle on-line from a dealer once the base configuration and set of optional attributes are selected. Figure 1 illustrates the overall process a user goes through to configure orderable vehicle. To begin the process, the user establishes a netwoik connection at step 20 between the client 60 ai id the Sttver 40 (see Figures 2 and 3). Using a Web browser on β client 60, the user selects a d aired base configuration at step 22 by selecting β year, make, model and style of vehicle. When a base configuration is selected, its set of standard attributes (i.e. the standard equipment] and other information is downloaded from the server 40 to the client 60 at step 24. The user stpdies the standard attributes and other information and decides at step 26 whether they are mtcrβsfjed in this vehicle and wish to configure it by selecting a set of optional attributes (i.e., optional equipment). If at step 26 the user does not want to configure the selected vehicle, the user decides at step 27 whether to select another base configuration by returning to Btep 22 or end the session) at step 28. If tic user wants to proceed with configuring * vehicle at step 26, they pick the options selection fro m: the standards page and the option pages are downloaded to die client at step 30. As further explained below, the option pa es contain all die necessary logic and data that allow the user tc select compatible options and configure an oiderable vehicle. The user configures their vehicle at step 32 by selecting their set of optional attributes (optional equipment). When the user finishes configuring the vehicle at step 32, they must decide whether they want to purchase the vehicle. If the configuration process is coupled with an on-line car buying system, the user cs n proceed to step 36, where the base configuration, the set of standard attributes, and the set of optional attributes is transmitted to the ordering system. The ordering system then transmits the vehicle iiifoπnatioiL, along with information gathered from the user, to dealers so that they πjtay respond with a price quote. If the • configuration process is not coupled with an online ordering system, then the user can end their session at step 38, save the configuration they and use the ■ information to shop for a vehicle the old-fashioned wa — by visiting several dealers. The details of some of the steps shown in Figure 1 are illustrated in subsequent figures, I Figure 2 illustrate β details of the server 40. The server 40 is essentially a high-capacity, high-speed computer that includes a storage device 42 and a processing unit 44 with access to two databises: a product database 46 and a configuration database 48. Also connected to the processing unit 44 is -sufficient memory (shown as part of the processing unit, but the memory could be a separate component) and appropriate client coiranunication hardware SO. Communication hardware 52 to allow co nmunication with a vehicle ordering system may also be added if the server is linked to such a system. The communication hardware 50 or 52 may be modems, eihe et connections, or any other suitable communication hardware. Although the server 40 is shown as a single computer having a single processing unit 44, it is also possible that the server could be spread o several networked computers, each having its processor and having one or more databases residing thereon. In addition to the elements described above, the storage device 42 of the server 40 has an operating system and communication software stored thereon to allow the server to communicate with other computers. The preferred operating system is Microsoft Windows NT, while the preferred communication software is a Microsoft US (Internet Information Server) server with associated programs. The databases on the server 40 contain the information necessary to make the apparatus and process work. The product database 46 stores the raw information about every base configuration, while the configuration database 48 stores the standards and option pages generated for each base configuration. The databases are assembled and accessed using any commercially available database software, such as Microsoft Access, Oracle, etc. Microsoft SQL Version 6.5 is the preferred database for this application. Figure 3 illustrates hardware details of the client 60. The client 60 generally includes a processor i attached to storage unit 64- a communication controller 66, and a display controller 68. The display controller runs a display unit 70 through which the user interacts with the client 60 and, through the network, also interacts with the server 40. In essence, the client 60 is a computer jable to run software providing a means for communicating with the server 40. This software is preferably an Internet web browser, such as Microsoft Internet Explorer, Netscape Navigatoi or other suitable Internet web browsers. J Figure 4 illustrates the pre-geaeraiioπ of the option pages necessary to implement the inventive j apparatus and process. Beginning with step 80 and 82, each base configuration is examined! For each base configuration, the product database 46 is queried to exttact a set of standard attributes (i.e., the standard equipment) and an option data set containing all optional attributes available for that particular configuration. Using Λe option data set, a plurality of option pages are generated at step 84. Those option pages contain all the option data for the base configuratibn. The pages also contain logic that allows them to interact amongst themselves so a user can select the set of optional attributes they want with their vehicle. The option pages are ftirlher described below in connection with Figure 5. At step 86, the set of standard attributes and the plurality of pages are stored to the configuration database 48. At step 88, the process checks to ^oc if there are more base configurations to be processed. If there are mare base configurations, ti»e process returns to step 82 where the database is queried for a new base configuration and a new plurality of pages is generated for the new base configuration, If there are no fiathcr base configurations, the pre-generation ends at step 90. Typically, the pre « gener__tion | will be done periodically to update the configuration database whenever the product database is updated. For vehicles, the pro-generation is preferably carried out once a week. Figure 5 illustrates the information kept in the configuration database for each base configuration. For each base configuration, there is a standards page 92 and a plurality of options pages 94. The standards page, as its name implies, contains the set of standard attributes (i.e., the Ejtandard equipment) and other information for the selected base configuration. The standard attributes are grouped together under a tab on the standards page. The other information is grouped into categories under several tabs on the page, including road and safety infbπnatioπ, warranty information, and technical information. If trie user wants to view information in any of these categories, they simply select the tab leading to a category. I I Ati option selection tab 96 on the standards page leads to the options pages 94. The options pigcs 94 comprise a plurality of Web pages, including a main or parent page 98, a user Interface jjage 100, a data page 102, and a driver page 104. An optional pricing page 106 can be included if die operator of the server wishes to display pricing information along with other vehicle injfotmation displayed by the user interface page. The options pages interact with each other to alow a user to select compatible options which define an oiderable vehicle. The main or parent page 98 links the remaining pages and controls the interaction among pages. Aβ its name implies, the user interface page 100 displays the options for the user, accepts user input, and allows the juser to interact with the other pages. Although its name implies otherwise, the data page 102 does not actually contain the option data set The data page instead translates and passes data between the user interface and the driver page. Translation is needed because the user interfice must represent the data in a way that can be read by the user, while the driver page 104 needs Jhe option data represented in a computationally efficient form. The driver page 104 is the most important page because it controls the option selection , ϊu addition to containing the complete option data set from which the user selects a set of optional attributes, the driver page contains logic to ensure that all the attributes selected by the user are compatible with each other. The logic operates on the data to perform several functions. First, it checks whether there is a conflict between options; for example, if the user selects a transmission incompatible with the selected engine, the logic will notify the user Similarly, if the user picks an option which requires the presence of other options, the logic will automatically add the necessary option and notify the user. Finally, if the user picks an option for which more than one choice exists, the logic will pick this up, notify the user that a selection must be made, and prompt the user for such a selection. The logic in the driver page is further described below in connection with Figure 8. The driver page, along with the other option pages, is preferably programmed using JavaScript. A final page in the options pages is the pricing page 106. The pricing page is optional > • if the server bperator wants to provide users with pricing information in addition to the information about standard equipment and options, they may do so including the pricing page. The transmits the pricing intbimation Figure 6 illustrates the initial steps in the operation of the process and apparatus. The process begins at step 108, where the user selects their base configuration by selecting a year, make, model and style. When the user has selected the base configuration, the standards page 92 is downloaded to the client at step 110 and the user can view the several categories of information- At step 112, the user selects the standaidB category- and the standards are displayed at step 14. At step 116, the "road and safety" category is selected, and the road and safety characteristiles of the base configuration arc displayed at step 11 . At step 120, the user selects the "warranty*' category, and the warranty information is displayed at step 122. Finally, at step 124, the usejr selects the "tech" section and the technical specifications of the base configuration are displaye 4 at step 126. If the user likes what he or she saw in steps 110 through 126, he or she proceeds to step 128 to select a set of optional attributes for their vehicle, that is, to add options ro the base pnfiguration- The set of optional attributes is selected from the option data set that contains all the available optional attributes that can be added to the selected base configuration. The process of selecting optional attributes is farther described below in connection with Figure 7 - Figure 7 illustrates the operation of the option selection process embodied in the option pages 94. ' Vhen he user selects an option at step 130. the process proceeds to step 132, At step 132, the seprer 40 automatically downloads die main or parent page 98 (referred to in the figure as the mail . page) onto the client 60. The parent page then "pulls" the remaining pages from the server onto; the client, starting with the driver page 104 at step 132 and the data page 102 at step 134. When the driver and data pages have been loaded, the data page diecks at step 138 to see whether the pricing display flag is set The pricing display flag allows the operator of die server to decide whether they want to use the only the user interface page 100 that does not include pricing information, or if they want to include the user interface 106 including pricing infoπnatioi. Based on the flag's setting, the parent page decides whether to load one or both interface pjages from the client onto the server if the flag is set, the user interface page including the pricing information is transferred; otherwise, the user interlace not including the user pricing rafomαatic n is transferred. At step 1 0, the user interface decides whether is should display a "got a quote" option. As menti ned above, the present embodiment of the apparatus and process can be linked to an ordering or bidding system to allow the user to configure a vehicle and, once the vehicle is configured, request bids fiom dealers. Usually, the operator of flie server 40 decides whether they want to be linked to such an ordering system. If the apparatus and process are linked to such a system, the "get a quote" option allows the user can submit their configuration for bid or purchase-l The main page 98, user interface page 100, data page 102, *nd driver page 104 initialize atj step 136 and 142 and wait for user input at step 144. Depending on the user's selection at step 144, the process goes to step 146 to select options, step 158 to get a report showing all options currently selected or, if the apparatus and process are so configured, to step 174 to get a price quote on the configured vehicle. I I If tie user wants configure a vehicle by choosing a set of optional attributes, he or she selects an optional at step 146. After the user selects an option, the process calls the data page 106 at stepi 148. The data page transfers the data for the selected option from the user interfec β page 100 to the driver page 104 at step 150, and re-foπnats the data so that the driver page will understand it At step 152, tbβ driver page calculates any additional requirements for the selected option and , resolves any conflicts among all the options selected so far. The process of step 152 is further djiscussed below in connection with Figure 8. When all requirements and conflicts are resolved al l step 152, the process goes to step 154, where the data page passes the selected option data from the driver page to die user interface page, re-foπnattiπg the data during the transfer so that it will Ibe understood by the user interface page. At step 156, the user interface is updated to show the selection made by the user. The process then returns to step 144, where it waits for further user input If the user wants to select further options to add to their set of optional attributes, they select another option at step 146. I ! If at step 144 the user wants to view the cument configuration they have put together, the i user can select a report at step 158. When a report is selected, the process goes to step 160, where the driver page checks the existing configuration to see whether it defines a complete, orderablc vehicle. A vehicle is orderable if all the selected options are compatible with each other (i.c.,| no conflicting options) and no required options remain unselected. This check at step 162 is performed according to the process shown in Figure 8, which is further described below. If tbe vehicle is not complete, a step 172 notifies the user what is missing and returns to step 144 to await further user input irthe vehicle is complete, then at step 164 the current set of optional attributes js retrieved from the driver page 104 and passed to tbe user interfece at step 166 so that it can be viewed by the user. If the configuration process and apparatus are linked to an on-line ordering svste , the user proceeds to step 168, where they decide if they would like to place and order. If they do, then the data is passed to step 182 where the user selects the color they want for the vehicle. Thereafter- the set of standard attributes and the set of optional attributes selected by the user are passed on to the ordering system for processing. If the embodiment of the present apparatus and process Is linked to an on-lino ordering or bidding system, the user can access the system at step 144 by selecting that option and proceeding to step 174. Having selected step 174, the process executes 6tepε 176 and 178, which cheeks to ehsure the vehicle is oiderable before it is submitted to file ordering or bidding system. Steps 176 and 178 are identical to steps 160 and 162, which are performed when the user requests a yehicle report. The set of standard attributes and set of optional attributes are passed on to the oi dering system for processing. Fig ire 8 illustrates the logic used by the driver page 104 to ensure that the user selects compatible options that result in an oiderable vehicle. When the user selects an option at stop 146, the lo c first checks at step 184 whether that option conflicts with any previously selected option. If there is a conflict, the logic assumes that the later chosen one is the correct one, and at step 186 it removes the previously selected option with which it conflicts. If there is no conflict between options, the process checks at step 188 whether the selected option requires any other options. JjFthe selected option does not require any other options, then the selected option is flagged as having been selected at step 1 6 and tbe process returns to βtep 144, where it waits for further usβjr input If the selected option does require another option — for example, if the user selects an ine that requires a particular n__mβπύssiαn— this requirement will be caught at step 188. In cases where selection of one option requires selection of another option, the process proceeds tp step 190, where it (tetermiπes whether there is a choice among the options to be selected, If there is no choice, the option is selected at step 194 and a check is run at step 184 to see wheth« r it conflicts with any other options. As before, if the selected option conflicts with a previously selected one, die previously selected one is removed at srej> 186 and the process returns to s tcp 144 to await turther user input. If there is a choice, the process notifies the user of die choice at step 192 and waits for the user to select from among the choices at step 194. When an option ik selected at step 194, a conflict check is run as bofoie. Anl embodiment of the present invention has been described. A person skilled in the art will, however, recognize that many other embodiments are possible within the scope of the invention. In particular, other embodiments are possible that incorporate more or different features arid that apply to products other than vehicles. For this reason, the scope of the invention is not to be determined from the description of the embodiment, but must instead be determined solely from the following claims.

Claims: CLAIMS 1. A process for configuring a product using a server and a client connected by a computer network, wherein the product has multiple possible configurations, and wherein each coπJRguration is defined by a set of standard attributes and a set of optional attributes, die I process comprising: receiving from the client a request for a base configuration comprising the set of sta dard attributes; transmitting to the client the standard attribute set for the base configuration; and transmitting to the client a plurality of Web pages containing an option data set including all possible optional attributes and a set of commands, the set of commands bei g executed on the client and allowing a user to select the set of optional attributes using the client. 2. The process of claim 1 further comprising transmitting a complete product definition including the set of standard attributes and the set of optional attributes from (he client to the| server. 3. The process of claim 1 further comprising pre-generating the plurality of Web pages foi eacjh base configuration before the request for a base configuration is received. I I 4. The process of claim 1 wherein the plurality of Web pages comprises: a main page which controls the interaction among the plurality of pages; a user interface page comprising an option selection page; a driver page which contains the options data set and controls a user's selection of a mbination of options; and a data page which manages the interaction between the user interface page and the transmitting the main page from the server to the client; and pulling the user interface page, driver page and data page from the server using the imam page. 7. The process of claim 1 wherein executing the set of commands comprises executing the commands using a Web browser. 8. The process of claim 1 wherein the set of commands contained in the plurality of Web pages define a process comprising: ! j checking a selected optional attribute to see if it conflicts with a previously selected optional attribute; I I checking a selected optional attribute to sec if it requires selection of a second optional attribute; and i , checking a selected optional attribute to determine if there is more than one choice for] that optional attribute. 9. Thje process of claim 8 wherein the process defined by the stt of commands further comprises: I j removing the previously selected optional attribute from the set of optional at-jr-butes if the previously sβleotβrl optional attribute conflicts with die selected optional attribute; - IS - selecting the second optional attribute if it is required by the first optional attribute; and i 1 notifying the user if there is more than one choice for the selected attribute- 10. A process for configuring a product using a client connected to a server by a computer network, wherein the product having multiple possible configurations, and wherein each configuration is defined by a standard set of attributes and a set of optional attributes, the process comprising: J transmitting a request for a base configuration from the client to the server, i ! transmitting a set of standard attributes defining the base configuration from the server to the client; j transinitt-ng a plurality of Web pages containing an option data set including evety available optional attribute and a set of commands for selecting a set of optional attributes from the server to the client; and I executing the set of commands on the client to select a compatible set of optional atiijibutes from among all optional attributes fund in the option data set. i 11. The process of claim 10 further comprising transmitting a complete product definition including the set of standard attributes and the set of optional attributes from the client to the! server. I I 12. The process of claim 10 further comprising pre-generating the plurality of Web pages for each base configuration before the request for a base configuration is received, j 13. The process of claim 10 wherein the plurality of Web pages comprises: a main page which controls the interaction among the plurality of pages; a user interface page comprising an option selection page; a driver page which contains the options data set and controls a user's selection of a combination of options; and a data page which manages the interaction between the user interface page and the drivjer page. 14. The process of claim 13 wherein the plurality of Web pages further comprises a pricing pagp for displaying pricing information on the client 15. The! process of claim 10 wherein transmitting the option data set and the set of commands conj-prises; transmitting the main page from the server to the client; and ! j pulling the user interface page, driver page and data page from the server using the main page. 16. The process of claim 10 wherein executing the set of comm-tnds comprises executing the ooi inlands using a Web browser. 17. The process of claim 10 wherein the set of απ-___α__nds contained in the plurality of Web pages define a process comprising: checking a selected optional attribute to see if it conflicts with a previously selected optional attribute; chocking a selected optional attribute to see if it requires selection of a second optional attribute; and checking a selected optional attribute to determine if there is more than one choice fo that optional attribute. 18. Trie process of claim 17 wherein the process defined by the »ct of commands further comprises: removing the previously selected optional attribute from the set of optional attributes if the previously selected optional attribute conflicts wilh the selected optional attribute; selecting the second optional attribute if it is required by the first optional attribute; and notifying the user if there is more than one choice for the selected attribute. 19. An lapparams for configuring a product using a computer network, wherein the product has multiple possible configurations, and wherein each configuration defined by a set of standard attributes and a set of optional attributes, the apparatus comprising: a server connected to the network, wherein the server comprises a processor, a rncinory, and a storage device, and wherein the processor and memory are operative with a program stored on the storage device to receive from a client a request for a base configuration comprising the standard set of attributes; transmit to the client the standard attribute set for the base configuration; and transmit to the client computer a plurality of Web pages containing an option data set including all possible optional attributes and a set of commands, wherein the set of commands is executed on the client and allows a user to select the set of optional attributes. 20. Thje apparatus of claim 19 wherein the server is further operative to receive from the clijartt a complete product definition including the set of standard attributes and the set of optional attributes. 21. Thc| apparatus of claim 19 wherein the server is further operative to pro-generate the plurality of Web pages for each base configuration before the request for a base conjuration is received. 22. The apparatus of claim 19 wherein the plurality of Web pages comprises: a main page which conttols the interaction among Ihe plurality of pages; I ! a user interface page comprising an option selection page; I a driver page which contains the options data set and controls a user' s selection of a combination of options; and I a data page which manages the interaction between the user interface page and the driVer page. 23. Thfe apparatus of claim 22 wherein the plurality of Web pages further comprises a pricing page for displaying pricing information on the client 24. Ths apparatus of claim 22 wherein the server being operative to transmit the plurality of Wfeb pages comprises the server being operative to: I hransmit the main page from the server to the client; and j pull the user interface page, driver page and data page from the server to the client usfng die main page. j 25. Trie apparatus of claim 19 wherein executing the set of commands comprises executing the commands using a Web browser. 26. Tfye apparatus of claim 19 wherein the set of commands contained in the plurality of Web ^ges define a process comprising: checking a selected optional attribute to see if it conflicts with a previously selected optional attribute; checking a selected optional attribute to see if it requires selection of a second optional attribute; and I i checking a selected optional attribute to determine if there is more than one choice for ihat optional attribute. 7 The apparatus of claim 26 wherein the process defined by the commands contained in the Web pages further comprises; 1 removing tbe previously selected optional attribute from tbe set of optional attributes if the previously selected optional attribute conflicts with the selected optional attribute; I selecting the second optional attribute if it is required by the first optional attribute; and i 1 notifying the user if there is more than one choice for the selected attribute. 28. Th^ apparatus of claim 19 further comprising a client connected to the computer network, whlsrein the client comprises a processor, a. memory, and a storage device, and wherein i the] processor and memory are operative with a program stored on the storage device to enable the client to communicate over the computer network and execute commands rec Ibived over the network. I 29. Thfe apparatus of claim 28 wherein the program is a Web browser.

Inventors: CANSLER LESLIE DEAN, FEINER STEVEN, CANSLER, LESLIE, DEAN, FEINER, STEVEN
Applicants: CHROME DATA CORP, CHROME DATA CORPORATION
Application year: 2000
Main classification: H04L
IPC codes: G06Q10, H04L29