Easy To Use Patents Search & Patent Lawyer Directory

At Patents you can conduct a Patent Search, File a Patent Application, find a Patent Attorney, or search available technology through our Patent Exchange. Patents are available using simple keyword or date criteria. If you are looking to hire a patent attorney, you've come to the right place. Protect your idea and hire a patent lawyer.

Communications between participants over a communications link are proxied
by an intermediary, such as an Integrated Order Mechanism (IOM).
Participants interact with each other through the IOM. The IOM may be
transparent to the participants such that they are not aware that the IOM
is involved in processing communications. For example, in the context of
a transaction by a customer making a purchase from a merchant over the
Internet, the IOM facilitates the processing of transactions by
processing requests from both the customer and the merchant. Neither the
customer nor the merchant may be aware that the transactions are being
handled by the IOM. Transactions may be tracked using addresses in a
communications network. Address identifiers may be used to reduce the
size of the addresses.

1. A method for modifying addresses in a communications network, the
method comprising the computer-implemented steps of: receiving, at an
intermediary, a request for an object that is associated with a server;
generating, at the intermediary, a combined address that identifies both
an intermediary address associated with the intermediary and an object
address that is determined based on the request; determining whether the
combined address satisfies a particular condition; and when the combined
address does not satisfy the particular condition, performing the steps
of: substituting at least a portion of the combined address with one or
more address identifiers to create a modified combined address, wherein
the modified combined address satisfies the particular condition,
generating, at the intermediary, a modified request that is based upon
the request and that includes the modified combined address, and sending
the modified request to the server.

2. The method of claim 1, wherein the combined address satisfies the
particular condition if a first size of the combined address does not
exceed a specified size, wherein the combined address does not satisfy
the particular condition if the first size of the combined address does
exceed the specified size, and wherein the modified combined address
satisfies the particular condition if a second size of the modified
combined address does not exceed the specified size.

3. The method of claim 1, wherein the step of substituting at least the
portion of the combined address data with one or more address identifiers
comprises the step of: substituting at least one address identifier for
the intermediary address.

4. The method of claim 1, wherein the step of substituting at least the
portion of the combined address data with one or more address identifiers
comprises the step of: substituting at least one address identifier for
the object address.

5. The method of claim 1, further comprising the step of: selecting the
one or more address identifiers based upon at least one attribute of the
request for the object.

6. The method of claim 1, further comprising the step of: selecting the
one or more address identifiers based upon at least one attribute of the
object.

7. The method of claim 1, further comprising the step of: selecting the
one or more address identifiers based upon at least one attribute of the
server.

8. The method of claim 1, wherein the request is received from a first
participant of a transaction, wherein the transaction is between the
first participant and a second participant, and wherein the second
participant is associated with the server.

9. The method of claim 8, wherein the first participant is a customer, the
second participant is a merchant, and the transaction is a purchase by
the customer from the merchant via a shopping application associated with
the intermediary.

10. A method for analyzing addresses, the method comprising the
computer-implemented steps of: receiving a modified combined address,
wherein the modified combined address is based on a combined address that
does not satisfy a particular condition, wherein the modified combined
address includes one or more address identifiers such that the modified
combined address does satisfy the particular condition, and wherein the
one or more address identifiers represents at least a portion of the
combined address; and interpreting the one or more address identifiers
based upon a mapping between the one or more address identifiers and the
portion of the combined address that is represented by the one or more
address identifiers.

11. A method for determining whether network communications are associated
with an intermediary, the method comprising the computer-implemented
steps of: causing first communication data for one or more communications
associated with the intermediary to be stored at a location associated
with the intermediary; receiving second communication data associated
with a particular communication; and comparing the first communication
data to the second communication data to determine whether the particular
communication is associated with the intermediary.

12. The method of claim 11, wherein the second communication data is
received via one or more tracer images.

13. The method of claim 11, wherein the first communication data is stored
via one or more Internet cookies.

14. The method of claim 13, wherein the one or more Internet cookies are
set to expire after a specified period of time.

15. The method of claim 11, wherein the particular communication is
associated with a purchase of a product by a customer from a merchant,
and wherein the purchase is facilitated by a shopping application
associated with the intermediary.

16. The method of claim 11, wherein the first communication data for each
of the one or more communications includes at least a customer
identifier, a merchant identifier, and a product identifier, the second
communication data associated with the particular communication includes
at least a particular customer identifier, a particular merchant
identifier, and a particular product identifier, and wherein the step of
comparing the first communication data and the second communication data
comprises the step of: determining whether the particular customer
identifier, the particular merchant identifier, and the particular
product identifier match the customer identifier, the merchant
identifier, and the product identifier that are included in the first
communication data for each of the one or more communications associated
with the intermediary.

17. The method of claim 11, wherein the step of causing first
communication data to be stored at the location associated with the
intermediary is performed in response to a request from a participant in
the one or more communications.

18. A computer-readable medium for modifying addresses in a communications
network, the computer-readable medium carrying one or more sequences of
one or more instructions which, when executed by one or more processors,
cause the one or more processors to perform the steps of: receiving, at
an intermediary, a request for an object that is associated with a
server; generating, at the intermediary, a combined address that
identifies both an intermediary address associated with the intermediary
and an object address that is determined based on the request;
determining whether the combined address satisfies a particular
condition; and when the combined address does not satisfy the particular
condition, performing the steps of: substituting at least a portion of
the combined address with one or more address identifiers to create a
modified combined address, wherein the modified combined address
satisfies the particular condition, generating, at the intermediary, a
modified request that is based upon the request and that includes the
modified combined address, and sending the modified request to the
server.

19. The computer-readable medium of claim 18, wherein the combined address
satisfies the particular condition if a first size of the combined
address does not exceed a specified size, wherein the combined address
does not satisfy the particular condition if the first size of the
combined address does exceed the specified size, and wherein the modified
combined address satisfies the particular condition if a second combined
address does not exceed the specified size.

20. The computer-readable medium of claim 18, wherein the step of
substituting at least the portion of the combined address data with one
or more address identifiers further comprises instructions which, when
executed by one or more processors, cause the one or more processors to
carry out the step of: substituting at least one address identifier for
the intermediary address.

21. The computer-readable medium of claim 18, wherein the step of
substituting at least the portion of the combined address data with one
or more address identifiers further comprises instructions which, when
executed by one or more processors, cause the one or more processors to
carry out the step of: substituting at least one address identifier for
the object address.

22. The computer-readable medium of claim 18, further comprising
instructions which, when executed by one or more processors, cause the
one or more processors to carry out the steps of: selecting the one or
more address identifiers based upon at least one attribute of the request
for the object.

23. The computer-readable medium of claim 18, further comprising
instructions which, when executed by one or more processors, cause the
one or more processors to carry out the step of: selecting the one or
more address identifiers based upon at least one attribute of the object.

24. The computer-readable medium of claim 18, further comprising
instructions which, when executed by one or more processors, cause the
one or more processors to carry out the step of: selecting the one or
more address identifiers based upon at least one attribute of the server.

25. The computer-readable medium of claim 18, wherein the request is
received from a first participant of a transaction, wherein the
transaction is between the first participant and a second participant,
and wherein the second participant is associated with the server.

26. The computer-readable medium of claim 25, wherein the first
participant is a customer, the second participant is a merchant, and the
transaction is a purchase by the customer from the merchant via a
shopping application associated with the intermediary.

27. A computer-readable medium for analyzing addresses, the
computer-readable medium carrying one or more sequences of one or more
instructions which, when executed by one or more processors, cause the
one or more processors to perform the steps of: receiving a modified
combined address, wherein the modified combined address is based on a
combined address that does not satisfy a particular condition, wherein
the modified combined address includes one or more address identifiers
such that the modified combined address does satisfy the particular
condition, and wherein the one or more address identifiers represents at
least a portion of the combined address; and interpreting the one or more
address identifiers based upon a mapping between the one or more address
identifiers and the portion of the combined address that is represented
by the one or more address identifiers.

28. A computer-readable medium for determining whether network
communications are associated with an intermediary, the computer-readable
medium carrying one or more sequences of one or more instructions which,
when executed by one or more processors, cause the one or more processors
to perform the steps of: causing first communication data for one or more
communications associated with the intermediary to be stored at a
location associated with the intermediary; receiving second communication
data associated with a particular communication; and comparing the first
communication data to the second communication data to determine whether
the particular communication is associated with the intermediary.

29. The computer-readable medium of claim 28, wherein the second
communication data is received via one or more tracer images.

30. The computer-readable medium of claim 28, wherein the first
communication data is stored via one or more Internet cookies.

31. The computer-readable medium of claim 30, wherein the one or more
Internet cookies are set to expire after a specified period of time.

32. The computer-readable medium of claim 28, wherein the particular
communication is associated with a purchase of a product by a customer
from a merchant, and wherein the purchase is facilitated by a shopping
application associated with the intermediary.

33. The computer-readable medium of claim 28, wherein the first
communication data for each of the one or more communications includes at
least a customer identifier, a merchant identifier, and a product
identifier, the second communication data associated with the particular
communication includes at least a particular customer identifier, a
particular merchant identifier, and a particular product identifier, and
wherein the step of comparing the first communication data and the second
communication data further comprises instructions which, when executed by
one or more processors, cause the one or more processors to carry out the
step of: determining whether the particular customer identifier, the
particular merchant identifier, and the particular product identifier
match the customer identifier, the merchant identifier, and the product
identifier that are included in the first communication data for each of
the one or more communications associated with the intermediary.

34. The computer-readable medium of claim 28, wherein the step of causing
first communication data to be stored at the location associated with the
intermediary is performed in response to a request from a participant in
the one or more communications.

35. A system for modifying addresses in a communications network, the
system comprising: a server that is associated with an object; and an
intermediary that generates, in response to a request for the object
received by the intermediary, a modified request to be sent to the
server, wherein the modified request is based on the request and includes
a modified combined address, wherein the modified combined address
satisfies a particular condition by including one or more address
identifiers that are substituted for at least a portion of a combined
address, wherein the combined address identifies both an intermediary
address associated with the intermediary and an object address that is
determined based on the request, and wherein the combined address does
not satisfy the particular condition.

Description

RELATED APPLICATIONS

[0001] The present application is related to the following
commonly-assigned U.S. patent applications, the contents of all of which
in their entirety are hereby incorporated by reference herein:

[0004] The present invention relates generally to processing transactions
over a communications link, and relates more specifically to an approach
for tracking transactions by using addresses in a communications network.

BACKGROUND OF THE INVENTION

[0005] Contemporary communications networks, particularly the worldwide
packet data communications network known as the "Internet," give
consumers an unprecedented ability to purchase products and services from
a myriad of locations around the world. Consumers can use the Internet to
visit "electronic stores" to obtain information about products and
services and make purchases. In response to the proliferation of
electronic stores on the Internet, web sites known as "shopping
applications" or "portals" have been developed to provide a single point
of access to a large number of electronic stores, making comparison
shopping much easier. Shopping applications and portals typically allow a
customer to enter a search request and be presented with a list of
electronic stores that offer the requested product or service. The
customer can select a particular store and be automatically connected to
the store's website.

[0006] FIG. 1 is block diagram 100 that depicts example web pages viewed
by a customer when purchasing a product or service over the Internet
using a conventional shopping application. As used herein, the terms "web
page" and "page" are use analogously to refer generally to an electronic
document that can be displayed using a web browser.

[0007] A customer begins by using a web browser to access a product search
page 102 of a shopping application (not illustrated). The customer may
either enter the Uniform Resource Locator (URL) of product search page
102 directly into the web browser or "navigate" to product search page
102 by "following", i.e., selecting, a link from another web page.

[0008] Product search page 102 includes a search terms object 104 that the
customer uses to enter terms that describe the desired product or
service. The customer then initiates a search by selecting a search
button object 106. This causes the search terms to be sent to the
shopping application for processing.

[0009] Once the shopping application has processed the search terms
specified by the customer, search results are displayed to the customer
on a shopping results page 108. Shopping results pages generally identify
merchants that offer the product or service specified by the search terms
and sometimes include other information such as price. In the present
example, shopping results page 108 includes product information for two
merchants. Objects 110 and 112 include descriptions of first and second
products offered by first and second merchants, respectively. Objects 114
and 116 identify the names of the first and second merchants,
respectively. Objects 118 and 120 provide price information for the first
and second products offered by the first and second merchants,
respectively.

[0010] After reviewing shopping results page 108, the customer may take
several actions. For example, customer may "return" to product search
page 102 by selecting a return button object 122. As used herein, the
term "return" refers to re-displaying a previously displayed web page. In
the present example, return button object 122 includes the URL of product
search page 102. Thus, selecting return button object 122 causes product
search page 102 to be retrieved and re-displayed on the customer's
browser. Note that product search page 102 may be retrieved either from
the server where the shopping application resides or from the client
where the customer's web browser is executing.

[0011] The customer initiates a purchase of the first product listed on
shopping results page 108 by selecting a buy button object 124 associated
with the first product offered by the first merchant. Similarly, the
customer initiates a purchase of the second product from the second
merchant by clicking on a buy button object 126. Other objects displayed
on shopping results page 108, such as objects 110 and 112, may also allow
a customer to initiate a product purchase.

[0013] In the present example, merchant product page 128 includes a
product picture object 130 and a product information object 132 that
provide information about the particular product offered by the merchant.
To purchase a product, the customer selects an "add product to shopping
cart button" object 134, which selects the particular product for
purchase. The customer then selects a checkout button object 136 to
complete the transaction, which conventionally requires that the customer
enter address and billing information. Merchant product page 128 may also
contain other links (not illustrated) to information about the merchant,
such as shipping options or policies relating to purchases and returns.

[0014] One problem with conventional approaches for processing orders over
the Internet, such as just described, is the difficulty or inability for
customers to return easily to a shopping application after having been
transferred from the application to a merchant web site. The ability of a
web site to remain the target of the user's input once the user has
visited the site is referred to as "stickiness," so the problem of losing
a user in the transition from the shopping results page to the merchant
product page is referred to as a lack of "stickiness."

[0015] Ordinarily, a customer uses the "back" button on their browser to
reload previous web pages until the desired shopping application web page
is loaded. This may require that a customer select the back button many
times, depending upon how many web pages were viewed to get to the
merchant web page. Furthermore, customers cannot use the back button to
return to the shopping application web page when so-called redirect URLs
are used to cause a web browser to load a different web page than the
requested web page. In these situations, the "chain" of links used to
access the merchant web page is "broken" and selecting the back button
will not return the customer to the shopping application. Hence,
customers may be unable to return to a shopping application from a
merchant site, or may only be capable of doing so via the repeated use of
a web browser's back button. Either of these situations can deter
customers from returning to a merchant web site.

[0016] Another problem with conventional approaches for processing orders
over the Internet relates to the payment of commissions to shopping
applications and portals. It is now common for shopping applications and
portals to be compensated for directing or "driving" customers to
particular merchants. This necessitates tracking the origination of
transactions to particular shopping applications or portals, which can be
difficult. The nature of the hyperlink structure of the World Wide Web is
such that once a customer traverses from a first web page to a second web
page, the provider of the first web page may no longer be in contact with
the customer and not know the "location" of the customer. For example, in
the context of a customer who uses a shopping application to access a
merchant, once the customer leaves the shopping application and arrives
at the merchant web site, the customer may navigate through various
merchant web pages exploring the products offered for sale. Once the user
is at the merchant's web site, the shopping application does not know
what, if anything, the customer buys at the merchant web site. In this
situation, the shopping application does not know whether it is entitled
to a commission for directing the customer to that particular merchant.

[0017] One solution to this problem is for merchants to track how
customers reached their web site by adding to their web sites the ability
to track and record how each customer navigated to their web site.
Although this approach allows merchants to definitively track the
origination of transactions, there are two significant drawbacks. First,
this solution requires that merchants customize their web sites, which is
costly and time consuming for the merchants. Second, this solution
requires that shopping application providers trust that merchants will
properly account for the origination of transactions.

[0018] Another solution to this problem involves the use of what are known
as "tracer images." This generally involves merchants providing to all
interested shopping applications data that uniquely identifies particular
transactions and then relying upon shopping applications to claim
origination of certain transactions. FIG. 2 is a block diagram 200 that
illustrates example web pages and a conventional approach for using
tracer images to track transactions.

[0019] A customer uses a web browser (not illustrated) to navigate to a
merchant product page 202, typically by following a link from a shopping
application or portal. The customer then navigates to a merchant order
page 204 to make a purchase from the merchant associated with merchant
product page 202. At merchant order page 204, the customer specifies the
products that are desired along with other information required to
complete the order, such as customer identification, customer and
shipping addresses and payment information. After placing the order, the
merchant web site generates an order confirmation page 206 that
summarizes the order. The merchant web site may also record information
about the purchase transaction to be used later to confirm commission
charges from the shopping application.

[0020] Order confirmation page 206 includes a tracer image 208 that
identifies attributes of the completed transaction. Tracer images may be
implemented in several ways. For example, tracer images may be
represented by a single dot or pixel so that customers do not notice
them. They are embedded on the Hyper-Text Markup Language (HTML) order
confirmation page on a merchant site as an image (IMG) tag, where the
source (SRC) attribute of the image consists of the URL of an order
confirmation tracking server hosted by the shopping application. This
tracking URL also includes attributes about the transaction that was just
completed by the customer. Example attributes include, without
limitation, a merchant identification number, an order identification
number, a total amount of merchandise purchased or currency denomination.

[0021] Order confirmation page 206 is sent to the customer's browser for
display. The customer's web browser interprets image links contained in
an order confirmation page 206 to retrieve and display the appropriate
image. For tracer image 208, the information associated with tracer image
208 is requested from the location indicated in the SRC attribute (i.e.,
the specified third party) and provided to the web browser. The
information about the transaction is sent to the third party from the
browser when the browser requests tracer image 208 from the third party.
The third party may be a shopping application provider or another company
that provides a commission tracking service.

[0022] Tracer images may be used to send transaction information to all
shopping applications for all transactions. This approach leaves to
shopping applications the determination of where transactions originated,
which is undesirable to many merchants since they must trust the shopping
applications to correctly assign commissions. Alternatively, tracer
images may be sent to shopping applications on a transaction-by-transacti-
on basis. This approaches leaves the tracking of commissions in the hands
of merchants, which is undesirable to many shopping applications since
they must trust the merchants to correctly assign commissions. In either
situation, a considerable burden is placed on merchants to implement
tracer image technology into their web site infrastructure, which is
costly and time consuming.

[0023] Yet another problem with conventional approaches for processing
orders over the Internet relates to completing order forms required by
merchants to process a transaction. Customers are typically required to
complete an order form to complete transactions. Order forms provide
merchants with various types of information, such as shipping and billing
information. This same information is often needed, and must be
separately provided, for every online purchase that a customer makes.

[0024] One solution is for merchants to maintain this information for
their customers so that returning customers only have to confirm or
change the information. Another solution is for the information to be
maintained by a third party and used by merchants to complete
transactions. Even if a third party service is used, the customer will
have to access that information for each merchant from whom the customer
makes a purchase. Therefore, a customer may have to spend considerable
time providing or accessing the same basic information over and over for
each purchase even if they are not from different merchants.

[0025] Based on the foregoing, an approach for processing orders over the
Internet that does not suffer from limitations of prior approaches is
highly desirable.

[0026] There is a particular need for an approach for processing orders
over the Internet that provides stickiness by allowing customers to
easily and reliably return to a shopping application from a merchant web
site.

[0027] There is a further need for an approach for processing orders over
the Internet that allows a shopping application to collect commissions
without requiring merchants to modify their web sites.

[0028] There is a further need for an approach for processing orders over
the Internet that allows a merchant to determine how customers traversed
to their web sites and that allow a shopping application to collect
detailed information about transactions between customers and merchants.

[0029] There is yet a further need for an approach for processing orders
over the Internet that eliminates the need for a customer to repeatedly
enter the same information for different transactions or to repeatedly
access such stored information.

SUMMARY OF THE INVENTION

[0030] Techniques are provided for using an intermediary to facilitate
communications in a communications network. According to one aspect,
addresses in the communications network are modified. An intermediary
receives a request for an object that is associated with a server. The
intermediary generates a combined address that identifies both an address
associated with the intermediary and an address for the object. A
determination is made whether the combined address satisfies a particular
condition, such as whether the combined address exceeds a specified size.
If the combined address data does not satisfy the particular condition,
then at least a portion of the combined address data is substituted with
one or more address identifiers to create a modified combined address
that does satisfy the particular condition. The intermediary generates a
modified request based upon the request and the modified address, and the
intermediary sends the modified request to the server.

[0031] According to another aspect, addresses containing address
identifiers are analyzed. A modified combined address is received, which
includes one or more address identifies such that the modified combined
address satisfies a particular condition. The address identifiers
represent a portion of a combined address that does not satisfy the
particular condition. The modified combined address is interpreted based
upon a mapping between the address identifiers and the portion of the
combined address that is represented by the address identifiers.

[0032] According to another aspect, a determination is made whether a
particular communication on a communications network is associated with
an intermediary. Communication data for communications associated with
the intermediary is stored at a location associated with the
intermediary. Additional data is received about a particular
communication. The additional data about the particular communication is
then compared to the communication data for communications associated
with the intermediary to determine whether the particular communication
is associated with the intermediary.

BRIEF DESCRIPTION OF THE DRAWINGS

[0033] The present invention is illustrated by way of example, and not by
way of limitation, in the figures of the accompanying drawings and in
which like reference numerals refer to similar elements and in which:

[0034] FIG. 1 is block diagram that depicts example web pages viewed by a
customer while searching for a product using a conventional shopping
application on the Internet;

[0035] FIG. 2 is a block diagram that depicts example web pages and a
conventional approach for using tracer images to track transactions;

[0036] FIG. 3 is a block diagram that depicts an arrangement for
processing transactions over a communications link using an integrated
order mechanism as an intermediary according to an embodiment of the
invention;

[0037] FIG. 4 is a flow diagram that depicts an approach for processing
transactions over a communications link using an integrated order
mechanism as an intermediary according to an embodiment of the invention;

[0038] FIG. 5A is a diagram that depicts a conventional web page with a
plurality of links;

[0039] FIG. 5B is a diagram that depicts a web page with links and a
navigation bar generated by an integrated order mechanism in accordance
with an embodiment of the invention;

[0040] FIG. 6 is a flow diagram that illustrates an approach for tracking
transactions using cookies and tracer images according to an embodiment
of the invention;

[0041] FIG. 7A is a block diagram of an architecture that includes a
wallet server for pre-filling order forms according to an embodiment of
the invention;

[0042] FIG. 7B is a block diagram of an architecture for processing
transactions between a client and multiple merchants according to an
embodiment of the invention;

[0043] FIG. 7C is a block diagram of an arrangement for processing
transactions between a user device that supports a first communications
protocol and a merchant web site that supports a second (and different)
communications protocol according to an embodiment of the invention;

[0044] FIG. 8 is a flow diagram depicting an approach for pre-filling
order forms using a wallet server in accordance with an embodiment of the
invention;

[0045] FIG. 9 is block diagram depicting examples of a merchant product
page and a merchant order page according to an embodiment of the
invention; and

[0046] FIG. 10 is a block diagram of a computer system upon which
embodiments of the invention may be implemented.

DETAILED DESCRIPTION OF THE INVENTION

[0047] In the following description, for the purposes of explanation,
numerous specific details are set forth in order to provide a thorough
understanding of the present invention. It will be apparent, however, to
one skilled in the art that the present invention may be practiced
without these specific details. In other instances, well-known structures
and devices are shown in block diagram form in order to avoid
unnecessarily obscuring the present invention.

[0050] Transactions between participants are processed over a
communications link using an intermediary referred to herein as an
Integrated Order Mechanism (IOM). Transaction participants interact with
each other through the IOM. The use of an intermediary between
participants may be referred to as "proxying." For example, the IOM may
be said to be "proxying the transaction" between the participants. The
IOM may be implemented in a manner such that the existence of the IOM is
transparent to the participants.

[0051] The "participants" of a transaction are typically two entities
engaged in a particular type of communication or interaction, such as a
customer purchasing a product from a merchant. While the embodiments
discussed herein may be described in such commercial terms, neither the
participants nor the transactions are limited to the commercial context,
nor are the embodiments limited to interactions between two parties. For
example, non-commercial interactions or exchanges among multiple private
individuals, organizations, or other entities may be proxied via the same
approaches described herein.

[0052] Processing transactions using an IOM as an intermediary avoids many
of the problems appurtenant to conventional transaction processing. For
example, in the context of the Internet, the use of an IOM provides
stickiness so that customers may return easily to a shopping application
from a merchant web site. The use of an IOM also allows transactions to
be tracked so that commissions may be paid to shopping applications. In
addition, processing transactions using an IOM facilitates pre-filling of
merchant order forms with customer information. Other benefits provided
by processing transactions using an IOM will be apparent from the
description hereinafter.

[0053] FIG. 3 is a block diagram 300 that depicts an arrangement for
processing transactions over a communications link using an IOM according
to an embodiment of the invention. For purposes of explanation, the
approach is illustrated and described in the context of a customer
purchasing goods or services from a merchant over the Internet, i.e., a
customer/merchant transaction. It should be understood, however, that the
invention is not limited to this context and is applicable to processing
any type of transaction involving any number of participants over any
type of communications link.

[0054] In the present example, a customer uses a web browser 302,
executing on a client 303, to request a merchant web page 304 that
resides on a merchant web server 306. In conventional transaction
processing arrangements, merchant web page 304 is provided directly to
web browser 302 and displayed by web browser 302 for the customer. The
customer interacts with web browser 302 to cause various operations to be
performed. For example, a customer might select an object (not
illustrated) on merchant web page 304 to request information about a
particular product or service offered by the merchant. In conventional
transaction processing arrangements, the information, e.g., a web page,
is provided directly from merchant web server 306 to web browser 302 and
displayed for the customer.

[0055] In the present embodiment, an IOM 308 acts as an intermediary
between web browser 302 and merchant web server 306. Data that would
conventionally be exchanged directly between web browser 302 and merchant
web server 306 is instead marshaled, and in some situations modified
and/or operated on, by IOM 308 dynamically in response to requests by web
browser 302 and merchant web server 306. More specifically, requests by
web browser 302 are sent to IOM 308 over a communications link 310. The
requests are operated on or otherwise modified by IOM 308, and forwarded
to merchant web server 306 via a communications link 312. Similarly, data
that is conventionally provided directly from merchant web server 306 to
web browser 302 is instead provided to IOM 308 over communications link
312. IOM 308 modifies and/or operates on the data and then provides the
modified data to web browser 302 over communications link 310. Thus, from
the perspective of the customer (and web browser 302), IOM 308 acts like
a merchant. Similarly, from the perspective of the merchant (and merchant
web server 706), IOM 308 acts like a customer.

[0056] Unlike traditional web page proxying where only the headers of web
pages are examined and not the content (body), IOM 308 may transform the
content of web pages in a dynamic fashion such that the transformations
are made in response to requests for the web pages. Example operations
performed by IOM 308 include selectively proxying links on web pages,
proxying cookies, proxying JavaScript and Java applets and providing
additional objects on a proxied web page, such as a link in the form of a
navigation object to allow a customer to return from a merchant web page
to a shopping application. Each of these example operations is described
in more detail hereinafter.

[0057] As used herein in the context of electronic documents such as web
pages, the term "link" refers to a reference from one electronic document
to another electronic document. For example, in the context of the
Internet, a link from web page A to web page B means that web page A
includes, or contains, a reference to web page B.

[0058] As used herein, the term "communications link" refers to any
mechanism or medium that may provide for the transmission of data.
Examples of a communications links include, without limitation, network
connections, wires, fiber-optic links and wireless communications links.
For purposes of explanation, IOM 308 is illustrated and described herein
as a single mechanism. However, IOM 308 may be implemented by any number
of mechanisms and is not limited to any particular mechanism.
Furthermore, IOM 308 may be implemented in hardware, software, or any
combination of hardware and software.

[0059] 2. Creating "Stickness" Via Transaction Proxying

[0060] As previously described herein, it is particularly desirable to
allow customers to return easily to a shopping application from a
merchant web page when making purchases over the Internet. According to
one embodiment of the invention, stickiness is provided by using an IOM
to proxy a merchant web page and thereby modify the merchant web page to
include a navigation object that provides direct access to the original
shopping application. This allows a customer to return easily to a
shopping application by selecting a navigation object on a proxied
merchant web page, regardless of whether links traversed by the customer
have been redirected or "broken."

[0061] A. Proxying Links

[0062] One aspect of creating stickiness via proxying involves modifying
links so that requests for data, e.g., web pages, and the requested data
are redirected to IOM 308. Proxying links on a web page generally
involves modifying links to address or "point" to IOM 308 instead of the
original address or URL. When a proxied link is selected, the request for
the corresponding merchant web page is sent to IOM 308 instead of the
merchant web server. IOM 308 then makes a request to the merchant web
server for the corresponding web page. Because IOM 308 requests the web
page from the merchant web server, the requested web page is sent to IOM
308 instead of the customer. This allows IOM 308 to modify web page to
add the navigation object, for example by modifying the HTML for the web
page. In addition, IOM 308 may modify links to other merchant web pages
to point to IOM 308 so that the other merchant web pages may also be
modified.

[0063] For example, refer to FIG. 3 and a flow diagram 400 of FIG. 4.
After starting in step 402, in step 404, a customer views a web page on
web browser 302 that includes a link to merchant web page 304 on merchant
web site 306. Suppose that merchant web page 304 has an unproxied URL of
"http://www.merchant.com/productX," wherein "http" denotes the hypertext
transfer protocol, "www" denotes the World Wide Web, and
"merchant.com/productX" is the pathname for web page 304 on the WWW.

[0064] In step 406, the customer selects the unproxied link to merchant
web page 304. In step 408, a request for merchant web page 304 is sent to
IOM 308 over communications link 310. In step 410, IOM 308 modifies the
URL of merchant web page 304 to include the address of IOM 308, followed
by the original unproxied URL, or "http://iom.inktomi.com/exec/iop/www.me-
rchant.com/prodocutX." This allows IOM 308 to process the request for
merchant web page 304 using the proxied link to identify the desired
merchant web page.

[0066] In some situations, it is possible for a customer to select or
"follow" an unproxied link to another web page (not illustrated) on
merchant web server 306. This would provide a bypass to IOM 308 and
preclude IOM 308 from modifying the other web pages to add navigation
objects. Specifically, selection of the unproxied link would cause the
browser to request a target page directly from the merchant site. The
merchant site would provide the page directly to the user, so none of the
links in the target page would be proxied. Consequently, the IOM 308
would be circumvented in all further interaction between the user and the
merchant. Therefore, according to one embodiment of the invention, links
between merchant web pages are also proxied. Thus, in the present
example, links on merchant web page 304 to other merchant web pages (not
illustrate) are also proxied.

[0067] While the embodiments of the invention are described herein in
terms of addresses that are comprised of URLs sent via HTTP over the WW,
the embodiments are not limited to URL addresses, HTTP, or the WWW. For
example, the embodiments may be applied any communications protocol that
incorporates addresses or any other data for locating objects.

[0068] B. Selective Proxying

[0069] While it is possible to proxy all links on a web page, it may not
be desirable to do so in some situations. For example, suppose that
merchant web page 304 contains a link to a particular credit card
company's home page (not illustrated). In this situation, the shopping
application may not want to continue proxying the transaction if the
customer decides to follow the link to the credit card company's home
page. Furthermore, the shopping application may not want to proxy all
types of links or objects on a merchant web page, for example, links to
graphical images or sound files. In this situation, it is desirable to
leave these links unmodified so that the corresponding image or sound
files are requested directly by the customer's web browser from the
merchant web server. Since many of the links on a given web page are
often graphics, selective modification of merchant links relieves IOM 308
of unnecessary traffic. Ultimately, the shopping application would likely
only want to proxy those links to other web pages where the shopping
application wants to include a navigation object back to its shopping
application. Therefore, according to one embodiment of the invention,
links on a web page are selectively proxied so that some links are left
unchanged. The particular links selected for proxying depends upon the
requirements of the particular application.

[0070] According to another embodiment of the invention, the "base" tag in
HTML is used to direct all the relative URLs on merchant web server 306
to IOM 308. In this embodiment, there is no need to modify links that
refer to other web pages so long as those links are updated as relative
URLs and not absolute URLs. This is because all relative URLs will first
go to IOM 308 because that is where the base tag is pointing. Instead,
only those links that the shopping application does not want to handle
are modified to refer directly back to the original URL, bypassing IOM
308 to which they would otherwise have been directed based on the base
tag.

[0071] C. Proxying Secure Links

[0072] Sometimes transactions are processed using a secure communications
protocol, such as secure sockets layer (SSL). Intermediaries typically
pass along secure communications without modification in a process
referred to as "tunneling."

[0073] According to one embodiment of the invention, IOM 308 proxies
secure communications between participants in a manner similar to the
proxying approach described herein for non-secure communications. In this
embodiment, communications links 310 and 312 of FIG. 3 are secure
communications links. Thus, requests by web browser 302 are sent to IOM
308 over communications link 310 using a secure communications protocol
such as SSL. The requests are decrypted, examined and in some situations,
operated on or otherwise modified by IOM 308. The requests are then
re-encrypted and forwarded to merchant web server 306 via communications
link 312 using a secure communications protocol. Similarly, data to be
provided from web server 306 to web browser 302 is encrypted at merchant
web server 306 and sent to IOM 308 over communications link 312 using a
secure communications protocol. IOM 308 decrypts, examines, modifies
and/or operates on the data. The data is then re-encrypted and sent to
web browser 302 over communications link 310 using the secure
communications protocol. Using IOM 308 to proxy secure communications in
this manner allows IOM 308 to monitor and/or modify transactions.

[0074] D. Navigation Objects

[0075] According to one embodiment of the invention, IOM 308 modifies web
pages retrieved from merchant web server 306 to include a navigation
object with a direct link back to a shopping application. The modified
web pages are then provided to client 303. The navigation object may take
a variety of forms and appearances and the invention is not limited to
any particular form or appearance. For example, FIG. 5A illustrates a
conventional web page 500 that includes a plurality of links 502. It is
understood that web page 500 may include a wide variety of
characteristics and attributes, such as graphics, that are not
illustrated so as to not obscure the invention. FIG. 5B illustrates web
page 500 with links 502 and a navigation bar 504 generated by IOM 308 in
accordance with an embodiment of the invention. Locating navigation bar
504 at the top of web page 500 is generally the most predictable portion
of a web page to modify and helps to avoid interfering with page-specific
objects located elsewhere on web page 500.

[0076] According to another embodiment of the invention, navigation
objects are created in separate frames that contain only the navigation
objects. This avoids having to modify web pages to add navigation
objects. For example, in FIG. 5B, navigation bar 504 may be created in a
separate frame above web page 500. In this situation, web browser 302
would automatically provide a scroll mechanism, typically in the form of
a scroll bar, to allow viewing of all portions of web page 500. Many
different frame configurations are possible and the invention is not
limited to any particular frame configuration. For example, navigation
bar 504 may be created in a frame to the left of web page 500.

[0077] In some situations, merchant web pages contain one or more frames,
referred to collectively as a frameset. In these situations, it is only
necessary to add a navigation object to a single frame. The selection of
a particular frame in a frameset for a navigation object depends upon the
particular requirements of an application and the invention is not
limited to any particular approach.

[0078] 3. Tracking Transactions

[0079] According to another embodiment of the invention, an IOM is used to
process orders over a communications network and facilitate tracking and
collecting commissions owed by merchants to shopping applications.

[0080] A. Tracking the Origin of Transactions Using Address Data

[0081] According to one embodiment of the invention, address data is used
to track the origin of transactions. In general, address data associated
with one or more transactions is provided to a merchant or other entity
to identify where a transaction was initiated or originated. For example,
a tag like <inktomi> may be added to the URL being requested to
indicate that a transaction was initiated from a shopping application
provided by Inktomi. Address data may be provided to a merchant or other
entity using a variety of techniques and the invention is not limited to
any particular technique for providing address data to a merchant or
other entity.

[0082] For example, address data may be generated and appended to the
address of a requested merchant web page by a portal or shopping
application. For example, to indicate that customer is using an Inktomi
shopping application when the customer requests a merchant web page, the
<inktomi>tag noted above may be appended to the requested URL as
follows: "http://www.merchant.com/product/<inktomi>."
Alternatively, the address data may be generated and appended to the
address of a requested merchant web page by an IOM. For example, to
indicate that customer is using an Inktomi IOM when the customer requests
a merchant web page, a <inktomi.IOM> tag may be appended to the
requested URL as follows: "http://www.merchant.com/product/<inktomi.IO-
M>."

[0083] Furthermore, many different types and forms of address data may be
used depending upon the requirements of a particular application and the
invention is not limited to any particular type or form of address data.
For example, in the context of a customer purchasing goods over the
Internet from a merchant, address data may be the URL, or a portion
thereof, of the portal or shopping application that the customer used to
access the merchant. According to one embodiment of the invention,
address data is appended to the URL of a link to a merchant page to
generate a modified URL. When the modified URL is received by the
merchant server in a request, the merchant server is able to identify the
portal or shopping application that directed the customer to the
merchant.

[0084] For example, referring to FIG. 1, a customer selection of buy
button 124 conventionally causes a request for merchant product page 128
to be sent to a merchant server (not illustrated) that hosts merchant
product page 128. The request includes the URL of merchant product page
128. According to an embodiment of the invention, address data that
identifies the portal or shopping application that hosts shopping results
page 108 is added or "tagged" onto the URL of merchant product page 128.
Hence, the address data is included in the request for merchant product
page 128.

[0085] For example, suppose that the shopping application used by the
customer is identified as "inktomi" and the URL of merchant product page
128 is "http://www.merchant.com/product/." In this example, the URL
associated with the link (within shopping results page 108) to merchant
product page 128 is modified to be "http://www.merchant.com/product/<i-
nktomi>." This allows the merchant, or another third party, to know
that the customer initiated the transaction from the Inktomi shopping
application and that a commission is to be paid to Inktomi. Knowing that
the transaction was initiated from Inktomi, the merchant may send a
tracer image to Inktomi to facilitate payment of a commission.

[0086] B. Address Identifiers

[0087] URLs typically have a maximum length of two hundred fifty six (256)
characters. Hence, there may be situations where appending address data
to the URL of a merchant web page may exceed the specified maximum length
for URLs, Therefore, according to one embodiment of the invention, if the
length of a URL exceeds a specified threshold, then IOM 308 uses an
address identifier to reduce the overall size of a modified URL. The
merchant web site may then interpret the meaning of the address
identifier by using a database or other mapping mechanism that relates
the address identifier to the portion of the URL for which the address
identifier is substituted.

[0088] An address identifier is generally a form of shorthand or code that
corresponds to different types of address information. For example, an
address identifier may indicate an address of a particular web page, such
as a merchant web page, an address of a shopping application or portal,
or any combination of these items.

[0089] Referring to the prior example, where the modified URL of merchant
product page 128 is "http://www.merchant.com/product/<inktomi>," an
address identifier may be used by IOM 308 to represent any portion of the
modified URL. In this example, an address identifier, such as
"<ID1>", may be substituted into the original URL by IOM 308 to
represent only the product page portion of the unmodified URL of merchant
product page 128. For example, "product/" in the unmodified URL may be
replaced by the address identifier "<ID1>" as follows:
"http://www.merchant.com/<ID1>/<Iiktomi>" Alternatively, an
address identifier may be used to represent only the indicator of the
shopping application, e.g., "http://www.merchant.com/product/<ID2>.-
" Address identifiers may be used to represent any portion of a modified
URL and the invention is not limited to any particular portion.

[0090] Address identifiers may be used to indicate other types of
information besides Internet addresses, web pages, or URLs. For example,
an address identifier may identify a person or company, such as a
merchant, a shopping application, an integrated order machine, or a
customer. In addition, an address identifier may be used to indicate a
particular transaction, a product that a customer may want more
information about or that the customer wants to purchase, one or more
participants in the transaction, or the subject of the transaction. In
general, an address identifier may be used to identify any aspect,
characteristic, or attribute of a transaction, and is not limited to the
examples included herein.

[0091] According to one embodiment of the invention, the merchant web site
uses a lookup or mapping mechanism or database to obtain the data or
meaning associated with an address identifier. A variety of lookup or
mapping mechanisms or databases may be used and the invention is not
limited to any particular type or form of lookup or mapping mechanism or
database.

[0092] For example, a merchant may be provided access to an address
identifier database that is maintained by the merchant or a third party.
Assume that a purchase is made on the merchant's web site using a
shopping application that has incorporated an address identifier, such as
"<ID2>", into the URL sent to the merchant web site. Upon receipt
of the URL, the merchant recognizes "<ID2>" as an address
identifier, such as by seeing the angled brackets in the URL. The
merchant then extracts the address identifier and submits a query to the
database to determine the meaning of the address identifier
"<ID2>". The database provides data to the merchant that indicates
that "<ID2> stands for the identity of the corresponding shopping
application or portal, such as <inktomi>. In this manner, the
merchant may determine to whom to pay a commission.

[0093] The database may also contain additional information other than the
identity of the shopping application or portal where the transaction
originated. For example, the database may contain information that
indicates the meaning of an address identifier, such as details about a
particular customer, merchant, or product. The shopping application may
use this additional information to provide more detailed reporting
regarding the transactions facilitated by a shopping application.

[0094] C. Tracking the Origin of Transactions Using Cookies

[0095] An alternative embodiment to using address data to track the origin
of transactions is the use of Internet "cookies" and tracer images.
However, to understand this approach, it is helpful to understand what
cookies are and how they are conventionally used before describing their
use to track the origin of transactions.

[0096] Typically, cookies are created when a web server requests that a
web browser store data on a user's computer in the form of a single line
of information that is included in a file called "cookies.txt." However,
web servers sometimes store data in separate files or cookies. Once
stored on the user's computer, the user's web browser sends the cookie
back to the web server that originally sent the cookie every time a new
electronic document or web page is requested from that web server. The
web server may also update or send a new cookie back to the user's web
browser to be stored on the user's computer. Cookies are conventionally
used to allow a web server to identify repeat users or customers and to
allow the web server to customize its content based upon the user's
preferences that are stored in the cookie. Other uses for cookies have
also been developed, such as target marketing, tracking users as they
navigate among web sites and facilitating online ordering.

[0097] According to one embodiment of the invention, a shopping
application operates a server that is used to proxy transactions that
originate via the shopping application. An example of such a proxy server
is an IOM. The IOM records information about a transaction when the user
navigates from the shopping application to the merchant web page. For
example, the action of a customer selecting an object on a user interface
to purchase an item causes the IOM to record information about the
transaction. The recorded information may include identification of the
shopping application or portal, the shopping application used, the
product associated with the particular buy button that is clicked, the
advertised price from the shopping results page, and other data
associated with the transaction.

[0098] According to another embodiment of the invention, an Internet
cookie is generated for each transaction that originates from a shopping
application. The cookie is then stored at a specified location. For
example, the cookie may be stored on an IOM, on an order confirmation
tracking server hosted by the shopping application, or on any other
server associated with the shopping application. The request to generate
the cookie may originate from any participant in the transaction,
including the merchant or the shopping application. The cookies are used
to specify attributes of transactions, such as the identity of the
customer, the identity or address of the merchant, the product chosen by
the customer, the product's price, the date and time of the transaction,
or any other data associated with the transaction.

[0099] In addition, the merchant includes a tracer image on the merchant's
order confirmation page for each completed transaction. As described
previously, the tracking URL for the tracer image may include data that
specifies various attributes of transactions, such as the identity of the
customer, the product or service chosen by the customer, the product's
price, the date and time of the transaction, or any other data associated
with the transaction. Significantly, the tracking URL for the tracer
image need not contain, or include, any information about the origination
address for the transaction, such as the URL of a shopping application at
which the customer may have began the transaction.

[0100] As described previously, when the order confirmation page is sent
to and displayed by the customer's browser, the information about the
transaction is sent to the location identified by the tracking URL
specified in the SRC attribute for the tracer image. If the merchant is
affiliated with more than one shopping application, the merchant may
include a tracer image for each shopping application. Upon receipt of the
information from the tracking URL for the tracer image, a comparison may
be made to information stored in the cookies.

[0101] A comparison by the shopping service provided of the information
sent via the tracking URL of the tracer image to the information in the
cookies determines if the transaction that resulted in the tracer image
being sent originated with that shopping application. There will be
cookies for all users of the shopping application, not just those users
for a particular merchant. Similarly, there will be transaction
information sent via the tracking URL of the tracer images for
transactions by customers that used any of a number of shopping
applications or no shopping application at all. Therefore, a comparison
of the information for each transaction with a merchant is made to the
user information, or vice versa. Also, the comparison to the cookies may
be made upon receipt of each set of transaction information from the
merchant via the tracking URL of the tracer image.

[0102] For example, the comparison may attempt to match the customer
identification information between the merchant records and shopping
application user records, along with other information such as the time
of the purchase from the merchant relative to the time that the user used
the shopping application. If the customer identification information are
the same and the times of the user's visit to the shopping application
and of the purchase are consistent, the shopping application concludes
that that customer of the merchant accessed the merchant web site via the
shopping application for that transaction. Thus, the shopping application
may be owed a commission for that transaction.

[0103] The approach of using cookies to record user information and using
tracer images from the merchant to record transaction information reduces
record keeping efforts of the shopping application and merchant and
allows for a more efficient and automated determination of commissions
that are owed by the merchant to the shopping application. By using
cookies, the shopping application does not otherwise need to separately
track user information for determining commissions. By using tracer
images, the merchant does not otherwise need to separately track
transactions for determining commissions and then send that information
to the shopping application for comparison to the user information.

[0104] While this approach is ideally well suited for situations involving
a customer making a purchase via a shopping application over the
Internet, the approach is applicable to any type of transaction between
participants over any type of communications link. Furthermore, although
embodiments are primarily described herein in the context of using
cookies for purposes of explanation, the approach is applicable to other
types of data used for the same purpose. Furthermore, while the cookies
as described herein are being stored on an IOM, they could also be stored
at other local or remote locations of either the shopping service
provider or a third party.

[0105] FIG. 6 is a flow diagram that illustrates an approach for tracking
transactions using cookies and tracer images according to an embodiment
of the invention. The approach is also described with reference to FIG.
3.

[0106] After starting in step 602, in step 604, a customer uses web
browser 302 to request a merchant web page 304 via a shopping application
from a merchant web server 306. The request is sent to an IOM 308 over
communications link 310. In step 606, IOM 308 requests the web page from
merchant web server 306 over a communications link 312.

[0107] In step 608, merchant web server 306 sends a cookie to IOM 308. IOM
308 is a customer from the perspective of merchant web server 306. The
cookie contains order information related to the user, the merchant, and
the product desired.

[0108] In step 610, the customer places an order with the merchant by
selecting one or more objects on a merchant web page that is proxied by
IOM 308. In step 612, transaction information for the order is sent via a
tracer image to IOM 308. Specifically, a merchant order confirmation page
is displayed on the customer's browser. The merchant order confirmation
page includes a tracer image so that when the tracer image is displayed,
transaction information is sent via the tracking URL specified in the SRC
attribute of the tracer image. In this example, the tracking URL
corresponds to IOM 308 so that IOM 308 is the recipient of both the
transaction information and the cookie sent in step 608 above. Other
transaction information may be sent to IOM 308 by displaying other
confirmation pages containing tracer images from the same merchant for
other transactions, or by other merchants (not illustrated).

[0109] In step 616, IOM 308 compares the order data in the cookie to the
order data sent via the tracer images to determine whether the order as
described in the cookie data was placed via the shopping application.
Different types of information may be compared to identify a match,
depending upon the requirements of a particular application. For example,
a comparison may be made for a particular transaction between the
particular customer, the particular product, and the particular merchant
as shown in the tracer image to the same types of information contained
in the cookies stored on the IOM. If the cookie data matches the data
sent via the tracer image, then the shopping application knows that it is
owed a commission on that order from the merchant according to the
agreed-upon terms. The process is complete in step 618.

[0110] Different types of data may be used to track transactions. In
general, any kind of transaction data stored at a location associated
with the shopping application may be used to match against such
confirmation data supplied by the merchant. Even if a match cannot be
made, a commission may be owed to the shopping application by the
merchant for "driving" the customer to the merchant site.

[0111] According to another embodiment of the invention, redirect URLs may
be used to generate cookies at other locations. When a redirect URL is
used, a user's request for a particular URL is redirected from the
original URL to another URL. For example, referring to FIG. 1, using
redirect URLs, when a customer selects buy button 124, the customer's web
browser requests a different web page than merchant product page 128. In
this situation, a cookie is generated at the location where the other web
page resides.

[0112] 4. Order Form Pre-Filling

[0113] To complete transactions over a communications link, customers must
provide certain information that is required by the transaction. The
information required depends upon the requirements of a particular
application and transaction. Example information includes shipping and
payment information. The information is typically provided to merchants
by using an order form. A merchant provides an order form to the
customer's browser and the customer populates the fields in the form and
returns the form to the merchant. Because this information is required
for each transaction, many merchant web sites maintain customer
information so that it does not have to be separately provided for each
transaction. However, customers must provide this information when they
visit a new merchant. In addition, if the customer information changes,
then customers must update their information at every merchant site.
Therefore, according to another embodiment of the invention, an IOM is
used to perform order form pre-filling in a manner that avoids
limitations associated with conventional transaction processing.

[0114] A. Merchant Web Pages

[0115] FIG. 9 is block diagram 900 depicting examples of a merchant
product page 902 and a merchant order page 904 according to an embodiment
of the invention. Various features and aspects of merchant product page
902 and merchant order page 904 are illustrated and described in the
context of a customer purchasing a product over the Internet. However,
the invention is not limited to the Internet context and is applicable to
any type of communications network environment. Furthermore, for purposes
of explanation only, merchant product page 902 and a merchant order page
904 are illustrated and described in the context of purchasing a single
product. The invention, however, is not limited to the purchase of a
single product and is applicable to multiple-product applications.

[0116] Merchant product page 902 provides information about a particular
product through the use of a product picture object 904 and a product
information object 906. A navigation object 908, in the form of a
navigation bar 908, allows a customer to conveniently return to a
shopping application or portal in accordance with an embodiment of the
invention as previously described herein.

[0117] Merchant product page 902 includes various action objects that
allow a user to initiate a particular action. In the present example,
these action objects include "buttons" 910 and 912 for adding a product
to a shopping cart and performing a "checkout" function, respectively. As
is conventionally used in the context of Internet commerce, a "shopping
cart" is a logical construct that indicates one or more items that a
customer has indicated an intent to purchase. When viewing an item on a
web site that a customer wishes to purchase, the customer selects button
910 to add the item to an imaginary shopping cart. When finished
shopping, a customer selects button 912 to initiate a purchase of the
selected items, i.e., items "in" the customer's shopping cart.

[0118] Selecting button 912 typically includes a link to merchant order
page 904, which, when selected by the customer, causes merchant order
page 904 to be retrieved and displayed on the customer's browser.
Merchant order page 904 is used primarily to collect information from the
customer that is required to complete the purchase transaction. In the
present example, merchant order page 904 is being proxied by IOM 708 and
includes a navigation object 914, in the form of a navigation bar 914,
that allows a customer to conveniently return to a shopping application
or portal. Merchant order page 904 includes a plurality of input fields
with associated labels, generally indicated by reference numeral 916. For
example, a "ship first name" label 918 denotes that the data to be
entered in a particular input field 920 is the first name of the person
to whom the product is being shipped. Other labels and fields are shown
describing other shipping information needed or other types of user
information such as details regarding the form of payment. A customer may
use merchant order page 904 to enter all of the requested information
into the appropriate input fields.

[0119] Once the customer has completed entering in all of the required
information, the customer may take a number of actions. For example, if
the customer decides not to complete the purchase, or wants to return to
merchant product page 902 or some other page, the customer may click on a
"quit button" object 922. Alternatively, if the customer wishes to
complete the transaction, they may click on a "commit order button"
object 924 to indicate to the merchant that the purchase is to be
completed.

[0120] B. Order Form Pre-Filling Using a Wallet Server

[0121] The user of a wallet server to pre-fill an order form will be
described in the following order: (1) obtaining customer information from
a wallet server, (2) merchant web pages, (3) pre-filling of an order
form, and (4) protecting customer information.

[0122] (1) Obtaining Customer Information from a Wallet Server

[0123] According to one embodiment of the invention, a wallet login
process is initiated by a user selecting an object on a shopping results
page that is associated with a desired product or merchant. This login
process includes the use of a wallet server that accesses stored
information about a user. The login process may take place directly
between the user and a wallet server provider, without the assistance of
a facilitator, such as a proxy server like an IOM. Thus, while it is
possible to proxy the interaction between the user and the wallet server,
the wallet login procedure need not be proxied by a shopping application.

[0124] The user may interact directly with a third party wallet server
provider when the user makes use of the wallet login procedure, although
the proxy server is still proxying the remaining aspects of the
transaction by the user. In this situation, it is desirable for the proxy
server to establish an easy return path back to the proxy server from the
wallet server provider. The easy return path may be implemented by having
the proxy server provide a static "exit" URL to the wallet server
provider. The static "exit" URL may be a link back to the shopping
application or proxy server. Also, the "exit" URL may specify the
particular web page being provided by the shopping application that the
user had last accessed before the user accessed the wallet server
provider.

[0125] The wallet server provider may add the "exit" URL to the web pages
provided by the wallet server provider. Therefore, whenever the user is
interacting with the wallet service provider, the user may click on the
"exit" URL on the wallet server provider web pages so that the user can
return to the shopping application.

[0126] FIG. 7A is a block diagram 700 of an example architecture that
includes a wallet server for pre-filling order forms according to an
embodiment of the invention. A customer uses a web browser 702 that
resides on a client 703 to request a merchant web page 704 that resides
on a merchant web server 706. The customer makes the request through an
IOM 708 and communications links 710 and 712. IOM 708 hosts a shopping
application and proxies the purchase transaction on behalf of the
customer.

[0127] According to an embodiment of the invention, when the customer
makes a request for merchant web page 704, IOM 708 determines whether the
merchant associated with merchant web server 706 is a merchant for which
IOM 708 is to proxy transactions. If so, then IOM 708 redirects the
request for merchant web page 704 to wallet server 714 via a
communications link 716.

[0128] In response to receiving the request for merchant web page 704,
wallet server 714 transmits a wallet login page 718 to client 703 over a
communications link 720 for display on web browser 702. Wallet login page
718 includes queries for information, or validation data, that uniquely
identifies the customer. For example, wallet login page 718 may contain
fields for requesting a login identification and password. The customer
populates the fields and then sends the information to wallet server 714
over communications link 720.

[0129] Upon receipt, wallet server 714 verifies or validates the
validation data received from the customer. If the login is successful,
wallet server 714 retrieves customer information for the customer from a
user information database 722 over a communications link 724. Wallet
server 714 also sends a login confirmation page 726 to client 703 for
display on web browser 702 to inform the user that the login was
successful. According to one embodiment of the invention, login
confirmation page 726 includes an exit object (not illustrated). When
selected by the customer, the exit object returns to merchant web page
704.

[0130] The customer information retrieved from user information database
722 is provided to IOM 708 over communications link 716. The customer
information may be provided to IOM 708 any time after retrieval. For
example, the customer information may be provided to IOM 708 after the
customer selects the exit object from login confirmation page 726.

[0131] After IOM 708 receives the customer information, a cookie, referred
to herein as a "wallet cookie," is generated and sent by IOM 708 to web
browser 702 that then stores the wallet cookie on client 703. The wallet
cookie contains the customer information sent by wallet server 714 to IOM
708, as discussed above. The customer information in the wallet cookie
stored on client 703 may be used later in pre-filling a merchant order
form.

[0132] According to one embodiment of the invention, the customer may
modify its corresponding customer information stored on user information
database 722. In addition, the customer may modify its corresponding
information before the information is sent to IOM 708. For example, the
customer may update existing information, add additional information, or
select information to use in a particular transaction, such as by
specifying multiple shipping addresses. When the customer review is
complete, the final customer information is sent from the wallet server
714 to IOM 708. Customer information may be temporarily stored at IOM 708
for use in several transactions. IOM 708 may use the customer information
to pre-fill order forms provided to the customer.

[0133] Customer information may be sent from wallet server 714 to IOM 708
using a variety of techniques and the invention is not limited to any
particular technique. For example, according to one embodiment of the
invention, customer information is provided to IOM 708 using a tracer
image contained in login confirmation page 726. Specifically, the
customer information is sent via the tracer image to the server specified
in the SRC attribute of the tracer image. The server specified in the SRC
attribute may then sends a cookie containing the customer information to
IOM 708.

[0134] In an alternative embodiment, customer information is sent to IOM
708 using what is referred to in HTTP as the "post" method (as opposed to
the "get" method). According to the post method, wallet server 714 sends
or posts customer information to the IOM 708 via a "form" element in
HTML. Form elements hold more data than a typical tracer image since
tracer image URLs are typically limited to two hundred fifty six (256)
characters.

[0135] After the customer information is retrieved, IOM 708 proceeds to
proxy the transaction between the customer and merchant. According to one
embodiment of the invention, the URL of merchant web page 704 is appended
to the URL of wallet server 714 during the wallet login process. As
previously described, address identifiers may be used to ensure that the
URL does not exceed its maximum allowable size as a result of appending
the URL for merchant web page 704 to the URL of wallet server 714.

[0136] According to another embodiment of the invention, IOM 708 sends to
wallet server 714 a cookie that specifies the desired merchant product
page before the customer begins the wallet login process. When that
process is complete and the user returns to the shopping application,
that cookie is sent back to IOM 708 by wallet server 714. IOM 708 uses
the cookie to determine the particular merchant web page that the
customer originally specified when the user left the shopping results
page and went to wallet server 714.

[0137] (2) Pre-Filling an Order Form

[0138] FIG. 8 is a flow diagram 800 depicting an approach for dynamically
pre-filling order forms using a wallet server in accordance with an
embodiment of the invention. For purposes of explanation, reference is
also made to FIG. 7A. After starting in step 802, in step 804, a customer
requests to place an order with a merchant by interacting with a shopping
application or portal web page on web browser 702. This causes a request
to be sent to a proxy server, which in the present example is IOM 708.

[0139] In step 806, IOM 708 receives the order request from the customer
and requests information for the customer from wallet server 714. In step
808, wallet server 714 sends wallet login page 718 to client 703 over
communications link 720. In step 810, the customer provides to wallet
server 714 information requested on wallet login page 718, such as a User
ID and password.

[0140] In step 812, wallet server 714 verifies the login information and
in step 814, a determination is made whether the login was successful. If
so, then in step 816, wallet server 714 retrieves the information for the
customer from user information database 722.

[0142] In step 822, the customer "returns" to IOM 708 via an "exit" object
on login confirmation page 726. Note that if in step 814, the customer
login was unsuccessful, then the customer is automatically returned to
IOM 708 via the URL associated with the "exit" object on login
confirmation page 726.

[0143] In step 824, IOM 708 retrieves a merchant order page (not
illustrated) from merchant server 706. In step 826, a determination is
made whether customer information was received for the customer. If so,
then in step 828, IOM 708 automatically populates or pre-fills the
retrieved merchant order page with the customer information received from
wallet server 714. Various techniques for pre-filling a merchant order
page are described in more detail hereinafter.

[0144] In step 830, IOM 708 provides the merchant order page to client
703. Note that if in step 826 a determination was made that customer
information was not received from wallet server 714, then the merchant
order page is provided to the customer without being pre-filled. In this
situation, the customer manually populates the fields on the merchant
order page. The process is complete in step 832.

[0145] It should be understood that although the approach for dynamically
pre-filling merchant order pages has been described in the context of
retrieving customer information from a wallet server 714 and customer
information database 722, any type of information storage and retrieval
mechanism may be used. Furthermore, for purposes of explanation, in FIG.
7A, client 703 is illustrated and described as being directly connected
to wallet server 714 via communications link 720. Communications between
client 703 and wallet server 714 may instead be proxied by other
entities. For example, communications between client 703 and wallet
server 714 may be proxied through IOM 708 or another mechanism. Finally,
this example has been illustrated and described in the context of a
customer placing an order with a merchant over the Internet, but the
approach is also applicable to any type of transaction between
participants over any type of communications network.

[0146] (3) Protecting Customer Information

[0147] Customer information may contain personal contact information and
financial information that needs to be protected. The architecture
depicted in FIG. 7A allows various techniques to be employed to protect
customer information. For example, customer information stored in
customer information database 722 may be encrypted using any type of
encryption. In addition, communications links 710, 716 and 720 maybe
secure communications links. For example, SSL may be used to protect
communications over communications link 710, 716 and 720.

[0148] Furthermore, customer information stored on wallet server 714,
client 703 or IOM 708 may be encrypted. For example, in the situation
where client information is stored in a wallet cookie on client 703 or
IOM 708, an encrypted wallet cookie may be used to protect the client
information. Encrypted cookies may be use in combination with, or as an
alternative to using secure communications links 710, 716 and 720. For
example, if SSL is used to encrypt data transmitted over communications
links 710, 716 and 720, messages are encrypted before being sent and then
decrypted upon receipt. Because the wallet cookie is encrypted separately
before it is prepared for transmission, it will still be encrypted after
receipt by the user's computer. In this situation, customer information
is encrypted twice.

[0149] According to another embodiment of the invention, non-persistent
wallet cookies are used so that they automatically expire when wallet
cookie expiration criteria are satisfied. The wallet cookie expiration
criteria may include, for example, a specified amount of time, a
specified number of transactions, or whether specific transactions have
been completed. The particular wallet cookie expiration criteria may be
selected to allow a wallet cookie to be available to pre-fill multiple
order forms from one or more merchants. This precludes the need for the
user to religion to the wallet server to retrieve that information if
multiple orders are made. It also precludes the need to store the wallet
information on the proxy server, so that it can remain stateless. Because
the wallet cookie is set when the first merchant web page is proxied, it
will be resent by the user's web browser to the proxy server each time
the user accesses a web page on that merchant's web site via the proxy
server. Therefore, the user information in the wallet cookie will be
available to the proxy server when the user goes to an order form on the
merchant web site.

[0150] C. Order Form Pre-Filling Using Variable Mapping

[0151] According to one embodiment of the invention, order form
pre-filling is performed generally by identifying variables, inputs, or
other data fields on the order form. Those variables, inputs, or data
fields that require information about the user on the order form are
identified and then portions of the user information for the appropriate
variables are substituted into the form. For example, on an Internet web
page written in HTML, such variables would typically appear as an input
element. A particular variable for the first name of the person to whom
the product would be shipped might appear as follows in HTML:

[0152] <!--Shipping First Name-->

[0153] <input type=text name=sfname value="John">

[0154] In this example, the first line is an HTML comment line that
describes the HTML on the following line. The information on the second
line is interpreted as follows: "input" denotes that this is an input
variable element in HTML; "type=text" denotes that the type of input for
this element is text, as opposed to another type such as numerical;
"name=sfname" denotes that the name of this variable is sfname; and
"value="John"" denotes that the initial or current value of this variable
is the text string "John."

[0155] In practice, variables sometimes are not established with initial
values as in the above example. Order forms may nevertheless be modified
to include or modify the value of variables based upon user information,
e.g., user information retrieved from a wallet server as discussed in the
examples above.

[0156] Different merchants sometimes use different variable names for the
same information. For example, Merchant A may refer to data for the "ship
first name" as "sfname" while Merchant B refers to it as
"ship_first_name." Furthermore, either or both of these sample variables
names could be different from the variable name used to identify the same
information in the user information from the wallet server. For example,
the user information from the wallet server may have the user's name
stored together in a variable called "ship_full_name" that contains the
first name, middle initial, and last name of the user.

[0157] There are several ways to identify the variables that correspond to
various portions of the user information. According to one embodiment of
the invention, a mapping is used to match portions of user information
retrieved from a wallet server to variables contained on a merchant order
page. This mapping associates particular portions of user information
based on the variable name included in the HTML for the merchant's order
form.

[0158] There may be situations in which the mapping is unable to match a
variable on an order form to a portion of the user information. One
approach might be to leave that variable unchanged. However, an
alternative embodiment is to look at the context associated with the
variable on the order page as it appears to the user. For example, the
variable name for the ship first name on a particular merchant's web page
might just be "name1" from which it would be unclear whether that was
referring to the first or last name. However, the variable on the form
may have a more descriptive label that aids the user in providing the
proper information. For example, referring to FIG. 9, "ship first name"
918 displays a description of the information to be entered into input
field 920 that is used to specify the value of "name1" which makes clear
that the proper input for "name1" is the first name.

[0159] While the example above just looked at the context for a particular
variable, a similar approach may be used to look at a larger context. For
example, the immediate or local context for a particular variable on the
web page as it appears to the user may simply say "Name." It may be
unclear from this local context and the variable name whether this is the
first name, last name, or entire name of the person. But by looking at
the larger or more global context, such as other input descriptions on
the web page, it would likely be clear that "Name" referred to the
complete name of the person if there were no other name related fields.

[0160] Another situation that arises with order forms is that variables
may be sent from the order form provider with values already included. In
one situation, the merchant may have already identified the user as a
repeat customer and therefore has already pre-filled the order form based
on the information from the customer's last purchase. The merchant may
also operate its own wallet server to collect and retrieve user
information. In this situation, the shopping application may elect to
leave alone any such information already included on the merchant order
page instead of pre-filling or modifying the order page based on the
wallet information that the shopping server provider has retrieved from a
wallet server.

[0161] In another situation, the value of a variable may be predetermined
or specified as the order page is retrieved from the web server. But
while the value is predetermined, it may not represent a real value. For
example, the order form may contain a pull down selection object to
select a destination shipping state. It is likely that the first value in
that pull down list is a text string such as "Select the state from this
pull down list." Having such a value serves as a guide to the customer
when completing the form, but it is not a proper value for the name of
the state. In this situation, the shopping application may elect to
de-select that non-real value and substitute the proper value for the
state name variable.

[0162] According to another embodiment of the invention, if the mapping,
local context, and global context fail to allow the variable to be
properly identified, then it is left unchanged so that the user must
manually enter the information into the order form. The shopping service
may also keep a log of such variables that could not be matched to user
information for an operator to evaluate and update the mapping to
properly match the variable in the future.

[0163] D. Adaptive Single-Click Transactions

[0164] In some situations, all input fields and variables can be matched
to user information from a wallet server. For example, a merchant order
form may consist of several pages, one for shipping information, one for
purchaser information, and one for payment information. If the wallet
information can be used to complete all of the fields on all of those
pages, it may not be necessary to present each of those pages separately
to the user for their review. Instead, all three pages in this example
could be pre-filled by the shopping application and the entire list of
input information as completed can be shown to the user to verify the
accuracy of the information or update it to reflect any changes as
necessary. This is sometimes referred to as a "one-click purchase"
because only a single click on an object on the merchant web page is
needed to get the merchant all of the information necessary to complete
the purchase transaction.

[0165] As discussed above, upon leaving the shopping application shopping
results page, a customer may either be sent directly to the merchant web
site or indirectly to the merchant web site via a proxy server. A third
alternative is that the customer is taken first from the shopping results
page to another page that is used to allow the proxy server to get access
to stored information about the user. Typically the other page or server
will contain information about a plurality of users that may be accessed
after the user logs into that system. After completing the login
procedure, the proxy server will then receive information about the user.
At that point, the proxy server accesses the merchant web site desired by
the user. Then if the user decides to make a purchase from a merchant,
the user information may be used to pre-fill the order form by a proxy
server before sending it to the user's web browser for display and to
collect any additional information.

[0166] The order form pre-filling approach described above preserves the
content of merchant web pages, i.e., merchant order pages. In addition,
the pre-filling of a merchant's order page takes place automatically, so
that the merchant may keep the content of their web pages visible to the
user. The approach is a general, flexible approach applicable to all
merchant web sites. There is therefore no need to customize the order
form pre-filling process for each merchant web site or order form. Also,
user information may only need to be accessed once to use it on more than
one order form or to use it with more than one merchant. Because the
login procedure takes place before the user accesses the merchant web
site, there is no interruption in the user's experience in interacting
with the merchant web site. Such interruptions are greatly disfavored by
merchants.

[0167] 5. Fail-Over Applications

[0168] In practice, facilitating a transaction as described herein is
performed on a large scale with many participants and many transactions
being facilitated at any given time. In some situations, failures occur
because of a large amount of traffic that must be processed. For example,
there could be a problem in proxying a particular web server, unusually
high load on a particular proxy server, or an unusually large number of
error conditions. As a result, it may not be possible to continue
proxying transactions, tracking commissions, providing stickiness, or
perform order form pre-filling. Under such circumstances, it may be
desirable to discontinue the facilitation of the transactions and allow
the participants in the transaction to interact directly. For example, a
customer may be in the process of purchasing a product from a merchant
where that transaction was being proxied by an IOM, and an error
condition occurs. In this situation, it may be desirable to discontinue
proxying so that the customer and merchant may continue the transaction
without any proxying or other actions being taken by the IOM.

[0169] A variety of approaches may be taken to identify problems that
warrant discontinuing facilitating a transaction. For example, a shopping
application may review transaction logs for errors, such as getting a
"page not found" error from a merchant web server. The shopping
application may also discover that they are no longer able to pre-fill
the order forms for a particular merchant. At particular times of the
year, for example, during holidays, the amount of shopping traffic for a
merchant may be so unusually large that proxying transactions slows down
the shopping experience for users to an unacceptable level.

[0170] Therefore, according to one embodiment of the invention, the
proxying of one or more transactions is selectively discontinued. For
example, a particular transaction may be redirected by ceasing the
proxying of the merchant URLs (e.g., by not rewriting the original
merchant URLs) so that a user interacts directly with a merchant.
Alternatively, a merchant may be removed from a shopping application
"inclusion list" of merchants for whom transactions are to be proxied.

[0171] According to another embodiment of the invention, the overall level
of traffic being handled by a shopping application is monitored. If the
traffic exceeds a specified maximum limit, then a "master switch" is used
to cease proxying for a certain subset or even all of the transactions
currently being processed. This allows selected transactions to continue
unproxied, as well as allow unselected transactions to continue to be
proxied.

[0172] 6. Multiple Vendors

[0173] The approach for processing transactions has been described in the
context of processing transactions from a single merchant for purposes of
explanation. The invention is not limited to this context however, and
transactions between a client and multiple merchant sites may be
processed using the approach described herein. The benefits of providing
stickiness, tracking commissions and order form pre-filling may be
realized for transactions between a client and any number of merchant
sites. According to one embodiment of the invention, a "Universal
Shopping Basket" approach is used to process transactions between a
client and any number of merchant sites. FIG. 7B illustrates the approach
as previously described with respect to merchant web server 706 and also
with merchant web server 730, communicatively coupled to IOM 708 via a
communications link 732 and hosting a merchant web page 736, and merchant
web server 738, communicatively coupled to IOM 708 via a communications
link 740 and hosting a merchant web page 742.

[0174] 7. Multiple Communications Protocols

[0175] The approach for processing transactions has been described herein
primarily in the context of a client and one or more merchant sites that
support the same communications protocol. The approach is also applicable
to transactions between user devices and merchant web sites that support
different communications protocols. FIG. 7C is a block diagram of an
arrangement 700 for processing transactions between a user device that
supports a first communications protocol and a merchant web site that
supports a second (and different) communications protocol according to an
embodiment of the invention. A customer uses a user device 750 to send
requests for information to IOM 708 via communications link 710 and a
gateway 752. User device 750 may be any type of non-web browser device,
such as a Wireless Access Protocol (WAP) device, a cellular telephone or
a Personal Digital Assistant (PDA). Arrangement 700 includes a gateway
752 communicatively coupled to IOM 708. Gateway 752 is configured to
convert data generated and transmitted by user device 750 in a first
communications protocol supported by user device 750 into a second
communications protocol supported by IOM 708. Gateway 754 is also
configured to convert data generated and transmitted by IOM 708 in the
second communications protocol into the first communications protocol
supported by user device 750.

[0176] Examples of the first communications protocol include non-web
browser, i.e., non-HTTP, protocols, such as a WAP. Examples of the second
communications protocol include the HTTP protocol. Thus, arrangement 700
of FIG. 7C allows transactions between non-web browser type user devices
and web-browser type merchants to be managed and processed by IOM 708 in
accordance with the various embodiments described herein. More
specifically, arrangement 700 of FIG. 7C allows IOM 708 to proxy
transactions between user device 750 that supports a first communications
protocol and a merchant web server 706 that supports a second (and
different) communications protocol.

[0177] Arrangement 700 of FIG. 7C also includes a gateway 754,
communicatively coupled to wallet server 714. Gateway 754 is configured
to convert data generated and transmitted by user device 750 in the first
communications protocol supported by user device 750 into the second
communications protocol supported by wallet server 714. Gateway 754 is
also configured to convert data generated and transmitted by wallet
server 714 in the second communications protocol into the first
communications protocol supported by user device 750. In this
configuration, user device 750 may be used to create, update or delete
information from wallet server 714, even though user device 750 and
wallet server 714 support different communications protocols.

[0178] 8. Implementation Mechanisms

[0179] The approach for processing transactions over a communications link
is applicable to a wide range of applications and the invention is not
limited to any particular application or context.

[0180] Embodiments of the invention may be implemented in hardware
circuitry, in computer software, or a combination of hardware circuitry
and computer software and the invention is not limited to a particular
hardware or software implementation. For example, the approach of using a
shopping service provider to proxy transactions may be integrated into a
shopping service application, a proxy server such as an integrated order
machine, or a combination thereof.

[0181] Furthermore, embodiments of the invention are described herein for
clarity by showing different functions being performed by different and
separate entities, machines, or servers. However, the functions may be
both shared among more than one entity and also combined in a particular
entity. For example, referring to FIG. 7A and the associated discussion
above, IOM 708 is described as performing the function of proxying
transactions and wallet server 714 is described as providing customer
information from customer information database 722. However, the function
of proxying of transactions may be shared by more than one server or
integrated order machine, instead of just a single server such as IOM
708. Also, the function of providing customer information from a customer
information database may be included on IOM 708 instead of being
performed by a separate wallet server, such as wallet server 714.
Similarly, the functions described herein may be shared or combined using
other entities, such as client 703, merchant web server 706, or other
servers or machines.

[0182] FIG. 10 is a block diagram that illustrates a computer system 1000
upon which an embodiment of the invention may be implemented. Computer
system 1000 includes a bus 1002 or other communication mechanism for
communicating information, and a processor 1004 coupled with bus 1002 for
processing information. Computer system 1000 also includes a main memory
1006, such as a random access memory (RAM) or other dynamic storage
device, coupled to bus 1002 for storing information and instructions to
be executed by processor 1004. Main memory 1006 also may be used for
storing temporary variables or other intermediate information during
execution of instructions to be executed by processor 1004. Computer
system 1000 further includes a read only memory (ROM) 1008 or other
static storage device coupled to bus 1002 for storing static information
and instructions for processor 1004. A storage device 1010, such as a
magnetic disk or optical disk, is provided and coupled to bus 1002 for
storing information and instructions.

[0183] Computer system 1000 may be coupled via bus 1002 to a display 1012,
such as a cathode ray tube (CRT), for displaying information to a
computer user. An input device 1014, including alphanumeric and other
keys, is coupled to bus 1002 for communicating information and command
selections to processor 1004. Another type of user input device is cursor
control 1016, such as a mouse, a trackball, or cursor direction keys for
communicating direction information and command selections to processor
1004 and for controlling cursor movement on display 1012. This input
device typically has two degrees of freedom in two axes, a first axis
(e.g., x) and a second axis (e.g., y), that allows the device to specify
positions in a plane.

[0184] The invention is related to the use of computer system 1000 for
processing transactions over a communications link. According to one
embodiment of the invention, processing transactions over a
communications link is provided by computer system 1000 in response to
processor 1004 executing one or more sequences of one or more
instructions contained in main memory 1006. Such instructions may be read
into main memory 1006 from another computer-readable medium, such as
storage device 1010. Execution of the sequences of instructions contained
in main memory 1006 causes processor 1004 to perform the process steps
described herein. One or more processors in a multi-processing
arrangement may also be employed to execute the sequences of instructions
contained in main memory 1006. In alternative embodiments, hard-wired
circuitry may be used in place of or in combination with software
instructions to implement the invention. Thus, embodiments of the
invention are not limited to any specific combination of hardware
circuitry and software.

[0185] The term "computer-readable medium" as used herein refers to any
medium that participates in providing instructions to processor 1004 for
execution. Such a medium may take many forms, including but not limited
to, non-volatile media, volatile media, and transmission media.
Non-volatile media includes, for example, optical or magnetic disks, such
as storage device 1010. Volatile media includes dynamic memory, such as
main memory 1006. Transmission media includes coaxial cables, copper wire
and fiber optics, including the wires that comprise bus 1002.
Transmission media may also take the form of acoustic or light waves,
such as those generated during radio wave and infrared data
communications.

[0186] Common forms of computer-readable media include, for example, a
floppy disk, a flexible disk, hard disk, magnetic tape, or any other
magnetic medium, a CD-ROM, any other optical medium, punch cards, paper
tape, any other physical medium with patterns of holes, a RAM, a PROM,
and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier
wave as described hereinafter, or any other medium from which a computer
can read.

[0187] Various forms of computer readable media may be involved in
carrying one or more sequences of one or more instructions to processor
1004 for execution. For example, the instructions may initially be
carried on a magnetic disk of a remote computer. The remote computer can
load the instructions into its dynamic memory and send the instructions
over a telephone line using a modem. A modem local to computer system
1000 can receive the data on the telephone line and use an infrared
transmitter to convert the data to an infrared signal. An infrared
detector coupled to bus 1002 can receive the data carried in the infrared
signal and place the data on bus 1002. Bus 1002 carries the data to main
memory 1006, from which processor 1004 retrieves and executes the
instructions. The instructions received by main memory 1006 may
optionally be stored on storage device 1010 either before or after
execution by processor 1004.

[0188] Computer system 1000 also includes a communication interface 1018
coupled to bus 1002. Communication interface 1018 provides a two-way data
communication coupling to a network link 1020 that is connected to a
local network 1022. For example, communication interface 1018 may be an
integrated services digital network (ISDN) card or a modem to provide a
data communication connection to a corresponding type of telephone line.
As another example, communication interface 1018 may be a local area
network (LAN) card to provide a data communication connection to a
compatible LAN. Wireless links may also be implemented. In any such
implementation, communication interface 1018 sends and receives
electrical, electromagnetic or optical signals that carry digital data
streams representing various types of information.

[0189] Network link 1020 typically provides data communication through one
or more networks to other data devices. For example, network link 1020
may provide a connection through local network 1022 to a host computer
1024 or to data equipment operated by an Internet Service Provider (ISP)
1026. ISP 1026 in turn provides data communication services through the
worldwide packet data communication network now commonly referred to as
the "Internet" 1028. Local network 1022 and Internet 1028 both use
electrical, electromagnetic or optical signals that carry digital data
streams. The signals through the various networks and the signals on
network link 1020 and through communication interface 1018, which carry
the digital data to and from computer system 1000, are exemplary forms of
carrier waves transporting the information.

[0190] Computer system 1000 can send messages and receive data, including
program code, through the network(s), network link 1020 and communication
interface 1018. In the Internet example, a server 1030 might transmit a
requested code for an application program through Internet 1028, ISP
1026, local network 1022 and communication interface 1018. In accordance
with the invention, one such downloaded application provides for
processing transactions over a communications link as described herein.

[0191] The received code may be executed by processor 1004 as it is
received, and/or stored in storage device 1010, or other non-volatile
storage for later execution. In this manner, computer system 1000 may
obtain application code in the form of a carrier wave.

[0192] In the foregoing specification, the invention has been described
with reference to specific embodiments thereof. It will, however, be
evident that various modifications and changes may be made thereto
without departing from the broader spirit and scope of the invention. The
specification and drawings are, accordingly, to be regarded in an
illustrative rather than a restrictive sense.