I help Peter Calveley in his
request for the reexamination of the Amazon One-click patent.
In 1-click patent family I analyze the family of the One Click patent, and for each
application, its examination and the prior art that was considered in said examination.
In 1-click prior art I analyze patent prior art identified in the present page.
The present page aims to
- analyze the subject matter claimed by 1-click;
- identify prior art;
- identify keywords to find prior art.
Note that Peter is still looking for donations to pay the reexamination fee. Click on the Paypal button of this
page to donate.
I created a mailing list, https://lists.sourceforge.net/lists/listinfo/pagebox-intellectualp.
For questions related to this work. For information that could be of interest for parties whose objectives are different from ours send a mail to support@pagebox.net.
I added Google search and AdSense advertising to the site in the hope to get money for the reexamination expenses.
To support us go to advertiser sites from this page or from the answer pages returned when you use the search button above.
The 1-click patent is 5,960,411 filed by Amazon on September 12, 1997.
A press release published on October 12, 1999 teaches us that
"1-Click combines with Gift-Click and Wish List to make Amazon.com the most convenient, easiest-to-use shopping destination this holiday season. Wish List allows
customers to post the gifts they'd most like to receive from family and friends, while Gift-Click allows customers to send gifts easily by entering just the e-mail addresses
of their recipients."
Amazon patented the Gift-Click function as a continuation of the 1-click application. For details check the 1-click patent family page.
The same press release teaches us that Amazon also provided "hassle-free auction bidding with Bid-Click."
I consider independent claims.
Claim 1 reads:
A method of placing an order for an item comprising:
- under control of a client system,
- displaying information identifying the item; and
- in response to only a single action being performed, sending a request to order the item along with an identifier of a purchaser of the item to a server system;
- under control of a single-action ordering component of the server system,
- receiving the request;
- retrieving additional information previously stored for the purchaser identified by the identifier in the received request; and
- generating an order to purchase the requested item for the purchaser identified by the identifier in the received request using the retrieved additional information; and
- fulfilling the generated order to complete purchase of the item whereby the item is ordered without using a shopping cart ordering model.
Claim 6 reads:
A client system for ordering an item comprising:
- an identifier that identifies a customer;
- a display component for displaying information identifying the item;
- a single-action ordering component that in response to performance of only a single action, sends a request to a server system to order the identified item,
the request including the identifier so that the server system can locate additional information needed to complete the order and so that the server system can
fulfill the generated order to complete purchase of the item; and
- a shopping cart ordering component that in response to performance of an add-to-shopping-cart action, sends a request to the server system to add the item to a shopping cart.
Claim 9 reads:
A server system for generating an order comprising:
- a shopping cart ordering component; and
- a single-action ordering component including:
- a data storage medium storing information for a plurality of users;
- a receiving component for receiving requests to order an item, a request including an indication of one of the plurality of users, the request being sent in response to only a single action being performed; and
- an order placement component that retrieves from the data storage medium information for the indicated user and that uses the retrieved information to place an order for the indicated user for the item; and
- an order fulfillment component that completes a purchase of the item in accordance with the order placed by the single-action ordering component.
Claim 11 reads:
A method for ordering an item using a client system, the method comprising:
- displaying information identifying the item and displaying an indication of a single action that is to be performed to order the identified item; and
- in response to only the indicated single action being performed, sending to a server system a request to order the identified item
- whereby the item is ordered independently of a shopping cart model and the order is fulfilled to complete a purchase of the item.
The abstract of 1-click reads:
"A method and system for placing an order to purchase an item via the Internet. The order is placed by a purchaser at a client system and
received by a server system. The server system receives purchaser information including identification of the purchaser, payment information,
and shipment information from the client system [account setting]. The server system then assigns a client identifier to the client system and
associates the assigned client identifier with the received purchaser information [cookie]. The server system sends to the client system the
assigned client identifier and an HTML document identifying the item and including an order button. The client system receives and stores the
assigned client identifier [cookie] and receives and displays the HTML document. In response to the selection of the order button, the client
system sends to the server system a request to purchase the identified item. The server system receives the request and combines the purchaser
information associated with the client identifier of the client system to generate an order to purchase the item in accordance with the billing and
shipment information whereby the purchaser effects the ordering of the product by selection of the order button."
FIG. 2 of the one click patent shows that a unique client identifier and a customer record are created when the user sets an account. A table allows
finding the customer record from the client identifier.
The description explains that "The client identifier is stored in a file, referred to as a "cookie."
A relevant piece of prior art is a publication that describes a system wherein:
- A first form is displayed in which the user enters user/password, payment and shipment data. A user identifier is generated from these data such as
- it is possible to retrieve said user identifier with said user/password
- from a client/customer table it is possible to retrieve said payment and shipment data with said user identifier from a customer database
- A second form allows signing in:
- said sign-in enabling a "buy now" button;
- said sign-in generating a cookie containing said user identifier
- a third form listing at least one item and a "buy now" button and sending corresponding item identifier and said cookie
- a server program that
- extracts the user identifier from the cookie,
- retrieves said payment and shipment data with said user identifier from the client/customer table,
- retrieves the price of the item using the price identifier,
- updates an inventory,
- creates an order comprising item data, item price, payment and shipment data.
1-Click Technical Troubleshooting reads:
"Your browser must be cookie-enabled in order to use 1-Click shopping. Cookies are short pieces of data stored by your browser which we use to identify your account.
If your browser is not cookie-enabled, or if you are using "cookie-trimming" software such as WebFree, Cookie Cutter, Guard Dog, Cookie Monster, or Watchdog, you will not
be able to use 1-Click ordering. However, you can still purchase items by adding them to your Shopping Cart and clicking the "Proceed to checkout" button to place your
order via our order form."
So 1 click works like session and authentication that were standardized (published) before 1 click patent.
Using 1-Click at Public Terminals reads:
"All transactions made at Amazon.com on our secure server are covered by our security guarantee. However, as an added safety measure, if you are using a
public computer terminal or a shared computer, you should turn 1-Click off before you leave the terminal."
In other words the cookie is created when you sign in that is deleted when you turn 1-click off. If you do not turn 1-click off the cookie expires
after a certain delay and during the while it can be used by someone else to make a purchase.
To properly setup a 1-click account you need to provide:
- data allowing authenticating the user - mail address and password;
- delivery data - address, phone # and shipping method;
- payment data - cardholder name, card number and expiration date.
It is not disputed that electronic shopping carts are known art in 1996.
The sequence is the following:
- the user searches and selects items;
- said items are added to the shopping cart;
- when she checks out the user is displayed a form in which she enters her payment data (cardholder name, card number, expiration date) and her shipping data.
The electronic shopping cart reproduces the sequence used in a supermarket with a normal shopping cart.
It is also not disputed that the means to not enter twice payment and shipping data was known in 1996:
One of the best evidence is provided by an article of Dr Dobbs, September 1996, Volume 21, Issue 9, page 64 by Chris Baron and Bob Weil, entitled "Implementing a Web Shopping Cart."
This article presents a shopping cart to sell items of an online CDROM catalog. Said shopping cart uses server (Perl) code and a database. Listing one, page 84 contains the following comment:
"An ugly shipping information form. In a production system you could read this data from a registered user database and not require users to input shipping and payment data each time."
[Note that the article is in the list of references of 1-click and was therefore considered by the examiner.]
Users have the opportunity to record their shipping and payment data in a registered user database. To retrieve their data they must enter a unique user ID and password.
The user ID is typically the user mail address because (1) the mail address is unique (2) the user remembers her mail address (3) the mail address is useful to confirm the sale,
notify the shipping and for marketing purpose. This is a bit like the supermarket card, which can provide (1) special discounts and promotions (2) a fidelity program (3) fast checkout
for cardholders. The sequence suggested by the Dr Dobbs reference and other pieces of prior art is the following:
- the user searches and selects items;
- said items are added to the shopping cart;
- when she checks out the user is displayed a form in which she sign-in.
However because of promotions and discounts that can change the total amount to pay the following sequence is better:
- the user sign-in;
- the user searches and selects items;
- said items are added to the shopping cart;
- when she checks out the user is displayed a confirmation page.
This sequence was probably practiced by 1996. It was obvious over professional applications.
Consider for instance corporate travel applications. The user needs to sign-in first because depending on her position she may be allowed to fly business class or business class with
manager approval or economy.
1-click is a kind of one item checkout.
Now we need to turn our attention to 1-click claims.
Claim 11 is the weakest. A method for ordering an item using a client system, comprising:
- displaying information identifying the item and displaying an indication of a single action that is to be performed to order the identified item; and
- in response to only the indicated single action being performed, sending to a server system a request to order the identified item
- whereby the item is ordered independently of a shopping cart model and the order is fulfilled to complete a purchase of the item
can be anticipated by
5,729,594 entitled "On-line secured financial transaction system through electronic media"
filed by Edwin E. Klingman on June 7, 1996.
It is logical to believe that this claim was anticipated by the booking sites of the airlines:
- the item is a flight at a certain date between a origin and a destination; for the customer it does not make any sense to buy more than one item;
Furthermore online business reproduced past practices and travel agents did not use shopping carts;
- airlines implemented fidelity programs in the 80's; customers were given Frequent Flier IDs and their data were stored in a customer profile in an airline
database.
Nevertheless we did not yet find written publications describing such practice.
Airline prior art could also break claim 1, a method of placing an order for an item comprising:
- under control of a client system,
- displaying information identifying the item; and
- in response to only a single action being performed, sending a request to order the item along with an identifier of a purchaser of the item to a server system;
- under control of a single-action ordering component of the server system,
- receiving the request;
- retrieving additional information previously stored for the purchaser identified by the identifier in the received request; and
- generating an order to purchase the requested item for the purchaser identified by the identifier in the received request using the retrieved additional
information; and
- fulfilling the generated order to complete purchase of the item whereby the item is ordered without using a shopping cart ordering model.
Claims 6 and 9 claim a system that combines a shopping cart and a single-action (one click) function.
It seems reasonable to assume a marketing motivation for one click.
In an article entitled "Everything old is new again: obviousness limitations on patenting computer
updates of old designs" Richard S. Gruner propose a new obviousness test:
"Computer-based updates of prior physical devices or processes are obvious and unpatentable if:
- Most of the information processing steps incorporated in the updates are modeled on the information processing steps undertaken in the prior physical devices or processes;
and;
- The new information processing features of the updates that were not present in the prior physical counterparts are adjustements of information processing steps in the
earlier devices or processes to make predictably successful use of:
- The regular accuracy of computer processing, or;
- The speed of computer processing.
Richard S. Gruner applies this test to 1-click and find it obvious over prior art made of bar tabs and of vending machines.
Though the test is not endorsed by law the paper is inspirational.
With a vending machine the purchaser first pays and then selects the item. Then the vending machine fulfills the generated order.
With a bar tab, there is first an agreement between the customer and the bartender. Then the customer selects the item. The bartender fulfills the generated order and the customer pays at the end of
the month. This is close to 1-click and shows that one click is what is provided when it does not make sense to buy more than one item at a time. This is also the case of auctions and of stock markets.
The same thing can be said about web shopping carts (that were not patented to our knowledge.) I am not convinced that Web shopping carts were inspired by supermarkets and that the term "Web shopping cart"
was not invented a posteriori. Early Web shopping carts such as the one disclosed in the Dr Dobbs article also use the word "catalog" that refers to the catalogs of remote shopping merchants.
People received a huge catalog and forms on which they added the items to order. Then they mailed the order form to the merchant that fulfilled the generated orders.
Merchants recorded registered users data in a database and these data included shipping data (to send the ordered items and the catalog) and payment data (to send the invoice.)
When they moved online - it happened in 80's in France thank to the Minitel - remote shopping merchants computerized the familiar order form and thus implemented the first online shopping carts.
They may have implemented an express order feature to order only one item.
If they did so they described in their catalog (a written publication) how to use said feature. If they provided said feature with an electronic means like Minitel they probably anticipated 1-click.
If they provided said feature with paper they may have made 1-click obvious.
Dear readers, if you want to help us please check your catalogs published before September 1997!
We believe that the combination of a shopping cart and of 1-click follows from the following findings:
- The shopping cart implements the "do you need anything else?" question. If the customer is provided the means to quickly buy one item she will not buy another item.
- There is a high percentage of abandoned shopping carts - the equivalent of customers who exit without buying anything.
Books are a kind of items for which both cases are possible. Books are rather inexpensive and a customer may enter a bookshop to buy one precise book or to buy books for her next vacations or her family.
Amazon consistently supports both models with:
- a search means [precise request];
- Customers who bought this book also bought [=> shopping cart];
- editorial reviews [=> shopping cart];
Early successful Web merchants were the first to have the motivation to implement Web 1-click.
Given the simplicity of the claimed 1-click implementation, given a shopping cart and a registered users' database another merchant may have implemented 1-click before Amazon.
Let us now about written publications describing such means.
Amazon was awarded to Amazon.com on September 29, 1999. On October 21, 1999, Amazon sued Barnes and Nobles (BN) for allegedly infringing on the technology with its "Express Lane" feature.
In December 1999 a district court granted a preliminary injunction to Amazon [BN could not use Express Lane
for the Chrismas sells.] An appeal court overturned this preliminary injunction in February 2001.
In March 2002 Amazon and BN settle the 1-click lawsuit. In September 2002 the Free Software Foundation decided to end its boycott of Amazon.
I present here the appeal court decision. The appeal court was not deciding about the alleged infringement or the validity of the 1-click patent.
The appeal court was deciding whether Amazon had presented a case showing such a likelihood of infringement by BN that a preliminary injunction could be awarded.
Amazon was entitled to a preliminary injunction if it could succeed in showing:
- a reasonable likelihood of success on the merits;
- irreparable harm if an injunction is not granted;
- a balance of hardships tipping in its favor; and
- the injunction's favorable impact on the public interest.
The appeal court found that BN's Express Lane infringed 1-click and that BN had mounted a serious challenge to the validity of Amazon's patent.
The court further wrote:
"We hasten to add, however, that this conclusion only undermines the prerequisite for entry of a preliminary injunction. Our decision today on the validity issue in no way resolves the ultimate
question of invalidity."
The appeal court came to the conclusion that 1-click is a matter of step order:
"Col. 3, ll. 31-37. How, one may ask, is the number of purchaser interactions reduced? The answer is that the number of purchaser
interactions is reduced because the purchaser has previously visited the seller's web site and has previously entered into the database of the
seller all of the required billing and shipping information that is needed to effect a sales transaction. Thereafter, when the purchaser visits the
seller's web site and wishes to purchase a product from that site, the patent specifies that only a single action is necessary to place the order
for the item. In the words of the written description, "once the description of an item is displayed, the purchaser need only take a single
action to place the order to purchase that item." Col. 3, ll. 64-66."
The appeal court found that 5,708,780 from OpenMarket was relevant prior art. The court wrote:
"States Patent No. 5,708,780 ("the '780 patent") (a reference cited by BN which is discussed more fully below), describes "forwarding a service
request from the client to the server and appending a session identification (SID) to the request and to subsequent service requests from
the client to the server within a session of requests."
"Before the district court, BN argued that this reference anticipated at least claim 1 of the '411 patent.
In the preferred embodiment described in the '780 patent, a user browses the web conventionally, and a content server provides web documents to the
user and determines when the user seeks access to "controlled" content, i.e., web pages for which the user needs authorization to browse. '780
patent, col. 7, ll. 35-38. The '780 patent describes a system in which controlled pages are returned to the user's browser when an authorized
request is received by the content server. We note that the '780 patent describes "forwarding a service request from the client to the server and
appending a session identification (SID) to the request and to subsequent service requests from the client to the server within a session of
requests." Id. at col. 3, ll. 12-16.
"We conclude that the district court failed to recognize that a reasonable jury could find that such "items" (i.e., controlled pages) fall within the
scope of the claimed invention, and that delivery of these controlled pages based on receiving an authorized request from a user's browser may
constitute a "single action ordering component" within the meaning of the claims in the '411 patent. Therefore, the '780 patent is yet another prior
art reference cited by BN which tends to raise a substantial question of validity, either alone or in combination with the other cited references."
I identify here the most frequent words.
Word |
Number |
order[s|ing] | 240 |
system | 198 |
server | 128 |
single | 105 |
action | 101 |
purchaser | 99 |
item | 77 |
web | 69 |
page | 52 |
identifier | 47 |
customer | 31 |
A similar disclosure would include order, client, server, system, single, action, (purchaser or customer,) item, web, page,
identifier. I found that action and order could easily be replaced by another word. In addition order has different meanings.
I replaced web and page by modem.
A search on USPTO with
"spec/order and spec/client and spec/item and spec/modem and (spec/purchaser or spec/customer or spec/buyer)"
returns 1343 patents including:
- 5,329,589 entitled
"Mediation of transactions by a communications system" filed on June 3, 1993. Its priority date is on Feb. 27, 1991.
Does not teach customer sign-in before item selection but important nevertheless. Comprises the steps of:
- receiving a transaction specifier from the customer in the communications system; and
- responding to the transaction specifier by performing steps in the communications system including
- obtaining at least an identifier known to the approving entity from the customer,
- obtaining at least a debit amount from the vendor,
- providing the identifier and the debit amount to the approving entity,
- receiving an indication from the approving entity whether the transaction is approved, and
- providing the indication to the vendor without providing the identifier to the vendor
- 5,444,192 entitled
"Interactive data entry apparatus" filed on July 1, 1993
5,329,589 suggests a possible implementation
in which
- the customer dials a number;
- the customer is prompted to provide account or payment information
- the customer uses DTMF to provide for instance her credit card number and expiration date;
- the customer is enumerated a list of options;
- the customer uses DTMF to select her phone number;
- the customer listens something of interest.
Such system would be a method of placing an order for an item comprising:
- under control of a client system,
- providing information identifying the purchaser; and
- providing information identifying the item; and
- in response to only a single action being performed, sending a request to order the item to a server system;
- under control of a single-action ordering component of the server system,
- receiving the request;
- retrieving additional information previously stored for the purchaser; and
- generating an order to purchase the requested item for the purchaser identified by the identifier using the retrieved additional information; and
- fulfilling the generated order to complete purchase of the item whereby the item is ordered without using a shopping cart ordering model.
Such system would not include the "along with an identifier of a purchaser" for the reason that the phone method would work
in connected mode whereas 1-click works in an environment without permanent connection, in which the purchaser identifier
has to be sent in every message.
Special phone numbers in which the TELCO collects the fee on behalf of the provider are probably too far from 1-click.
A search on USPTO with
"spec/buy and spec/client and spec/item and spec/modem and (spec/purchaser or spec/customer)"
returns 334 patents including:
- 5,809,483 entitled
"Online transaction processing system for bond trading" filed on November 14, 1997 as a continuation of an application
filed on May 13, 1994.
- 5,754,939 entitled
"System for generation of user profiles for a system for customized electronic identification of desirable objects" filed on
October 31, 1995.
- 5,710,887 entitled
"Computer system and method for electronic commerce" filed on August 29, 1995
In a paper entitled "BountyQuest Revisited: The Coin Has
Two Sides" published on april 2, 2001 Nancy Lambert reports that:
"in an open letter again available from the BountyQuest site (full text at
http://www.oreillynet.com/pub/a/patents/2001/03/14/bounty.html) dated March 14, O'Reilly said
"[B]ecause of the complexity of Amazon's complete patent, and because it is specific to the Web rather than to these
earlier media, we weren't able to match every claim. And, in fact, all the prior art that was submitted specifically for
the Web [my emphasis-NL] confirms Amazon's belief that they were doing something original.... So, I want to offer Jeff
something of an apology. Amazon may not have deserved a patent on 1-Click... but they appear to have been staking out new
territory in ease of use for Web shopping." Then he flipped the coin again, saying, "However, we do think that the prior art
that we found sufficiently narrows the scope of what Amazon can claim [so] that it will be much more difficult for them to
enforce their patent."
Some Bountyquest findings were disclosed:
""O'Reilly agreed that he would award the $10,000 to those who submitted the nearest prior art. BountyQuest later announced
that it would split the bounty among three Hunters. The winning art includes US4734858, which describes the use of a remote
data terminal to place orders; US5303393, which describes a simplified way of placing an order via a two-way radio system;
and European patent EP680185 (U.S. equivalent US5819034), which actually describes one-click shopping within the patent
specification."
The abstract of 4,734,858 reads:
"A plurality of data terminals which can automatically dial a local processing center (LPC) are distributed among users
each of whom can address the LPC with a unique user identification and an internal terminal identification."
[Terminal identification was almost ubiquitous (see SNA LU2 for 3270 for instance). In SNA there were 370 computers
running MVS/CICS, 3705/3725 network controllers running NCP to which were connected 3274/3174 cluster controllers to which
were connected 3270 devices. SNA could use phone lines - for instance a remote 3274 connected to a central 3705.
X25 was supported through an NCP subprogram called NPSI.]
"Each data terminal can accumulate orders for goods or services in a send memory while the terminal is unencumbered by any
external connector." [items orders are accumulated in a kind of shopping basket.]
5,303,393 is relevant:
"The user has the option of inputting to the mobile terminal 401 a user-input signal. The user can generate the user-input
signal by speaking into a microphone which converts the user's voice to a digital signal processes the converted voice
signal to generate a user-input signal. For example, the user might speak the word ORDER which indicates to place an order
of the item being advertised in the advertisement of the program signal. The spoken word ORDER is converted to a digital
signal, identified and recognized. The resulting output is the user-input signal. Alternatively, the user may place an order
by pushing a button or touching a touch screen on a display."
EP680185 / 5,819,034 reads:
"When a viewer wishes to order an item, a button is pressed on the TV remote control. This button signals the client computer
22 to display a series of instructions and menus necessary to solicit the information necessary to place the order, e.g. the
item number, name and address of the viewer, the method of payment, the credit card number (if needed),"
This is in the context of interactive TV. "If needed" means that this piece of information can be entered once:
"It is also possible that permanent information about the viewer (i.e. the name, address, method of payment and credit card
number) may be preentered once by the viewer, so it is not necessary to solicit that information each time an order is
placed. The information is stored in permanent memory in the client computer. In such a case, when an order is placed, that
information is retrieved from the permanent memory, appended to the item number and transmitted to the central computer."
We identify environments in which 1-click may have been practiced first.
Such environments must include:
- a client system connected to a server system by a network;
- a client system able to send a request containing an item ID and a user ID;
- a server system connected to a inventory database and to a registered users' database.
The specification of 1-click describes a Web invention.
My gut feeling is however that there is no prior art to find in Xanadu, the Web ancestor. The big problem is that Xanadu was never released. So there are few
artcles and no third parties' tutorials. Nevertheless the following URLs are of interest:
Xanadu was about document access and reuse. A form can be regarded as a special document. It is possible that a Xanadu programmer described a 1-click-like
document but this was not the objective of the project. Xanadu was using a royalty model briefly described in this
document.
There are three dimensions to consider in prior art:
- The client system. The client system can be a PC, a PDA, a Minitel, a TV set-top... By 1996 it could probably not be a cell phone. PDA and set-top are valid keywords.
For PCs we need to consider other dimensions.
- The Graphical User Interface.
- The network used to connect the client system to the server.
When the client system is not a PC or a Minitel the provider is likely to be the hardware or service provider, a company able to support substantial development and promotion costs.
Such company will probably patent its inventions. For PC and Minitel we have to check written publications. We consider first the solution used by 1-click, HTML user interface and HTTP protocol.
The RFC 2109 (February 1997) describes the HTTP state management.
RFC 2109 reads:
'The origin server initiates a session, if it so desires. (Note that "session" here does not refer to a persistent network
connection but to a logical session created from HTTP requests and responses. The presence or absence of a persistent
connection should have no effect on the use of cookie-derived sessions). To initiate a session, the origin server returns
an extra response header to the client, Set-Cookie.'
There are two other solutions addressing the session / state management issue:
- URL rewriting which is implemented by application servers. URL rewriting is employed when a browser is configured not to
accept cookies and consists in encording the session identifier as a parameter on any link or form the user submits from a
web page.
- Hidden fields that are employed to move frome one site to another, as disclosed in the aforementioned article of Dr Dobbs, September 1996, Volume 21, Issue 9, page 64 by Chris Baron and Bob Weil, entitled
"Implementing a Web Shopping Cart" and in 5,745,681 entitled "Stateless shopping cart for the web"filed by Sun Microsystems on
January 11, 1996.
The Systems can be combined. Today in the Amazon case the browser sends in a TCP/IP session a HTTP message containing:
GET http://www.amazon.com/gp/amabot/?pf_rd_uri=/gp/yourstore/ref=pd_irl_gw/002-0045386-6367261?%5Fencoding=UTF8&signIn=1&pf_rd_p=103946401&pf_rd_s=ilm&pf_rd_t=101&pf_rd_i=507846&pf_rd_m=...&pf_rd_r=... HTTP/1.0
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, */*
Referer: http://www.amazon.com/gp/homepage.html/002-0045386-6367261
Accept-Language: en-us
Proxy-Connection: Keep-Alive
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)
Host: www.amazon.com
Cookie: ubid-main=430-3910398-5100528; session-id-time=1137398400; session-id=002-0045386-6367261; session-token=...; jsfok=1
At this stage the user has not yet signed in but a session whose ID is 002-0045386-6367261 already exists.
This session is added to the URL (kind of URL rewriting) AND written in a cookie.
The same session is still used when the user is logged in (url = https://www.amazon.com/gp/yourstore/002-0045386-6367261?signIn=1&%5fencoding=UTF8&ref%5f=pd%5firl%5fgw).
It looks like Amazon implements something similar to
5,966,705, a patent filed on June 30, 1997 by Microsoft whose title is "Tracking a user across both secure and non-secure
areas on the Internet, wherein the users is initially tracked using a globally unique identifier."
The detailed description of 1-click teaches that cookies are used:
The client identifier/customer table 212 contains a mapping from each client identifier, which is a globally unique identifier that uniquely identifies a client system, to the customer last associated with that
client system. The client system 220 contains a browser and its assigned client identifier. The client identifier is stored in a file, referred to as a "cookie." In one embodiment, the server system assigns and sends
the client identifier to the client system once when the client system first interacts with the server system. From then on, the client system includes its client identifier with all messages sent to the server system
so that the server system can identify the source of the message.
As exposed in RFC 2109 a cookie stores name value pairs.
From the current implement and description we can deduce that the cookie is created when the server processes a request on http://www.amazon.com and that a new name value pair
clientid = xxxxx is added to the cookie when the user signs in or that a new cookie with possibly a longer expiration time is created. The creation of a session logically implies the creation of a session block on the
application server and each time the client browser sends a request with the same cookie / url the server logic retrieves the session block. The session block contains objects such as the client data.
Writing a client identifier name value pair can serve three purposes:
- Structuring the server code. One part handles tracks anonymous user behavior both for help and for tracking purpose. Another part handles the identified users requests displaying the "1-click" buttons.
- A user session is typically given an expiration time of 15-20mn. It can be useful to provide a longer expiration time for the client ID cookie.
- When the user signs-in she stays in the Amazon domain but moves to https. It can useful to store the client ID name value in a secure cookie that can be sent only over https.
In any case sending the client identifier name value pair addresses a technical constraint that makes sense only in the environment defined by the HTTP protocol [and the cookie system.]
Regarding the way the client ID is generated, the abstract of 1-click reads:
"The server system receives purchaser information including identification of the purchaser, payment information, and shipment information from the client system. The server system then assigns a client identifier to the
client system and associates the assigned client identifier with the received purchaser information."
A reasonable implementation is:
- Use a database sequence to generate the client ID - the Oracle DBA handbook by Kevin Loney published in 1994 by Oracle Press (McGraw-Hill) reads page 13:
"The first time a sequence is called in a query, it returns a predetermined value. Each subsequent query against the sequence will yield a value that is increased by its specified increment."
- Stores the identification of the purchaser, payment information, and shipment information in at least one database record in which said client ID is the key or a part of the key.
I do not read that the claimed subject matter is so specific to include a client identifier that is a database key.
I think that the best definition of the identifier is given in claim 6:
"request including the identifier so that the server system can locate additional information needed to complete the order
and so that the server system can fulfill the generated order to complete purchase of the item."
The identifier contains what is needed to locate customer information.
The issue is closely related to infringement. I think that an id that uniquely identifies a temporary session block that
contains or points customer information infringes 1-click as well as an id that permanently identifies a customer record.
Claim 9 reads:
"an order placement component that retrieves from the data storage medium information for the indicated user."
The disclosure does not define "data storage medium." The
Free Dictionary and Wikipedia
suggest that a data storage medium is something like magnetic/optical storage or flash memory.
Another limitation of claim 9 reads:
a data storage medium storing information for a plurality of users.
Another limitation of claim 9 reads:
a request including an indication of one of the plurality of users
So an indication is provided that is sufficient in the current state of the server to retrieve user information from the
data storage medium, which is consistent with claims 1 and 6.
My understanding is that certificate-based identification also qualifies.
Certificates, signatures and public key infrastructures work in the following way.
The requestor presents some credentials like her cardholder name, credit card number and expiration date to a certificate
authority. The certificate authority returns:
- a certificate signed by said certificate authority that contains a public key;
- a corresponding private key.
The public key allows decrypting data encrypted with the private key and the opposite.
The CA signature asserts that the CA provided said key pair to the requestor.
Public key infrastructure provide non-repudiation. Given that
- only the private key allows encrypting messages that can be decrypted with the public key;
- the certificate says that the private key was sent to X;
if the public key of X allows decrypting a signature then this is necessarily X who signed a message.
In a typical implementation of 1-click with certificates the server would act as a certificate authority. The abstract
of 1-click:
"The server system receives purchaser information including identification of the purchaser, payment information, and
shipment information from the client system. The server system then assigns a client identifier to the client system and
associates the assigned client identifier with the received purchaser information."
would translate into:
The server system receives purchaser information including identification of the purchaser, payment information, and
shipment information from the client system. The server system then creates a key pair and a certificate. It sends the
private key and the certificate to the client and associates the certificate with the received purchaser information.
Then the client can be asked to sign a message and hence to use her private key.
Certificates are likely to be used in prior art and particularly in patents for the following reasons:
- Banks were not able by 1994 to properly assess the repudiation risk. Therefore there was a demand for non-repudiation
solutions;
- Certificate-based solutions were more complex than solutions using user ID and passwords. Large software companies
(the ones that file most software patents) were likely to implement certificate-based solutions.
5,878,141 entitled "Computerized purchasing
system and method for mediating purchase transactions over an interactive network" filed on August 25, 1995 by Microsoft
teaches a certificate-based solution. The abstract reads:
"A computerized, electronic purchase mediating system includes a purchaser database having a list of purchasers and a
merchant database having a list of merchants. The purchaser database stores information about each purchaser including a
set of personal payment methods that the purchaser could use to purchase goods and/or services. Similarly, the merchant
database stores information about each merchant including a set of accepted payment methods that the merchant would accept
for sale of the goods and/or services. The purchase system also includes a processor coupled to the purchaser and merchant
databases. The processor receives a purchase request and accesses the merchant database according to a merchant identified
in the purchase request to retrieve the set of accepted payment methods which corresponds to that merchant. The processor
also accesses the purchaser database to retrieve the set of personal payment methods which corresponds to the identified
purchaser. The processor then computes an intersection of these two sets to derive a common set of any available payment
method that is both accepted by the merchant and can be used by the purchaser for purchase of the goods and/or services.
The purchaser is presented with the purchase amount and the common set of available payment methods to choose a most
preferred form of payment. Upon selection, the processor consummates the sale and signs a digital signature with the
purchaser's permission via password verification to ensure for the merchant that a completed transaction has occurred."
We can compare the limitations of the first claim of 1-click to 5,878,141:
under control of a client system is practiced by 5,878,141.
"Purchasing system 10 also has multiple purchasing terminals 18-23 located remotely from transaction processing unit 12.
Purchasing terminals 18-23 are illustrated as many different types of electronic devices, including a point-of-purchase
register 18, a personal computer 19, a telephone 20, a stand-alone machine 21 (e.g., an ATM), a television and set-top box
unit 22, and a magnetic-stripe credit card reader 23 (e.g., a Verifone.RTM. reader). Each purchasing terminal has an input
device which can receive a purchase request from a purchaser to buy goods and/or services from a merchant. The input device
can be in the form of a keypad (as in the case of the register 18, telephone 20, stand-alone machine 21, and card reader 23)
or a keyboard or mouse (as in the case of computer 19), or a remote control device (as in the case of a remote for the TV
and set-top box unit 22). These illustrated purchase terminals are only a representative sample, as many other electronic
devices can be used to make purchases in the computerized purchasing system of this invention."
displaying information identifying the item is practiced by 5,878,141.
FIG. 5 is a user interface that is displayed on a television of the interactive television system during a purchase
transaction.
in response to only a single action being performed is practiced by 5,878,141.
See Buy button on FIG. 5.
"A cancel button 112 and a buy button 114 enable the subscriber to accept or deny the transaction before any money exchanges
hands."
Regarding the selection of the payment method:
"FIG. 5 is but one example arrangement of information that can be presented to the subscriber, and many other arrangements
with more or less information can be used."
So there can be less information and
"[the user interface] includes a spin dial 110 which presents the available payment methods in a sequential order, and if
desired, in a prearranged order according to the subscriber's preferences."
So Microsoft teaches that the preferred payment method can be displayed first. This is the default:
"The subscriber selects the default payment method, or cycles through any alternative choices, to inform the purchasing
system of a desired payment method."
Note that 1 click teaches a method describing client / server interactions and is silent on what happens in the client
system, and
- the payment selection is performed by the purchase mediator; and
- "The purchase mediator consists primarily of a user interface (UI) code running on the set-top box in the subscriber's
home."
So 5,878,141 teaches the equivalent of a HTML page and embedded/included javascript as confirmed by set-top background data:
- Wikipedia;
- a paper entitled "Opening the Set-Top Box Market" by
J. P. Bailey published in 1995.
sending a request to order the item along with an identifier of a purchaser of the item to a server system
is practiced by 5,878,141.
"If the purchaser confirms the purchase transaction, the processing unit attaches an unforgeable digital signature on
behalf of the purchaser to authorize the purchase and to validate for the merchant that a sale has been consummated. The
digital signatures are produced using signing tools, such as cryptographic signing keys, which are unique to corresponding
purchasers and are stored in the purchaser database. A password entered by the purchaser authorizes the processing unit to
use his/her associated signing tool kept in the purchaser database. This digital signature assures the merchant that a
legally enforceable purchase transaction has occurred."
The digital signature is unique to corresponding purchaser. It is an identifier of a purchaser.
receiving the request;
retrieving additional information previously stored for the purchaser identified by the identifier in the received request;
is practiced by 5,878,141.
"the consummated purchase transaction is forwarded from purchase mediator 84 to transaction routing system."
"The transaction routing system selects a subscriber account."
generating an order to purchase the requested item for the purchaser identified by the identifier in the received
request using the retrieved additional information; and
fulfilling the generated order to complete purchase of the item is practiced by 5,878,141.
"[The transaction routing system] authorizes a withdrawal from the subscriber account, and authorizes a corresponding deposit
in the merchant account"
The background of 1 click reads:
"When the user has completed selecting the items to be purchased, the server computer system then prompts the user for
information to complete the ordering of the items. This purchaser-specific order information may include the purchaser's
name, the purchaser's credit card number, and a shipping address for the order. The server computer system then typically
confirms the order by sending a confirming Web page to the client computer system and schedules shipment of the items."
1 click does not even include the words withdraw and deposit though we can reasonably assume that there is a withdrawal
and a deposit at the same time as the shipment - a word that is not used in the Microsoft patent even if it has to happen
when the item is a good and not a service.
Here there is inherency on both sides.
For the patents cited by 5,878,141 or that reference 5,878,141 check the 1-click
priorart page.
The name of the topics are chosen for keyword search and not for technical accuracy.
Hypercard, Visual basic, Delphi and Powerbuilder are IDEs that produce programs that implement GUIs, possibly with the help of runtime libraries.
Java is a language. A browser is the graphical program that interprets HTML pages.
Programs widely used in 1996 that could have used implement the client part of a client server application were:
- HyperCard
- Visual Basic
- Delphi
- Powerbuilder
- Browsers. The first widely used browser was Mosaic released in 1993. Then came Netscape (1995) and Internet Explorer.
- Java
- Smalltalk. Smalltalk implementations was mature in early 1990's. Smalltalk programs were as portable as Java
applications today. Images' size was huge by those days standards and ParcPlace Smalltalk was expensive.
There were other environments such as Forte, Dynasty, Business Objects and NSDK.
For another presentation you may look at Client/Server Computing in 1994 by Lowell Greenberg.
It has to be said that numerous BBS provided GUIs to their customers and that these GUIs may have implemented 1-click.
The appeal opinion mentions CompuServe Trend which was a tool belonging to this family.
Beside commercial products there was already free open source products. The most popular was tcl/tk. The graphical part of tcl/tk, tk could be used with other languages.
There was for instance a perl/tk. And programmers wrote GUI with traditional languages, Pascal and C, later C++ and a graphical API.
HyperCard was a program developped for the Apple MacIntosh by Bill Atkinson. Hypercard was released in 1987.
A HyperCard program was a stack. It contained a graphical background and cards containing text, graphics, fields and buttons linking to other cards or running scripts.
The script language of HyperCard was HyperTalk. It was able to call external programs. As early as 1987 was suggested that HyperCard could become the center of the
MacIntosh. In 1992 there was a HyperCard TCP toolkit allowing implementing TCP/IP communications from within HyperCard.
HyperCard stacks have probably also been developped to use the AppleLink.
However this service was expensive and targeted Apple employees, dealers and developers. This is unclear whether an online
ordering card was implemented and described in a written publication such as MacTutor.
Note that because AppleLink (and the Microsoft equivalent, MSPN) were used by developers an application can have
implemented and publicly described, for instance to get patches, add-ons and alpha/preview releases:
- whose client part provided a graphical user interface
- allowing registered users (for instance certified developers and dealers) to sign-in;
- to list items offered for download or sale;
- in response to only a single action being performed, sending a request to order an item in the list
- whose server part reads a database of registered users to fulfill the order.
HyperTalk programming was somewhat similar to Javascript or Visual Basic programming.
In 1996 a company called Royal Software released a LiveCard product
to serve HyperCard stacks on the Web. It was not enough to stop the decline of HyperCard and Apple eventually stopped distributing it despite
user campains. Several alternatives
to HyperCard were developed.
Quite interestingly the first version of HyperCard was free - but the distribution cost which was high with the Apple packaging. This was the wish of Bill Atkinson.
About the failure of HyperCard it is useful to reproduce here an answer of John Sculley, then Apple CEO. The question was
"Any missed opportunities that you wish you could do over?" He replied:
As I look back on things that I wished we would have done differently when I was at Apple, I think one of the biggest missed opportunities, and it was on my watch, so I feel responsible and
disappointed that we didn't do more with it, was Hypercard. It was created back in 1987 by Bill Atkinson, Apple's first software programmer. We could never figure out exactly what it was. We thought
it was a prototyping tool. We thought it was a database tool. It was actually used by people as a front-end communications device for TCP/IP to connect the Internet to large Cray computers.
We weren't insightful enough to recognize that what we had inside of Hypercard, essentially, was everything that later was developed so successfully by Tim Berners-Lee with HTTP (Hypertext Transfer
Protocol) and HTML (Hypertext Markup Language). We didn't call it that. But essentially, we had all that hypertext, radio buttons and linking capability architected in the original Hypercard. In hindsight,
I wish Apple had recognized that we had a huge opportunity to go take our user interface culture, and our know-how, and applied it to the Internet. I think we would have had a very different story for
Apple during the 1990s. But that, of course, is hindsight.
There is a Hypercard FAQ you can find here and here.
For a more comprehensive HyperCard story you may look here.
I started using VB with version 4. Then I moved to 5 and 6. So I know only the 32-bit version. VB was quite effective to quickly develop a user interface and could be extended with controls called VBX in the
16-bit version and OCXs in the 32-bit version. Technically a VBX was a DLL whereas an OCX was a OLE 2 control (later known as an Active X control.) Controls were typically written in Visual C++ with the MFCs
and later the ATLs in case of OCXs.) Therefore it was possible to call any kind of server from VB.
Here I probably need to talk about the client / server protocols build on top of TCP/IP and UDP. There were:
- Sun RPCs. NFS (the Unix means to share directories - similar to SMB for Windows) uses Sun RPCs.
- DCE RPCs. Microsoft designed COM and then DCOM (the object model used by OLE 2 / ActiveX) from DCE RPCs.
- CORBA, a standard for calling remoting objects. CORBA vendors (Orbix, Visigenic...) usually provided an Active X to CORBA bridge.
- I-EDI, the interactive version of EDIFACT used mainly in the travel industry. I-EDI as well as other industry protocols was also
used over X25 and other networks.
- the Java Remote Method Protocol (JRMP) used by Java RMI.
The choice of the protocol and the capability to allow implementations of different vendors to interoperate were hot
issues by 1997. IIOP (interoperable CORBA protocol also used by RMI), XML, XML-RPC and SOAP were introduced later.
A client acting as the front end of any kind of server and providing a graphical user interface
- allowing registered users (for instance certified developers and dealers) to sign-in;
- to list items offered for download or sale;
- in response to only a single action being performed, sending a request to order an item in the list
could be written in VB.
A search on the USPTO site with "spec/"visual basic" and spec/buy and spec/item and spec/list" returns 140 patents including:
- 5,812,668, entitled "System, method and article of manufacture for verifying the
operation of a remote transaction clearance system utilizing a multichannel, extensible, flexible architecture," filed by Verifone on June 17, 1996;
- 5,850,446, entitled "System, method and article of manufacture for virtual point
of sale processing utilizing an extensible, flexible architecture," filed by Verifone on June 17, 1996;
- 5,889,863, entitled "System, method and article of manufacture for remote virtual point of sale processing utilizing a multichannel, extensible, flexible architecture," filed by Verifone on June 17, 1996;
- 5,943,424, entitled "System, method and article of manufacture for processing a plurality of transactions from a single initiation point on a multichannel, extensible, flexible architecture," filed by Hewlett Packard on June 17, 1996;
- 5,983,208, entitled "System, method and article of manufacture for handling transaction results in a gateway payment architecture utilizing a multichannel, extensible, flexible architecture," filed by Verifone on June 17, 1996;
- 5,987,132, entitled "System, method and article of manufacture for conditionally accepting a payment method utilizing an extensible, flexible architecture," filed by Verifone on June 17, 1996;
Delphi was a development package developped by Borland.
Delphi 1 released in 1995 was 16-bits. Delphi 2 released in 1996 was 32-bits.
Delphi comprised
- an IDE like Visual Basic;
- an object Pascal language;
- a Visual Component Library (VCL)
Delphi was a successful RAD tool in 1995-1996.
VCL was an object component-based framework in which all classes inherited from TObject. There were database access classes
(for instance TDataSet,) visual classes and even, starting with Delphi 2, HTML (TWeb*) / HTTP (TCGIEnvData) classes.
A search on the USPTO site with "spec/delphi and spec/buy and spec/item and spec/list" returns 109 patents including
the following ones already identified with Visual basic:
- 5,812,668, entitled "System, method and article of manufacture for verifying the
operation of a remote transaction clearance system utilizing a multichannel, extensible, flexible architecture," filed by Verifone on June 17, 1996;
- 5,850,446, entitled "System, method and article of manufacture for virtual point
of sale processing utilizing an extensible, flexible architecture," filed by Verifone on June 17, 1996;
- 5,889,863, entitled "System, method and article of manufacture for remote virtual point of sale processing utilizing a multichannel, extensible, flexible architecture," filed by Verifone on June 17, 1996;
- 5,987,132, entitled "System, method and article of manufacture for conditionally accepting a payment method utilizing an extensible, flexible architecture," filed by Verifone on June 17, 1996;
PowerBuilder was development package developped by Powersoft.
It was more expensive than VB and Delphi et particularly effective for direct database access. I include PowerBuilder
because it was as good as VB and Delphi to write the client part of a client server application.
A search on the USPTO site with "spec/powerbuilder and spec/buy and spec/item and spec/list" returns 44 patents.
First generations of PDA (Newton) were using Radio Frequency networks.
A comparatively small number of people was using networks up to the time in 1995 at which AOL introduced its cheap rate
and massive advertising campaigns with the exception of France in which a simple device embedding a modem, the Minitel, was
given away to phone subscribers.
There were three barriers before:
- Hardware cost. PC and modems were expensive.
- Convenience. Modem were too slow to carry pictures (speed grew nevertheless from 1200 bps in 1985 to 9Kps in early 90's.)
- Hourly rate at $10 in the ninetees.
The Minitel was in a slightly different situation:
- No hardware cost
- Limited but usable user interface
- Tree kind of applications
- Inexpensive applications such as the phone directory, the "11"
- Local phone fee applications used for instance by remote shopping merchants for online ordering
- Applications where there were a surcharge on the phone fee, used by dating and porn systems and to provide valuable data
(INFOGREFFE and EURIDILE were the simplest way to get data about a company.)
The fee could be $0.5 per minute and more.
- There was a search facility called MGS to find Minitel services (about 20,000 services were offered.)
As a consequence the marketplace was too small and inconvenient to motivate the creation of numerous online ordering
applications for end consumers. Remain three cases:
- Professional users. Professional users may have used for themself or on behalf of end consumers (case of travel
agents) a profession online ordering application.
- Kiosk services. There were a number of kiosk service for instance to book tickets in railway stations.
There were written publications (advertising, articles) and patents for these services. However only kiosks that required
user sign-in (card or user/password) are of interest for us.
- Appliances such as set-tops. These appliances were usually designed by large companies that filed patent applications.
Here I do not aim to present TCP/IP, Internet and the Web. I assume that this network, infrastructure and environment are
familiar to the reader. There are a number of excellent documents on the subject such as the Wikipedia articles about the
Internet protocol suite,
Internet and the World Wide Web. You can also read
Internet Structure and Development: On Strategic Uses of the Archetypes of the Networked Mind.
I aim to present in which way TCP/IP, Internet and the Web may have been used in systems and methods antipating 1-click.
Originally TCP/IP was frequently confused with Unix (the first operating system implementing the TCP/IP stack) and Ethernet
(the first data link layer used by TCP/IP in LANs.) Outside the Unix world the confusion probably lasted up to 1994. In the
80's planners (notably in Europe) considered TCP/IP as an interim solution before OSI (discussed in the X25 section.)
On the LAN Ethernet was challenged by the token ring of IBM and the TCP stack was challenged by numerous systems, the most
popular being Novell with the IPX and SPX protocols. TCP/IP was primarilly designed for LAN and it looked weird at first to
send TCP traffic on a serial line (with SLIP first and then with PPP.)
OSI failed notably because
- comprehensive OSI stacks released at the end of 80's were expensive and were not widely adopted;
only X25 was adopted and mainly when favored by TELCOs as it happened in Europe;
- networks such as Usenet,
Bitnet and Compuserve
migrated to Internet because Internet was proven technology. In early 90's Internet was not huge but it was already bigger
than other networks.
I think that the two key points are:
- In early 90's TCP/IP and Internet were free for the education world (mainly in USA) and for the Unix community,
in which users were essentially professional users. In both cases the network was not supposed to be used as a market
place.
- TCP/IP and Internet are networks. Before the Web advent there are proprietary graphical front ends like the CompuServe
GUI and text interfaces in the teletype/VT100 way. I discuss text interfaces in the VT100 section.
A client / server application can have been implemented with TCP/IP
- whose client part provides a graphical user interface
- allowing registered users to sign-in;
- to list items offered for sell;
- in response to only a single action being performed, sending a request to order an item in the list
- whose server part reads a database of registered users to fulfill the order.
The "along with an identifier of a purchaser of the item" limitation of 1-click was not necessarily part of a written
publication if TCP was used and if the client used the same session:
- to sign-in
- list items
- order an item
However data that uniquely identified the session were sent along with the order request. So if the session was established
on behalf of a purchaser or if a purchaser was assigned earlier to the session, then said identification data identified the
purchaser.
TCP identification data comprise:
- the source address that identifies the client computer;
- the source port that identifies the client program in the client computer;
- the destination address that identifies the server computer;
- the destination port that identifies the server program in the server computer.
The IP protocol is described by RFC 791.
The TCP protocol is described by RFC 793.
TCP is layered on top of IP:
+---------------------+
| higher-level |
+---------------------+
| TCP |
+---------------------+
| internet protocol |
+---------------------+
|communication network|
+---------------------+
So an IP datagram contains a TCP segment.
An IP datagram has a header that contains the source and destination addresses:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| IHL |Type of Service| Total Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identification |Flags| Fragment Offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Time to Live | Protocol | Header Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
A TCP segment has a header that contains the source and destination ports:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Port | Destination Port |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Acknowledgment Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data | |U|A|P|R|S|F| |
| Offset| Reserved |R|C|S|S|Y|I| Window |
| | |G|K|H|T|N|N| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Checksum | Urgent Pointer |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| data |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Therefore every time data are sent the source and destination addresses and ports are sent.
There is another transport protocol, UDP that was probably not used by prior art.
This protocol is defined by RFC 768.
A search on the USPTO site with "spec/"tcp/ip" and spec/buy and spec/item and spec/list" returns 319 patents. However
probably not more than thirty applications using TCP/IP were filed before the web advent. I found the following patents:
- 5,890,137 entitled
"On-line shopping system and the method of payment settlement" filed on July 26, 1996 presents a traditional
shopping cart.
- 5,857,175 entitled
"System and method for offering targeted discounts to customers" filed on August 11, 1995. This patent describes a
system in which the user sign-in first (otherwise she could not be displayed a targeted list of discounted items.)
However the kiosk is only a display and printing device. The checkout takes place at the point of sale.
- 5,850,446 entitled
"System, method and article of manufacture for virtual point of sale processing utilizing an extensible, flexible
architecture" filed on June 17, 1996 already identified in the Visual Basic section
- 5,845,265 entitled
"Consignment nodes" filed on November 7, 1995 by MercExchange that I analyze in the
Business method page of this site.
- 5,809,483 entitled
"Online transaction processing system for bond trading" filed on November 14, 1997 as a continuation of an application
filed on May 13, 1994.
- 5,710,887 entitled
"Computer system and method for electronic commerce" filed on August 29, 1995
- 5,613,012 entitled
"Tokenless identification system for authorization of electronic transactions and electronic transmissions" filed on
May 17, 1995 that achieves single action with biometric data. Customer data are first associated biometric data on a BIA.
Then "Once the individual is ready to make a purchase, he selects the merchandise he wishes to buy. Then, the individual
enters the biometric-PIC using the BIA/PC and the order is fulfilled.
I mean here the layer 3 of the OSI model (there is another
article on Wikipedia describing the OSI protocols.)
X25 programming was similar to UDP programming and as such somewhat easier than VTAM (see below) programming.
See the Wikipedia article for the story of X25.
A client / server application can have been implemented with X25
- whose client part provides a graphical user interface
- allowing registered users to sign-in;
- to list items offered for sell;
- in response to only a single action being performed, sending a request to order an item in the list
- whose server part reads a database of registered users to fulfill the order.
The "along with an identifier of a purchaser of the item" limitation of 1-click is unlikely to be part of a written
publication because sending X25 packet requires first the establishment of a permanent or switched virtual circuit.
Once the virtual circuit is established the sender sends in every message a logical channel identifier (LCI) that uniquely
identifies said virtual circuit. So if the virtual circuit was established on behalf of a purchaser or if a purchaser was assigned
earlier to the virtual circuit, then said LCI identified the purchaser.
For a presentation of the X25 protocol you can look at
X25 and
Troubleshooting X.25 Connections from CISCO.
The
AIXlink/X.25 Version 2.1 for AIX: Guide and Reference is an example of X25 API.
A search on the USPTO site with "spec/x25 and spec/buy and spec/item and spec/list" returns three patents including
- 4,525,779 entitled "Conversational video
system" filed on March 30, 1983 that presents a system allowing people to establish conversations over a network and
describes a system called Delphi for playing pre-recorded audio messages called Delphi.
- 4,555,781 entitled "Conversational video
system having local network control", a continuation of 4,525,779
In early 90's IBM had two families of server computers:
- Mainframes S/390 (formerly known as S/370 and before as S/360.) These computers were running two operating systems, MVS and VM. VM was working like VMware today. It was possible to run CMS and even Unix under VM.
MVS was running TSO, IMS and CICS. TSO was a bit like the Unix shell environment, or if you prefer what you get when you use telnet, rlogin, terminal or xterm on Linux or MACOSX. People were usually using SPF,
which was a full screen application for TSO. Under TSO there was a rather nasty trick called IND$FILE to transfer files. IMS and CICS were transaction monitors. In a way they anticipated Web servers. This
was particularly true for the popular CICS. To be scalable an CICS application had to be pseudo-conversational or you prefer contextless. Each device connected to CICS was uniquely identified. The typical
sequence was the following:
- The user logged in, giving her ID and password. Then the system knew that said user was using said terminal.
- The user called a first transaction. The transaction exits. Before exiting it recorded in a block called TWA data needed for subsequent requests and sent a page. The TWA was like the session block except that
the system used the terminal ID and not URL rewriting or a cookie to retrieve the TWA in subsequent requests. This thing being said the terminal ID was carried on the network like the cookie and the URL.
- The user watched the page, usually a form on which it had to fill some fields and then click entered. This action triggered the execution of a new transaction that used the data entered by the user and the
data stored in the TWA by the previous transaction. And so forth.
- Minicomputers AS/400 (known a while ago as S/38.) They were running the OS/400 operating system.
I used to be system programmer on MVS and CICS. I have much less to say about other VM/CMS and IMS. I have to further say that IBM provided a comprehensive documentation and the sources of products such as CICS
and JES2 (the batch tool) and that I was influenced by these systems.
I discuss now network topics:
A mainframe application may have anticipated 1-click. The vast majority of mainframes were used inside a company. A typical customer such as a bank had one main site with a couple of mainframes and a couple of
37x5 network controllers, a backup site with a similar configuration and in each office a 3x74 cluster controller and 3270 terminals. However such solutions sometimes also connected third parties: providers and
dealers in the car industry, other banks in bank business. There were examples even in farming. The Plains Cotton Cooperative Association (PCCA) was granted two patents,
5,063,507 and 5,285,383 for applications whose
preferred embodiment uses IBM mainframes, CICS and an SNA network.
The first claim of 5,285,383 reads:
A method for carrying out computerized trading of goods, comprising the steps of:
- storing in a centralized data base of a computer system information unique to at least one type of goods of a seller, the goods of the type each being distinct and different from each other and the information
stored in the computer provides distinguishing characteristics of each of the individual goods of the seller;
- in response to a command input into the system by a seller, visually displaying and making available to the seller of the goods a listing of the goods owned by an owner of the goods;
- receiving an indication by the computer system of the identity of a subset of the listing, the subset defining the goods desired to be sold by the seller;
- in response to a command input into the system by a buyer, visually displaying to the buyer a screen display of information that is unique to the goods of the subset identified by the seller as being for sale;
- receiving an indication by the computer system of the identity of one or more of the goods of the subset desired to be purchased by the buyer;
- preventing by the computer system the one or more goods of the subset identified by the buyer and agreed to be purchased from being shipped by the owner or made available for purchase by a second buyer to
thereby prevent the identified goods from being sold twice; and
- updating the data base to reflect a buyer ownership of the particular goods purchased by the buyer, said updating of the data base of new ownership being carried out after payment for the particular goods by
the buyer."
PCCA patents do not mention single action but it was almost necessarily the case. To connect a new buyer the PCCA had to (1) sign a contract, (2) install hardware in the buyer office, (3) modify the network
configuration to include the new buyer and adds the buyer to the buyer database. So the system knew payment and shipping data when the user connected. There was no motivation to ask said data at
checkout. Furthermore a bale of cotton is a bale of cotton. The buyer may buy two bales or a block of bales but there is no value at using a shopping cart when there is only one sort of item in the shop even in
different quality and particularly when the buyer is a professionnal user.
IBM was not the only mainframe provider. Beside compatible makers (Amdahl and Hitachi) there was the BUNCH, comprising Burroughs that introduced the stack and the compiled kernel, Unisys that made the first
commercial computer and was as successful as IBM in online reservation, NCR (stands for National Cash Register - Watson who created IBM came
from NCR,) Control Data, the pioneer of supercomputers and Honeywell that bought the General Electric's computer division that created MULTICS, the
operating system that inspired Unix. The computer industry is a winner-take-all industry. In early 70's IBM emerged as the clear winner but (1) people were not aware of the winner-take-all thing (2) IBM was
refrained to kill its competitors by antitrust law. So the bunch produced mainframes a while (Burroughs and Univac merged to form Unisys, Honeywell sold its computer division to Bull) and also made interesting things.
CRSs provided since 60's a near-Web function to the travel agent community.
These systems were frequently using IBM mainframes with another operating system, TPF. CRSs were providing the hardware and setting the network for the travel agents which were their customers.
CRSs were also providing a book describing cryptic commands. For instance to book a flight the travel agent
- entered passenger data in a passenger name record (PNR) with cryptic commands;
- entered one of those cryptic commands on the command line, pressed the enter key and was returned a list of available flights;
- entered another cryptic command referring to one of the displayed items, pressed the enter key and the flight was booked (single action)
said travel agent being already identified (usually as terminal x of office y of travel agent zzzz.)
For prior art searches we cannot use IBM, notably because IBM is the biggest patent owner and because IBM produced almost
every kind of hardware. Different keywords can be considered, SNA, SDLC (the serial line protocol), BSC that was used before
VTAM. Transaction monitors like CICS and IMS can be used. Nevertheless the best keyword is probably 3270 that refers to
both the terminal and the presentation layer.
A search on the USPTO site with "spec/3270 and spec/buy and spec/item and spec/list" returns 51 patents including:
- The aforementioned 5,063,507 entitled
"Goods database employing electronic title or documentary-type title" filed on September 14, 1990.
- The aforementioned 5,285,383 entitled
"Method for carrying out transactions of goods using electronic title" filed on October 15, 1991 and whose priority date is
September 14, 1990.
- 5,550,734 entitled "Computerized healthcare
accounts receivable purchasing, collections, securitization and management system" filed on December 23, 1993.
- 5,704,044 entitled "Computerized healthcare
accounts receivable purchasing, collections, securitization and management system" filed on May 13, 1994 and whose priority
date is December 23, 1993.
- 5,809,483 entitled
"Online transaction processing system for bond trading" filed on November 14, 1997 as a continuation of an application
filed on May 13, 1994.
- 5,920,696 entitled "Dynamic windowing
system in a transaction base network for a client to request transactions of transient programs at a server" filed on
February 25, 1997.
- 6,108,673 entitled "System for creating a
form from a template that includes replication block" filed on February 25, 1997.
When IBM was the mainframe leader Digital Equipment (DEC) was
the minicomputer leader. Digital was targeting education, labs and manufacturing when IBM was targeting small business with
its AS/400 systems. The main competitors of Digital were Data General and HP. Then Compaq bought Digital and HP bought
Compaq. Four families of Digital computer were famous:
- the PDP 8, one of the first "desktop" computer (12 bits);
- the PDP 10, a 36 bits kind of mainframes that was used by Compuserve and helped developping Unix;
- the PDP 11, a 16 bits mini computer that implemented time sharing;
- the VAX mini computer running VMS, the Digital's workhorse in 80's and 90's. There were VAX workstations and terminal
servers.
Digital had a network architecture called DNA and a suite of network protocols called
DecNet that evolve to interoperate with OSI and incorporate TCP/IP.
Digital was also supporting SNA. Digital motto was "Digital has it now."
Big BBS servers were usually VAXes running VMS.
Digital created the CRT terminals whose emulations are still used today:
- VT52
- VT100 that implemented the sophisticated control sequences of
ECMA-48
- VT220
To search prior art related to Digital the best keywords are probably VAX and VMS.
A search on the USPTO site with "spec/VAX and spec/buy and spec/item and spec/list" returns 17 patents including:
- 5,457,797 entiled "Flexible multi-platform
partitioning for computer applications" filed by Forte on March 22, 1995 and whose priority date is August 3, 1993
"Dumb" terminals were the aforementioned VT terminals from Digital and teletypes.
It is important to make the difference between teletypes, teletype emulations (and the devices provided by CRSs and airlines
though they were manufactured by IBM and UNIVAC) and not-so-dumb VT terminals.
Teletype-like devices allowed displaying this:
Items offered for sale:
1 item 1 $20
2 item 2 $99.5
3 item 3 $44
Enter your choice:
What the user entered was displayed after the data previous sent by the server (here after "choice:".)
The user entered text and pressed the enter key to notify the server that her input could be processed.
The VT100 was more capable. vi is a good illustration of what vt100 allowed. You move the cursor down one line when you
press the j key. You move the cursor up one line when you press k. You move to a command mode - the cursor being at the
bottom of the line when you press the : key.
On Unix you can develop a similar full screen text user interface with a library called curses.
Such text user interface was terminal-independent (VT100 and more capable terminals such as the VT220.)
The mapping of the terminal control sequences is described in a termcap/terminfo file.
Here is an example of terminfo database.
curses was not easy to program. Few end-user developments were made with curses.
It took weeks to write a curses interface (usually in C) when it took hours to write a teletype interface (typically
using shell.) However products from vendors such as Oracle allowed creating curses forms.
I would like now to show how this terminal discussion translates in possible anticipation of 1-click.
A shopping server allows users to register. This registration may use mail, e-mail, phone call or any other means.
The customer provides her payment data - not necessarilly card data, bank account data can be used - and shipping data.
Once the request is approved the administrator
- creates a Unix account;
- adds the customer to a customer table.
The login script of said Unix account
- set up two variables, DBUSER and DBPASSWORD that are the generic customer account to connect to the database;
- calls a shopping script.
The shopping script displays the form above with essentially this shell code:
1 echo "Items offered for sale:"
2 echo "use db; select id, name, price from items;" | mysql -u$DBUSER -p$DBPASSWORD
3 echo "Enter your choice:"
4 read choice
5 echo "use db; select payment_data from customers where name='$LOGNAME';" | \
mysql -u$DBUSER -p$DBPASSWORD >payment_data
6 echo "use db; select shipping_data from customers where name='$LOGNAME';" | \
mysql -u$DBUSER -p$DBPASSWORD >shipping_data
7 echo 'use db; insert into order ("customer", "id", "time", "payment_data", \
"shipping_data") values($LOGNAME, $choice, `date`,
`cat payment_data`, `cat shipping_dat`)' | mysql -u$DBUSER -p$DBPASSWORD
The script get the item list from a table items of the db database. Then it reads the user input in a choice variable,
retrieves the shipping and payment data from the customer table and adds a record to an order database containing the
customer name, the item id, the time at which the customer ordered the item, the payment and shipping data.
A second script reads the order table and fulfill the order.
In this example I use mysql but it works as well with another relational database or even with Berkeley DB.
Now we can check whether this implementation infringes (or anticipates if it was published before September 1997) the
first claim of the 1-click patent.
Limitation |
Implementation |
under control of a client system |
PC running telnet |
displaying information identifying the item |
item list [2] |
in response to only a single action being performed, sending a request to order the
item along with an identifier of a purchaser of the item to a server system; |
item number sent on the telnet connection; the user sees the item list only if she entered
the coorect user name and password. Then her identity is represented by the connection id. As we have seen this id is carried
in messages in case of X25 and TCP/IP. |
receiving the request; | read the user input [4]
|
retrieving additional information previously stored for the purchaser identified by
the identifier in the received request | read the customer record [5/6] |
generating an order to purchase the requested item for the purchaser identified by
the identifier in the received request using the retrieved additional information |
add a record to an order database [7] |
fulfilling the generated order to complete purchase of the item whereby the item is
ordered | second script |
A written publication (for instance a user guide) will not necessarily teach all limitations.
The most generic search term is VT100.
A search on the USPTO site with "spec/vt100 and spec/buy and spec/item and spec/list" returns six patents including:
- 5,339,392 entitled "Apparatus and method
for creation of a user definable video displayed document showing changes in real time data" filed on December 28, 1990 and
whose priority date is July 27, 1989.
The Minitel uses a public X25 network.
There is a better page on French Wikipedia.
The server acts as a Data Terminal Equipment (DTE) and is connected to a Data Circuit-terminating Equipment (DCE).
When the server owner subscribed to X25 they were provided the DCE and a unique X25 address.
The end-user is provided a Minitel device with a asynchronous modem.
The modem dials a phone number and connects through the phone to a Packet Assembler/Disassembler that can be hosted by the
TELCO. The PAD translates asynchronous flow sent by the modem into X25 packets and sends these packets through the
packet-switched network to the server DCE.
A typical use was the following:
- Dial 3615 to connect to the PAD;
- A first server displays a form to search and select services;
- The user enters a service code, such as SNCF (rail booking;)
- The first server redirects the user to the service server;
- The service server displays a menu where the user may choose to display schedules, book...
The Minitel was a relatively capable terminal. Some users even managed to use dual-mode (videotex/computers) Minitels as
Linux terminals.
Keywords that can be used to search Minitel prior art are X25, PAD, Videotex (the presentation control layer), and the
Videotex solutions outside France, Prestel in UK, Bildschirmtext (BTX) in Germany and North American
Presentation-Level-Protocol Syntax (NAPLPS) in USA.
A search on USPTO with "(spec/minitel or spec/prestel or spec/napls or spec/bildschirmtext or spec/videotex) and spec/buy
and spec/item and spec/list" returns ten patents, including:
- 5,283,734 entitled
"System and method of communication with authenticated wagering participation" filed on September 19, 1991.
The priority of a part of the subject matter is Mar. 10, 1986. Disclosed wagering is interesting in that it involves
(1) authenticated users (2) list of items (wagers) (3) means for assessing players'answers and transfering money
(fulfillment.) " Player entries can be authenticated electronically prior to storage at the central facility, and are
transmitted either electronically (as by two-way cable, or by modem over a telephone line) from remote sites of players to
the central facility. Authentication is accomplished by comparing numbers or names assigned to players, including serial
numbers of player entry devices, with reference data previously stored in the central facility. Further authentication is
provided by storing at the central facility data, such as the players response and the winning number(s), which appears also
on the coupon presented for redemption. At a redemption center, an electronic communication link with the central facility
permits instant comparison of the two sets of data to verify the authenticity of the coupon and prevent fraud. The central
facility may be connected to the remote stations and to a credit agency by means of a telephone network which permits
verification of a players line of credit, and a charging of lottery fees against a preestablished credit limit.
- 5,227,874 entitled
"Method for measuring the effectiveness of stimuli on decisions of shoppers" filed on October 15, 1991.
The priority of a part of the subject matter is Mar. 10, 1986. From the same inventor as 5,283,734.
- 5,057,915 entitled
"System and method for attracting shoppers to sales outlets" filed on October 25, 1990.
The priority of a part of the subject matter is Mar. 10, 1986. From the same inventor as 5,283,734.
1-click-like inventions were certainly not patentable in Europe but it does not seem either that anybody disclosed a
technical apparatus using a payment means.
BBSs addressed the same technical (file transfer) and social
(e-mail, online chat and conferencing) needs as Internet today. However BBSs had far less users and were marginally a market
place. To be more precise BBSs were used to sell but very little was automated. The reasons for that were:
- BBSs were not as easy to use as the Web. Users had to be computer-literate.
- Performance and reliability. Computers and modems were slow and expensive. Even a file transfer could be a painful
experience.
- The price. BBS use implied substantial phone bills and sometimes subscription fees.
textfiles.com and notably its
history section show how it looked.
There were three kinds of interface:
- ASCII; the same experience you still have today with telnet and SSH;
- ASCII with scripting (recording and playing sequences of commands;) this is also still used today fot instance for
check-in in airports.
- GUI.
Client/Server Basics and Theory is another
page useful to understand how BBSs were born.
There were numerous BBS programs. At least one of them
survived, Citadel.
There were many forks in Citadel code.
There is a page listing the variants.
Beside BBS there were:
- FidoNet;
- Commercial online services, America Online (later known as AOL),
CompuServe and
Prodigy.
Prodigy is particularly interesting:
"Initially, Prodigy had hoped that its service would be much like today's Internet portals, offering news, weather,
sports, shopping for groceries or general merchandise, banking, brokerage services, and airline reservations."
"Prodigy retains the distinction of having launched ESPN's website and growing such firms as PC Flowers into some of the
online world's earliest success stories."
Airline reservation and flowers are businesses for which 1-click makes sense.
Users were using client programs such as Kermit,
the XModem, YModem,
ZModem file transfers, the front end softwares of CompuServe
(TAPCIS,
ATO, CISNAV and Navigator) and Prodigy,
and programs like QModem and
Crosstalk.
Number |
Location |
Limitation |
Prior art |
1 | Claim 1 |
under control of a client system |
Browser, client/server, emulation, device |
2 | Claim 1 |
displaying information identifying the item |
Search/list |
3 | Claim 1 |
in response to only a single action being performed |
Button [claim 17], sound [claim 18], remote control [claim 19], key [claim 20],
pointing device [claim 21] |
4 | Claim 1 |
sending a request to order the item [...] to a server system |
Command + item id |
5 | Claim 6 |
the request including the identifier so that the server system can locate additional
information needed to complete the order and so that the server system can fulfill the generated order to complete purchase
of the item |
TCP/IP or X25 identifier or HTTP cookie/URL rewriting/hidden field... |
6 | Claim 9 |
a shopping cart ordering component and a single-action ordering component |
Dual mode: buy now and build a multi-item order and check out |
7 | Claim 9 |
a data storage medium storing information for a plurality of users |
database with a registered users/customers/subscribers table |
8 | Claim 9 |
a receiving component for receiving requests to order an item [...],
the request being sent in response to only a single action being performed |
HTTP server, CICS or IMS transaction, Unix shell. VM/CMS or TSO... |
9 | Claim 9 |
a request including an indication of one of the plurality of users |
TCP/IP or X25 identifier or HTTP cookie/URL rewriting/hidden field... |
10 | Claim 9 |
an order placement component that retrieves from the data storage medium information
for the indicated user |
get user data from the registered users/customers/subscribers table |
11 | Claim 9 |
uses the retrieved information to place an order for the indicated user for the item |
place an order with the item ID and the user information |
12 | Claim 1 |
fulfilling the generated order to complete purchase of the item whereby the item is
ordered without using a shopping cart ordering model |
payment / invoicing + shipment / download |
There are twelve limitations to consider that we can number 1 to 12 or represent in a bit array with 1 when a patent or
publication implements the limitation and 0 when it does not. This representation facilitates the identification of working
combinations.
|