US20060167988A1 - Method and sytem for developing technical configurations - Google Patents
Method and sytem for developing technical configurations Download PDFInfo
- Publication number
- US20060167988A1 US20060167988A1 US11/302,973 US30297305A US2006167988A1 US 20060167988 A1 US20060167988 A1 US 20060167988A1 US 30297305 A US30297305 A US 30297305A US 2006167988 A1 US2006167988 A1 US 2006167988A1
- Authority
- US
- United States
- Prior art keywords
- client
- configuration
- server
- limited
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/02—CAD in a network environment, e.g. collaborative CAD or distributed simulation
Definitions
- This invention relates to computerized configuration methods and systems. More particularly, this invention relates to computerized methods and systems for developing technical configurations and electronically delivering order reports to a client.
- the methods and systems are implemented in computer hardware and software.
- the Internet is a collection of computer networks that allows computer users to share files and other computer resources.
- Each computer connected to the Internet has a unique address whose format is defined by the Internet Protocol (“TCP/IP”).
- the Internet includes a public network using the TCP/IP and includes two kinds of computers: servers, which provide information and documents; and clients, which retrieve and display documents and information for users. Events that take place on the server machine are referred to as server-side activities, while events that take place on the client machine are known as client-side activities.
- client refers to a client computer (or machine) on a network, or to a process or programs, such as Web browsers, which run on a client computer in order to facilitate network connectivity and communications.
- a “client machine” can store one or more “client processes.”
- the term “user” is used to refer broadly to one or more persons who use a particular client machine.
- the term “server” will be used throughout this specification to refer to a server computer or computer system on a network, or to a process or programs which run on a server computer.
- Web The “World Wide Web” (“Web”) is that collection of servers on the Internet that utilize the Hypertext Transfer Protocol (“HTTP”).
- HTTP is a known application protocol that provides users access to resources, which may be information in different formats such as text, graphics, images, sound, video, Hypertext Markup Language (“HTML”), as well as programs.
- HTML is a standard page description language which provides basic document formatting and allows the developer to specify “links” to other servers and files. Links may be specified via a Uniform Resource Locator (“URL”).
- URL Uniform Resource Locator
- the client Upon specification of a link by the user, the client makes a TCP/IP request to a Web server and receives information, which may be another “Web page” that is formatted according to HTML, from a server that was specified in the requested URL.
- the information returned to the client may be generated in whole or in part by a program that executes on the server.
- Such programs are typically Common-Gateway-Interface scripts (“CGI scripts”) and can be written using known programming languages or methods that the server supports, such as PERL or C++.
- CGI scripts Common-Gateway-Interface scripts
- Servers include both Web servers and applications servers.
- Web servers are the software or computers responsible for accepting requests from clients and retrieving the specified file or specified CGI script, and returning its contents or the CGI script's results to the client.
- An application server is the actual software or computer which contains programs, CGI scripts, or data for a specific site. Servers run on a variety of platforms, including UNIX machines, although other platforms, such as Windows 95, Windows NT, and Macintosh may also be used.
- Computer users can view information available on servers or networks on the Web through the use of browsing software, such as Netscape Navigator, Microsoft Internet Explorer, Mosaic, or Lynx browsers.
- a typical Web page is an HTML document with text, “links” that a user may activate (e.g. “click on”), as well as embedded URLs pointing to resources, such as images, video or sound, that the client may activate to fully use the Web page in a browser. In some situations, these resources may not be located on the same server that provided the HTML document to the client.
- HTTP allows for the transmission of certain information from the client to a server. This information can be embedded within the URL, can be contained in HTTP header fields, or can be posted directly to the server using other known HTTP methods.
- Web activity begins on the client side, when a user sends a request to a server over the Internet.
- the server may send information including graphics, instruction sets, sound and video files in addition to HTML documents (Web pages) to the requesting client.
- HTML documents Web pages
- the entire HTML document must be downloaded from the Internet server to the client's machine and then processed by the browser before the consumer can fully see and access it.
- a user may become impatient waiting for a graphics-oriented Web page or detailed data to appear on his/her computer screen. Information delivery on the Internet can be frustrating, because it is much slower than delivery of data from the consumer's computer hard drive or main memory.
- the client In a server-side application, the client must repeat the process described above, sending a request to a server over the Internet and receiving information from the server in return, in order for the client to interact with a server over the Internet. For instance, a user may supply information in response to queries in a Web page. When the client clicks on a “submit” button, which initiates interaction over the Internet, the information is passed to the server. As explained above, programs such as CGI scripts may process the information, and the server may then return a Web page containing the information requested by the user.
- the Web page received by the client from the server may create or set an ID field, known as a “client ID” or “cookie,” located in a file on the client machine to include information about the user's preferences.
- client ID an ID field
- the “client ID” or “cookie” with the previously-set preference information is transmitted in the HTTP request header to the server, which may then return a Web page that is assembled according to the user-specific information.
- This interactive model for processing information over the Internet is a server-side application, in which most of the logic and data processing is performed on the server side.
- a second possible interactive model is to deliver applications directly from the server to the user's browser, where they are executed on the client machine. These applications are typically small tools that perform simple tasks on the client computer, including a variety of HTML page display enhancements.
- servers perform most of the computational work on the Web, and Web browsers may be little more than intensied terminals.
- apps that run within a Web browser to process information and other client-side programs, Web technology is shifted more toward the client, relieving some of the computational load from the server. Applets may be used for a variety of functions, and an applet may be a full-fledged program that can perform any number of computational and user-interactive tasks on the client computer.
- an applet might create a unique set of menus, choices, text fields, and similar user-input tools different from those available through the browser.
- a number of different languages can be used for client-side programs and applets, such as Java, ActiveX, JavaScript, Helper-Viewer, and other plug-ins.
- Client-side JavaScript for instance, is a commonly used programing language that may be embedded into HTML Web pages and allows executable content, as opposed to data, to be distributed over the Internet. JavaScript also has a limited ability to interact with the user.
- client-side and server-side computational and interactive systems There are problems associated with both client-side and server-side computational and interactive systems. If a client-side approach is used, a large amount of time and/or bandwidth may be used sending information to the client, a majority of which may not be necessary to the end result desired by the user. When a large amount of time is spent transferring data over the Internet, this may not only be annoying to the user, but it may also clog the network with unnecessary data transfer. Additionally, only a limited amount of space in the memory of the client is available. In view of these constraints, client-side programs are typically only used for simple validations of information entered by the user or to generate graphic effects on the client. Large tasks requiring extensive processing (by reason of large executable files or extensive data files, or both) are usually not performed on the client. One result of this may be that interface and options offered to the client are limited. The client's sense of control over the transaction may therefore be less than desired.
- Server-side programs may also have undesirable attributes. Much like client-side systems, a large amount of time may be spent transferring data to and from the server. In a pure server-side system, each time a user performs an operation on the client machine, a request is sent to the server to validate the request and perform an operation for transfer back to the client. A great deal of time may therefore be spent on the network validating information and processing data on the server. Such a system puts a heavy load on the server. In addition to these drawbacks, the user may be annoyed by the large amount of time necessary to interact with the server and update information on the client machine.
- a system and method is needed for interactive network applications to reduce the load on a server, reduce the amount of time required to transfer information over the network, and to save the user time in performing tasks over the network.
- Such a system and method may be particularly useful for complex technical configuration tasks in which large amounts of both logic and data may be necessary to successfully configure a product or service.
- a number of constraints or desirable system attributes exist.
- the user's desired configuration must be viable, meaning that the manufacturer or service provider can assemble the various options desired by the user into a product.
- configuring the product may be further complicated by the complex interrelationships and links between different options.
- configuration tasks it would be desirable to provide at the client an environment that is as option-rich as possible, technical limitations are encountered that limit the amount of logic and data that may be transferred to the client.
- transmission of all of the logic to the client may be both time consuming and impractical due to memory space; on the other hand, a pure server-side embodiment may require a large amount of interaction between the server and the client as well as a heavy load on the server.
- One embodiment of the invention is a method for developing a technical configuration and electronically delivering to a client from a server an order report for the technical configuration.
- the method comprises interactively eliciting and electronically receiving from a user on the client a desired technical configuration, wherein the act of interactively eliciting and electronically receiving comprises providing to the client from the server a limited configuration engine and performing a first, limited check on the viability of the desired technical configuration on the client using the limited configuration engine; performing a second, final check on the viability of the desired technical configuration using a full configuration engine on the server; and, in response to the final check, preparing and outputting on the client an electronic order report.
- a second embodiment of the invention is a method for creating technical configurations and electronically delivering order reports to at least one client in a computer network having at least one server connectable to at least one client.
- the method comprises interactively eliciting from a user on the at least one client a desired subset of possible products having technical configurations; in response to the user's desired subset of possible products having technical configurations, downloading from the at least one server to the at least one client limited configuration information and limited configuration programs; interactively eliciting from the user on the at least one client a desired technical configuration and preliminarily checking at the at least one client the viability of the desired technical configuration using the limited configuration information and the limited configuration programs; uploading the desired technical configuration from the at least one client to the at least one server and performing a full check on the viability of the desired technical configuration using full configuration information and full configuration programs on the at least one server; and, responsive to the full check, preparing and outputting on the at least one client an electronic order report.
- Another embodiment of the invention is a method for creating vehicle configurations and electronically delivering order reports to at least one client in a computer network having at least one server connectable to at least one client.
- the method comprises interactively eliciting from a user on the at least one client a desired make, model, and series for a vehicle; in response to the user's desired make, model, and series for a vehicle, downloading from the at least one server to the at least one client limited configuration information and limited configuration programs; interactively eliciting from the user on the at least one client a desired vehicle configuration and preliminarily checking at the at least one client the viability of the desired vehicle configuration using the limited configuration information and the limited configuration programs; uploading the desired vehicle configuration from the at least one client to the at least one server and performing a full check on the viability of the desired vehicle configuration using full configuration information and full configuration programs on the at least one server; and, responsive to the full check, preparing and outputting on the at least one client an electronic order report.
- the above methods offer a number of advantages. Because limited configuration information and limited configuration programs are sent to the client, the client is able to do a significant amount of the processing involved in creating a technical configuration. At the same time, interaction with the server may be decreased. In addition, the data downloaded to the client is properly allocated so that not all of the configuration information or configuration programs that exist on the server are sent to the client. The above methods aid in the allocation of information to the client. The client, therefore, is not overloaded with processing, and data transfer time is kept to a minimum.
- Another embodiment of the invention is a method for developing a product configuration in a client-server environment, wherein the server has full option attributes and full option rules.
- the method in this embodiment comprises receiving initial product configuration data from a user on a client; in response to the initial product configuration data, allocating limited option attributes and limited option rules to the client by downloading such limited option attributes and limited option rules to the client; receiving from the client a first proposed product configuration developed from client processing of the limited option attributes and limited option rules; in response to the proposed product configuration and application at the server of the full option attributes and full option rules to the proposed product configuration, allocating and downloading to the client additional option rules; and, receiving from the client a second proposed product configuration developed from client processing of the limited option attributes and additional option rules.
- One advantage of the above method is that data is properly allocated between the client and the server. Limited option attributes and limited option rules are sent from the server to the client, so the client is able to do a significant amount of the processing involved in creating a technical configuration.
- the data downloaded to the client is properly allocated so that not all of the full option attributes and full option rules that exist on the server are sent to the client. The client, therefore, is not overloaded with processing, and data transfer time is kept to a minimum.
- additional option rules may be sent to the client from the server so that the user may properly configure the product.
- the apparatus comprises a limited configuration engine, wherein the limited configuration engine is downloaded from the at least one server to the at least one client in response to data elicited from the at least one client, and wherein the limited configuration engine contains programs to interactively elicit from a user a desired configuration to be uploaded to the at least one server, and a full configuration engine on the at least one server, wherein the full configuration engine contains instructions for performing a full check on the viability of the desired configuration.
- Yet another embodiment of the invention comprises a computer-readable medium whose contents cause a computer system to perform a procedure for developing a product configuration in a client-server environment, the computer-readable medium having client programs and server programs with functions for invocation.
- the computer-readable medium allows for the interactively eliciting from a user on the client a desired subset of possible products having technical configurations, in response to the user's desired subset of possible products having technical configurations, downloading from the server to the client limited configuration information and limited configuration programs, interactively eliciting from the user on the client a desired technical configuration and preliminarily checking at the client the viability of the desired technical configuration using the limited configuration information and the limited configuration programs, uploading the desired technical configuration from the client to the server and performing a full check on the viability of the desired technical configuration using full configuration information and full configuration programs on the server, and responsive to the full check, preparing and outputting on the client an electronic order report.
- the above apparatus and computer-readable medium properly allocate data and information between the server and the client.
- the limited configuration engine which is sent to the client contains enough data to allow the user to enter a desired configuration, yet a full configuration engine exists on the server to ensure that the desired configuration is viable.
- the client therefore, is not overloaded with processing, and data transfer time is kept to a minimum.
- FIG. 1 is a block diagram overview a client-server system in which the present invention functions
- FIG. 2 is a block diagram of the hardware of the client machine of FIG. 1 ;
- FIG. 3 is a block diagram of the software of the client machine of FIG. 1 ;
- FIG. 4 is a block diagram of the software and programs on the server of FIG. 1 ;
- FIG. 5 is a more detailed block diagram overview of the full configuration engine on the server
- FIG. 6 a is a block diagram detailing transmission of information between the client and the server in one embodiment of the present invention.
- FIG. 6 b is a block diagram detailing transmission of information between the client and the server in a second embodiment of the present invention.
- FIG. 6 c is a block diagram detailing transmission of information between the client and the server in a third embodiment of the present invention.
- FIG. 7 is a block diagram overview of the business context of a vehicle ordering embodiment of the present invention.
- FIG. 8 is a flow chart showing the operation of the vehicle ordering embodiment of the present invention.
- FIG. 9 is a diagram of a make/series/model selection page of a vehicle ordering embodiment of the present invention.
- FIG. 10 is a diagram of a vehicle options selection page of a vehicle ordering embodiment of the present invention.
- teachings of the present invention are applicable to many different types of computer networks and may also be used, for instance, in conjunction with direct on-line connections to databases.
- LANs Local Area Networks
- WANs Wide Area Networks
- private networks private networks
- public networks including the Internet and the Web.
- the computers may be any standard computer including standard attachments and components thereof (e.g., a disk drive, hard drive, CD player or network server that communicates with a CPU and main memory, a sound board, a keyboard and mouse, and a monitor).
- the processor of the CPU in the computer may be any conventional general purpose single- or multi-chip microprocessor such as a Pentium® processor, a Pentium® Pro processor, a 8051 processor, a MIPS® processor, a Power PC® processor, or an ALPHA® processor.
- the processor may be any conventional special purpose processor such as a digital signal processor or a graphics processor.
- the microprocessor has conventional address lines, conventional data lines, and one or more conventional control lines.
- the software may be standard software used by those skilled in the art or may be coded in any standard programming language to accomplish the tasks detailed below.
- FIG. 1 is a block diagram illustration of the environment of the present invention, which is a computer network based on a client-server model.
- the network comprises one or more servers 10 which are accessible by one or more clients 12 , such as personal computers.
- the servers 10 communicate with the clients 12 over a communication path 20 , which may be a Local Area Network (LAN), Wide Area Network (WAN), direct dial connection, the Internet, or other suitable telecommunications path.
- a suitable network protocol such as the TCP/IP protocol, may be used for the communications.
- the servers 10 may comprise Web servers 14 and application servers 16 , and may be any computer known to those skilled in the art.
- FIG. 1 depicts a Web server 14 and an application server 16 as separate entities, these two servers 14 , 16 may exist within a single computer or computer system, which, throughout this specification, will be referred to as server 10 .
- the server 10 allows access by the clients 12 to various network resources.
- a firewall 5 may exist between the Web server 14 and application server 16 of the server 10 .
- Such firewalls 5 are known to those skilled in the art and may be used to prevent unwanted access to the application server 16 .
- FIG. 2 is a block diagram of a representative client computer 12 .
- the client 12 may be any conventional computer known to those skilled in the art.
- the client 12 comprises a processor or CPU and main memory 22 , an input/output interface 24 for communicating with various databases, files, programs, and networks, and one or more storage devices 26 .
- the storage devices 26 may be disk drive devices or CD ROM devices.
- the client 12 may also have a monitor 28 or other screen device, a printer or other output device 30 , and in input device 32 such as a keyboard.
- the computer 12 executes programs stored on a data storage medium, which may be either a memory system of the client 12 or a persistent storage device 26 , such as a disk or CD ROM system, so as to carry out the functions of the present invention.
- a data storage medium which may be either a memory system of the client 12 or a persistent storage device 26 , such as a disk or CD ROM system, so as to carry out the functions of the present invention.
- FIG. 3 is a block diagram illustrating various programs or software which may run on the client 12 when it will be used for configuration tasks. Although these programs are listed as separate entities in FIG. 3 , these programs may be included within one software module which may collectively be referred to as software or a software program. In one embodiment, these programs as well as the programs on the server, the functions of which will be described in more detail below, may be contained on a computer-readable medium, such as a standard floppy disk. In an embodiment where the communication path 20 is the Internet or an Intranet, each of the clients 12 may run a Web browser 42 , which is a known software tool used to access the Web via a connection obtained through an Internet access provider.
- a Web browser 42 which is a known software tool used to access the Web via a connection obtained through an Internet access provider.
- a variety of browsers 42 known to those skilled in the art may be used within the scope of the present invention, including Netscape Navigator, Microsoft Internet Explorer, or Mosaic browsers.
- a browser 42 that is capable of running client-side programs, such as JavaScript, may be used.
- An interpreter 43 may exist either within the browser 42 or outside the browser 42 on the client 12 . This interpreter 43 may be capable of interpreting or processing client-side programs within the browser 42 so that the client-side programs may function within the browser 42 .
- a Web server 14 may allow access to so-called “Web sites” and applications available on application servers 16 , as shown in FIG. 1 .
- the location of a resource on a server 10 may be identified by a URL.
- the client 12 may also retain a small “cookie,” as defined in the background section, to retain state information regarding the server 10 to which the client 12 exchanges requests.
- the client 12 may also contain other software or programs which may reside in the main memory 22 of the client 12 or which may be persistently stored in the storage device 26 of the client 12 .
- a limited configuration engine 40 may reside on the client 12 .
- This limited configuration engine 40 may contain limited configuration information 44 and limited configuration programs 48 .
- the limited configuration engine 40 is a portion of a full configuration engine which resides on the server 10 .
- the role of the client 12 in the configuration systems and methods is to display screens, allow the user to fill in information on the screens, perform limited, discrete logic tasks on the information on the screens at the client 12 level, and to exchange data with the server 10 .
- the limited configuration information 44 is essentially a set of data for specifying a particular product or service (throughout the remainder of this specification, the term product will be used to refer to a product or service).
- the data may consist of a set of limited option attributes 46 and limited option rules 47 for a given product.
- An option attribute 46 may be a feature or option of a product, such as a type of engine or transmission in a vehicle along with the corresponding price, from which a user chooses in configuring a product.
- the data may also consist of a set of limited option rules 47 for a product.
- the option rules 47 consist of a set of logic rules that links or defines relationships between certain of the option attributes 46 .
- various option rules 47 may include, but are not limited to, the following:
- option attribute A is selected, then option attribute B is automatically selected as well, but it may be deselected
- option rules 47 may also be used. Some of these additional option rules 47 may be related to the price of the configuration as a whole. For instance, if option attribute A is selected, then the user may get a discount on option attribute B or may get option attribute B for no additional cost.
- the limited configuration programs 48 of the limited configuration engine 40 may comprise programs that perform such functions as processing the option attributes 46 and option rules 47 , performing the logic in the option rules 47 , and formatting the layout of a Web page on the client's monitor 28 .
- the limited configuration programs 48 may comprise client-side programs 50 , such as Java, ActiveX, JavaScript, Helper-Viewer, and other plug-ins or other client-side programs, and HTML forms 52 .
- the client-side programs 50 which may be programs capable of running within the browser 42 used with the invention, may process the option attributes 46 and option rules 47 and run the logic for the processing on the client-side.
- the HTML forms 52 provide basic Web page formatting that aids in the presentation of the Web page and allow the developer to specify “links” to other servers 10 and files. Although the HTML forms 52 are represented in FIG. 3 as a part of the limited configuration programs 48 , the HTML forms 52 may also reside within the limited configuration information 44 . The distinction between that data or those programs that reside within the limited configuration information 44 or the limited configuration programs 48 is not important. This distinction is instead made merely by way of example, and therefore does not limit the invention.
- the limited configuration engine 40 may be downloaded from the server 10 to the client 12 in response to requests from the user or based on server 10 logic, both of which will be explained in more detail below.
- the limited configuration engine 40 may reside in memory 22 or within a storage device 26 .
- the client 12 may “cache” a limited configuration engine 40 or other resource obtained over the network so that it is temporarily stored on the client machine 12 in either the main memory 22 or on disk or on another storage device 26 .
- the cached copy of the resource may then remain resident on the client 12 for a defined period and may be easily accessed instead of obtaining it over the Internet or network when the resource is needed at a later time.
- cached programs neither the basic operations nor functions of the configuration systems and methods nor the transmission of information to a server 10 , differ from the cases where cached copies are not used.
- FIG. 4 illustrates in block form one embodiment of a portion of the contents of the server 10 or, more particularly, the application server 16 .
- the server 10 contains programs that run on the server-side to process requests and responses from the client-side, send the proper information to the client 12 , and perform processes on the server-side. If the Internet is used within an embodiment of the invention, these programs may be CGI scripts 62 , as depicted in FIG. 4 .
- the full configuration engine 52 resides for each possible subset of the full universe of possible products. Each subset may represent a different type of configuration, and any number of subsets may be present on the server 10 . For simplicity, FIG. 4 shows three subsets 50 , 58 , 60 .
- each subset may represent a different make, series, and model of a vehicle.
- a different subset 50 , 58 , 60 would therefore exist for each different vehicle model.
- each subset may represent different manufacturers and type of computer, such as a laptop or desktop.
- FIG. 4 represents one possible embodiment of the organization of information within the server 10 , a variety of other organizational schemes known to those skilled in the art may also be used.
- each subset 50 , 58 , 60 may contain the full configuration engine 52 for one particular subset of the configuration system.
- the full configuration engine 52 for each subset 50 , 58 , 60 consists of the full configuration information 54 and full configuration programs 56 for that particular subset.
- the full configuration information 64 Within the full configuration information 64 are the full option attributes 65 and the full option rules 66 , which are similar in nature to the option attributes 46 and option rules 47 within the limited configuration information 44 on the client-side.
- the full option attributes 65 and full option rules 66 on the server-side may contain more detailed rules that define relationships among the option attributes 65 than those option rules 47 that reside on the client 12 . Because the server 10 will likely not have the constraints on storage and processing of detailed option rules as may the client 12 , a full set of option rules 66 with corresponding interrelationships between option attributes 65 may reside on the server 10 .
- Within the full option attributes 65 and full option rules 66 reside the limited option attributes 46 and option rules 47 w -hich may be downloaded to the client 12 during a configuration session.
- the server 10 may receive the full option attributes 65 and full option rules 66 in a variety of ways.
- the technical information for the product or service may be received in paper form from the manufacturer or dealer of the product or service, or from an information provider that may receive and compile information for different technical products and services.
- the full option attributes 65 and full option rules 66 may then be entered into the system by human beings.
- a manufacturer, dealer, or information provider may transmit an electronic file which includes technical configuration information for a product or service. This technical configuration information may then be electronically processed and entered into the system as full option attributes 65 and full options rules 66 .
- the full configuration engine 52 on the server 10 also contains the full configuration programs 68 , which may include of the client-side programs 50 and HTML forms 52 which may be sent to the client 12 as limited configuration programs 48 during a configuration session, as well as server-side programs 70 which process the information and rules in the full configuration engine 52 on the server 10 .
- the client-side programs 50 and HTML forms 52 on the server 10 may be the same versions as those downloaded to the client 12 during a configuration session
- the server-side programs 70 which may be CGI scripts as depicted as numeral 62 on FIG. 4 , are not downloaded to the client 12 , but instead reside and process logic and information on the server 10 .
- the user on the client 12 in this embodiment therefore, may be able to see each potential option attribute 65 for a product, but not all of the links between each option attribute 65 and other option attributes 65 will be present on the client 12 .
- the user on the client 12 may be able to select different option attributes 46 through an HTML Web page and certain of the option rules 47 on the client 12 and client-side programs 50 may specify interrelationships among the option attributes 46 , yet a full application of the option rules 66 may be reserved for the server-side.
- FIGS. 6 a - 6 c are block diagram overviews of three embodiments of the methods and systems of the present invention which contains sections detailing the exchange of information between the server 10 and the client 12 .
- the server 10 which in one embodiment may be an application server 16 as shown in FIG. 1 , contains the subsets 50 , 58 , 60 of full configuration engines 52 as shown in FIGS. 4 and 5 .
- FIG. 6 a shows a block diagram overview of information exchange in a tight configuration embodiment of the present invention. This embodiment may be referred to as a “tight” configuration embodiment because the user selects each selectable option until a viable configuration is assembled.
- the user may access the page on the server 10 associated with the configuration system to initiate a session.
- a page may be an HTML Web page.
- a registration or enrollment session may require the user to submit certain information about himself or herself in order to use the configuration system.
- the server 10 may then send to the client 10 a variety of subset choices 100 of products from which to assemble a configuration.
- the subset choices 100 may be presented to the user on the client 10 through an HTML Web page on the client's monitor 28 . Because a limited amount of space may be available in the main memory 22 of the client 12 , the amount of information presented for each subset choice 100 may be limited to a discrete amount.
- each subset may represent a different make, model, or series of a product.
- a desired subset 102 which may then be uploaded to the server 10 as shown in FIG. 6 a
- a second set of subset choices 100 may be presented to the user to further refine the subset choice 100 for a configuration session.
- the exchange of subset choices 100 and desired subsets 102 between the client 12 and the server 10 may be repeated a number of times until a discrete amount of data for which the client 12 has space may be downloaded from the server 10 to the client 12 .
- these subset choices 100 may be presented to the user on the client 12 in one page, or may be intertwined with later pages described below which may be used to select option attributes 46 during a configuration session.
- the user's desired subset 102 represents initial product configuration data, which the server 10 uses to allocate a limited configuration engine 40 to the client 12 .
- Different limited configuration engines 40 will be downloaded to the client 12 from the server 10 for each different desired subset 102 .
- a limited configuration engine 40 (shown as numeral 104 in FIG. 6 a during transfer to the client 12 from the server 10 ) is downloaded to the client 12 .
- the limited configuration engine 40 may contain limited configuration information 44 and limited configuration programs 48 .
- the limited configuration engine 40 contains HTML forms 52 for presentation of information on the client 12 .
- the option attributes 46 of the limited configuration information 44 may therefore be presented to the user through a Web page, and the limited option rules 47 may perform some limited operations on the client 12 .
- one set of limited configuration programs 48 may be downloaded to the client and used with any given subset which the user selects. In this embodiment, only the limited configuration information 44 would differ from one subset to another.
- the Web page presented to the user on the client 12 may interactively elicit information from the user through various interfaces known to those skilled in the art, such as drop-down boxes, scroll bars, or check boxes.
- the option rules 47 and the client-side programs 50 on the client 12 may update the screen to reflect the interrelationships of the various option attributes 46 selected.
- the user's choices may be preliminarily checked for viability on the client machine 12 .
- the Web page may update the user after various choices on the client's monitor 28 , so that information, such as an approximate price of the product, may be updated dynamically on the client 12 as the user configures a product by selecting option attributes 46 .
- the limited configuration engine 40 downloaded to the client 12 may contain a discrete segment of information so that the user may make a variety of choices on a Web page, yet do so without active interaction with the server 10 .
- This offers the advantage of a limited amount of time spent downloading information to and uploading information from the client 12 .
- this limited processing and checking may be done on the client 12 instead of on the server 10 .
- This desired configuration 106 is the user's proposed product configuration, which, though it has been preliminarily checked for viability using the limited option attributes 46 and limited option rules 47 on the client 12 , may not be viable when checked against the full option rules 66 on the server 10 . Because only a preliminary check of the user's desired configuration 106 was performed on the client 12 using the limited configuration engine 40 , the complete validity of the configuration may be determined on the server 10 , which contains a full set of the option rules 66 as well as server-side programs 70 .
- the server 10 therefore determines the viability of the desired configuration using the full configuration engine 52 .
- this full configuration engine 52 may be a more complete and detailed version of the limited configuration engine 40 on the client 12 .
- many of the interrelationships between different option attributes may exist only on the server 10 due to limited space in the main memory 22 of the client 12 .
- full pricing information which may be complex due to package deals, discounts, and upgrade pricing deals, may reside only on the server 10 .
- all option attributes for a given subset may be presented to the user on the client 12 , and it may be only a detailed processing of the user's desired configuration that is uniquely carried out on the server 10 , in part because the client-side programs 50 and option rules 47 provided to the client 12 may not be sophisticated enough to carry out this processing on the client 12 due to limited space.
- the viability status of the desired configuration 106 is determined at the server 10
- the viability status of the configuration 108 may be downloaded to the client 12 as shown in FIG. 6 a during transfer from the server 10 to the client 12 .
- an order report 112 may also be downloaded to the client 12 .
- This order report 112 which may be downloaded to the client 12 in place of or in addition to the downloading of the viability of the configuration 108 , may report the final price of the configuration as well as a summary of each of the options selected by the user.
- the viability status of the configuration 108 sent from the server 10 to the client 12 may report the unresolved viability issues to the user on the client 12 .
- the Web page used for presenting the options to the user on the client 12 may again be presented to the user on the client 12 with certain option attributes 46 highlighted with a note describing a problem with the desired configuration.
- the user may be presented with a reminder to select one or more of those option attributes 46 .
- the server 10 may download updated limited configuration information 44 and updated limited configuration programs 48 to the client 12 .
- the server 10 may allocate and download additional information to the client 12 , which may include additional limited option attributes 46 and limited option rules 47 , so that the user may assemble a viable configuration. In another embodiment, only additional option rules 47 may be allocated to the client 12 at this time.
- the updated limited configuration engine 40 may then be used on the client 12 by the user for entering a desired configuration.
- the user will be prompted to assemble a viable configuration on the client 12 through any number of communications with the server 10 .
- This new desired configuration 110 may then be uploaded to the server 10 .
- an order report 112 may be sent to the client 12 .
- the configuration methods and systems of the present invention may present any number of Web pages with various option attributes 46 to the client 12 in the manner described above, such that the acts described above may be repeated any number of times with different option attribute choices until a full and viable configuration has been assembled.
- an order 114 may be electronically sent from the server 10 to the manufacturer or service provider so that the configuration may be assembled or ordered.
- FIG. 6 b shows a block diagram overview of information exchange in a pre-configuration embodiment of the present invention.
- the server 10 may send to the client 12 a variety of subset choices 100 b of product embodiments from which to assemble a configuration.
- the user selects a pre-configuration option, as denoted by numeral 101 in FIG. 6 b .
- the subset choices 100 b presented to the client 12 therefore, may allow the user to select the pre-configuration embodiment in this embodiment.
- the pre-configuration option allows the user to select product configurations which have already been configured, either in prior configuration sessions with the user or by the server 10 .
- popular product configurations could be presented as options to save the user time in configuring a product.
- each new configuration the user develops could be saved so that the user may later select it as a pre-configured product.
- the server 10 After the pre-configuration data is uploaded to the server 10 , the server 10 performs a viability check on that data, much like described above for the tight configuration embodiment.
- This information sent from the client 12 to the server 10 which may also be called initial product configuration data, should typically result in a viable configuration in this embodiment, because a pre-configured product has been chosen by the user.
- the pre-configuration option may, however, only select some of the options of the product in one embodiment, such that the user may still need to complete the configuration by selecting the rest of the options.
- Numeral 108 b in FIG. 6 b shows the server 10 downloading to the client 12 the viability of the pre-configured product or further tools for configuration.
- limited configuration information 44 and limited configuration programs 48 may be downloaded to the client 12 so that the user can complete the configuration or, if the configuration is not viable, select different options to assemble a viable configuration.
- this further desired configuration 110 b is uploaded to the server 10 .
- an order report 112 b may be sent to the client 12 .
- FIG. 6 c shows a block diagram overview of information exchange in a loose configuration embodiment of the present invention.
- This embodiment may be referred to as a “loose” configuration embodiment because the user generally enters desired options in free text form and the server 10 finds the closest viable configuration matching to those desired options.
- the server 10 may send to the client 12 a variety of subset choices 100 c of product embodiments from which to assemble a configuration.
- the user selects a loose fit option, as denoted by numeral 103 in FIG. 6 c .
- the subset choices 100 c presented to the client 12 therefore, may allow the user to select the loose fit embodiment in this embodiment.
- the user may then enter in a dialog box presented to the user on the client 12 desired options in free text or other similar form.
- This loose fit information 103 is then uploaded to the server 10 .
- a human being processes the desired options to find the closest viable configuration.
- the server 10 processes the desired options and finds the closest viable configuration.
- the server 10 therefore, may run a CGI script 62 using the full option attributes 65 and full options rules 66 to find the closest viable configuration.
- Numeral 108 c in FIG. 6 c shows the server 10 downloading to the client 12 the viability of the desired configuration and, if needed, further configuration tools.
- further configuration tools in the form of a limited configuration engine 40
- the user may then further develop the product configuration and a further desired configuration 110 c may be uploaded from the client 12 to the server 10 .
- an order report 112 c may be sent from the server 10 to the client 12 .
- FIGS. 7-11 detail one embodiment of the configuration methods and systems described above for vehicle configuration and ordering.
- FIG. 7 illustrates the general business process of a vehicle ordering system showing the flow of information between four different entities: the user or client 12 , the configuring party represented by the server 10 , the manufacturer 180 of the vehicle, and the vehicle dealer 190 .
- a configuration system operated by a configuring party may be important and useful for a number or reasons.
- a configuring party may assist companies in developing and maintaining large or small fleets of vehicles through such systems. If a company has a large fleet of vehicles to maintain, a configuring party may be able to assist in record-keeping for the vehicles (such as for maintenance or license tab renewal), and may provide an interface between the company and vehicle dealers to simplify vehicle configuration and ordering.
- the configuring party may be ordering large numbers of vehicles, the configuring party may get a discount on vehicle prices from the dealers. Finally, the configuring party may aid in the financing process for a company's fleet of vehicles, such that the fleet of vehicles may be financed or leased in the aggregate through the configuring party.
- the server 10 receives make and model information including details on options for makes, models, and series, from the vehicle manufacturers 180 . It is important to note that the manufacturer sets the options and interrelationships between options, including pricing, for various makes and models. The complexity of these options and interrelationships may make it impractical to perform all of the logic associated with a vehicle configuration on the client 12 . This information may be updated periodically, as depicted in step 202 , so that all of the latest options may be available on the server 10 .
- the server 10 may send information to the client 12 regarding vehicle ordering.
- the client 12 orders a vehicle using a vehicle ordering system, which will be explained in greater detail below.
- a vehicle price is delivered to the client 12 for such a vehicle, and the client 12 then reports the decision back to the server 10 to order the vehicle at step 210 .
- the vehicle configuration is delivered to the manufacturer at step 212
- the status of the vehicle construction and/or delivery is delivered to the server 10 .
- the server 10 inquires with the dealer as to the delivery of the vehicle.
- a contract may be delivered to the server 10 at step 218 and confirmation of the vehicle order may be delivered to the dealer at step 220 .
- the status of the vehicle configuration may be delivered to the server 10 .
- the vehicle is delivered to the dealer for delivery to the client 12 at step 226 .
- the client 12 may deliver an old vehicle to the dealer at step 228 .
- FIG. 8 details in block diagram form the flow of the vehicle configuration methods and systems which may be used for developing a valid vehicle configuration and for ordering a vehicle.
- the user enters the vehicle configuration system to begin the configuration process.
- the server 10 may download a variety of options to the client 12 , including, as depicted in FIG. 8 , a pre-configuration option 306 and the option for the user to select either a loose match 304 or a tight match 302 of option attributes with viable vehicle configurations.
- a pre-configuration option 306 and the option for the user to select either a loose match 304 or a tight match 302 of option attributes with viable vehicle configurations.
- a freeflow text screen may be presented to the user at block 308 on the client 12 to enter desired vehicle option attributes in free text form.
- the desired configuration is uploaded to the server 10 (denoted by block 310 in FIG. 8 and as the loose fit information 103 in FIG. 6 c ).
- the server 10 may determine the closest match to the loose fit information 103 by performing a word matching analysis to find a close match. Further configuration tools may need to be presented to the user on the client 12 to further develop a configuration, as described above, such that any number of interactions with the server 10 may be necessary to develop a viable configuration.
- a human being may process the desired option attributes to find the closest possible match. As depicted at block 334 in FIG. 8 and as the order report 112 c in FIG. 6 c , an order report 112 c may then be delivered from the server 10 to the client 12 .
- FIG. 9 illustrates one such HTML Web page in which a scroll box exists for the user to select a vehicle make 400 .
- FIG. 9 is shown by way of example only, and it is noted that more than one Web page could be used for the functions illustrated in FIG. 9 and any form for this page known to those skilled in the art could be used.
- FIG. 6 a denotes this interaction between the client 12 and the server 10 by the uploading of a desired subset 102 to the server 10 .
- the server 10 may send another set of subset choices 100 to the client 12 so that the user may select a series of car.
- FIG. 6 a depicts the transfer of these subset choices 100 from the server 10 to the client 12 .
- the user may then select a series of vehicle, as shown in scroll box 402 in FIG. 9 and block 316 in FIG. 8 .
- a similar procedure is then followed as when a make of vehicle was selected by the user.
- the desired subset 102 is uploaded to the server 10 , as shown in block 318 in FIG. 8 .
- the server 10 may then download additional subset choices 100 to the client 12 , as shown in FIG. 6 a .
- the user may then select a model of vehicle, as shown in scroll box 404 in FIG. 9 and block 320 in FIG. 8 .
- This desired subset 102 may then be uploaded to the server 10 , as shown in FIG. 6 a and by block 322 in FIG. 8 . In this manner, the user narrows the possible product configurations such that, upon receiving the subset choices 100 (or initial product configuration data) the server 10 may allocate and download an appropriate limited configuration engine 40 to the client 12 .
- Block 324 in FIG. 8 depicts the process in which the user may select a variety of options for the chosen make/series/model of vehicle selected.
- the limited configuration engine 40 corresponding to the make/series/model is downloaded to the client 12 , which is depicted as numeral 104 in FIG. 6 a .
- the limited configuration engine 40 downloaded from the server 10 to the client 12 is a limited version of the full configuration engine 52 on the server 10 corresponding to the particular make/series/model of the vehicle selected for configuration.
- this limited configuration engine 40 presents a full set of the option attributes to the user on the client 12 , but does not contain a full set of the option rules that exist on the server 10 .
- the price of the vehicle configuration may be dynamically updated to reflect an approximate price of the vehicle as configured.
- FIG. 10 shows one potential embodiment of an HTML Web page which may be presented to the user for selecting option attributes (block 324 in FIG. 8 ), although any page known to those skilled in the art may be presented to the user for this purpose.
- a number of option attributes 500 , 502 , 504 such as the type of engine, axles, and other vehicle option packages, may be presented for the user's choice.
- FIG. 10 also shows the price 506 which may be listed for each option attribute.
- the limited configuration engine 40 and the Java, ActiveX, JavaScript, Helper-Viewer, or other plug-ins or client-side programs 50 on the client 12 may perform a limited check on the viability of a desired configuration as the user enters or chooses option attributes.
- option attributes 46 may be automatically selected or made not available for selection upon the selection of other option attributes 46 by the user.
- the user may click on the “submit” or “next” button, which uploads the desired configuration from the client 12 to the server 10 . This act of uploading the desired configuration 106 is shown in FIG. 6 a and is depicted as block 326 in FIG. 8 .
- the server 10 performs a check on the viability of the desired configuration using the full configuration engine 52 .
- this full configuration engine 52 on the server 10 contains more detailed option rules 66 and full configuration programs 68 to check the viability of the desired configuration.
- the server 10 may download another limited configuration engine 40 to the client 12 so that the user may select the desired color scheme for the vehicle, as indicated in block 330 in FIG. 8 .
- this color selection page may be combined with the option selection page at block 324 of FIG. 8 .
- a separate page for the selection of a color scheme may not be necessary.
- this color selection page may be a separate HTML form for which a separate process of uploading a desired color scheme to the server 10 may be necessary, which is indicated on FIG. 8 as block 332 .
- the server 10 may download to the client 12 an order report 112 summarizing the selected configuration and/or a document detailing the viability of the desired configuration.
- the desired configuration is not viable, i.e., where the full option rules are not met and option attributes must therefore be changed to build a viable configuration
- the document detailing the viability of the desired configuration may be a version of the HTML form used for option selection (as shown in FIG. 10 ), with certain options highlighted or with explanations as to the necessity to change certain option attributes.
- a limited configuration engine 40 which may be similar to that transmitted to the client 12 as numeral 104 in FIG.
- This process of uploading a desired configuration (numeral 106 in FIG. 6 a ) from the client 12 to the server 10 and downloading the viability status of the configuration and tools for resolving open viability issues (numeral 108 in FIG. 6 a ) may be repeated until a viable configuration has been assembled and an order report 112 summarizing that configuration may be downloaded to the client 12 .
- Block 334 of FIG. 8 and numeral 112 in FIG. 6 a represent this order report which is downloaded from the server 10 to the client 12 .
- Such an order report or configuration summary may appear similar to the configuration summary depicted as FIG. 11 .
- FIG. 11 shows a Web page illustrating a configuration summary and containing a total invoice price 600 , the make, model, and series of car 602 , as well as a summary of the optional equipment 604 (option attributes) for the vehicle.
- This Web page may be a one-page summary or a multi-page summary showing the options for the vehicle configuration.
- FIG. 8 also depicts as block 306 the possibility that pre-configured vehicles may be used to aid in the configuration process, which is shown in FIG. 6 b for a general product configuration embodiment.
- a user may have one or more configurations that he or she commonly uses. These configurations may be saved (on either the client 12 or the server 10 ) to be used later. In one embodiment, each time a user configures a vehicle, that configuration may be saved for later use. Starting a configuration session with a pre-configured or partially pre-configured vehicle may simplify the configuration process.
- FIG. 8 illustrates one scenario where the pre-configured information consists of the make/model/series information for the vehicle, but the user still selects the options for that give make/model/series.
- a second scenario shown in FIG. 8 depicts the possibility that the options are also pre-configured for the vehicle, so that only the color scheme must be selected by the user during a configuration session.
- an order may be sent from the server 10 to the vehicle manufacturer or vehicle dealer to order the vehicle. This order is represented by numeral 114 in FIG. 6 a , FIG. 6 b , and FIG. 6 c.
- the present invention provides methods and systems for computerized configurations in network systems containing one or more servers 10 and one or more clients 12 .
- the methods and systems allocate the load between the server-side and the client-side of such a network and reduce the amount of time spent uploading or downloading information between the client 12 and the server 10 .
- the systems and methods utilize existing computer systems and software packages.
- the methods and systems accomplish these tasks by sending only a limited configuration engine 40 from the server 10 to the client 12 to perform a discrete amount of logic on the client 12 .
- the user's interaction with the client 12 which may be through an HTML Web page using client-side programs 50 , will not require communication with the server 10 while the user enters configuration options and limited logic is performed on those options. Because only a limited configuration engine 40 is sent from the server 10 to the client 12 , a final check on the viability of the desired configuration may be performed on the server 10 after a desired configuration is uploaded to the server 10 from the client 12 .
- the methods and systems of the present invention are particularly useful for technical and complex configurations, such as vehicle or computer configurations, where a large number of option attributes exist and a large number of option rules and interrelationships exist between options. For such systems, it may be unpractical to transmit the full logic of the configuration system from the server 10 to the client 12 , yet it may be undesirable to have repeated communications with the network as associated with common server-side systems.
- the methods and systems of the present invention aid in the allocation of data and information between the server 10 and the client 12 , so that only a limited amount of information and data will be downloaded to the client 12 from the server 10 . The full data and information is retained on the server 10 for a final check on the viability of desired configurations.
Abstract
A method for developing a technical configuration and electronically delivering to a client from a server an order report for the technical configuration. The method comprises interactively eliciting and electronically receiving from a user on the client a desired technical configuration, wherein the act of interactively eliciting and electronically receiving comprises providing to the client from the server a limited configuration engine and performing a first, limited check on the viability of the desired technical configuration on the client using the limited configuration engine; performing a second, final check on the viability of the desired technical configuration using a full configuration engine on the server; and, in response to the final check, preparing and outputting on the client an electronic order report.
Description
- 1. Field of the Invention
- This invention relates to computerized configuration methods and systems. More particularly, this invention relates to computerized methods and systems for developing technical configurations and electronically delivering order reports to a client. The methods and systems are implemented in computer hardware and software.
- 2. Background Information
- Large amounts of data and programs for a great variety of tasks are currently available on the Internet. Some of these applications are useful for performing discrete logical tasks, while others are available to retrieve data. Still other applications are available that may aid in the selection and customization of products, such as vehicles or computers, or services, such as the availability of flights and corresponding fare information. In these selection/customization tools for products or services, the manufacturer of the product or the service provider may offer detailed options for the user's selection, and a large number of interrelationships may exist between the various options. When these options and interrelationships are complex, large and detailed software may be necessary for electronic configuration systems.
- The Internet is a collection of computer networks that allows computer users to share files and other computer resources. Each computer connected to the Internet has a unique address whose format is defined by the Internet Protocol (“TCP/IP”). The Internet includes a public network using the TCP/IP and includes two kinds of computers: servers, which provide information and documents; and clients, which retrieve and display documents and information for users. Events that take place on the server machine are referred to as server-side activities, while events that take place on the client machine are known as client-side activities. As will be appreciated by those of ordinary skill in the art, as used throughout this specification the term “client” refers to a client computer (or machine) on a network, or to a process or programs, such as Web browsers, which run on a client computer in order to facilitate network connectivity and communications. Thus, for example, a “client machine” can store one or more “client processes.” The term “user” is used to refer broadly to one or more persons who use a particular client machine. Similarly, the term “server” will be used throughout this specification to refer to a server computer or computer system on a network, or to a process or programs which run on a server computer.
- The “World Wide Web” (“Web”) is that collection of servers on the Internet that utilize the Hypertext Transfer Protocol (“HTTP”). HTTP is a known application protocol that provides users access to resources, which may be information in different formats such as text, graphics, images, sound, video, Hypertext Markup Language (“HTML”), as well as programs. HTML is a standard page description language which provides basic document formatting and allows the developer to specify “links” to other servers and files. Links may be specified via a Uniform Resource Locator (“URL”). Upon specification of a link by the user, the client makes a TCP/IP request to a Web server and receives information, which may be another “Web page” that is formatted according to HTML, from a server that was specified in the requested URL. The information returned to the client may be generated in whole or in part by a program that executes on the server. Such programs are typically Common-Gateway-Interface scripts (“CGI scripts”) and can be written using known programming languages or methods that the server supports, such as PERL or C++.
- Servers include both Web servers and applications servers. Web servers are the software or computers responsible for accepting requests from clients and retrieving the specified file or specified CGI script, and returning its contents or the CGI script's results to the client. An application server is the actual software or computer which contains programs, CGI scripts, or data for a specific site. Servers run on a variety of platforms, including UNIX machines, although other platforms, such as Windows 95, Windows NT, and Macintosh may also be used.
- Computer users can view information available on servers or networks on the Web through the use of browsing software, such as Netscape Navigator, Microsoft Internet Explorer, Mosaic, or Lynx browsers. A typical Web page is an HTML document with text, “links” that a user may activate (e.g. “click on”), as well as embedded URLs pointing to resources, such as images, video or sound, that the client may activate to fully use the Web page in a browser. In some situations, these resources may not be located on the same server that provided the HTML document to the client. Furthermore, HTTP allows for the transmission of certain information from the client to a server. This information can be embedded within the URL, can be contained in HTTP header fields, or can be posted directly to the server using other known HTTP methods.
- Web activity begins on the client side, when a user sends a request to a server over the Internet. When a user's browser requests information from a server, the server may send information including graphics, instruction sets, sound and video files in addition to HTML documents (Web pages) to the requesting client. In order to view and use information from the Web using a browser, the entire HTML document must be downloaded from the Internet server to the client's machine and then processed by the browser before the consumer can fully see and access it. A user may become impatient waiting for a graphics-oriented Web page or detailed data to appear on his/her computer screen. Information delivery on the Internet can be frustrating, because it is much slower than delivery of data from the consumer's computer hard drive or main memory.
- In a server-side application, the client must repeat the process described above, sending a request to a server over the Internet and receiving information from the server in return, in order for the client to interact with a server over the Internet. For instance, a user may supply information in response to queries in a Web page. When the client clicks on a “submit” button, which initiates interaction over the Internet, the information is passed to the server. As explained above, programs such as CGI scripts may process the information, and the server may then return a Web page containing the information requested by the user.
- The Web page received by the client from the server may create or set an ID field, known as a “client ID” or “cookie,” located in a file on the client machine to include information about the user's preferences. When the user later returns to a specified URL on the same server, the “client ID” or “cookie” with the previously-set preference information is transmitted in the HTTP request header to the server, which may then return a Web page that is assembled according to the user-specific information. This interactive model for processing information over the Internet is a server-side application, in which most of the logic and data processing is performed on the server side.
- A second possible interactive model is to deliver applications directly from the server to the user's browser, where they are executed on the client machine. These applications are typically small tools that perform simple tasks on the client computer, including a variety of HTML page display enhancements. In the typical server-side system described above, servers perform most of the computational work on the Web, and Web browsers may be little more than glorified terminals. With so-called “applets” that run within a Web browser to process information and other client-side programs, Web technology is shifted more toward the client, relieving some of the computational load from the server. Applets may be used for a variety of functions, and an applet may be a full-fledged program that can perform any number of computational and user-interactive tasks on the client computer. For instance, an applet might create a unique set of menus, choices, text fields, and similar user-input tools different from those available through the browser. A number of different languages can be used for client-side programs and applets, such as Java, ActiveX, JavaScript, Helper-Viewer, and other plug-ins. Client-side JavaScript, for instance, is a commonly used programing language that may be embedded into HTML Web pages and allows executable content, as opposed to data, to be distributed over the Internet. JavaScript also has a limited ability to interact with the user.
- There are problems associated with both client-side and server-side computational and interactive systems. If a client-side approach is used, a large amount of time and/or bandwidth may be used sending information to the client, a majority of which may not be necessary to the end result desired by the user. When a large amount of time is spent transferring data over the Internet, this may not only be annoying to the user, but it may also clog the network with unnecessary data transfer. Additionally, only a limited amount of space in the memory of the client is available. In view of these constraints, client-side programs are typically only used for simple validations of information entered by the user or to generate graphic effects on the client. Large tasks requiring extensive processing (by reason of large executable files or extensive data files, or both) are usually not performed on the client. One result of this may be that interface and options offered to the client are limited. The client's sense of control over the transaction may therefore be less than desired.
- Server-side programs may also have undesirable attributes. Much like client-side systems, a large amount of time may be spent transferring data to and from the server. In a pure server-side system, each time a user performs an operation on the client machine, a request is sent to the server to validate the request and perform an operation for transfer back to the client. A great deal of time may therefore be spent on the network validating information and processing data on the server. Such a system puts a heavy load on the server. In addition to these drawbacks, the user may be annoyed by the large amount of time necessary to interact with the server and update information on the client machine.
- It is therefore important to allocate appropriately the processing load and data transfers between the browser and the server. Some tasks, such as forms processing and index searches may be better left to the server side, while others, such as user interface enhancements, real-time data presentation, and input validation may be better suited for local processing on the client. A system and method is needed for interactive network applications to reduce the load on a server, reduce the amount of time required to transfer information over the network, and to save the user time in performing tasks over the network.
- Such a system and method may be particularly useful for complex technical configuration tasks in which large amounts of both logic and data may be necessary to successfully configure a product or service. For such technical configuration tasks, a number of constraints or desirable system attributes exist. First, the user's desired configuration must be viable, meaning that the manufacturer or service provider can assemble the various options desired by the user into a product. Second, it is desirable to indicate the price of the fully assembled configuration at the time of the order. Third, it is desirable to present all or most of the available options for a given product to a user on the client machine.
- For some technical configuration tasks, such as products where manufacturers offer detailed option choices for configuration, configuring the product may be further complicated by the complex interrelationships and links between different options. Although in some configuration tasks it would be desirable to provide at the client an environment that is as option-rich as possible, technical limitations are encountered that limit the amount of logic and data that may be transferred to the client. For complex configuration tasks, the transmission of all of the logic to the client may be both time consuming and impractical due to memory space; on the other hand, a pure server-side embodiment may require a large amount of interaction between the server and the client as well as a heavy load on the server.
- One embodiment of the invention is a method for developing a technical configuration and electronically delivering to a client from a server an order report for the technical configuration. The method comprises interactively eliciting and electronically receiving from a user on the client a desired technical configuration, wherein the act of interactively eliciting and electronically receiving comprises providing to the client from the server a limited configuration engine and performing a first, limited check on the viability of the desired technical configuration on the client using the limited configuration engine; performing a second, final check on the viability of the desired technical configuration using a full configuration engine on the server; and, in response to the final check, preparing and outputting on the client an electronic order report.
- A second embodiment of the invention is a method for creating technical configurations and electronically delivering order reports to at least one client in a computer network having at least one server connectable to at least one client. The method comprises interactively eliciting from a user on the at least one client a desired subset of possible products having technical configurations; in response to the user's desired subset of possible products having technical configurations, downloading from the at least one server to the at least one client limited configuration information and limited configuration programs; interactively eliciting from the user on the at least one client a desired technical configuration and preliminarily checking at the at least one client the viability of the desired technical configuration using the limited configuration information and the limited configuration programs; uploading the desired technical configuration from the at least one client to the at least one server and performing a full check on the viability of the desired technical configuration using full configuration information and full configuration programs on the at least one server; and, responsive to the full check, preparing and outputting on the at least one client an electronic order report.
- Another embodiment of the invention is a method for creating vehicle configurations and electronically delivering order reports to at least one client in a computer network having at least one server connectable to at least one client. The method comprises interactively eliciting from a user on the at least one client a desired make, model, and series for a vehicle; in response to the user's desired make, model, and series for a vehicle, downloading from the at least one server to the at least one client limited configuration information and limited configuration programs; interactively eliciting from the user on the at least one client a desired vehicle configuration and preliminarily checking at the at least one client the viability of the desired vehicle configuration using the limited configuration information and the limited configuration programs; uploading the desired vehicle configuration from the at least one client to the at least one server and performing a full check on the viability of the desired vehicle configuration using full configuration information and full configuration programs on the at least one server; and, responsive to the full check, preparing and outputting on the at least one client an electronic order report.
- The above methods offer a number of advantages. Because limited configuration information and limited configuration programs are sent to the client, the client is able to do a significant amount of the processing involved in creating a technical configuration. At the same time, interaction with the server may be decreased. In addition, the data downloaded to the client is properly allocated so that not all of the configuration information or configuration programs that exist on the server are sent to the client. The above methods aid in the allocation of information to the client. The client, therefore, is not overloaded with processing, and data transfer time is kept to a minimum.
- Another embodiment of the invention is a method for developing a product configuration in a client-server environment, wherein the server has full option attributes and full option rules. The method in this embodiment comprises receiving initial product configuration data from a user on a client; in response to the initial product configuration data, allocating limited option attributes and limited option rules to the client by downloading such limited option attributes and limited option rules to the client; receiving from the client a first proposed product configuration developed from client processing of the limited option attributes and limited option rules; in response to the proposed product configuration and application at the server of the full option attributes and full option rules to the proposed product configuration, allocating and downloading to the client additional option rules; and, receiving from the client a second proposed product configuration developed from client processing of the limited option attributes and additional option rules.
- One advantage of the above method is that data is properly allocated between the client and the server. Limited option attributes and limited option rules are sent from the server to the client, so the client is able to do a significant amount of the processing involved in creating a technical configuration. In addition, the data downloaded to the client is properly allocated so that not all of the full option attributes and full option rules that exist on the server are sent to the client. The client, therefore, is not overloaded with processing, and data transfer time is kept to a minimum. After a full check of the viability of the proposed product configuration is determined on the server, additional option rules may be sent to the client from the server so that the user may properly configure the product.
- Another embodiment of the invention comprises an apparatus for creating technical configurations and electronically delivering order reports to at least one client in a computer network having at least one server connectable to at least one client. In this embodiment, the apparatus comprises a limited configuration engine, wherein the limited configuration engine is downloaded from the at least one server to the at least one client in response to data elicited from the at least one client, and wherein the limited configuration engine contains programs to interactively elicit from a user a desired configuration to be uploaded to the at least one server, and a full configuration engine on the at least one server, wherein the full configuration engine contains instructions for performing a full check on the viability of the desired configuration.
- Yet another embodiment of the invention comprises a computer-readable medium whose contents cause a computer system to perform a procedure for developing a product configuration in a client-server environment, the computer-readable medium having client programs and server programs with functions for invocation. In this embodiment, the computer-readable medium allows for the interactively eliciting from a user on the client a desired subset of possible products having technical configurations, in response to the user's desired subset of possible products having technical configurations, downloading from the server to the client limited configuration information and limited configuration programs, interactively eliciting from the user on the client a desired technical configuration and preliminarily checking at the client the viability of the desired technical configuration using the limited configuration information and the limited configuration programs, uploading the desired technical configuration from the client to the server and performing a full check on the viability of the desired technical configuration using full configuration information and full configuration programs on the server, and responsive to the full check, preparing and outputting on the client an electronic order report.
- Much like the methods of the invention above, the above apparatus and computer-readable medium properly allocate data and information between the server and the client. The limited configuration engine which is sent to the client contains enough data to allow the user to enter a desired configuration, yet a full configuration engine exists on the server to ensure that the desired configuration is viable. The client, therefore, is not overloaded with processing, and data transfer time is kept to a minimum.
-
FIG. 1 is a block diagram overview a client-server system in which the present invention functions; -
FIG. 2 is a block diagram of the hardware of the client machine ofFIG. 1 ; -
FIG. 3 is a block diagram of the software of the client machine ofFIG. 1 ; -
FIG. 4 is a block diagram of the software and programs on the server ofFIG. 1 ; -
FIG. 5 is a more detailed block diagram overview of the full configuration engine on the server; -
FIG. 6 a is a block diagram detailing transmission of information between the client and the server in one embodiment of the present invention; -
FIG. 6 b is a block diagram detailing transmission of information between the client and the server in a second embodiment of the present invention; -
FIG. 6 c is a block diagram detailing transmission of information between the client and the server in a third embodiment of the present invention; -
FIG. 7 is a block diagram overview of the business context of a vehicle ordering embodiment of the present invention; -
FIG. 8 is a flow chart showing the operation of the vehicle ordering embodiment of the present invention; -
FIG. 9 is a diagram of a make/series/model selection page of a vehicle ordering embodiment of the present invention; -
FIG. 10 is a diagram of a vehicle options selection page of a vehicle ordering embodiment of the present invention; and -
FIG. 11 is a diagram of a configuration summary page of a vehicle ordering embodiment of the present invention. - The teachings of the present invention are applicable to many different types of computer networks and may also be used, for instance, in conjunction with direct on-line connections to databases. As will be appreciated by those of ordinary skill in the art, while the following discussion sets forth various preferred implementations of the method and system of the present invention, these implementations are not intended to be restrictive of the appended claims, nor are they intended to imply that the claimed invention has limited applicability to one type of computer network. In this regard, the teachings of the present invention are equally applicable for use in Local Area Networks (“LANs”) of all types, Wide Area Networks (“WANs”), private networks, and public networks including the Internet and the Web. While the principles underlying the Internet and the Web are described in some detail above and below in connection with various aspects of the present invention, this discussion is provided for descriptive purposes only and is not intended to imply any limiting aspects to the broadly claimed methods and systems of the present invention.
- The accompanying Figures depict embodiments of the configuration systems and methods of the present invention, and features and components thereof. With regard to references in this specification to computers, the computers may be any standard computer including standard attachments and components thereof (e.g., a disk drive, hard drive, CD player or network server that communicates with a CPU and main memory, a sound board, a keyboard and mouse, and a monitor). The processor of the CPU in the computer may be any conventional general purpose single- or multi-chip microprocessor such as a Pentium® processor, a Pentium® Pro processor, a 8051 processor, a MIPS® processor, a Power PC® processor, or an ALPHA® processor. In addition, the processor may be any conventional special purpose processor such as a digital signal processor or a graphics processor. The microprocessor has conventional address lines, conventional data lines, and one or more conventional control lines. With regard to references to software, the software may be standard software used by those skilled in the art or may be coded in any standard programming language to accomplish the tasks detailed below.
- a. General Overview
-
FIG. 1 is a block diagram illustration of the environment of the present invention, which is a computer network based on a client-server model. The network comprises one ormore servers 10 which are accessible by one ormore clients 12, such as personal computers. (For simplicity,FIG. 1 shows only oneserver 10 and oneclient 12.) Theservers 10 communicate with theclients 12 over acommunication path 20, which may be a Local Area Network (LAN), Wide Area Network (WAN), direct dial connection, the Internet, or other suitable telecommunications path. A suitable network protocol, such as the TCP/IP protocol, may be used for the communications. As described above, theservers 10 may compriseWeb servers 14 andapplication servers 16, and may be any computer known to those skilled in the art. AlthoughFIG. 1 depicts aWeb server 14 and anapplication server 16 as separate entities, these twoservers server 10. Theserver 10 allows access by theclients 12 to various network resources. As shown inFIG. 1 , afirewall 5 may exist between theWeb server 14 andapplication server 16 of theserver 10.Such firewalls 5 are known to those skilled in the art and may be used to prevent unwanted access to theapplication server 16. - 1. The Client-Side
-
FIG. 2 is a block diagram of arepresentative client computer 12. As described above, theclient 12 may be any conventional computer known to those skilled in the art. Theclient 12 comprises a processor or CPU andmain memory 22, an input/output interface 24 for communicating with various databases, files, programs, and networks, and one ormore storage devices 26. Thestorage devices 26 may be disk drive devices or CD ROM devices. Theclient 12 may also have amonitor 28 or other screen device, a printer orother output device 30, and ininput device 32 such as a keyboard. As is well known in the art, thecomputer 12 executes programs stored on a data storage medium, which may be either a memory system of theclient 12 or apersistent storage device 26, such as a disk or CD ROM system, so as to carry out the functions of the present invention. -
FIG. 3 is a block diagram illustrating various programs or software which may run on theclient 12 when it will be used for configuration tasks. Although these programs are listed as separate entities inFIG. 3 , these programs may be included within one software module which may collectively be referred to as software or a software program. In one embodiment, these programs as well as the programs on the server, the functions of which will be described in more detail below, may be contained on a computer-readable medium, such as a standard floppy disk. In an embodiment where thecommunication path 20 is the Internet or an Intranet, each of theclients 12 may run aWeb browser 42, which is a known software tool used to access the Web via a connection obtained through an Internet access provider. A variety ofbrowsers 42 known to those skilled in the art may be used within the scope of the present invention, including Netscape Navigator, Microsoft Internet Explorer, or Mosaic browsers. In one embodiment, abrowser 42 that is capable of running client-side programs, such as JavaScript, may be used. Aninterpreter 43 may exist either within thebrowser 42 or outside thebrowser 42 on theclient 12. Thisinterpreter 43 may be capable of interpreting or processing client-side programs within thebrowser 42 so that the client-side programs may function within thebrowser 42. As explained above, aWeb server 14 may allow access to so-called “Web sites” and applications available onapplication servers 16, as shown inFIG. 1 . As is also described above, the location of a resource on aserver 10 may be identified by a URL. Theclient 12 may also retain a small “cookie,” as defined in the background section, to retain state information regarding theserver 10 to which theclient 12 exchanges requests. - Referring again to
FIG. 3 , theclient 12 may also contain other software or programs which may reside in themain memory 22 of theclient 12 or which may be persistently stored in thestorage device 26 of theclient 12. Alimited configuration engine 40 may reside on theclient 12. Thislimited configuration engine 40 may containlimited configuration information 44 and limited configuration programs 48. As will become clear in the following description, thelimited configuration engine 40 is a portion of a full configuration engine which resides on theserver 10. The role of theclient 12 in the configuration systems and methods is to display screens, allow the user to fill in information on the screens, perform limited, discrete logic tasks on the information on the screens at theclient 12 level, and to exchange data with theserver 10. - The
limited configuration information 44 is essentially a set of data for specifying a particular product or service (throughout the remainder of this specification, the term product will be used to refer to a product or service). For instance, the data may consist of a set of limited option attributes 46 and limited option rules 47 for a given product. An option attribute 46 may be a feature or option of a product, such as a type of engine or transmission in a vehicle along with the corresponding price, from which a user chooses in configuring a product. The data may also consist of a set of limited option rules 47 for a product. The option rules 47 consist of a set of logic rules that links or defines relationships between certain of the option attributes 46. For instance, if the configuration system and method is for a vehicle, a certain type of emissions system or transmission may only be available for certain engine types, or certain interior color schemes may only be available for certain exterior color packages. If A, B, and C are three different option attributes 46 for a product or service, various option rules 47 may include, but are not limited to, the following: - if A, then B (meaning that if option attribute A is selected, then option attribute B is automatically selected as well);
- if A, then B optional (meaning that if option attribute A is selected, then option attribute B is automatically selected as well, but it may be deselected);
- if A, not B (meaning that if option attribute A is selected, then option attribute B may not be selected);
- if A and B, then C (meaning that if option attributes A and B are selected, then option attribute C is automatically selected);
- if A, then B or C (meaning that if option attribute A is selected, then option attribute B or C must be selected).
- Numerous other possible option rules 47 may also be used. Some of these additional option rules 47 may be related to the price of the configuration as a whole. For instance, if option attribute A is selected, then the user may get a discount on option attribute B or may get option attribute B for no additional cost.
- The
limited configuration programs 48 of thelimited configuration engine 40 may comprise programs that perform such functions as processing the option attributes 46 and option rules 47, performing the logic in the option rules 47, and formatting the layout of a Web page on the client'smonitor 28. If the Internet will be used with the configuration methods and systems, thelimited configuration programs 48 may comprise client-side programs 50, such as Java, ActiveX, JavaScript, Helper-Viewer, and other plug-ins or other client-side programs, and HTML forms 52. The client-side programs 50, which may be programs capable of running within thebrowser 42 used with the invention, may process the option attributes 46 and option rules 47 and run the logic for the processing on the client-side. The HTML forms 52 provide basic Web page formatting that aids in the presentation of the Web page and allow the developer to specify “links” toother servers 10 and files. Although the HTML forms 52 are represented inFIG. 3 as a part of thelimited configuration programs 48, the HTML forms 52 may also reside within thelimited configuration information 44. The distinction between that data or those programs that reside within thelimited configuration information 44 or thelimited configuration programs 48 is not important. This distinction is instead made merely by way of example, and therefore does not limit the invention. - The
limited configuration engine 40 may be downloaded from theserver 10 to theclient 12 in response to requests from the user or based onserver 10 logic, both of which will be explained in more detail below. Once resident on theclient machine 12, thelimited configuration engine 40 may reside inmemory 22 or within astorage device 26. In some cases, theclient 12 may “cache” alimited configuration engine 40 or other resource obtained over the network so that it is temporarily stored on theclient machine 12 in either themain memory 22 or on disk or on anotherstorage device 26. The cached copy of the resource may then remain resident on theclient 12 for a defined period and may be easily accessed instead of obtaining it over the Internet or network when the resource is needed at a later time. In such cases where cached programs are used, neither the basic operations nor functions of the configuration systems and methods nor the transmission of information to aserver 10, differ from the cases where cached copies are not used. - 2. The Server-Side
-
FIG. 4 illustrates in block form one embodiment of a portion of the contents of theserver 10 or, more particularly, theapplication server 16. Theserver 10 contains programs that run on the server-side to process requests and responses from the client-side, send the proper information to theclient 12, and perform processes on the server-side. If the Internet is used within an embodiment of the invention, these programs may beCGI scripts 62, as depicted inFIG. 4 . Within theserver 10, thefull configuration engine 52 resides for each possible subset of the full universe of possible products. Each subset may represent a different type of configuration, and any number of subsets may be present on theserver 10. For simplicity,FIG. 4 shows threesubsets different subset FIG. 4 represents one possible embodiment of the organization of information within theserver 10, a variety of other organizational schemes known to those skilled in the art may also be used. As shown inFIG. 4 , eachsubset full configuration engine 52 for one particular subset of the configuration system. - Referring now to
FIG. 5 , thefull configuration engine 52 for eachsubset full configuration information 54 andfull configuration programs 56 for that particular subset. Within the full configuration information 64 are the full option attributes 65 and the full option rules 66, which are similar in nature to the option attributes 46 and option rules 47 within thelimited configuration information 44 on the client-side. The full option attributes 65 and full option rules 66 on the server-side, however, may contain more detailed rules that define relationships among the option attributes 65 than those option rules 47 that reside on theclient 12. Because theserver 10 will likely not have the constraints on storage and processing of detailed option rules as may theclient 12, a full set of option rules 66 with corresponding interrelationships between option attributes 65 may reside on theserver 10. Within the full option attributes 65 and full option rules 66 reside the limited option attributes 46 and option rules 47 w-hich may be downloaded to theclient 12 during a configuration session. - The
server 10 may receive the full option attributes 65 and full option rules 66 in a variety of ways. In one embodiment, the technical information for the product or service may be received in paper form from the manufacturer or dealer of the product or service, or from an information provider that may receive and compile information for different technical products and services. The full option attributes 65 and full option rules 66 may then be entered into the system by human beings. In another embodiment, a manufacturer, dealer, or information provider may transmit an electronic file which includes technical configuration information for a product or service. This technical configuration information may then be electronically processed and entered into the system as full option attributes 65 and full options rules 66. - The
full configuration engine 52 on theserver 10 also contains the full configuration programs 68, which may include of the client-side programs 50 and HTML forms 52 which may be sent to theclient 12 aslimited configuration programs 48 during a configuration session, as well as server-side programs 70 which process the information and rules in thefull configuration engine 52 on theserver 10. Although the client-side programs 50 and HTML forms 52 on theserver 10 may be the same versions as those downloaded to theclient 12 during a configuration session, the server-side programs 70, which may be CGI scripts as depicted as numeral 62 onFIG. 4 , are not downloaded to theclient 12, but instead reside and process logic and information on theserver 10. - As explained in the background section of this specification, it is generally desirable to send only a limited amount of information to the
client 12 due to data transfer time andclient 12 response limitations. For this reason, only limited option rules 47 are sent to theclient 12 in thelimited configuration information 44, while a full set of option rules 66 exist on theserver 10. In one embodiment, all of the option attributes 65 on theserver 10 are transferred within thelimited configuration information 44 to theclient 12, but less than all of the option rules 66 on theserver 10 are sent to theclient 12. In this embodiment, a set of the full option rules 66, which may be much more complex than the option rules 47 sent to theclient 12, resides only on theserver 10. The user on theclient 12 in this embodiment, therefore, may be able to see each potential option attribute 65 for a product, but not all of the links between each option attribute 65 and other option attributes 65 will be present on theclient 12. The user on theclient 12, therefore, may be able to select different option attributes 46 through an HTML Web page and certain of the option rules 47 on theclient 12 and client-side programs 50 may specify interrelationships among the option attributes 46, yet a full application of the option rules 66 may be reserved for the server-side. - b. Operation of the Invention
- The operation of the configuration systems and methods will first be illustrated as a broad application for any variety of product configurations in reference to
FIGS. 6 a-6 c, and then for a specific application to vehicle ordering methods and systems with reference toFIG. 6 a andFIGS. 7-10 .FIGS. 6 a-6 c are block diagram overviews of three embodiments of the methods and systems of the present invention which contains sections detailing the exchange of information between theserver 10 and theclient 12. Theserver 10, which in one embodiment may be anapplication server 16 as shown inFIG. 1 , contains thesubsets full configuration engines 52 as shown inFIGS. 4 and 5 . - 1. Tight Configuration Embodiment
-
FIG. 6 a shows a block diagram overview of information exchange in a tight configuration embodiment of the present invention. This embodiment may be referred to as a “tight” configuration embodiment because the user selects each selectable option until a viable configuration is assembled. - a. Subset Selection
- To begin a configuration session, the user may access the page on the
server 10 associated with the configuration system to initiate a session. In an embodiment of the invention using the Web, such a page may be an HTML Web page. A registration or enrollment session may require the user to submit certain information about himself or herself in order to use the configuration system. Theserver 10 may then send to the client 10 a variety ofsubset choices 100 of products from which to assemble a configuration. Thesubset choices 100 may be presented to the user on theclient 10 through an HTML Web page on the client'smonitor 28. Because a limited amount of space may be available in themain memory 22 of theclient 12, the amount of information presented for eachsubset choice 100 may be limited to a discrete amount. As previously noted, each subset may represent a different make, model, or series of a product. After the user selects a desiredsubset 102, which may then be uploaded to theserver 10 as shown inFIG. 6 a, a second set ofsubset choices 100 may be presented to the user to further refine thesubset choice 100 for a configuration session. In this manner, the exchange ofsubset choices 100 and desiredsubsets 102 between theclient 12 and theserver 10 may be repeated a number of times until a discrete amount of data for which theclient 12 has space may be downloaded from theserver 10 to theclient 12. In a configuration system with only one or afew subset choices 100, thesesubset choices 100 may be presented to the user on theclient 12 in one page, or may be intertwined with later pages described below which may be used to select option attributes 46 during a configuration session. - The user's desired
subset 102 represents initial product configuration data, which theserver 10 uses to allocate alimited configuration engine 40 to theclient 12. Differentlimited configuration engines 40 will be downloaded to theclient 12 from theserver 10 for each different desiredsubset 102. - b. Preliminary Viability Check
- After a small enough segment of data to operate a configuration session on the
client 12 may be downloaded to theclient 12, a limited configuration engine 40 (shown as numeral 104 inFIG. 6 a during transfer to theclient 12 from the server 10) is downloaded to theclient 12. As explained in connection withFIG. 3 , thelimited configuration engine 40 may containlimited configuration information 44 and limited configuration programs 48. In one embodiment, thelimited configuration engine 40 contains HTML forms 52 for presentation of information on theclient 12. The option attributes 46 of thelimited configuration information 44 may therefore be presented to the user through a Web page, and the limited option rules 47 may perform some limited operations on theclient 12. In one embodiment, one set oflimited configuration programs 48 may be downloaded to the client and used with any given subset which the user selects. In this embodiment, only thelimited configuration information 44 would differ from one subset to another. - The Web page presented to the user on the
client 12 may interactively elicit information from the user through various interfaces known to those skilled in the art, such as drop-down boxes, scroll bars, or check boxes. As the user selects various option attributes 46 in the Web page, the option rules 47 and the client-side programs 50 on theclient 12 may update the screen to reflect the interrelationships of the various option attributes 46 selected. Thus, through the use of Java, ActiveX, JavaScript, Helper-Viewer, or other plug-ins or client-side programs 50 known to those skilled in the art, in conjunction with thelimited configuration information 44 andlimited configuration programs 48 available on theclient 12, the user's choices may be preliminarily checked for viability on theclient machine 12. Because the information on theclient 12 in thelimited configuration engine 40 will be a truncated version of thefull configuration engine 52 on theserver 10, the validity of the user's desired configuration may only be preliminarily checked. In one embodiment, if a user's selection is not viable, the Web page will not allow the user to select a certain option attribute 46. In addition, the Web page may update the user after various choices on the client'smonitor 28, so that information, such as an approximate price of the product, may be updated dynamically on theclient 12 as the user configures a product by selecting option attributes 46. - In one embodiment, it is important to note that the
limited configuration engine 40 downloaded to the client 12 (as shown as numeral 104 inFIG. 6 a) may contain a discrete segment of information so that the user may make a variety of choices on a Web page, yet do so without active interaction with theserver 10. This offers the advantage of a limited amount of time spent downloading information to and uploading information from theclient 12. As the user interacts with the Web page to select choices for a configuration, this limited processing and checking may be done on theclient 12 instead of on theserver 10. - c. Full Viability Check
- When the user has completed entering his or her desired configuration, the user can click on the “submit” button to upload the desired
configuration 106 to theserver 10, as shown inFIG. 6 a. This desiredconfiguration 106 is the user's proposed product configuration, which, though it has been preliminarily checked for viability using the limited option attributes 46 and limited option rules 47 on theclient 12, may not be viable when checked against the full option rules 66 on theserver 10. Because only a preliminary check of the user's desiredconfiguration 106 was performed on theclient 12 using thelimited configuration engine 40, the complete validity of the configuration may be determined on theserver 10, which contains a full set of the option rules 66 as well as server-side programs 70. Theserver 10 therefore determines the viability of the desired configuration using thefull configuration engine 52. As explained above, thisfull configuration engine 52 may be a more complete and detailed version of thelimited configuration engine 40 on theclient 12. For example, many of the interrelationships between different option attributes may exist only on theserver 10 due to limited space in themain memory 22 of theclient 12. In particular, full pricing information, which may be complex due to package deals, discounts, and upgrade pricing deals, may reside only on theserver 10. - In one embodiment, all option attributes for a given subset may be presented to the user on the
client 12, and it may be only a detailed processing of the user's desired configuration that is uniquely carried out on theserver 10, in part because the client-side programs 50 and option rules 47 provided to theclient 12 may not be sophisticated enough to carry out this processing on theclient 12 due to limited space. After the viability status of the desiredconfiguration 106 is determined at theserver 10, the viability status of theconfiguration 108 may be downloaded to theclient 12 as shown inFIG. 6 a during transfer from theserver 10 to theclient 12. - If the desired
configuration 106 is viable, anorder report 112 may also be downloaded to theclient 12. Thisorder report 112, which may be downloaded to theclient 12 in place of or in addition to the downloading of the viability of theconfiguration 108, may report the final price of the configuration as well as a summary of each of the options selected by the user. - If the desired
configuration 106 is not viable, the viability status of theconfiguration 108 sent from theserver 10 to theclient 12 may report the unresolved viability issues to the user on theclient 12. For instance, the Web page used for presenting the options to the user on theclient 12 may again be presented to the user on theclient 12 with certain option attributes 46 highlighted with a note describing a problem with the desired configuration. Similarly, if the user does not select a choice from certain option attributes 46 for which a selection is mandatory, the user may be presented with a reminder to select one or more of those option attributes 46. In one embodiment, if the desired configuration is not viable, theserver 10 may download updatedlimited configuration information 44 and updatedlimited configuration programs 48 to theclient 12. Theserver 10, therefore, may allocate and download additional information to theclient 12, which may include additional limited option attributes 46 and limited option rules 47, so that the user may assemble a viable configuration. In another embodiment, only additional option rules 47 may be allocated to theclient 12 at this time. The updatedlimited configuration engine 40 may then be used on theclient 12 by the user for entering a desired configuration. - In this manner, the user will be prompted to assemble a viable configuration on the
client 12 through any number of communications with theserver 10. This new desiredconfiguration 110 may then be uploaded to theserver 10. When such a viable configuration has been entered by the user, submitted to theserver 10, and approved as being viable by theserver 10, anorder report 112 may be sent to theclient 12. - The configuration methods and systems of the present invention may present any number of Web pages with various option attributes 46 to the
client 12 in the manner described above, such that the acts described above may be repeated any number of times with different option attribute choices until a full and viable configuration has been assembled. When such a full and viable configuration has been assembled, anorder 114 may be electronically sent from theserver 10 to the manufacturer or service provider so that the configuration may be assembled or ordered. - 2. Pre-Configuration Embodiment
-
FIG. 6 b shows a block diagram overview of information exchange in a pre-configuration embodiment of the present invention. Much like the tight configuration embodiment described above, in this embodiment theserver 10 may send to the client 12 a variety ofsubset choices 100 b of product embodiments from which to assemble a configuration. The user then selects a pre-configuration option, as denoted by numeral 101 inFIG. 6 b. Thesubset choices 100 b presented to theclient 12, therefore, may allow the user to select the pre-configuration embodiment in this embodiment. The pre-configuration option allows the user to select product configurations which have already been configured, either in prior configuration sessions with the user or by theserver 10. For example, popular product configurations could be presented as options to save the user time in configuring a product. In one embodiment, each new configuration the user develops could be saved so that the user may later select it as a pre-configured product. - After the pre-configuration data is uploaded to the
server 10, theserver 10 performs a viability check on that data, much like described above for the tight configuration embodiment. This information sent from theclient 12 to theserver 10, which may also be called initial product configuration data, should typically result in a viable configuration in this embodiment, because a pre-configured product has been chosen by the user. The pre-configuration option may, however, only select some of the options of the product in one embodiment, such that the user may still need to complete the configuration by selecting the rest of the options.Numeral 108 b inFIG. 6 b shows theserver 10 downloading to theclient 12 the viability of the pre-configured product or further tools for configuration. For example,limited configuration information 44 andlimited configuration programs 48 may be downloaded to theclient 12 so that the user can complete the configuration or, if the configuration is not viable, select different options to assemble a viable configuration. After the user has completed assembling a further desired configuration (if needed because the pre-configured product is either not viable or is not complete), this further desiredconfiguration 110 b is uploaded to theserver 10. After any number of iterations of the above described acts and after theserver 10 finds a desired configuration viable, anorder report 112 b may be sent to theclient 12. - 3. Loose Configuration Embodiment
-
FIG. 6 c shows a block diagram overview of information exchange in a loose configuration embodiment of the present invention. This embodiment may be referred to as a “loose” configuration embodiment because the user generally enters desired options in free text form and theserver 10 finds the closest viable configuration matching to those desired options. - Much like the embodiments described above, in this embodiment the
server 10 may send to the client 12 a variety ofsubset choices 100 c of product embodiments from which to assemble a configuration. The user then selects a loose fit option, as denoted by numeral 103 inFIG. 6 c. Thesubset choices 100 c presented to theclient 12, therefore, may allow the user to select the loose fit embodiment in this embodiment. When the user selects the loose fit embodiment, the user may then enter in a dialog box presented to the user on theclient 12 desired options in free text or other similar form. This loosefit information 103 is then uploaded to theserver 10. In one embodiment, a human being processes the desired options to find the closest viable configuration. In another embodiment, theserver 10 processes the desired options and finds the closest viable configuration. In this embodiment, theserver 10, therefore, may run aCGI script 62 using the full option attributes 65 and full options rules 66 to find the closest viable configuration. -
Numeral 108 c inFIG. 6 c shows theserver 10 downloading to theclient 12 the viability of the desired configuration and, if needed, further configuration tools. In one embodiment, if a viable configuration may not be developed which is similar to the user's loose fit information, therefore, further configuration tools (in the form of a limited configuration engine 40) may be sent to theclient 12 from theserver 10. The user may then further develop the product configuration and a further desiredconfiguration 110 c may be uploaded from theclient 12 to theserver 10. Eventually, after a viable configuration has been assembled through any number of iterations of the above acts, anorder report 112 c may be sent from theserver 10 to theclient 12. - c. Vehicle Ordering Embodiment
-
FIGS. 7-11 detail one embodiment of the configuration methods and systems described above for vehicle configuration and ordering. - 1. Business Context
- As an introduction to a vehicle ordering system,
FIG. 7 illustrates the general business process of a vehicle ordering system showing the flow of information between four different entities: the user orclient 12, the configuring party represented by theserver 10, themanufacturer 180 of the vehicle, and thevehicle dealer 190. A configuration system operated by a configuring party may be important and useful for a number or reasons. First, a configuring party may assist companies in developing and maintaining large or small fleets of vehicles through such systems. If a company has a large fleet of vehicles to maintain, a configuring party may be able to assist in record-keeping for the vehicles (such as for maintenance or license tab renewal), and may provide an interface between the company and vehicle dealers to simplify vehicle configuration and ordering. Second, because a configuring party may be ordering large numbers of vehicles, the configuring party may get a discount on vehicle prices from the dealers. Finally, the configuring party may aid in the financing process for a company's fleet of vehicles, such that the fleet of vehicles may be financed or leased in the aggregate through the configuring party. - At
step 200, theserver 10 receives make and model information including details on options for makes, models, and series, from the vehicle manufacturers 180. It is important to note that the manufacturer sets the options and interrelationships between options, including pricing, for various makes and models. The complexity of these options and interrelationships may make it impractical to perform all of the logic associated with a vehicle configuration on theclient 12. This information may be updated periodically, as depicted instep 202, so that all of the latest options may be available on theserver 10. Atstep 204, theserver 10 may send information to theclient 12 regarding vehicle ordering. Atblock 206, theclient 12 orders a vehicle using a vehicle ordering system, which will be explained in greater detail below. Atblock 208, a vehicle price is delivered to theclient 12 for such a vehicle, and theclient 12 then reports the decision back to theserver 10 to order the vehicle atstep 210. After the vehicle configuration is delivered to the manufacturer atstep 212, the status of the vehicle construction and/or delivery is delivered to theserver 10. - At
step 216, theserver 10 inquires with the dealer as to the delivery of the vehicle. A contract may be delivered to theserver 10 atstep 218 and confirmation of the vehicle order may be delivered to the dealer atstep 220. Atstep 222, the status of the vehicle configuration may be delivered to theserver 10. Atstep 224, the vehicle is delivered to the dealer for delivery to theclient 12 atstep 226. Finally, theclient 12 may deliver an old vehicle to the dealer atstep 228. - 2. Vehicle Ordering System and Methods
-
FIG. 8 details in block diagram form the flow of the vehicle configuration methods and systems which may be used for developing a valid vehicle configuration and for ordering a vehicle. Atblock 300, the user enters the vehicle configuration system to begin the configuration process. Initially, theserver 10 may download a variety of options to theclient 12, including, as depicted inFIG. 8 , apre-configuration option 306 and the option for the user to select either aloose match 304 or atight match 302 of option attributes with viable vehicle configurations. These three embodiments, which were described above in a general product configuration embodiment, aid theserver 10 in determining how much and which limitedconfiguration engines 40 to download to theclient 12 from theserver 10. - If the user chooses a
loose match 304 between the desired options and viable configurations, a freeflow text screen may be presented to the user atblock 308 on theclient 12 to enter desired vehicle option attributes in free text form. When the user clicks the submit button the desired configuration is uploaded to the server 10 (denoted byblock 310 inFIG. 8 and as the loosefit information 103 inFIG. 6 c). In one embodiment, theserver 10 may determine the closest match to the loosefit information 103 by performing a word matching analysis to find a close match. Further configuration tools may need to be presented to the user on theclient 12 to further develop a configuration, as described above, such that any number of interactions with theserver 10 may be necessary to develop a viable configuration. In another embodiment, a human being may process the desired option attributes to find the closest possible match. As depicted atblock 334 inFIG. 8 and as theorder report 112 c inFIG. 6 c, anorder report 112 c may then be delivered from theserver 10 to theclient 12. - In the typical scenario where a user desires to select all of the desired option attributes of a vehicle in the tight configuration embodiment (as in
FIG. 6 a), the user may be prompted to select certain choices through HTML Web pages on theclient 12. In this embodiment, the user may first be prompted to select a make of a vehicle, as depicted inblock 312 ofFIG. 8 .FIG. 9 illustrates one such HTML Web page in which a scroll box exists for the user to select avehicle make 400.FIG. 9 is shown by way of example only, and it is noted that more than one Web page could be used for the functions illustrated inFIG. 9 and any form for this page known to those skilled in the art could be used. After the user selects amake 400 of vehicle, that information may be uploaded to theserver 10, which is denoted asblock 314 inFIG. 8 .FIG. 6 a denotes this interaction between theclient 12 and theserver 10 by the uploading of a desiredsubset 102 to theserver 10. After the user selects amake 400 of vehicle and this information is uploaded to theserver 10, theserver 10 may send another set ofsubset choices 100 to theclient 12 so that the user may select a series of car.FIG. 6 a depicts the transfer of thesesubset choices 100 from theserver 10 to theclient 12. - The user may then select a series of vehicle, as shown in
scroll box 402 inFIG. 9 and block 316 inFIG. 8 . A similar procedure is then followed as when a make of vehicle was selected by the user. The desiredsubset 102 is uploaded to theserver 10, as shown inblock 318 inFIG. 8 . Theserver 10, in turn, may then downloadadditional subset choices 100 to theclient 12, as shown inFIG. 6 a. Similarly, the user may then select a model of vehicle, as shown inscroll box 404 inFIG. 9 and block 320 inFIG. 8 . This desiredsubset 102 may then be uploaded to theserver 10, as shown inFIG. 6 a and byblock 322 inFIG. 8 . In this manner, the user narrows the possible product configurations such that, upon receiving the subset choices 100 (or initial product configuration data) theserver 10 may allocate and download an appropriatelimited configuration engine 40 to theclient 12. -
Block 324 inFIG. 8 depicts the process in which the user may select a variety of options for the chosen make/series/model of vehicle selected. In order to present these option attributes to the user on theclient 12, thelimited configuration engine 40 corresponding to the make/series/model is downloaded to theclient 12, which is depicted as numeral 104 inFIG. 6 a. As previously stated, thelimited configuration engine 40 downloaded from theserver 10 to theclient 12 is a limited version of thefull configuration engine 52 on theserver 10 corresponding to the particular make/series/model of the vehicle selected for configuration. In one embodiment, thislimited configuration engine 40 presents a full set of the option attributes to the user on theclient 12, but does not contain a full set of the option rules that exist on theserver 10. Because there are a large number of option rules and interrelationships between option attributes for vehicle configurations, a full set of these option rules remains on theserver 10, where a full and final check of the viability of the desired configuration may be performed. In one embodiment, as the user selects option attributes, the price of the vehicle configuration may be dynamically updated to reflect an approximate price of the vehicle as configured. -
FIG. 10 shows one potential embodiment of an HTML Web page which may be presented to the user for selecting option attributes (block 324 inFIG. 8 ), although any page known to those skilled in the art may be presented to the user for this purpose. A number of option attributes 500, 502, 504, such as the type of engine, axles, and other vehicle option packages, may be presented for the user's choice.FIG. 10 also shows theprice 506 which may be listed for each option attribute. As previously described in connection with the invention, thelimited configuration engine 40 and the Java, ActiveX, JavaScript, Helper-Viewer, or other plug-ins or client-side programs 50 on theclient 12 may perform a limited check on the viability of a desired configuration as the user enters or chooses option attributes. For example, certain option attributes 46 may be automatically selected or made not available for selection upon the selection of other option attributes 46 by the user. When the user completes the desired configuration, the user may click on the “submit” or “next” button, which uploads the desired configuration from theclient 12 to theserver 10. This act of uploading the desiredconfiguration 106 is shown inFIG. 6 a and is depicted asblock 326 inFIG. 8 . - The
server 10 performs a check on the viability of the desired configuration using thefull configuration engine 52. As indicated above, thisfull configuration engine 52 on theserver 10 contains more detailed option rules 66 and full configuration programs 68 to check the viability of the desired configuration. If the desired configuration is viable, theserver 10 may download anotherlimited configuration engine 40 to theclient 12 so that the user may select the desired color scheme for the vehicle, as indicated inblock 330 inFIG. 8 . In one embodiment, this color selection page may be combined with the option selection page atblock 324 ofFIG. 8 . In this embodiment, a separate page for the selection of a color scheme may not be necessary. In another embodiment, this color selection page may be a separate HTML form for which a separate process of uploading a desired color scheme to theserver 10 may be necessary, which is indicated onFIG. 8 asblock 332. - If the desired configuration is viable, i.e., if the selected option attributes in the desired configuration may be combined to form a valid vehicle configuration, the
server 10 may download to theclient 12 anorder report 112 summarizing the selected configuration and/or a document detailing the viability of the desired configuration. If the desired configuration is not viable, i.e., where the full option rules are not met and option attributes must therefore be changed to build a viable configuration, the document detailing the viability of the desired configuration may be a version of the HTML form used for option selection (as shown inFIG. 10 ), with certain options highlighted or with explanations as to the necessity to change certain option attributes. Alimited configuration engine 40, which may be similar to that transmitted to theclient 12 asnumeral 104 inFIG. 6 a, may also be downloaded to theclient 12 as part of the viability of theconfiguration 108 to allow the user to refine the vehicle configuration. In this manner, further configuration tools, such as additional limited option attributes 46 and limited option rules 47, may be allocated and downloaded from theserver 10 to theclient 12 if a desired configuration is not viable. - This process of uploading a desired configuration (numeral 106 in
FIG. 6 a) from theclient 12 to theserver 10 and downloading the viability status of the configuration and tools for resolving open viability issues (numeral 108 inFIG. 6 a) may be repeated until a viable configuration has been assembled and anorder report 112 summarizing that configuration may be downloaded to theclient 12.Block 334 ofFIG. 8 and numeral 112 inFIG. 6 a represent this order report which is downloaded from theserver 10 to theclient 12. Such an order report or configuration summary may appear similar to the configuration summary depicted asFIG. 11 .FIG. 11 shows a Web page illustrating a configuration summary and containing atotal invoice price 600, the make, model, and series ofcar 602, as well as a summary of the optional equipment 604 (option attributes) for the vehicle. This Web page may be a one-page summary or a multi-page summary showing the options for the vehicle configuration. -
FIG. 8 also depicts asblock 306 the possibility that pre-configured vehicles may be used to aid in the configuration process, which is shown inFIG. 6 b for a general product configuration embodiment. A user, for example, may have one or more configurations that he or she commonly uses. These configurations may be saved (on either theclient 12 or the server 10) to be used later. In one embodiment, each time a user configures a vehicle, that configuration may be saved for later use. Starting a configuration session with a pre-configured or partially pre-configured vehicle may simplify the configuration process.FIG. 8 illustrates one scenario where the pre-configured information consists of the make/model/series information for the vehicle, but the user still selects the options for that give make/model/series. A second scenario shown inFIG. 8 depicts the possibility that the options are also pre-configured for the vehicle, so that only the color scheme must be selected by the user during a configuration session. - After a configuration session has been completed and a viable configuration has been assembled, an order may be sent from the
server 10 to the vehicle manufacturer or vehicle dealer to order the vehicle. This order is represented by numeral 114 inFIG. 6 a,FIG. 6 b, andFIG. 6 c. - d. Summary
- The present invention provides methods and systems for computerized configurations in network systems containing one or
more servers 10 and one ormore clients 12. The methods and systems allocate the load between the server-side and the client-side of such a network and reduce the amount of time spent uploading or downloading information between theclient 12 and theserver 10. The systems and methods utilize existing computer systems and software packages. The methods and systems accomplish these tasks by sending only alimited configuration engine 40 from theserver 10 to theclient 12 to perform a discrete amount of logic on theclient 12. The user's interaction with theclient 12, which may be through an HTML Web page using client-side programs 50, will not require communication with theserver 10 while the user enters configuration options and limited logic is performed on those options. Because only alimited configuration engine 40 is sent from theserver 10 to theclient 12, a final check on the viability of the desired configuration may be performed on theserver 10 after a desired configuration is uploaded to theserver 10 from theclient 12. - The methods and systems of the present invention are particularly useful for technical and complex configurations, such as vehicle or computer configurations, where a large number of option attributes exist and a large number of option rules and interrelationships exist between options. For such systems, it may be unpractical to transmit the full logic of the configuration system from the
server 10 to theclient 12, yet it may be undesirable to have repeated communications with the network as associated with common server-side systems. The methods and systems of the present invention aid in the allocation of data and information between theserver 10 and theclient 12, so that only a limited amount of information and data will be downloaded to theclient 12 from theserver 10. The full data and information is retained on theserver 10 for a final check on the viability of desired configurations. - While the present invention has been described with reference to several embodiments thereof, those skilled in the art will recognize various changes that may be made without departing from the spirit and scope of the claimed invention. Accordingly, this invention is not limited to what is shown in the drawings and described in the specification but only as indicated in the appended claims. Any numbering or ordering of elements in the following claims is merely for convenience and is not intended to suggest that the ordering of the elements of the claims has any particular significance other than that otherwise expressed by the language of the claims.
Claims (19)
1-40. (canceled)
41. A method for creating technical configurations and electronically delivering order reports to a computer network client comprising:
receiving on-line from a user on the client a selection of a desired product selected from a set of products, wherein the selection represents initial product configuration data of the desired product;
downloading to the client from a server limited configuration information that is a subset of a full set of configuration information and limited configuration programs that are a subset of a full configuration programs, the limited configuration information including option attributes of the desired product and limited option rules that define relationships therebetween, wherein the limited configuration information and limited configuration programs are determined at the server based on the initial product configuration data of the desired product, and wherein the limited configuration information and the limited configuration programs are downloaded to the client responsive to the user selection;
requesting a desired technical configuration of the desired product from the user on the client, wherein selections for the option attributes of the desired product are elicited from the user;
preliminarily checking the viability of the desired technical configuration of the desired product at the client, wherein the limited configuration programs verify conformity of the user selections for the option attributes with the limited option rules;
receiving at the server the desired technical configuration from the client subsequent to preliminarily checking viability of the desired technical configuration;
performing a full check at the server on the viability of the desired technical configuration, wherein the full set of configuration programs verify conformity of the user selections for the option attributes with the full set of option rules; preparing and transmitting to the client an electronic order report, if the full check at the server is successful; and
downloading to the client from the server additional option rules that are a subset of the full set of option rules and receiving from the client at the server a second desired technical configuration developed on the client and verified on the client for conformity with the additional option rules, if the full check at the server is not successful.
42. In a computer network having at least one server connectable to at least one client, a method for creating vehicle configurations and electronically delivering order reports to at least one client, the method comprising:
(a) interactively eliciting from a user on the at least one client a desired make, model, and series for a vehicle;
(b) in response to the user's desired make, model, and series for a vehicle, downloading from the at least one server to the at least one client limited configuration information and limited configuration programs;
(c) interactively eliciting from the user on the at least one client a desired vehicle configuration and preliminarily checking at the at least one client the viability of the desired vehicle configuration using the limited configuration information and the limited configuration programs;
(d) uploading the desired vehicle configuration from the at least one client to the at least one server and performing a full check on the viability of the desired vehicle configuration using full configuration information and full configuration programs on the at least one server; and
(e) responsive to the full check, preparing and outputting on the at least one client an electronic order report.
43. A method for developing a product configuration in a client-server environment, wherein the server has full option attributes and full option rules, the method comprising:
(a) receiving initial product configuration data from a user on a client;
(b) in response to the initial product configuration data, allocating limited option attributes and limited option rules to the client by downloading such limited option attributes and limited option rules to the client;
(c) receiving from the client a first proposed product configuration developed from client processing of the limited option attributes and limited option rules;
(d) in response to the proposed product configuration and application at the server of the full option attributes and full option rules to the proposed product configuration, allocating and downloading to the client additional option rules; and
(e) receiving from the client a second proposed product configuration developed from client processing of the limited option attributes and additional option rules.
44. The method of claim 43 wherein act (b) further comprises allocating an HTML page and client-side programs to the client by downloading such an HTML page and client-side programs to the client.
45. The method of claim 43 wherein the act of receiving initial product configuration data from a user on a client includes enabling the user to specify whether an exact match or a loose match is desired between the desired technical configuration and a viable configuration.
46. The method of claim 43 wherein the act of receiving initial product configuration data from a user on a client includes enabling the user to select templates of pre-configured product configurations.
47. In a computer network having at least one server connectable to at least one client, an apparatus for creating technical configurations and electronically delivering order reports to at least one client, the apparatus comprising:
(a) a limited configuration engine, wherein the limited configuration engine is downloaded from the at least one server to the at least one client in response to data elicited from the at least one client, and wherein the limited configuration engine contains programs to interactively elicit from a user a desired configuration to be uploaded to the at least one server; and
(b) a full configuration engine on the at least one server, wherein the full configuration engine contains instructions for performing a full check on the viability of the desired configuration.
48. The apparatus of claim 47 wherein the limited configuration engine comprises limited configuration information and limited configuration programs.
49. The apparatus of claim 47 wherein the limited configuration engine comprises limited option attributes and limited option rules.
50. The apparatus of claim 47 wherein the limited configuration engine contains programs for performing a limited check on the viability of the desired configuration.
51. The apparatus of claim 47 wherein the full configuration engine comprises full configuration information and full configuration programs.
52. The apparatus of claim 47 wherein acts of uploading and downloading are carried out over the Web.
53. The apparatus of claim 47 wherein the full configuration engine is a CGI script.
54. The apparatus of claim 47 wherein the limited configuration engine comprises an HTML page and client-side programs.
55. The apparatus of claim 54 wherein the client-side programs comprise a plug-in or helper-application.
56. The apparatus of claim 54 wherein the client-side programs include one or more programs selected from Java, JavaScript, ActiveX, and Helper-Viewer programs.
57. A computer-readable medium whose contents cause a computer system to perform a procedure for developing a product configuration in a client-server environment, the computer-readable medium having client programs and server programs with functions for invocation, by performing the acts of:
(a) interactively eliciting from a user on the client a desired subset of possible products having technical configurations;
(b) in response to the user's desired subset of possible products having technical configurations, downloading from the server to the client limited configuration information and limited configuration programs;
(c) interactively eliciting from the user on the client a desired technical configuration and preliminarily checking at the client the viability of the desired technical configuration using the limited configuration information and the limited configuration programs;
(d) uploading the desired technical configuration from the client to the server and performing a full check on the viability of the desired technical configuration using full configuration information and full configuration programs on the server; and
(e) responsive to the full check, preparing and outputting on the client an electronic order report.
58. The computer-readable medium of claim 57 , wherein the computer-readable medium further comprises programs with functions for invocation by performing the acts of:
(f) in response to the act of performing a full check on the viability of the desired technical configuration on the server, allocating and downloading to the client additional limited configuration information; and
(g) receiving from the client a second desired technical configuration developed from client processing of the additional limited configuration information.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/302,973 US20060167988A1 (en) | 1999-03-29 | 2005-12-14 | Method and sytem for developing technical configurations |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/280,609 US7003548B1 (en) | 1999-03-29 | 1999-03-29 | Method and apparatus for developing and checking technical configurations of a product |
US11/302,973 US20060167988A1 (en) | 1999-03-29 | 2005-12-14 | Method and sytem for developing technical configurations |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/280,609 Continuation US7003548B1 (en) | 1999-03-29 | 1999-03-29 | Method and apparatus for developing and checking technical configurations of a product |
Publications (1)
Publication Number | Publication Date |
---|---|
US20060167988A1 true US20060167988A1 (en) | 2006-07-27 |
Family
ID=23073830
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/280,609 Expired - Fee Related US7003548B1 (en) | 1999-03-29 | 1999-03-29 | Method and apparatus for developing and checking technical configurations of a product |
US11/302,973 Abandoned US20060167988A1 (en) | 1999-03-29 | 2005-12-14 | Method and sytem for developing technical configurations |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/280,609 Expired - Fee Related US7003548B1 (en) | 1999-03-29 | 1999-03-29 | Method and apparatus for developing and checking technical configurations of a product |
Country Status (3)
Country | Link |
---|---|
US (2) | US7003548B1 (en) |
AU (1) | AU4041200A (en) |
WO (1) | WO2000058854A1 (en) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102007037493A1 (en) * | 2007-08-08 | 2009-02-12 | Volkswagen Ag | Vehicle-specific operating instructions providing system for e.g. car, has decision making system to identify components and parts in vehicle and include information modules of installed components and parts to provide instructions |
US20090106129A1 (en) * | 2007-10-19 | 2009-04-23 | Oracle International Corporation | Web Service Architecture for Product Version Retrieval |
US20090185500A1 (en) * | 2008-01-17 | 2009-07-23 | Carl Steven Mower | Virtualization of networking services |
US20090187970A1 (en) * | 2008-01-17 | 2009-07-23 | Carl Steven Mower | Networking as a service: delivering network services using remote appliances controlled via a hosted, multi-tenant management system |
US20090190498A1 (en) * | 2008-01-17 | 2009-07-30 | Carl Steven Mower | Decomposition of networking device configuration into versioned pieces each conditionally applied depending on external circumstances |
US20120203657A1 (en) * | 2011-02-08 | 2012-08-09 | International Business Machines Corporation | Configuring a product or service via social interactions |
US20120290275A1 (en) * | 2011-05-10 | 2012-11-15 | Cameleon Software | Device for formulating a definition of a version of a product |
US8423631B1 (en) | 2009-02-13 | 2013-04-16 | Aerohive Networks, Inc. | Intelligent sorting for N-way secure split tunnel |
Families Citing this family (67)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7003548B1 (en) * | 1999-03-29 | 2006-02-21 | Gelco Corporation | Method and apparatus for developing and checking technical configurations of a product |
US7206756B1 (en) * | 2000-01-14 | 2007-04-17 | Trilogy Development Group, Inc. | System and method for facilitating commercial transactions over a data network |
US7426481B1 (en) * | 2000-01-14 | 2008-09-16 | Versata Development Group, Inc. | Method and apparatus for sorting products by features |
US10055772B1 (en) | 2000-01-14 | 2018-08-21 | Versata Development Group, Inc. | Method and apparatus for product comparison |
US7130821B1 (en) * | 2000-01-14 | 2006-10-31 | Trilogy Development Group, Inc. | Method and apparatus for product comparison |
US7113919B1 (en) * | 2000-02-29 | 2006-09-26 | Chemdomain, Inc. | System and method for configuring products over a communications network |
US7069235B1 (en) | 2000-03-03 | 2006-06-27 | Pcorder.Com, Inc. | System and method for multi-source transaction processing |
US20050021862A1 (en) * | 2000-03-31 | 2005-01-27 | Dickens Coal Llc | Automatic selection of content-delivery provider using link mapping database |
US7908200B2 (en) | 2000-05-16 | 2011-03-15 | Versata Development Group, Inc. | Method and apparatus for efficiently generating electronic requests for quote |
US7346848B1 (en) | 2000-06-21 | 2008-03-18 | Microsoft Corporation | Single window navigation methods and systems |
US7191394B1 (en) * | 2000-06-21 | 2007-03-13 | Microsoft Corporation | Authoring arbitrary XML documents using DHTML and XSLT |
US6883168B1 (en) | 2000-06-21 | 2005-04-19 | Microsoft Corporation | Methods, systems, architectures and data structures for delivering software via a network |
US7000230B1 (en) | 2000-06-21 | 2006-02-14 | Microsoft Corporation | Network-based software extensions |
US7155667B1 (en) * | 2000-06-21 | 2006-12-26 | Microsoft Corporation | User interface for integrated spreadsheets and word processing tables |
US7398233B1 (en) * | 2001-06-15 | 2008-07-08 | Harris Interactive, Inc. | System and method for conducting product configuration research over a computer-based network |
US7890387B2 (en) | 2001-06-15 | 2011-02-15 | Harris Interactive Inc. | System and method for conducting product configuration research over a computer-based network |
AT500188B1 (en) * | 2001-09-14 | 2007-03-15 | Voest Alpine Ind Anlagen | COMPUTER-ASSISTED CONFIGURATOR FOR CONFIGURING AN INVESTMENT OF THE FOUNDRY INDUSTRY |
US7171344B2 (en) * | 2001-12-21 | 2007-01-30 | Caterpillar Inc | Method and system for providing end-user visualization |
DE10232659A1 (en) * | 2002-07-18 | 2004-02-05 | Siemens Ag | Process and configurator for creating a system concept from a number of system components |
US7188161B1 (en) | 2003-02-11 | 2007-03-06 | At&T Corp. | Method for configuring a network element at a customer premise via a mobile data terminal |
US7865577B1 (en) | 2003-02-11 | 2011-01-04 | At&T Intellectual Property Ii, L.P. | Enhanced network elements and a method for configuring the enhanced network element via a trusted configuration device |
US7370066B1 (en) * | 2003-03-24 | 2008-05-06 | Microsoft Corporation | System and method for offline editing of data files |
US7275216B2 (en) | 2003-03-24 | 2007-09-25 | Microsoft Corporation | System and method for designing electronic forms and hierarchical schemas |
US7415672B1 (en) * | 2003-03-24 | 2008-08-19 | Microsoft Corporation | System and method for designing electronic forms |
US7913159B2 (en) | 2003-03-28 | 2011-03-22 | Microsoft Corporation | System and method for real-time validation of structured data files |
US7296017B2 (en) * | 2003-03-28 | 2007-11-13 | Microsoft Corporation | Validation of XML data files |
US20040215695A1 (en) * | 2003-03-31 | 2004-10-28 | Sue-Chen Hsu | Method and system for implementing accurate and convenient online transactions in a loosely coupled environments |
US7406660B1 (en) | 2003-08-01 | 2008-07-29 | Microsoft Corporation | Mapping between structured data and a visual surface |
US7334187B1 (en) | 2003-08-06 | 2008-02-19 | Microsoft Corporation | Electronic form aggregation |
US8819072B1 (en) | 2004-02-02 | 2014-08-26 | Microsoft Corporation | Promoting data from structured data files |
US7430711B2 (en) * | 2004-02-17 | 2008-09-30 | Microsoft Corporation | Systems and methods for editing XML documents |
US7774620B1 (en) | 2004-05-27 | 2010-08-10 | Microsoft Corporation | Executing applications at appropriate trust levels |
US7692636B2 (en) | 2004-09-30 | 2010-04-06 | Microsoft Corporation | Systems and methods for handwriting to a screen |
US8487879B2 (en) | 2004-10-29 | 2013-07-16 | Microsoft Corporation | Systems and methods for interacting with a computer through handwriting to a screen |
US7712022B2 (en) * | 2004-11-15 | 2010-05-04 | Microsoft Corporation | Mutually exclusive options in electronic forms |
US7721190B2 (en) * | 2004-11-16 | 2010-05-18 | Microsoft Corporation | Methods and systems for server side form processing |
US8458467B2 (en) * | 2005-06-21 | 2013-06-04 | Cisco Technology, Inc. | Method and apparatus for adaptive application message payload content transformation in a network infrastructure element |
US7937651B2 (en) | 2005-01-14 | 2011-05-03 | Microsoft Corporation | Structural editing operations for network forms |
US7725834B2 (en) * | 2005-03-04 | 2010-05-25 | Microsoft Corporation | Designer-created aspect for an electronic form template |
US7673228B2 (en) | 2005-03-30 | 2010-03-02 | Microsoft Corporation | Data-driven actions for network forms |
US8010515B2 (en) * | 2005-04-15 | 2011-08-30 | Microsoft Corporation | Query to an electronic form |
US8167722B2 (en) * | 2005-05-11 | 2012-05-01 | Qualcomm Atheros, Inc | Distributed processing system and method |
US8200975B2 (en) | 2005-06-29 | 2012-06-12 | Microsoft Corporation | Digital signatures for network forms |
US7753773B2 (en) * | 2005-08-26 | 2010-07-13 | Igt | Gaming device having physical concentric symbol generators which are operable to provide a plurality of different games to a player |
US20070060373A1 (en) * | 2005-09-12 | 2007-03-15 | Bigfoot Networks, Inc. | Data communication system and methods |
US9455844B2 (en) * | 2005-09-30 | 2016-09-27 | Qualcomm Incorporated | Distributed processing system and method |
US8001459B2 (en) | 2005-12-05 | 2011-08-16 | Microsoft Corporation | Enabling electronic documents for limited-capability computing devices |
US20070174781A1 (en) * | 2006-01-25 | 2007-07-26 | Catalog Data Solutions | Parameter visualization |
US20070198666A1 (en) * | 2006-02-17 | 2007-08-23 | Caterpillar Inc. | Systems and methods for configuration management |
US8874780B2 (en) * | 2006-07-17 | 2014-10-28 | Qualcomm Incorporated | Data buffering and notification system and methods thereof |
EP2047373A4 (en) * | 2006-07-17 | 2017-03-29 | Qualcomm Incorporated | Host posing network device and method thereof |
WO2008091988A2 (en) * | 2007-01-26 | 2008-07-31 | Bigfoot Networks, Inc. | Communication socket state monitoring system and methods thereof |
KR101426575B1 (en) * | 2007-03-23 | 2014-08-05 | 퀄컴 인코포레이티드 | Distributed processing system and method |
US8687487B2 (en) * | 2007-03-26 | 2014-04-01 | Qualcomm Incorporated | Method and system for communication between nodes |
KR101540129B1 (en) | 2007-07-20 | 2015-07-28 | 퀄컴 인코포레이티드 | Remote access diagnostic device and methods thereof |
US8499169B2 (en) * | 2007-07-20 | 2013-07-30 | Qualcomm Incorporated | Client authentication device and methods thereof |
KR101561716B1 (en) * | 2007-11-29 | 2015-10-19 | 퀄컴 인코포레이티드 | Remote message routing device and methods thereof |
US9087164B2 (en) * | 2008-01-26 | 2015-07-21 | National Semiconductor Corporation | Visualization of tradeoffs between circuit designs |
US7966588B1 (en) | 2008-01-26 | 2011-06-21 | National Semiconductor Corporation | Optimization of electrical circuits |
US9524506B2 (en) | 2011-10-21 | 2016-12-20 | Bigmachines, Inc. | Methods and apparatus for maintaining business rules in a configuration system |
US8428985B1 (en) | 2009-09-04 | 2013-04-23 | Ford Motor Company | Multi-feature product inventory management and allocation system and method |
US8214313B1 (en) | 2009-09-04 | 2012-07-03 | Ford Motor Company | Turn rate calculation |
US8712741B2 (en) | 2010-06-28 | 2014-04-29 | National Semiconductor Corporation | Power supply architecture system designer |
US20140114794A1 (en) * | 2012-10-24 | 2014-04-24 | Glen Wolf | Mobile telephone automobile accessory selection application |
US9577877B2 (en) * | 2013-11-20 | 2017-02-21 | At&T Mobility Ii Llc | Method for managing device configurations using configuration templates |
US10185480B1 (en) * | 2015-06-15 | 2019-01-22 | Symantec Corporation | Systems and methods for automatically making selections in user interfaces |
JP6609272B2 (en) * | 2017-01-20 | 2019-11-20 | Spiber株式会社 | Clothing order management apparatus, information processing method, and program |
Citations (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4459663A (en) * | 1981-07-02 | 1984-07-10 | American Business Computer | Data processing machine and method of allocating inventory stock for generating work orders for producing manufactured components |
US5204821A (en) * | 1989-10-16 | 1993-04-20 | Toyota Jidosha Kabushiki Kaisha | Parts supply instruction apparatus |
US5260866A (en) * | 1991-09-17 | 1993-11-09 | Andersen Consulting | Expert configurator |
US5307260A (en) * | 1989-11-29 | 1994-04-26 | Hitachi, Ltd. | Order entry apparatus for automatic estimation and its method |
US5406475A (en) * | 1992-04-30 | 1995-04-11 | Olympus Optical Co., Ltd. | Data processing network having a plurality of independent subscribers |
US5644725A (en) * | 1989-11-20 | 1997-07-01 | Deutsche Financial Services | Computerized inventory monitoring and verification system and method |
US5710887A (en) * | 1995-08-29 | 1998-01-20 | Broadvision | Computer system and method for electronic commerce |
US5712989A (en) * | 1993-04-02 | 1998-01-27 | Fisher Scientific Company | Just-in-time requisition and inventory management system |
US5727164A (en) * | 1991-12-13 | 1998-03-10 | Max Software, Inc. | Apparatus for and method of managing the availability of items |
US5771172A (en) * | 1990-04-28 | 1998-06-23 | Kanebo, Ltd. | Raw materials ordering system |
US5774873A (en) * | 1996-03-29 | 1998-06-30 | Adt Automotive, Inc. | Electronic on-line motor vehicle auction and information system |
US5802497A (en) * | 1995-07-10 | 1998-09-01 | Digital Equipment Corporation | Method and apparatus for conducting computerized commerce |
US5826242A (en) * | 1995-10-06 | 1998-10-20 | Netscape Communications Corporation | Method of on-line shopping utilizing persistent client state in a hypertext transfer protocol based client-server system |
US5844554A (en) * | 1996-09-17 | 1998-12-01 | Bt Squared Technologies, Inc. | Methods and systems for user interfaces and constraint handling configurations software |
US5870719A (en) * | 1996-07-03 | 1999-02-09 | Sun Microsystems, Inc. | Platform-independent, usage-independent, and access-independent distributed quote configuraton system |
US5926817A (en) * | 1995-12-29 | 1999-07-20 | Mci Communications Corporation | Graphical user interface-based, client-server system and method for decision making applications |
US5935209A (en) * | 1996-09-09 | 1999-08-10 | Next Level Communications | System and method for managing fiber-to-the-curb network elements |
US5966697A (en) * | 1997-10-30 | 1999-10-12 | Clearcommerce Corporation | System and method for secure transaction order management processing |
US5999948A (en) * | 1997-09-03 | 1999-12-07 | 3Com Corporation | Dynamic configuration forms in network management software |
US6026431A (en) * | 1997-10-20 | 2000-02-15 | Micron Electronics, Inc. | System for providing a user with parameter-specific information |
US6029143A (en) * | 1997-06-06 | 2000-02-22 | Brightpoint, Inc. | Wireless communication product fulfillment system |
US6043815A (en) * | 1997-09-30 | 2000-03-28 | The United States Of America As Represented By The Secretary Of The Navy | Method for using guiscript and providing a universal client device |
US6049822A (en) * | 1997-10-31 | 2000-04-11 | Selectica, Inc. | Method for generating and updating knowledge-based configurators that are multi platform and multi language capable |
US6054983A (en) * | 1997-09-30 | 2000-04-25 | The United States Of America As Represented By The Secretary Of The Navy | Methods for operating a universal client device permitting interoperation between any two computers |
US6064982A (en) * | 1997-11-12 | 2000-05-16 | Netscape Communication Corporation | Smart configurator |
US6085198A (en) * | 1998-06-05 | 2000-07-04 | Sun Microsystems, Inc. | Integrated three-tier application framework with automated class and table generation |
US6125363A (en) * | 1998-03-30 | 2000-09-26 | Buzzeo; Eugene | Distributed, multi-user, multi-threaded application development method |
US6161125A (en) * | 1998-05-14 | 2000-12-12 | Sun Microsystems, Inc. | Generic schema for storing configuration information on a client computer |
US6286038B1 (en) * | 1998-08-03 | 2001-09-04 | Nortel Networks Limited | Method and apparatus for remotely configuring a network device |
US6292827B1 (en) * | 1997-06-20 | 2001-09-18 | Shore Technologies (1999) Inc. | Information transfer systems and method with dynamic distribution of data, control and management of information |
US6409602B1 (en) * | 1998-11-06 | 2002-06-25 | New Millenium Gaming Limited | Slim terminal gaming system |
US6438559B1 (en) * | 1999-04-02 | 2002-08-20 | Sybase, Inc. | System and method for improved serialization of Java objects |
US6463459B1 (en) * | 1999-01-22 | 2002-10-08 | Wall Data Incorporated | System and method for executing commands associated with specific virtual desktop |
US6522334B2 (en) * | 1999-04-28 | 2003-02-18 | Expertcity.Com, Inc. | Method and apparatus for providing remote access, control of remote systems and updating of display information |
US6609108B1 (en) * | 1999-11-05 | 2003-08-19 | Ford Motor Company | Communication schema of online system and method of ordering consumer product having specific configurations |
US6654726B1 (en) * | 1999-11-05 | 2003-11-25 | Ford Motor Company | Communication schema of online system and method of status inquiry and tracking related to orders for consumer product having specific configurations |
US6725257B1 (en) * | 1999-11-30 | 2004-04-20 | Chrome Data Corporation | Computationally efficient process and apparatus for configuring a product over a computer network |
USRE38762E1 (en) * | 1995-08-14 | 2005-07-19 | Dell Usa L.P. | Process for configuring software in a build-to-order computer system |
US7003548B1 (en) * | 1999-03-29 | 2006-02-21 | Gelco Corporation | Method and apparatus for developing and checking technical configurations of a product |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6125352A (en) * | 1996-06-28 | 2000-09-26 | Microsoft Corporation | System and method for conducting commerce over a distributed network |
US6535913B2 (en) * | 1997-10-31 | 2003-03-18 | Selectica, Inc. | Method and apparatus for use of an application state storage system in interacting with on-line services |
US6233609B1 (en) * | 1997-10-31 | 2001-05-15 | Selectica, Inc | Method and apparatus for remote interaction with and configuration of a wan-based knowledge base |
US6185600B1 (en) * | 1997-12-08 | 2001-02-06 | Hewlett-Packard Company | Universal viewer/browser for network and system events using a universal user interface generator, a generic product specification language, and product specific interfaces |
US6505204B1 (en) * | 1999-03-31 | 2003-01-07 | Internet Design Engineering Automation Center, Inc. | Engineering services coordinating system and method therefor |
US6513045B1 (en) * | 1999-11-17 | 2003-01-28 | International Business Machines Corporation | Method and an apparatus for providing cross product automated user assistance in the planning, configuration, and management of information systems |
-
1999
- 1999-03-29 US US09/280,609 patent/US7003548B1/en not_active Expired - Fee Related
-
2000
- 2000-03-29 WO PCT/US2000/008292 patent/WO2000058854A1/en active Application Filing
- 2000-03-29 AU AU40412/00A patent/AU4041200A/en not_active Abandoned
-
2005
- 2005-12-14 US US11/302,973 patent/US20060167988A1/en not_active Abandoned
Patent Citations (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4459663A (en) * | 1981-07-02 | 1984-07-10 | American Business Computer | Data processing machine and method of allocating inventory stock for generating work orders for producing manufactured components |
US5204821A (en) * | 1989-10-16 | 1993-04-20 | Toyota Jidosha Kabushiki Kaisha | Parts supply instruction apparatus |
US5644725A (en) * | 1989-11-20 | 1997-07-01 | Deutsche Financial Services | Computerized inventory monitoring and verification system and method |
US5307260A (en) * | 1989-11-29 | 1994-04-26 | Hitachi, Ltd. | Order entry apparatus for automatic estimation and its method |
US5771172A (en) * | 1990-04-28 | 1998-06-23 | Kanebo, Ltd. | Raw materials ordering system |
US5260866A (en) * | 1991-09-17 | 1993-11-09 | Andersen Consulting | Expert configurator |
US5727164A (en) * | 1991-12-13 | 1998-03-10 | Max Software, Inc. | Apparatus for and method of managing the availability of items |
US5406475A (en) * | 1992-04-30 | 1995-04-11 | Olympus Optical Co., Ltd. | Data processing network having a plurality of independent subscribers |
US5712989A (en) * | 1993-04-02 | 1998-01-27 | Fisher Scientific Company | Just-in-time requisition and inventory management system |
US5802497A (en) * | 1995-07-10 | 1998-09-01 | Digital Equipment Corporation | Method and apparatus for conducting computerized commerce |
USRE38762E1 (en) * | 1995-08-14 | 2005-07-19 | Dell Usa L.P. | Process for configuring software in a build-to-order computer system |
US5710887A (en) * | 1995-08-29 | 1998-01-20 | Broadvision | Computer system and method for electronic commerce |
US5826242A (en) * | 1995-10-06 | 1998-10-20 | Netscape Communications Corporation | Method of on-line shopping utilizing persistent client state in a hypertext transfer protocol based client-server system |
US5926817A (en) * | 1995-12-29 | 1999-07-20 | Mci Communications Corporation | Graphical user interface-based, client-server system and method for decision making applications |
US5774873A (en) * | 1996-03-29 | 1998-06-30 | Adt Automotive, Inc. | Electronic on-line motor vehicle auction and information system |
US5870719A (en) * | 1996-07-03 | 1999-02-09 | Sun Microsystems, Inc. | Platform-independent, usage-independent, and access-independent distributed quote configuraton system |
US5935209A (en) * | 1996-09-09 | 1999-08-10 | Next Level Communications | System and method for managing fiber-to-the-curb network elements |
US5844554A (en) * | 1996-09-17 | 1998-12-01 | Bt Squared Technologies, Inc. | Methods and systems for user interfaces and constraint handling configurations software |
US6029143A (en) * | 1997-06-06 | 2000-02-22 | Brightpoint, Inc. | Wireless communication product fulfillment system |
US6292827B1 (en) * | 1997-06-20 | 2001-09-18 | Shore Technologies (1999) Inc. | Information transfer systems and method with dynamic distribution of data, control and management of information |
US5999948A (en) * | 1997-09-03 | 1999-12-07 | 3Com Corporation | Dynamic configuration forms in network management software |
US6054983A (en) * | 1997-09-30 | 2000-04-25 | The United States Of America As Represented By The Secretary Of The Navy | Methods for operating a universal client device permitting interoperation between any two computers |
US6043815A (en) * | 1997-09-30 | 2000-03-28 | The United States Of America As Represented By The Secretary Of The Navy | Method for using guiscript and providing a universal client device |
US6026431A (en) * | 1997-10-20 | 2000-02-15 | Micron Electronics, Inc. | System for providing a user with parameter-specific information |
US5966697A (en) * | 1997-10-30 | 1999-10-12 | Clearcommerce Corporation | System and method for secure transaction order management processing |
US6049822A (en) * | 1997-10-31 | 2000-04-11 | Selectica, Inc. | Method for generating and updating knowledge-based configurators that are multi platform and multi language capable |
US6064982A (en) * | 1997-11-12 | 2000-05-16 | Netscape Communication Corporation | Smart configurator |
US6125363A (en) * | 1998-03-30 | 2000-09-26 | Buzzeo; Eugene | Distributed, multi-user, multi-threaded application development method |
US6161125A (en) * | 1998-05-14 | 2000-12-12 | Sun Microsystems, Inc. | Generic schema for storing configuration information on a client computer |
US6085198A (en) * | 1998-06-05 | 2000-07-04 | Sun Microsystems, Inc. | Integrated three-tier application framework with automated class and table generation |
US6286038B1 (en) * | 1998-08-03 | 2001-09-04 | Nortel Networks Limited | Method and apparatus for remotely configuring a network device |
US6409602B1 (en) * | 1998-11-06 | 2002-06-25 | New Millenium Gaming Limited | Slim terminal gaming system |
US6463459B1 (en) * | 1999-01-22 | 2002-10-08 | Wall Data Incorporated | System and method for executing commands associated with specific virtual desktop |
US7003548B1 (en) * | 1999-03-29 | 2006-02-21 | Gelco Corporation | Method and apparatus for developing and checking technical configurations of a product |
US6438559B1 (en) * | 1999-04-02 | 2002-08-20 | Sybase, Inc. | System and method for improved serialization of Java objects |
US6522334B2 (en) * | 1999-04-28 | 2003-02-18 | Expertcity.Com, Inc. | Method and apparatus for providing remote access, control of remote systems and updating of display information |
US6609108B1 (en) * | 1999-11-05 | 2003-08-19 | Ford Motor Company | Communication schema of online system and method of ordering consumer product having specific configurations |
US6654726B1 (en) * | 1999-11-05 | 2003-11-25 | Ford Motor Company | Communication schema of online system and method of status inquiry and tracking related to orders for consumer product having specific configurations |
US6725257B1 (en) * | 1999-11-30 | 2004-04-20 | Chrome Data Corporation | Computationally efficient process and apparatus for configuring a product over a computer network |
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102007037493A1 (en) * | 2007-08-08 | 2009-02-12 | Volkswagen Ag | Vehicle-specific operating instructions providing system for e.g. car, has decision making system to identify components and parts in vehicle and include information modules of installed components and parts to provide instructions |
DE102007037493B4 (en) | 2007-08-08 | 2023-11-02 | Volkswagen Ag | System and method for providing vehicle-specific operating instructions |
US8788370B2 (en) | 2007-10-19 | 2014-07-22 | Oracle International Corporation | Web service architecture for product version retrieval |
US20090106129A1 (en) * | 2007-10-19 | 2009-04-23 | Oracle International Corporation | Web Service Architecture for Product Version Retrieval |
US20090106287A1 (en) * | 2007-10-19 | 2009-04-23 | Oracle International Corporation | Web service interface for order management system |
US20090106398A1 (en) * | 2007-10-19 | 2009-04-23 | Oracle International Corporation | Web Service Architecture for Dynamic Rules Table Generation |
US20090106128A1 (en) * | 2007-10-19 | 2009-04-23 | Oracle International Corporation | Web Service Architecture for Product Selection and Dynamic Catalog Generation |
US20090106402A1 (en) * | 2007-10-19 | 2009-04-23 | Oracle International Corporation | Web Service Architecture for Product Configuration |
US9031991B2 (en) | 2007-10-19 | 2015-05-12 | Oracle International Corporation | Web service interface for order management system |
US9021064B2 (en) * | 2007-10-19 | 2015-04-28 | Oracle International Corporation | Web service architecture for product configuration |
US8996606B2 (en) | 2007-10-19 | 2015-03-31 | Oracle International Corporation | Web service architecture for dynamic rules table generation |
US20090185500A1 (en) * | 2008-01-17 | 2009-07-23 | Carl Steven Mower | Virtualization of networking services |
US9503354B2 (en) | 2008-01-17 | 2016-11-22 | Aerohive Networks, Inc. | Virtualization of networking services |
US20090187970A1 (en) * | 2008-01-17 | 2009-07-23 | Carl Steven Mower | Networking as a service: delivering network services using remote appliances controlled via a hosted, multi-tenant management system |
US9762442B2 (en) | 2008-01-17 | 2017-09-12 | Aerohive Networks, Inc. | Virtualization of networking services |
US8763084B2 (en) | 2008-01-17 | 2014-06-24 | Aerohive Networks, Inc. | Networking as a service |
US8347355B2 (en) | 2008-01-17 | 2013-01-01 | Aerohive Networks, Inc. | Networking as a service: delivering network services using remote appliances controlled via a hosted, multi-tenant management system |
US8259616B2 (en) * | 2008-01-17 | 2012-09-04 | Aerohive Networks, Inc. | Decomposition of networking device configuration into versioned pieces each conditionally applied depending on external circumstances |
US20090190498A1 (en) * | 2008-01-17 | 2009-07-30 | Carl Steven Mower | Decomposition of networking device configuration into versioned pieces each conditionally applied depending on external circumstances |
US9143466B2 (en) | 2009-02-13 | 2015-09-22 | Aerohive Networks, Inc. | Intelligent sorting for N-way secure split tunnel |
US9762541B2 (en) | 2009-02-13 | 2017-09-12 | Aerohive Networks, Inc. | Intelligent sorting for N-way secure split tunnel |
US10116624B2 (en) | 2009-02-13 | 2018-10-30 | Aerohive Networks, Inc. | Intelligent sorting for N-way secure split tunnel |
US10701034B2 (en) | 2009-02-13 | 2020-06-30 | Extreme Networks, Inc. | Intelligent sorting for N-way secure split tunnel |
US8423631B1 (en) | 2009-02-13 | 2013-04-16 | Aerohive Networks, Inc. | Intelligent sorting for N-way secure split tunnel |
US20120203657A1 (en) * | 2011-02-08 | 2012-08-09 | International Business Machines Corporation | Configuring a product or service via social interactions |
US8527366B2 (en) * | 2011-02-08 | 2013-09-03 | International Business Machines Corporation | Configuring a product or service via social interactions |
US20120290275A1 (en) * | 2011-05-10 | 2012-11-15 | Cameleon Software | Device for formulating a definition of a version of a product |
Also Published As
Publication number | Publication date |
---|---|
US7003548B1 (en) | 2006-02-21 |
WO2000058854A1 (en) | 2000-10-05 |
AU4041200A (en) | 2000-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7003548B1 (en) | Method and apparatus for developing and checking technical configurations of a product | |
AU737572C (en) | Apparatus and method for automated aggregation and delivery of and transactions involving electronic personal information or data | |
US7500178B1 (en) | Techniques for processing electronic forms | |
TW552537B (en) | System and method for integrating public and private data | |
US7350139B1 (en) | System and method for utilizing a drag and drop technique to complete electronic forms | |
US7343309B2 (en) | Method and system for generating insurance premium quotes by multiple insurance vendors in response to a single user request | |
US6871220B1 (en) | System and method for distributed storage and retrieval of personal information | |
US8005755B2 (en) | System and method for syndicated transactions | |
AU2003204104B2 (en) | Use of Extensible Markup Language in a System and Method for Influencing a Position on a Search Result List Generated by a Computer Network Search Engine | |
EP1084474B1 (en) | Universal forms engine | |
US20120310825A1 (en) | System and Method for Syndicated Transactions | |
US20010029528A1 (en) | Self-service terminal | |
WO2002005105A1 (en) | Autonomous browsing agent | |
WO2001046873A1 (en) | Method and apparatus employing a proxy server for modifying an html document supplied by a web server to a web client | |
WO2000026837A1 (en) | Obtaining and processing reservation information | |
EP1069514B1 (en) | System and method for automated access to personal information | |
WO2001018664A9 (en) | System and method of permissive data flow and application transfer | |
JP2001142905A (en) | System and method for automatically accessing personal information | |
JP2001147893A (en) | Device and method for automated aggregation, device and method for delivering electronic personal information or data and transaction including electronic personal information or data | |
WO2001086382A2 (en) | Methods and systems for call processing utilizing a uniform resource locator | |
JP2001147892A (en) | Device and method for automated aggregation, device and method for delivering electronic personal information or data and transaction including electronic personal information or data | |
WO2001086543A1 (en) | System and method for syndicated transactions | |
MXPA00005913A (en) | Apparatus and method for automated aggregation and delivery of electronic personal information or data | |
CA2308246A1 (en) | System and method for automated access to personal information | |
AU4720900A (en) | System and method for automated access to personal information |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |