throbber
United States Patent
`Blinn et al.
`
`[19]
`
`[54] ELECTRONIC SHOPPING AND
`MERCHANDISING SYSTEM
`
`[75] Inventors: Arnold Blinn, Bellevue, Wash.;
`Michael Ari Cohen, San Francisco,
`Calif; Michael Lorton; Gregory J.
`Stein, both of Redmond, Wash.
`
`[73] Assignee: Microsoft Corporation, Redmond,
`Wash.
`
`[21] Appl. No.: 08/732,012
`[22]
`Filed:
`Oct. 16, 1996
`
`[51]
`
`Int. Cl.6 .......................... .. G06F 17/60; G06F 13/00;
`G06F 15/16
`[52] US. Cl. ................................. .. 705/26; 705/27; 707/3;
`707/104; 707/501; 707/513
`[58] Field of Search ................................ .. 705/26, 27, 30,
`705/35, 39; 707/1, 2, 3, 4, 5, 6, 10, 100,
`102, 103, 104, 501, 509, 513; 395/200.31,
`200.33, 200.47, 200.49
`
`[56]
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`5,708,825
`5,754,772
`5,761,656
`5,802,518
`
`1/1998 Sotomayor ............................ .. 395/762
`5/1998 Leaf ............... ..
`395/20033
`6/1998 Ben-Shachar
`707/4
`9/1998 Karaev et a1. ............................ .. 707/9
`
`OTHER PUBLICATIONS
`
`Andraka; “Put Your Database on the Web”; Data Based
`Advisor,‘ v14 n6; p. 12(3); Jun. 1996; Dialog: File 275,
`Acc#01941476.
`Vaughan—Nichols; “Unleashing Databases on the Web—
`True Wealth and PoWer Belong to Those Who Control
`Information Access”; NetGuia'e, 1996; n307; p. 111; Jul. 1,
`1996; Dialog: File 647, Acc#01097465.
`
`US005897622A
`Patent Number:
`Date of Patent:
`
`[11]
`[45]
`
`5,897,622
`Apr. 27, 1999
`
`Olympia; “Cold Fusion 1.5; Autobahn”; DBMS,‘ v9 n8; p.
`33(4); Jul. 1996; Dialog: File 275, Acc#01955956.
`eShop Technology overview, Internet address: http://WWW.e
`shop.com/corp/technology.html. This reference Was copied
`from the Internet and printed in or about May 1996; the
`pages are dated Jan. 1, 1996.
`eShop In The NeWs—Recent Press Release, Internet
`address: http://WWW.eshop.com/corp/press.html. This refer
`ence Was copied from the Internet and printed in or about
`May 1996; the pages are dated Jan. 1, 1996. Dates are listed
`for press releases of Nov. 7, 1995, Dec. 7, 1995 and Jan. 23,
`1996.
`eShopTM Technology Merchant Manual, Feb. 21, 1996. This
`document contains proprietary material subject to M.P.E.P. §
`724.
`
`Primary Examiner—Stephen R. Tkacs
`Attorney, Agent, or Firm—Lee & Hayes, PLLC
`
`[57]
`
`ABSTRACT
`
`The present invention provides a merchant system for online
`shopping and merchandising. The merchant system archi
`tecture provides great ?exibility for a merchant to adapt the
`merchant system to their existing business practices, pro
`motions and databases. The merchant system includes a
`dynamic page generator, a con?gurable order processing
`module and a database module capable of retrieving data
`from the database Without regard to its schema. The present
`invention enables merchants to create electronic orders
`Which are easily adaptable for different sales situations. The
`order processing module includes multiple con?gurable
`stages to process a merchant’s electronic orders. The mer
`chant system is capable of generating pages dynamically
`using templates having embedded directives. The database
`module and the dynamic page generator alloW merchants to
`modify their databases and page displays Without having to
`reengineer the merchant system.
`
`64 Claims, 18 Drawing Sheets
`
`/2/
`
`DATABASE
`
`QUERY
`DATA
`
`UERY
`0
`/27\
`DATABASE
`MODULE
`
`QUERY
`NAME
`
`ACCESS
`OBJECT
`
`ACCESS
`OBJECT
`
`QUERY
`NAME
`
`125
`
`I25
`
`HTML
`STRUCTURES
`
`TEMPLATE
`
`DYNAMIC
`PAGE
`GENERATOR
`
`REQUEST
`
`ORDER
`
`ORDER
`PROCESSING
`MODULE
`
`/29
`
`URL
`
`HTML
`
`/22, I23
`
`BROWSER
`
`Apple, Exhibit 1038, Page 1
`
`

`

`U.S. Patent
`
`Apr. 27, 1999
`
`Sheet 1 of 18
`
`5,897,622
`
`mmoimz
`
`205E228
`
`
`
`2%; 5m? 11111 iqmmm--
`
`QR 3
`
`Mm OBHmZ
`
`mmE/mmm
`
`_ _ _ _ _ _ _ _ _ _ _
`
`_ _ _ _ _ _ _ _
`
`\
`
`\
`\
`
`
`
` _ _ mm .l. N9 \ ,
`
`, " 55 M\
`555% y E \
`A v23
`
`\ \\
`
`@HPDQEOO \ 6Q
`
`“5502
`
`Apple, Exhibit 1038, Page 2
`
`

`

`U.S. Patent
`
`Apr. 27, 1999
`
`Sheet 2 of 18
`
`5,897,622
`
`NEQ
`
`mmmgomm
`
`mminmzoo
`
`KMQ
`
`Apple, Exhibit 1038, Page 3
`
`

`

`U.S. Patent
`
`Apr. 27, 1999
`
`Sheet 3 of 18
`
`5,897,622
`
`IZ5\
`DYNAMIC PAGE GENERATOR
`
`HTML
`STRUCTURES
`
`PAGE
`" PROCESSOR
`
`’ BROWSER
`
`QUERY
`MODULE
`
`1
`
`DATABASE
`MODULE
`
`I761 .74
`
`Apple, Exhibit 1038, Page 4
`
`

`

`U.S. Patent
`
`Apr. 27, 1999
`
`Sheet 4 of 18
`
`5,897,622
`
`/25\
`DYNAMIC PAGE GENERATOR
`I46
`_\___________
`rMT-IMORY
`
`PAGE
`PROCESSOR
`
`* BROWSER
`
`I44 FA_Y___1
`
`TEMPLATE l
`l
`PARSER
`I
`l____ ___l
`
`T
`
`l
`I
`1
`HTML
`STRUCTURES
`
`QUERY
`MODULE
`
`DATABASE
`MODULE
`
`/761 .319
`
`Apple, Exhibit 1038, Page 5
`
`

`

`U.S. Patent
`
`Apr. 27, 1999
`
`Sheet 5 of 18
`
`5,897,622
`
`I52 —
`
`I54 -
`
`I55 —
`
`\— [fetchrows products "get—products"]
`\—[eachrow product]
`\Product [value product.sku] is [value product.name]<BR>
`/55‘\— [/eachrow]
`
`I 70
`
`I 50
`
`[62
`
`(PROG)
`
`/ I72
`__ (FETCHROWS, "product", "get—products".())
`
`— (EACHROW, "product", PROG)
`
`-~ — — — — — — — —
`
`[/82 |
`— "\nProduct" 4~\I6’6‘
`— (VALUE, (ATTR, "product", "sku"))
`
`_ ll is" &
`
`[/54
`— (VALUE. (ATTR, "product", "name"))
`
`
`
`—— "<BR>\n" L _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _I
`
`I761 4
`
`Apple, Exhibit 1038, Page 6
`
`

`

`U.S. Patent
`
`Apr. 27, 1999
`
`Sheet 6 of 18
`
`5,897,622
`
`DATABASE
`
`QUERY
`
`QUERY
`DATA
`
`DATABASE
`MODULE
`
`I26 \
`
`HTML
`STRUCTURES
`
`ACCESS
`OBJECT
`
`QUERY
`NAME
`I25
`\
`DYNAMIC
`PAGE
`GENERATOR
`
`TEMPLATE
`
`URL
`I22, I2J\
`
`HTML
`
`BROWSER
`
`I765
`
`Apple, Exhibit 1038, Page 7
`
`

`

`U.S. Patent
`
`Apr. 27, 1999
`
`Sheet 7 0f 18
`
`5,897,622
`
`Z02 —
`
`\- [fetchrows product "get—product"]
`
`Z04—
`\ <tr><th>Item<th>Price>
`Z05_\— [eachrow product]
`
`Z/0-\_ <td>[value product.sku]
`272
`\— <td>[money product.list_price]
`205_\- [/eachrow]
`
`2Z0-\
`Product_ table
`SKU
`GLOVE
`HAT
`
`List_price
`1225
`1680
`
`Sku
`List_price
`
`String
`Number
`
`GLOVE
`
`1225
`
`HAT
`
`1680
`
`232
`/
`
`[2J4
`
`[236‘
`
`2J0
`/
`
`Z40-\
`
`Item
`
`Price
`
`GLOVE
`
`313 1 2.25
`
`HAT
`
`1H? 1 6.80
`
`/761 6'
`
`Apple, Exhibit 1038, Page 8
`
`

`

`U.S. Patent
`
`Apr. 27, 1999
`
`Sheet 8 of 18
`
`5,897,622
`
`Z50\ _
`Rev1sed__product_table
`SKU
`LisLprice
`GLOVE
`1225
`HAT
`1680
`
`252
`
`/
`Description
`Nice leather gloves
`Woolly hat w/pom-pom
`
`Sku
`List_price
`Description
`
`String
`Number
`String
`
`Z50
`[252 /
`
`GLOVE
`
`1225
`
`Nice leather gloves
`
`HAT
`
`1680
`
`Woolly hat w/pom-pom
`
`Z70\
`[fetchrows product "get-product’]
`<table>
`<tr><th>Item<th>Price> <th>DescriptionN
`Z74
`_\— [eachrow product]
`272
`<tr>
`Z73_\~ <td>[value product.sku]
`Z80_\— <td>[money product.list_price] Z52
`<td>[value productdescriptio?/
`276~\— [/eachrow]
`234 \\
`
`Item
`
`Price
`
`Description
`
`GLOVE
`
`$12.25 Nice leather gloves
`
`HAT
`
`31516.80 Woolly hot w/pom—pom
`
`Apple, Exhibit 1038, Page 9
`
`

`

`U.S. Patent
`
`Apr. 27, 1999
`
`Sheet 9 of 18
`
`5,897,622
`
`DATABASE
`
`QUERY
`
`QUERY
`DATA
`
`DATABASE
`MODULE
`
`QUERY
`NAME
`
`ACCESS
`OBJECT
`
`ORDER
`PROCESSING
`MODULE
`
`PURCHASE
`ORDER
`
`1‘7616’
`
`Apple, Exhibit 1038, Page 10
`
`

`

`U.S. Patent
`
`Apr. 27, 1999
`
`Sheet 10 of 18
`
`5,897,622
`
`Name
`CC_Number
`
`John Doe
`4111 1111 1111 1111
`
`.302
`/ 30g
`/
`
`SKU
`
`GLOVE
`
`[J04
`
`3/6 \
`\I'
`SKU
`List_price
`
`String
`Number
`
`3/4
`/
`
`rJ/Z
`
`3/0
`/
`
`GLOVE
`
`1225
`
`Name
`CC_Number
`
`John Doe
`4111 1111 1111 1111
`
`502
`/ 3Z0
`/
`
`GLOVE
`SKU
`GLOVE
`product_SKU
`product_List_price 1225
`
`r322
`
`Apple, Exhibit 1038, Page 11
`
`

`

`U.S. Patent
`
`Apr. 27, 1999
`
`Sheet 11 of 18
`
`5,897,622
`
`/Z5\
`HTML
`STRUCTURES
`
`TEMPLATE
`
`/Z.9\
`/Z.5\
`DYNAMIC M ORDER
`PAGE
`PROCESSING
`GENERATOR
`MODULE
`
`ORDER
`
`URL
`
`HTML
`
`I22, /Z.3'\
`
`BROWSER
`
`/761 I0
`
`Apple, Exhibit 1038, Page 12
`
`

`

`U.S. Patent
`
`Apr. 27, 1999
`
`Sheet 12 of 18
`
`5,897,622
`
`J40\
`J42_\— [fetchproduct product GLOVE]
`J44_\- Current price is: [money product.iadjust_currentprice]
`J45
`<p>
`_\— Normal price is: [money product.product_List_price]
`
`/
`SKU
`
`354
`A
`\”\\
`GLOVE
`
`J50
`J52 /
`/
`
`J50 jay
`/
`
`.372 j74
`/
`
`J30
`
`GLOVE
`SKU
`J56
`GLOVE
`§\, product_SKU
`\JproducLLisLprice 1225
`
`J70
`
`GLOVE
`SKU
`GLOVE
`product_SKU
`1225
`product._List._price
`\J iadjust_currentprice 1102
`
`Current price is: $11.02
`
`Normal price is: $12.25
`
`/76I//
`
`Apple, Exhibit 1038, Page 13
`
`

`

`US. Patent
`
`Apr. 27, 1999
`
`Sheet13 0f18
`
`5,897,622
`
`mm<m<h<o
`
`\NK
`
`mm<m<k<o
`
`mADoOE
`
`>mm30
`
`mmmoo<
`
`
`
`m2<zPOmwmo
`
`mmmoo<
`
`homsmo
`
`w2<z
`
`>mm30
`
`mmomo
`
`025mm00mm
`
`“43002
`
`kmmDOmm
`
`22<z>o
`
`mo<m
`
`moh<mm2mo
`
`wh<4a2mk
`
`42h:
`
`mmmnhoamhm
`
`mNKhNN
`
`$NN
`
`N\”QR
`
`mmMBOmm
`
`MNKmMQ
`
`Apple, Exhibit 1038, Page 14
`
`Apple, Exhibit 1038, Page 14
`
`
`
`
`
`
`
`
`
`
`

`

`U.S. Patent
`
`Apr. 27, 1999
`
`Sheet 14 of 18
`
`5,897,622
`
`400\
`40Z\\[fetchitems orderitems order.items]
`4/0
`4044\[eachrow orderitems]
`405‘\[fetchrows crossinfo cross orderitems.sku]
`4/9
`'?z‘\~[if crossinfo.count>0]
`4/6’
`4,4\\-The item is a [value orderitems.sku] but try a [value crossinfoxelated].
`‘?z‘\[elsel
`/4/7
`4,5‘\The item is a [value orderitemssku] and has no related products.
`"’\[/if]
`405‘\[/eachrow]
`
`Name
`CC_Number
`
`John Doe
`4111 1111 1111 1111
`
`422
`/ 4Z0
`/
`
`GLOVE
`SKU
`42;
`GLOVE
`4J0:\- producLSKU
`\- producLLisLprice 1225
`
`HAT
`SKU
`HAT
`:Z‘\- product_SKU
`~\_ product_List_price 1680
`
`[424
`
`} r426
`
`SKU
`producLSKU
`producLLisLprice
`
`442
`String
`String /
`Number
`
`44g
`/
`
`444~
`\— GLOVE
`
`GLOVE
`
`1225
`
`4‘5‘\ HAT
`
`HAT
`
`1680
`
`/76‘. I34
`
`Apple, Exhibit 1038, Page 15
`
`

`

`U.S. Patent
`
`Apr. 27, 1999
`
`Sheet 15 of 18
`
`5,897,622
`
`450 \\
`Cross_table
`
`SKU
`HAT
`
`RELATED
`SCARF
`
`SKU
`Related
`
`String
`String
`
`462
`/
`
`450
`/
`
`SKU
`Related
`
`String
`String
`
`HAT
`
`SCARF
`
`466'
`/
`
`K466’
`
`454
`/
`
`-'l‘his item is a GLOVE and has no related products.
`~This item is a HAT but try a SCARF.
`
`470
`/
`
`472
`
`474
`
`/761 I35’
`
`Apple, Exhibit 1038, Page 16
`
`

`

`US. Patent
`
`Apr. 27, 1999
`
`Sheet16 0f18
`
`5,897,622
`
`<55zo:.o<
`
`muo<z<2
`
`
`
`MNNNNN
`
`mmmoo<
`
`Homwmo
`
`
`
`*mmaommmoo<
`
`
`
`m§<zFOmsmo
`
`mmomo
`
`025mmuomm
`
`mgnooz
`
`hmmDOMm
`
`o_2<z>n_
`
`mo<m
`
`mOH<mm2mo
`
`mk<4¢2uy
`
`42h:
`
`mmmnhoDMHm
`
`um<m<k<o
`
`mgaooz
`
`mm<m<h<o
`
`V\6%
`
`ApMe,EmeH1038,Page17
`
`Apple, Exhibit 1038, Page 17
`
`
`
`
`
`
`
`
`

`

`U.S. Patent
`
`Apr. 27, 1999
`
`Sheet 17 of 18
`
`5,897,622
`
`2 ii \\0rder = load_order (shopper_id)
`\add arguments to order
`505 \
`\ 0PM.plan(order)
`.508 \
`\if order.error then
`DPG generate (error_template, order.error)
`
`r500
`
`570_ else
`
`i
`
`\/ 1ssue_red1rect (basket.html)
`572x \save_order (order)
`
`.
`
`Name
`525
`\ CC_Number
`\— Billto_ zip
`
`John Doe
`4111 1111 1111 1111
`92101
`
`SKU
`
`GLOVE
`
`.522
`/
`
`.524
`/
`
`[.544
`
`Name
`CC_Number
`
`John Doe
`4111 1111 1111 1111 554
`
`N\— _sh1pp1ng_ total
`.556‘
`555,‘\- _t.ax_ total
`\~ _total_ total
`
`0
`77
`1179
`
`SKU
`54”.‘
`_\-_product_sl<u
`.546"
`545‘\— _ product_ List_price
`550_\— _iadjust_currentprice
`\— _oadjust_adjustedprice
`
`GLOVE
`GLOVE
`1225
`1102
`1102
`
`542
`/
`
`176‘. I54
`
`Apple, Exhibit 1038, Page 18
`
`

`

`U.S. Patent
`
`Apr. 27, 1999
`
`Sheet 18 of 18
`
`5,897,622
`
`.570 \
`\[fetchitems orderitems order.items]
`.574\ \[eachrow orderitems]
`530
`578‘\[fetchrows crossinfo cross orderitems.sku]
`582\\[if crossinfo.count>0]
`§§;\\-The item is a [value orderitemssku] but try a [value crossinfo.related].
`‘\[else]
`56,;
`556‘\The item is a [value orderitems.sku] and has no related products.
`5"\[/if]
`5&9)
`/ 589
`576*\[/eachrow]
`The shopper lives in the [value order.billto_zip] code.
`
`/606
`
`Name
`CC_Number
`Billto_zip
`
`John Doe
`4111 1111 1111 1111
`92101
`
`jag
`
`SKU
`50”
`50Z_\_ product_SKU
`“\_ product_List_price
`
`GLOVE
`GLOVE
`1225
`
`604
`/
`
`/—6/0
`
`SKU
`product_SKU
`product_List_price
`
`String
`String
`Number
`
`GLOVE
`
`GLOVE
`
`1225
`
`6/2
`J
`
`622
`620
`J
`-This item is a GLOVE and has no related products. / /
`// The shopper lives in the 92101 zip code.
`
`624
`
`/761 I519
`
`Apple, Exhibit 1038, Page 19
`
`

`

`1
`ELECTRONIC SHOPPING AND
`MERCHANDISING SYSTEM
`
`BACKGROUND OF THE INVENTION
`
`1. Field of the Invention
`The present invention relates to a shopping and merchan
`dising system and, more speci?cally, to a shopping and
`merchandising system for online networks, such as the
`World Wide Web portion of the Internet.
`2. Description of the Related Technology
`The World Wide Web (Web) is part of a global computer
`netWork knoWn as the Internet. Scientists and academicians
`initially developed and used the Internet to share informa
`tion and collaborate. The Web functions as an object based
`multimedia system. It alloWs for the creation, storage and
`delivery of multimedia objects. Recently, on-line service
`providers, such as Microsoft Network, CompuServe,
`Prodigy and America Online, have linked to the Web. This
`enables their customers to access a variety of products and
`services available from independent content providers and
`other Web users. For example, a typical customer can access
`electronic mail, neWs services, travel services and online
`stores and malls on the Web.
`The global penetration of the Internet provides merchants
`With the capability to merchandise their products to sub
`stantial shopping audiences using an online merchant sys
`tem. Online merchant systems enable merchants to cre
`atively display and describe their products to shoppers using
`Web pages. Merchants can layout and display Web pages
`having content, such as text, pictures, sound and video,
`using HyperText Markup Language (HTML). Web
`shoppers, in turn, access a merchant’s Web page using a
`broWser, such as Microsoft Explorer or Netscape Navigator,
`installed on a client connected to the Web through an online
`service provider, such as the Microsoft NetWork or America
`OnLine. The broWser interprets the HTML to format and
`display the merchant’s page for the shopper. The online
`merchant system likeWise enables shoppers to broWse
`through a merchant’s store to identify products of interest, to
`obtain speci?c product information and to electronically
`purchase products after revieWing product information.
`To promote their products, merchants often discount their
`products or have sales. Merchants can use a Wide variety of
`discounting schemes to promote their products. For
`example, a merchant may offer volume discounts, such as
`buy tWo and get one free, or membership discounts Where,
`for example frequent shoppers and AAA members get 10%
`off, or cross-sell incentives offering, for example, 50% off
`socks With a shoe purchase. Existing online merchant
`systems, such as Netscape Merchant System, support only
`date-based sale pricing, such as 20% off all shirts during the
`month of May. To enter the online shopping market, mer
`chants desire an online merchant system that alloWs for a
`signi?cantly Wider variety of product discounting and sales
`schemes.
`Similarly, existing online merchant systems, such as
`eShop 1.0, implement a generic purchase transaction model
`to capture the most common variations of a purchasing
`transaction. To complete a purchase transaction, a merchant
`sums up the prices of items, deducts applicable discounts,
`adds sales tax, receives payment and delivers the purchased
`items to the shopper. Although these basic steps are the same
`for many merchants, electronic commerce in a global envi
`ronment imposes many variations to this basic model. For
`example, merchants generally have to include a shipping
`and handling fee for their online shoppers. Merchants may
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`5,897,622
`
`2
`likeWise have to include special taxes or fees, such as value
`added taxes or use fees, applicable only in certain countries
`or economic unions. In addition, merchants may issue their
`online customers private label credit or charge cards. Cus
`tomer payment using these private label cards requires
`authoriZation through private netWorks, instead of commer
`cial banking netWorks. Thus, it becomes apparent that to
`enter the online shopping market, merchants require an
`online merchant system that provides for substantial varia
`tions in the purchase transaction model.
`Lastly, merchants typically store product data, such as
`product descriptions, prices and pictures, in relational data
`bases. Online merchant systems, therefore, have to interface
`With merchant databases to access and display product
`information. Databases require a consistent structure,
`termed a schema, to organiZe and manage the information.
`In a relational database, the schema is a collection of tables.
`For each table, there is generally one schema to Which it
`belongs. In an implementation of a relational database, a
`relation corresponds to a table having roWs, Where each roW
`corresponds to a tuple, and columns, Where each column
`corresponds to an attribute. From a practical standpoint,
`roWs represent records of related data and columns identify
`individual data elements. A table de?ning a retailer’s prod
`uct line may, for example, have product names, product
`numbers (e.g., SKUs) and prices. Each roW of this table
`holds data for a single product and each column holds a
`single attribute, such as a product name. The order in Which
`the roWs and columns appear in a table has no signi?cance.
`In a relational database, one can add a neW column to a table
`Without having to modify older applications that access
`other columns in the table. Relational databases thus provide
`?exibility to accommodate changing needs. Once the
`schema is designed, a tool, knoWn as a database manage
`ment system (DBMS), is used to build the database and to
`operate on data Within the database. The DBMS stores,
`retrieves and modi?es data associated With the database and,
`to the extent possible, protects data from corruption and
`unauthoriZed access. Because each merchant organiZes its
`product information differently, there is a large installed base
`of databases having a Wide variety of database schemas for
`product information.
`Available online merchant systems, such as eShop 1.0 and
`Netscape Merchant System, require merchants to organiZe
`their product information according to a prede?ned database
`schema. Hence, to use such systems, a merchant must either
`convert its existing databases to this prede?ned schema or
`the merchant must create a neW database having the pre
`de?ned schema. For many merchants, conversion of their
`existing databases is not feasible. For example, the merchant
`may have several hundred thousand product entries located
`in different remote databases accessed by legacy
`applications, such as a point of sale system or an inventory
`control system, speci?cally designed to interact With these
`different databases. If the merchant converted these data
`bases to the prede?ned schemas, their legacy applications
`Would no longer function properly. To protect their invest
`ment in legacy applications, merchants may have to copy
`their product data into a redundant database having the
`prede?ned schema. OtherWise, merchants may have to incur
`substantial costs to reWrite their legacy applications to
`support the prede?ned schema of the online merchant sys
`tem. For these reasons, it is not cost-effective for a merchant
`to use applications requiring a prede?ned schema for exist
`ing relational databases. To enter the online shopping
`market, merchants require an online merchant system that
`Will cooperatively function With existing database systems
`having a Wide variety of schemas.
`
`Apple, Exhibit 1038, Page 20
`
`

`

`5,897,622
`
`3
`SUMMARY OF THE INVENTION
`
`The present invention enables merchants to enter the
`online shopping market by providing a system and archi—
`tecture to obtain and perform a large set of processing
`operations and computations on a rich set of dynamically
`generated information from a wide variety of data sources.
`In contrast to the rigid display formats and fixed database
`schemas of existing merchant systems, the present invention
`provides a dynamic page generator that permits the display
`of dynamically generated data in any format or presentation
`desired by the merchant. The present invention provides this
`flexibility through the use of display templates and a data-
`base schema independent query mechanism. In this manner,
`a merchant changes the display formats by modifying a
`template instead of revising the system modules producing
`the display formats. Similarly, a merchant handles database
`modifications by modifying the queries stored in the data—
`base instead of modifying the system modules performing
`the database queries.
`In addition, the present invention enables a merchant to
`effectively promote their products. In contrast to existing
`merchant systems that separate display operations from
`processing operations, the present invention provides the
`capability to generate product information pages dynami-
`cally during order processing. Thus, a shopper using the
`present invention can view special promotion information
`during order processing operations. Similarly, the present
`invention uses the same calculations to display product
`information and to process an order, so a shopper is guar-
`anteed consistency and reliability in the information used to
`make purchasing decisions. Moreover, the present invention
`provides a configurable order processing module that
`enables merchants to add components to the merchant
`system they need to address the particular requirements of
`their purchase transactions, such as special value added
`taxes or use fees.
`
`Lastly, the present invention enables merchants to protect
`their investments in existing databases by providing a data-
`base schema independent query mechanism. The present
`invention provides for the storage of database queries in the
`database to isolate applications that access the database from
`differences in schemas and data sublanguages. Similarly,
`because of the database schema independence,
`the order
`processing module of the present invention does not require
`modification for each change to the database.
`One aspect of the present invention includes a merchant
`system comprising a dynamic page generator to compose a
`page for display by processing a template having a database
`request for page data, and a database module, in communi-
`cation with a database and with the dynamic page generator,
`to retrieve page data from the database and to communicate
`the page data to the dynamic page generator, wherein the
`retrieved page data corresponds to the database request and
`wherein the database module retrieves the data in a manner
`that is independent of any database schema.
`Another aspect of the present invention includes a mer-
`chant system comprising an order processing module, a
`plurality of components associated with the order processing
`module so as to create and process an order, wherein a
`component makes a request for order data, and a database
`module,
`in communication with a database and with the
`order processing module, to retrieve order data from the
`database and to communicate the order data to the order
`processing module, wherein the retrieved order data corre-
`sponds to the request and wherein the database module
`retrieves the data in a manner that is independent of any
`database schema.
`
`10
`
`tom
`
`30
`
`L»LA
`
`40
`
`50
`
`60
`
`4
`Yet another aspect of the present invention includes a
`merchant system comprising an order processing module
`having a plurality of components configured to create and
`process an order, and a dynamic page generator, in commu-
`nication with the order processing module, to compose a
`page for display by processing a template having a request
`for information from the order.
`
`Lastly, another aspect of the present invention includes a
`merchant system comprising an order processing module
`having a plurality of components configured to create and
`process an order, wherein a component makes a request for
`order data, a dynamic page generator,
`in communication
`with the order processing module, to compose a page for
`display by processing a
`template having a
`request for
`information from the order and a database request for page
`data, and a database module,
`in communication with a
`database and with the order processing module and with the
`dynamic page generator,
`to retrieve order data from the
`database and to communicate the order data to the order
`processing module and to retrieve page data from the
`database and to communicate the page data to the dynamic
`page generator, wherein the retrieved order data corresponds
`to the component request,
`the retrieved page data corre-
`sponds to the database request and the database module
`retrieves the order and page data in a manner that
`is
`independent of any database schema.
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 is a block diagram illustrating an example of an
`online network for practicing the present invention.
`FIG. 2 is a block diagram illustrating the merchant system
`of the present invention.
`FIG. 3a is a block diagram illustrating the structure of a
`preferred embodiment of the dynamic page generator of
`FIG. 2.
`
`FIG. 3b is a block diagam illustrating the structure of
`another preferred embodiment of the dynamic page genera-
`tor of FIG. 2.
`
`FIG. 4 illustrates the correspondence between -a syntax
`tree and a template used by the dynamic page generator of
`FIG. 3.
`FIG. 5 illustrates the data flow for the database module
`and the dynamic page generator shown in FIG. 2.
`FIG. 6 shows a portion of a template, a product table and
`an access object which illustrate an example of the data flow
`of FIG. 5 used to produce a HTML table for display.
`FIG. 7 shows a revised portion of a template, a revised
`product
`table and an access object which illustrate an
`example of the data flow of FIG. 5 used to produce a HTML
`table for display.
`FIG. 8 illustrates the data flow for the database module
`and the order processing module shown in FIG. 2.
`FIG. 9 shows an order, an access object and an annotated
`order which illustrate an example of the data flow of FIG. 8.
`FIG. 10 illustrates the data flow for the dynamic page
`generator and the order processing module of FIG. 2.
`FIG. 11 shows a template portion, an order, a first anno—
`tated order, a second annotated order and a page portion
`displayed on a consumer browser which illustrate an
`example of the data flow of FIG. 10.
`FIG. 12 illustrates the data flow for the dynamic page
`generator,
`the order processing module and the database
`module of FIG. 2.
`
`FIG. 13a shows a template portion, an order and an access
`object which illustrate an example of the data flow of FIG.
`12.
`
`Apple, Exhibit 1038, Page 21
`
`Apple, Exhibit 1038, Page 21
`
`

`

`5,897,622
`
`5
`FIG. 13b shows a cross sell table, an access object having
`no data, an access object having one data row and a page
`portion which illustrate the data flow of FIG. 12.
`FIG. 14 illustrates the architecture of the merchant system
`of FIG. 2.
`
`FIG. 15a shows pseudo code for an action, an order and
`an annotated order which illustrate the data flow of FIG. 14.
`
`FIG. 15b shows a template portion, an order, an access
`object and a page portion which illustrate the data flow of
`FIG. 14.
`
`10
`
`DETAILED DESCRIPTION OF THE
`PREFERRED EMBODIMENTS
`
`For convenience, the description comprises the following
`sections:
`
`I. Merchant System Overview
`II. Templates, Directives and Actions
`III. The Dynamic Page Generator
`IV. The Order Processing Module
`V. The Database Module
`
`VI. Merchant System Data Flows and Architecture
`The following detailed description of the preferred
`embodiments presents a description of certain specific
`embodiments to assist
`in understanding the claims.
`However, one may practice the present
`invention in a
`multitude of different embodiments as defined and covered
`by the claims.
`I. Merchant System Overview
`FIG. 1 is an example of an online network for practicing
`the present invention. In particular, a client 100 communi—
`cates with a server 102 by means of a network 104, such as
`the World Wide Web portion of the Internet. The server 102
`may include a gateway to a Wide Area Network (WAN) 106
`having a plurality of Local Area Networks (LANs) 108. A
`browser 101, residing on the client 100, displays a store
`home page 103 retrieved from the World Wide Web on a
`viewing device 105. A user can View this page by entering,
`or selecting a link to, a Universal Resource Locator (URL),
`such as “www.store.com”, in a browser program, such as
`Microsoft Explorer or Netscape Navigator, executing on the
`user’s computer. Note that an online merchant system may
`reside in a server or in a combination of servers comprising
`the WAN 106. Similarly,
`the client 100 may access the
`network 104 through a wireless connection, such as the
`infrared link 107 or the satellite dish 109.
`
`Focusing now on the network 104, the presently preferred
`network is the Internet. The structure of the Internet is well
`known to those of ordinary skill in the art and includes a
`network backbone with networks branching from the back—
`bone. These branches,
`in turn, have networks branching
`from them, and so on. For a more detailed description of the
`structure and operation of the Internet, please refer to “The
`Internet Complete Reference,” by Harley Hahn and Rick
`Stout, published by McGraw-l-lill, 1994. However, one may
`practice the present invention on a wide variety of commu—
`nication networks. For example,
`the network 104 can
`include interactive television networks, telephone networks,
`wireless data transmission systems, two—way cable systems,
`customiaed computer networks, interactive kiosk networks
`and automatic teller machine networks.
`
`the network 104 includes online service
`In addition,
`providers, such as Microsoft Network, America OnLine,
`Prodigy and CompuServe. In a preferred embodiment, the
`online service provider is a computer system which provides
`
`tom
`
`30
`
`L»LA
`
`40
`
`50
`
`60
`
`6
`Internet access to a client 100. Customers pay monthly
`access fees to the online service providers for help services
`and access to the Internet through local telephone connec—
`tions. Of course, he online service providers are optional,
`and in some cases, the clients 100 may have direct access to
`the Internet 104. For example,
`the client 100 may be
`connected to a local area network 108 which in turn is
`directly connectee to the Internet 104.
`Focusing now on the client 100, the client is a general
`purpose computer. In apreferred embodiment, the client 100
`is a conventiona personal computer equipped with an
`operating system supporting Internet communication
`protocols, such as Microsoft Windows 95 and Microsoft
`Windows NT, a Drowser, such as Microsoft Explorer or
`Netscape Navigator, to access the Merchant System and a
`conventional modem for access to the Internet 104. In other
`embodiments,
`the client 100 could,
`for example, be a
`computer worksta ion, a local area network of computers, an
`interactive television, an interactive kiosk, a personal digital
`assistant, an interactive wireless communications device or
`the like which can interact with the network. While the
`operating systems may differ in such systems, they will
`continue to provide the appropriate communications proto-
`cols needed to establish communication links with the
`network 104.
`
`
`
`Referring now to FIG. 2, a merchant system 120 com-
`municates with a database 121, a consumer browser 122, a
`merchant browser 123, and a network 124. In a preferred
`embodiment, the database 121 comprises data stored locally
`in one or more storage devices, such as a magnetic disk drive
`or an optical disk drive. In another preferred embodiment,
`the database 121 comprises data distributed across a LAN
`108 (FIG. 1) or a WAN 106 (FIG. 1). The database 121 may
`include query data, product information, order information,
`shopper information, store information, receipts and cus—
`tomer feedback data. A shopper uses a consumer browser
`122, such as Microsoft Explorer or Netscape Navigator,
`communicating with a network 124, such as the World Wide
`Web portion of the Internet, to access a merchant’s online
`store using the merchant system 120. Similarly, a merchant
`uses a merchant browser 123, such as Microsoft Explorer or
`Netscape Navigator, communicating with the merchant sys-
`tem 120 directly or through a network 124 to manage its
`online store. There are, of course, typically, a multiplicity of
`the browsers 122, 123 operating on the network 124 at any
`time.
`
`The merchant system 120 includes a dynamic page gen-
`erator 125, HTML structures 126, a database module 127, an
`action manager 128, and an order processing module 129
`having an order engine 130, an order pipeline 131, and
`components 132 for various purposes, such as calculating
`sales tax and shipping/handling fees. The dynamic page
`generator 125 uses IITML structures 126 and communicates
`with the database module 127 to access data from the
`database 121 to format and display on the consumer browser
`122 and the merchant browser 123. The order processing
`module 129 communicates with the dynamic page

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket