Source: https://patents.google.com/patent/WO1999046707A1/en
Timestamp: 2019-02-17 20:44:01
Document Index: 371873765

Matched Legal Cases: ['Application No. 08', 'Application No. 08', 'art 301', 'art 305', 'art 303', 'art 303', 'art 303', 'art 305', 'art 307', 'Application No. 08']

WO1999046707A1 - Method and system for integrating transaction mechanisms over multiple internet sites - Google Patents
WO1999046707A1
WO1999046707A1 PCT/US1999/004442 US9904442W WO9946707A1 WO 1999046707 A1 WO1999046707 A1 WO 1999046707A1 US 9904442 W US9904442 W US 9904442W WO 9946707 A1 WO9946707 A1 WO 9946707A1
PCT/US1999/004442
1998-03-09 Priority to US60/077,322 priority
1998-03-11 Priority to US60/077,655 priority
1998-03-20 Priority to US09/066,739 priority
1998-03-20 Priority to US60/066,523 priority
1999-03-01 Application filed by Amazon.Com, Inc. filed Critical Amazon.Com, Inc.
1999-09-16 Publication of WO1999046707A1 publication Critical patent/WO1999046707A1/en
A method for effecting transactions across multiple vendors in an integrated environment, wherein the user may purchase each of a plurality of items the user finds independent of the vendors. The user's selections (180) are received from the user and mapped to selected set of vendors. When the user is finished, she invokes a check-out application to fill in one or many order entry forms (140) for each of the relevant vendors (139) whose goods the user selected during the course of shopping. The check-out application (110) uses common information (170), such as name, address and credit card number, previously provided by the user in order to fill in the order entry forms (140) for each vendor (139) without requiring the user to fill in these forms. Finally, the check-out application (110) tracks confirmation numbers in a common information store.
COPYRIGHT NOTICE, A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
CROSS-REFERENCE TO RELATED APPLICATIONS This application claims priority from the following U.S. Provisional
Applications, the disclosure of which, including all appendices and all attached documents, is incorporated by reference in its entirety for all purposes:
U.S. Provisional Patent Application Serial No. , Anand
Rajaraman, et. al. entitled, "Method and System for Integrating Transaction Mechanisms Over Multiple Internet Sites, " filed March 9, 1998, (attorney docket number 17907-
15.0); and
Rajaraman, et. al. entitled, "Automatically Filling Forms, " filed March 11 , 1998, (attorney docket number 17907-16.0). The following two commonly-owned copending applications, including this one, are being filed concurrently and the other one is hereby incorporated by reference in its entirety for all purposes:
U.S. Patent Application Serial No. , Ashish Gupta, et. al. entitled, "Method for Integrating Transaction Mechanisms Over Multiple Internet Sites" (attorney docket number 17907-15.10); and
U.S. Patent Application Serial No. , Ashish Gupta, et. al. entitled, "Method for Automatically Filing Forms in an Integrated Transaction Mechanism Over Multiple Internet Sites, " (attorney docket number 17907-16.10). 2
Copending U.S. Patent Application Serial No. 08/724,943, in the name of Ashish Gupta, et. al. , entitled "Method and App'aratus for Structuring the Querying and Interpretation of Semistructured Information, " relates to information retrieval and interpretation from disparate semistructured information resources; and
Copending U.S. Patent Application No. 08/995,868, in the name of Ashish Gupta, et. al. , entitled "Method for Data Gathering Around Forms and Search Barriers, " which relates to submitting forms to gather data.
BACKGROUND OF THE INVENTION This invention relates to d e area of internet based commerce. Specifically, this invention enables a method and system for interacting with multiple web sites in order to effect commercial transactions on the web. The process of interacting with the web through a browser may be broadly conceptualized as two types of interactions. The first kind of interaction is based on a user finding information and collating it without subsequent interaction with the provider of the information. This is similar to reading a magazine or researching a library. The second kind of interaction is based upon a user requesting goods or services from the provider of the information on the web. Electronic commerce is based upon the confluence of both these activities.
In a co-owned, co-pending U.S. Patent Application Serial No. 08/724,923, entitled "Method and Apparatus for Structuring the Querying and Interpretation of Semistructured Information, " Ashish Gupta, et. al. introduced Virtual Database Management System ("NDBMS") technology in which structure is added to semi- structured data, thereby making the data searchable using known techniques. Further, 3
NDBMS technology enables data from multiple sites to be integrated together and made searchable via a common mechanism. This technology is applicable to non-web sources such as legacy data sources in Relational Database Management Systems ("RDBMS"), text files, feeds in systems like SII, word and other text processor documents, UNIX file systems, and so forth. The technology's broad applicability in integrating a multiplicity of sources has been proven in the market in publicly available services.
Using the search methods described in U.S. Patent Application No. 08/724,923, the user can find the best price for any item available from many vendors. The user is able to seamlessly query multiple different vendor data to make a decision, simplifying the decision process. However, purchasing the items still requires that the user interact with multiple web site "shopping carts, " and fill in the required information multiple times. For example, the user must give her name, address, credit card number and click the "Buy it" button for each of the vendors and deal with their order entry forms.
SUMM^Y OF THE INVENTION 4
A key advantage of systems according to the present invention is that the user does not have to fill in multiple forms in order to effect internet transactions. A further advantage of the present invention is that the user does not have to interact with multiple dissimilar interfaces.
Fig. 1C depicts a functional perspective of the components of a particular embodiment of the invention; Fig. ID depicts a plurality of relationships among data in accordance with a particular embodiment of the invention;
Figs. 2 A - 2D depict representative forms in accordance with a particular embodiment of the invention; 5
The present invention provides a method for interacting with multiple web sites in order to effect commercial transactions on the web. Systems according to the present invention enable online shoppers to make selections and purchase products from a plurality of vendor sources using a common interface program. A particular embodiment according to the invention has been reduced to practice and will be made available under the trade name "AutoScribe. "™ Table 1 provides a definitional list of certain terms used herein:
Transformation A function which when applied to user meta data yields a value to Function fill into an attribute of a form.
1.1 Hardware Overview The method for interacting with multiple web sites in order to effect commercial transactions on the web is implemented in the Perl and Java programming languages and is operational on a computer system such as shown in Fig. 1A. This invention may be implemented in a client-server environment, but a client-server environment is not essential. Fig. 1A shows a conventional client-server computer system which includes a server 20 and numerous clients, one of which is shown as client 25. The use of the term "server" is used in the context of the invention, wherein the server receives queries from (typically remote) clients, does substantially all the processing necessary to formulate responses to the queries, and provides these responses to the clients. However, server 20 may itself act in the capacity of a client when it accesses remote databases located at another node acting as a database server. 6
Client 25 has the same general configuration, although typically with less storage and processing capability. Thus, while the client computer could be a terminal or a low-end personal computer, the server computer is generally a high-end workstation or mainframe, such as a SUN SPARC™ server. Corresponding elements and subsystems in the client computer are shown with corresponding, but primed, reference numerals. The user interface input devices typically includes a keyboard and may further include a pointing device and a scanner. The pointing device may be an indirect pointing device such as a mouse, trackball, touchpad, or graphics tablet, or a direct pointing device such as a touchscreen incorporated into the display. Other types of user interface input devices, such as voice recognition systems, are also possible.
The memory subsystem typically includes a number of memories including a main random access memory (RAM) for storage of instructions and data during program execution and a read only memory (ROM) in which fixed instructions are stored. In the case of Macintosh-compatible personal computers the ROM would include 7 portions of the operating system; in the case of IBM-compatible personal computers, this would include the BIOS (basic input/output system).
Bus subsystem 32 is shown schematically as a single bus, but a typical system has a number of buses such as a local bus and one or more expansion buses (e.g. , ADB, SCSI, ISA, EISA, MCA, NuBus, or PCI), as well as serial and parallel ports. Network connections are usually established through a device such as a network adapter on one of these expansion buses or a modem on a serial port. The client computer may be a desktop system or a portable system.
The user interacts with the system using interface devices 37' (or devices 37 in a standalone system). For example, client queries are entered via a keyboard, communicated to client processor 30', and thence to network interface 40' over bus subsystem 32' . The query is then communicated to server 20 via network connection 45. Similarly, results -of the query are communicated from the server to the client via network connection 45 for output on one of devices 37' (say a display or a printer), or may be stored on storage subsystem 35' . 8
1.2 Software .Architecture
Client 25 in Fig. IB possesses software implementing functional processes operatively disposed in its program and data storage as indicated by block 35a' in Fig. 1A. TCP/IP stack 44', works in conjunction with Operating System 42' to communicate with processes over a network or serial connection attaching Client 25 to internet 45. Software implementing the function of a web browser 46' executes concurrently and cooperatively with other processes in client 25 to make requests of server 20 for data objects 50 and 51. The user of the client may interact via the web browser 46' to make such queries of the server 20 via internet 45 and to view responses from the server 20 via internet 45 on the web browser 46'. Fig. 1C depicts a functional perspective of the software components resident in storage subsystem 35' of client 25 or storage subsystem 35 server 20, which cooperatively perform automated transaction processing in accordance with a particular embodiment of the invention. Transaction integrator 100 performs processing of information in conjunction with one or more wrapper programs 140, 150 and 160 configured to specific merchandising sites 139, 149 and 159. Automated form filling component 110 interacts with User Meta-database 170 and User Selection database 180 in order to perform the filling in of online forms presented by various shopping sites. Transaction integrator 100 controls responding to the user's requests to search for 9 various merchandise, obtaining information from the user about the user's merchandise selections from the search results and building information into the User Meta-database 170 and the User Selection database 180.
Fig. ID depicts a plurality of relationships between data objects in the User Meta-database 170. Relationship 60 associates a form finding criterion, here a form URL 64, with a form identifier, here a form name 62. Relationship 70 associates a pattern for matching 74 with a form name 72. Relationship 80 associates a form name 82 with a property name 86, an attribute name 84 and a transform function 88. Attribute 84 is a field in a form which we would like to fill in automatically, for example a space for the user's name. Property 86 is a piece of user meta data, stored in User Meta- database 170, for example, a name of a user. Transformation function 88 converts a property into a value for filling in a field in a form. For example, consider a form that has an attribute called "name" which is of a type "last name, first name. " Further, consider user meta data that unique to each user comprising a first property, "first-name," and a second property, "last-name. " A value to fill into the form for the
Finally, relationship 90 associates a User ID 92 with a form ID 94, and a plurality of property- value tuples 96, 98 and 99.
2.0 On-line Transactions Forms Figs. 2 A and 2B depict representative forms for transactions with online merchants. The usual method of consummating a purchase order is for the user to fill in the fields in a series of forms with the required information and click a "submit" button to complete the purchase. Fig. 2A depicts a registration form 201 , having a plurality of fields in which the user enters information. The user must enter her name in a name field 202, her mailing information in address fields 204, 206, 208, 210 and 212, her telephone number in a telephone number field 214, then click a "done" button 216 to submit form 201 to the server 20. Fig. 2B depicts a shipping and account information form 203, having a plurality of fields in which the user must enter information. The 10 user enters her desired method of shipment by selecting the corresponding button in shipment box 220. Next, she indicates the type of account she wishes to establish using buttons 222 and 224. Then, she enters her payment information in credit card type button 226, card number field 228, expiration field 230, name field 232 and issuing bank field 234. Thus, it is not one form that is filled in, but a series of forms.
Fig. 3A depicts a flowchart 301 of the process steps in executing an automated transaction. In a step 312, the user performs a search for items of interest using a search program as is known in the art. Then, in a step 314, a result page depicting the results of the search performed in step 312, such as result page 205 of Fig. 2C, is displayed to the user. Next, in a step 316, the user makes a selection of an item from the result page using a mouse, or other method. Next, in a step 318, a transaction is initiated with a site corresponding to a vendor offering the merchandise selected by the user. For example, in the sample result page 205, when a user clicks a "Buy it" link 240, a request to buy the selected product is initiated at the site of the vendor corresponding to the item selected by the user. Processing for this step is depicted in greater detail in a flowchart 305 in Fig. 3C.
Multiple purchases across different vendors are integrated based upon the concept of a "virtual check-out counter," from which all transactions are consummated. The virtual checkout counter enables the user to make payments at a single point even though returns and product question transactions are handled by individual vendor sites.
Fig. 3B depicts a flowchart 303 of steps in virtual check-out counter processing. In a step 322, the user performs a search for items of interest using a search program as is .known in the art. Then, in a step 324, a result page depicting the results of the search performed in step 322, such as result page 206 of Fig. 2D, is displayed to the user. Next, in a step 325, the user's selection of an item from the result page 206 by using a mouse to click an "Add it" icon 242, or other method, is added to a list of items to purchase. Then, in a step 326, the list is parsed for selection data. Next, in a step 328, selection data for the purchase request is stored into the User Selection database 180. 11
Next, in a decisional step 330, a deteimination is made whether the user has finished mal ing selections. If the user makes further selections, the processing depicted by steps 322 - 330 of flowchart 303 is performed for each selection made by the user. Otherwise, responsive to the user's request to "check out, " in a decisional step 332, a determination is made if any selections made by the user require transaction processing. In a step 334, transaction processing is performed for each selection made by the user in steps 322-330 of flowchart 303. Flowchart 305 of Fig. 3C depicts the transaction processing of step 334 in greater detail. Otherwise, when no further user selections remain, processing returns.
Forms associated with a vendor's site corresponding to product selections made by a user are automatically filled in with the information stored in User Meta- database 170 and User Selection database 180, such as the name, credit card number, and address of a user, using relationships 60, 70, 80 and 90 depicted in Fig. ID. Fig. 3D depicts a flowchart 307 of the process steps for automated form filing according to a particular embodiment of the invention. In a step 350, the appropriate form identifier for a particular vendor is determined based upon a selectable criterion using relationship 60. Relationship 60 associates the criterion of form URL 64 with a form identifier, form name 62. Next, in a step 352, the form identifier determined in step 350 is used to determine one or more corresponding matching patterns using relationship 70. 12
Relationship 70 associates form identifier form name 72, which will be the form identifier determined in step 350, with pattern 74. Next, in a step 354, pattern 74 is matched against a page web page containing a form of interest which is to be filled in. In a decisional step 356, if no match is found with the patterri 74, then an error condition is returned, so that a system administrator can be made aware that there is a form for which no matching pattern exists. Otherwise, in a step 358, the page is parsed in order to obtain a plurality of attributes. Then, in a step 359, properties are identified using relationship 80 to identify those required to fill in the target form. In a step 360, a value is obtained for each property using relationship 90 by matching the form identifier to a form name 94 and reading property - value pairs 96, 98 and 99. Next, in a step 362, the properties determined in step 358 are transformed using relationship 80 to yield values for each attribute in the target form by applying transformation function 88 corresponding to property name 86 matching the property of interest in relationship 80 for the particular form identifier form name 82. The result is used to fill in the attribute corresponding to attribute name 84. Finally, in a step 364, the target form is filled in with property values obtained in step 362. Then processing returns.
According to this embodiment, a wrapper program is constructed for each vendor to capture the logic for the forms that need to be filled to consummate a purchase. A second wrapper program is constructed for each site to perform information-gathering. The transaction- wrapper exercises different parts and different functionality of the site than the information-gathering wrapper. Any site can have multiple wrappers built for it, each of which gets different information or performs a different function. Constructing wrappers which fill in and submit forms is described in greater detail in a co-owned, co-pending U.S. Patent Application No. 08/995,868, in the name of Ashish Gupta, et. al., entitled "Method for Data Gathering Around Forms and Search Barriers," which is incorporated herein by reference in its entirety for all purposes.
According to this embodiment, the user's clicking the "Buy it" link causes the execution of the transaction-wrapper that fills the correct forms in the correct order, ultimately bringing the user to the point where the user can confirm the transaction. All intermediate steps of filling forms with user-specific information is performed by the wrapper.
In conclusion the present invention provides for a method of conducting tr.ansaction with multiple vendor sites using a common interface. An advantage of the present invention is that there is a single point of user profile information for submission. A further advantage of the present invention is that it enables the user to buy a collection of items by a given date at the minimum cost, including tax and shipping charges. A yet further advantage of the present invention is that it employs a single point to check out instead of multiple points thus saving time and money for everyone concerned. Other embodiments of the present invention and its individual components will become readily apparent to those skilled in the art from the foregoing detailed description. As will be realized, the invention is capable of other and different embodiments, and its several details are capable of modifications in various obvious respects, all without departing from the spirit .and the scope of the present invention. Accordingly, the drawings .and detailed description are to be regarded as illustrative in nature and not as-restrictive. It is therefore not intended that the invention be limited except as indicated by the appended claims.
WHAT IS CLAIMED IS: 1. A method for effecting transactions across a plurality of vendors in an internet environment, wherein a user may purchase each of a plurality of items the user finds independent of the vendors, comprising the steps: providing to the user a plurality of items for purchase, said plurality of items drawn from said plurality of vendors; receiving from said user a selection of goods to purchase; mapping said selection of goods to purchase to a selected set of vendors; filling order entry forms corresponding to each of said selected set of vendors whose goods the user selected with previously provided information; and submitting said order entry forms to said corresponding vendors.
3. The method of claim 1 wherein said providing to the user a plurality of items for purchase further comprises: searching said internet environment for said plurality of items matching a set of user specified criterion; and displaying a result screen of said plurality of items matching said set of user specified criterion.
4. The method of claim 1 further comprising the step of: passing control to the user after filling order entry forms, wherein the user can perform a confirming operation prior to the submitting step.
5. The method of claim 1 further comprising the step of: tracking confirmation information returned by said corresponding vendors in response to the submitting step.
6. A method for effecting transactions across a plurality of vendors in an internet environment, wherein a user may purchase each of a plurality of items the user finds independent of the vendors, comprising the steps: providing to the user a plurality of items for purchase, said plurality of items drawn from said plurality of vendors; receiving from said user a selection of goods to purchase; mapping said selection of goods to purchase to a selected set of vendors; filling order entry forms corresponding to each of said selected set of vendors whose goods the user selected with previously provided information; passing control to the user after filling order entry forms, wherein the user can perform a confirming operation prior to the submitting step; submitting said order entry forms to said corresponding vendors; and tracking confirmation information returned by said corresponding vendors in response to the submitting step.
7. A method for effecting transactions across a plurality of nodes, wherein a user may make a plurality of transactions with said plurality of nodes, comprising the steps: providing to the user a plurality of transactions from which to choose, said plurality of transactions drawn from said plurality of nodes; receiving from said user a selection from said plurality of transactions; mapping said selection of to a selected set of said plurality of nodes; filling forms corresponding to each of said selected set of nodes selected by the user; and submitting said forms to said corresponding nodes.
11. A system for effecting transactions across a plurality of vendors in an internet environment, wherein a user may purchase each of a plurality of items the user finds independent of the vendors, comprising: at least one client, in conversation with at least one server in order to effect: 16 providing to the user a plurality of items for purchase, said plurality of items drawn from said plurality of vendors; receiving from said user a selection of goods to purchase; mapping said selection of goods to purchase to a selected set of vendors; filling order entry forms corresponding to each of said selected set of vendors whose goods the user selected with previously provided information; and submitting said order entry forms to said corresponding vendors.
13. The system of claim 11 wherein said providing to the user a plurality of items for purchase further comprises: searching said internet environment for said plurality of items matching a set of user specified criterion; and displaying a result screen of said plurality of items matching said set of user specified criterion.
14. The system of claim 11 wherein said server and said client are further disposed to: passing control to the user after filling order entry forms, wherein the user can perform a confirming operation prior to the submitting step.
15. The system of claim 11 said server and said client are further disposed to: tracking confirmation information returned by said corresponding vendors in response to the submitting step.
16. A computer programming product for effecting transactions across a plurality of vendors in an internet environment, wherein a user may purchase each of a plurality of items the user finds independent of the vendors, comprising: a computer readable storage medium; code for providing to the user a plurality of items for purchase, said plurality of items drawn from said plurality of vendors; code for receiving from said user a selection of goods to purchase; code for mapping said selection of goods to purchase to a selected set of vendors; code for filling order entry forms corresponding to each of said selected set of vendors whose goods the user selected with previously provided information; and code for submitting said order entry forms to said corresponding vendors.
18. The computer programming product of claim 16 wherein said providing to the user a plurality of items for purchase further comprises: code for searching said internet environment for said plurality of items matching a set of user specified criterion; and code for displaying a result screen of said plurality of items matching said set of user specified criterion.
19. The computer programming product of claim 16 wherein further comprising: code for passing control to the user after filling order entry forms, wherein the user can perform a confirming operation prior to the submitting step.
20. The computer programming product of claim 16 further comprising: code for tracking confirmation information returned by said corresponding vendors in response to the submitting step.
PCT/US1999/004442 1998-03-09 1999-03-01 Method and system for integrating transaction mechanisms over multiple internet sites WO1999046707A1 (en)
US60/066,523 1998-03-20
WO1999046707A1 true WO1999046707A1 (en) 1999-09-16
AU (2) AU2885099A (en)
1999-03-01 AU AU28850/99A patent/AU2885099A/en not_active Abandoned
1999-03-01 AU AU27994/99A patent/AU2799499A/en not_active Abandoned
1999-03-01 WO PCT/US1999/004442 patent/WO1999046707A1/en active Application Filing
1999-03-01 WO PCT/US1999/004489 patent/WO1999046701A1/en active Application Filing
AU2885099A (en) 1999-09-27
WO1999046701A1 (en) 1999-09-16
AU2799499A (en) 1999-09-27