Note: Descriptions are shown in the official language in which they were submitted.
CA 02350604 2001-05-14
SYSTEM AND METHOD FOR RETAIL PRICE INFORMATION
RELATED APPLICATIONS
The present application claims the benefit of the following provisional
patent application, which is hereby incorporated by reference in its entirety:
U.S. Application Serial No. 60/164,551 entitled SYSTEM AND METHOD FOR
RETAIL PRICE INFORMATION, filed on November 10, 1999 by Leonard C.
Reizfeld.
FIELD OF THE INVENTION
The present invention relates to the Internet and more particularly, to a
system and method for retail price.information.
BACKGROUND OF THE INVENTION
In many neighborhoods, people have a choice of several different
grocery stores and supermarkets when shopping for their groceries. Each
store typically will charge different prices for different items as well as
offer less
tangible benefits in terms of selection decor, cleanliness, convenience, and
familiarity. In many cases it is difficult for the consumer to know whether or
not
the prices in that a particular supermarket or grocery store are competitive
with
other stores. As a result, the typical food shopper may be unaware of the best
overall value among local supermarkets.
For example, some supermarkets advertise their products by featuring
certain items in the local newspaper on sale. Typically, these products are
loss
leaders, in which the customer will save some money on the advertised item
such as a steak, but spend rnore money on other items such as milk, eggs and
bread, whose prices are higher. Thus, the total expense would be more
expensive to the consumer. One way to avoid higher retail expenses is for the
CA 02350604 2001-05-14
expensive to the consumer. One way to avoid higher retail expenses is for the
consumer to only shop for certain items at certain stores, whose prices are
lower. This approach, however, requires more traveling and imposes additional
gasoline and other costs as the customer travels from one grocery store to
another. Furthermore, customers are often unfamiliar with the layout of other
stores and waste additional time in finding the cheaper items in unfamiliar
stores.
SUMMARY OF THE INVENTION
There exists a long-felt need for a way to alleviate the difficulties of
retail
shopping. For example, a nE:ed exists for way in which consumers can price
retail items at local stores for comparison of their price competitiveness.
There
is also a need for helping customers find items in unfamiliar stores.
These and other needs are addressed by the present invention in which
a web site is provided for receiving lists of items from the user for a
specified
geographic area, pricing the products at stores in the local geographic area,
and presenting a list showing the total price of the products for each of the
stores in the area. Consequently, the user is able to compare which stores
present the best value for a given set of items, whether the set is a typical
grocery run or a list for a recipe. In some embodiments, once the user has
chosen a store, the web site can generate and display a list of the items
aisle-
by-aisle. Thus, by printing the items based on their physical location in the
store, time is saved for users, for both familiar and unfamiliar stores.
More specifically, one aspect of the present invention relates to a
method, software, and web site for managing retail price information. In
accordance with this aspect, input indicating a plurality of items and a
specified
geographic area is received from a user, for example, from a web browser over
the Internet, as voice commands from a wireless telephone, or as instructions
2
CA 02350604 2001-05-14
from a touch-screen terminal. Prices of the items at various stores in the
specified geographic area are then determined. The stores may include
grocery stores and other food retailers selling groceries, household supplies,
food, and other products, as well as pharmacies, drugstores, any other
drug/nutritional supplement/vitamin retailers, hardware stores, appliance
stores,
electronics stores, clothing stores, home improvement stores, and other retail
stores. The retailer may be a "brick and mortar" establishment or an on-line
retailer. Finally, a list of the items and the determined prices for at least
one of
the stores is presented to the user.
In various embodiments, other features may be provided. For example,
the list can be sorted by aisle or other kind of location within the stores to
facilitate retrieval of the items. As another example, requests to purchase
the
items can also be received and processed. Yet another example pertains to a
recipe library in which customer can obtain a list of ingredients, as well as
pricing information for the ingredients.
Another aspect of the invention involves a method, software, and web
site for facilitating retail shopping. In accordance with this aspect, input
from a
user indicating a plurality of items is received. The locations of the items
in a
specific store are determined and a list of the items, in a physical order of
the
items in the store, is presented to the user.
Another aspect of the invention stems from the realization that many
people have specific dietary or nutritional requirements. For example, some
people are extremely allergic to peanuts and would have to inspect the
ingredient list of most grocery items to determine if peanut oil was used.
Other
dietary requirements include the need for certain foods to be sugar free,
meatless, Kosher, dairy free, fat free, organic, salt free, low-salt, and
vegetarian. Accordingly, a method and mechanism are provided to eliminate
those items that do not satisfy the user's requirements.
3
CA 02350604 2001-05-14
Still other objects and advantages of the present invention will become
readily apparent from the following detailed description, simply by way of
illustration of the best mode contemplated of carrying out the invention. As
will
be realized, the invention is capable of other and difFerent embodiments, and
its
several details are capable of modifications in various obvious respects, all
without departing from the invention. Accordingly, the drawing and description
are to be regarded as illustrative in nature, and not as restrictive.
BRIEF DESCRIPTION OF THE DRAWINGS
The present invention is illustrated by way of example, and not by way of
limitation, in the figures of the accompanying drawings and in which like
reference numerals refer to similar elements and in which:
FIG. 1A is a schematic diagram illustrating a network of consumers,
retailers and a central site according to one embodiment of the present
invention.
FIG. 1 B is a flowchart illustration the operation of one embodiment of the
present invention.
FIG. 2 illustrates an exemplary web page welcome screen presented to
consumers.
FIG. 3 illustrates an exemplary consumer registration screen according
to one embodiment of the present invention.
FIG. 4 illustrates an exemplary data entry screen for selecting
prospective retailers.
FIG. 5 illustrates an interface, according to an embodiment of the
present invention, for prompting a consumer to identify products.
FIG. 6 illustrates an information screen, according to an embodiment of
the present invention, for informing a consumer of comparative product pricing
information.
4
CA 02350604 2001-05-14
FIG. 7 illustrates an interface, according to an embodiment of the
present invention, for entering purchasing account information and selecting
delivery options.
FIG. 8 illustrates an exemplary store map.
FIG. 9 illustrates a consumer-feedback screen, according to an
embodiment of the present invention, that allows a consumer to provide
comments and suggestions.
FIG. 9B illustrates a shopping list editor in accordance with an
embodiment of the present invention.
FIG. 9C illustrates a manufacturer's savings page in accordance with an
embodiment of the present invention.
FIG. 10 is a diagram that depicts a computer system that can be used to
implement one embodiment of the present invention.
DESCRIPTION OF THE PREFERRED EMBODIMENT
A method and system for providing retail pricing information and
comparison pricing data to consumers are described herein. In the following
description, for purposes of explanation, numerous specific details are set
forth
in order to provide a thorough understanding of the present invention. It will
be
apparent, however, to one of ordinary skill in the art that the present
invention
may be practiced without these specific details. in other instances, well-
known
structures and devices are shown in block diagram form in order to avoid
unnecessarily obscuring the present invention.
SYSTEM OVERVIEW
Referring to FIG. 1A, a network that facilitates the distribution of retail
price and comparison pricing information to consumers is depicted. A plurality
of retailers 108 communicate with a central site 102 via a network connection
CA 02350604 2001-05-14
104, which is preferably a global, information network commonly known as the
Internet but may include other networks, such as a local area network (LAN), a
wide area network (WAN), and a virtual private network (VPN). Over
respective communication paths, each of these retailers 108 upload product
information to the central site 102. Product information may include data such
as price, manufacturer or brand name, size, package type, or aisle location.
In
addition, product information may include the ingredient list for each
product,
nutritional information, photographs, and for medicines, drug interaction
information. Other information uploaded by a retailer 108 may include
information about specials or discounts for certain products that last for a
limited time.
The central site 102 is preferably hosted on a web server and may be
implemented, for example, on a large, single computer system or a distributed
system of smaller processing units with data replication and redundancy
protections. As described infra in greater detail, the central site 102 is
configured for various data processing functions, such as receiving, storing,
and managing uploaded data and associated information, receiving and
responding to various services requests from consumers, determining and
providing pricing and other data to consumers, and brokering transactions
between the consumers 110 and the retailers 108.
The central site 102 also communicates, via a network connection 106,
with various consumers 110 who are interested in accessing the stored retail
data for comparison pricing and other functions. Network connection 106 is
preferably the Internet but may comprise other kinds of networks, such as a
local area network (LAN), a wide area network (WAN), and a virtual private
network (VPN). The consumers 110 may use various kinds of terminals,
including a web browser for accessing the web site by means of hypertext
transmission protocol (HTTP) messages, a wireless telephone for allowing the
6
CA 02350604 2001-05-14
user to orally give requests (e.g. by voice recognition or by touch-tone key
commands), or a touch=screen terminal. In addition, an e-commerce gateway
112 connected to network 104 to allow consumers 110 to order products from
the retailers 108.
OPERATIONAL OVERVIEW
FIG. 1 B is a flowchart depicting the operation of one embodiment of the
present invention, which is illustrated with respect to a working example of
facilitating shopping for items at grocery stores. The present invention,
however, is not limited to grocery stores, and may be advantageously applied
to other retail stores, including, but not limited to drug stores (with health
and
beauty aids, over-the-counter medications and prescriptions as the products
instead of groceries), appliance stores, houseware stores, department stores,
and any other retailing outfit for which is desirable for consumers to compare
prices being offered.
At block 120, uploaded product information is received from stores and
retailers 108 at the central site 102 and is stored and maintained for later
retrieval and processing. Information regarding each retailer 108 uploading
information is also stored, managed and maintained at the central site 102.
Exemplary retailer information includes, but is not limited to, geographical
location, identity, delivery options, and store layout.
Exemplary product information includes, for example, product code,
quantity, price, and location with each store (e.g. aisle number). Also,
information from the manufacturers of the items can be uploaded and stored at
the central site 102 to provide additional value-added services to consumers.
For example, ingredient information about each of the grocery items can be
obtained from the manufacturers so that consumers can pre-edit their shopping
lists to meet specified dietary requirements, such as dairy-free foods for
lactose
7
CA 02350604 2001-05-14
intolerant individuals or peanut-free foods for those allergic to peanuts.
Other
information from the manufacturers may include coupons from the
manufacturers so that coupon savings can automatically be applied directly to
the grocery bill without having to go through the tedious process of printing
or
clipping physical coupons.
When the retailer and product information has been updated to the
central site 102, consumers 110 who want to perform pricing comparisons
among retailers 108 can access the central site 102 via a network connection
106 and are presented an interface that allows the consumer 110 to enter the
criteria for the comparisons in which the consumer is interested. Upon
receiving the comparative pricing data from the central site 102, the consumer
110 can then feel confident about making an informed purchase decision based
on pricing, variety, location and convenience. Because the consumer 110 is
already communicating with the central site 102 and can now make a
purchasing decision, certain embodiments of the present invention include an
e-commerce gateway 112 connected to the Internet 104 that allows the
consumer 110 to order products and product delivery right from the retailers
108 through the central site 102.
At block 122, consumers 110 log in to the central site 102. In an
embodiment in which the central site 102 is implemented as a web site, the
network connection 106 would then be the Internet, thereby allowing
consumers 110 to communicate with the central web-site via home computers,
web-enabled wireless phones, personal digital assistants (PDAs), informational
kiosks and other widely distributed devices. Upon contacting the central site
102, a banner page, or other welcome screen, as depicted in FIG. 2, may be
presented to a consumer using a typical web browser to access the central
site.
This welcome screen can include language options 202 that allow a consumer
8
CA 02350604 2001-05-14
to interact with the central site in a preferred language, such as English,
Spanish, and French.
After selecting the language, the consumer 110 is next presented with a
registration screen, such as the one depicted in FIG. 3. Although not required
for providing pricing comparison data, registration preferably allows profiles
of
consumers 110 to be maintained by the central site 102 to enhance consumer
interaction by customizing the experience based on the consumer's transaction
history, geographical location, and personal preferences. Also, registration
allows a consumer to store shopping lists, recipes, and retailer preferences
to
be used each time, thereby eliminating the need to enter this data each time
the consumer access the central site. Once initial registration is completed,
subsequent accesses to the central site can simply ask for a username 302
and password 304, or other authentication means, and allow the consumer to
proceed with generating pricing comparison data.
Referring back to FIG. 1 B, the desired geographic area, which may
include a ZIPCODE, a town, or specific list of stores, is obtained for the
user.
FIG. 3 also depicts a user interface that allows the user to select which
geographic area the user is interested in for pricing certain retail products.
A
variety of user interface controls are contemplated, including a map 306 of
the
United States wherein a user would click somewhere on the map and the
clicked location within the map 306 of the United States determines the local
area of the user. Address dialog 308, which can be part of the registration
procedure, allows the user to specify the user's local area by inputting an
address, city, state, and/or zip code. Alternatively the user can be allowed
to
enter a telephone area code that determines a local area. Local area retail
stores may include online retailers as well as more traditional shops around
the
corner.
9
CA 02350604 2001-05-14
The geographic location of the customer 110 can be then stored in a
database at the central site 102 and later used in conjunction with a local
retailer interface depicted in FIG. 4. The exemplary input screen of FIG. 4
includes a region 402 for specifying a distance from the consumer 110 that a
retailer 108 must be located within. As the distance is specified, various
retailers 108 are displayed with a checkbox 404 or other selection controls to
allow a consumer to select one or more particular retailers to compare.
Referring back to FIG. 1 B, the consumer is prompted to enter a
shopping list for which comparison pricing data will be generated (block 126).
FIGS. 5 and 6 depict, by way of example and by limitations, the type of
information that are likely to be involved during the entering of the shopping
list
of items. The particular interfaces of FIGS. 5 and 6 are not intended to
illustrate the exact or only layout oi~ required data for entering the list of
items,
but are exemplary of saeens and information that may be helpful in easily
gathering product data from a consumer and presenting the pricing comparison
data to the consumer. Alternative interfaces such as voice recognition or
touch
screens are also possible at the consumer location. Similarly, wireless web-
access devices, which are typically lower bandwidth, may use a less graphical
interface, relying instead on more text-based presentation and entry of data.
In FIG. 5, data entry areas are shown to the left that assist a consumer
in identifying a product. A consumer 110 can enter a product, in one data
entry
region 502, by typing the product's name or generic category (e.g. soup, corn,
peas, or milk) or can rely on default entries (of common items) already
entered
into the central site 102. Other interface enhancements, such as automatic
completion based on the first few letters of a word, may also be included.
Nearby data entry regions 504-508, which may be adapted to the product item
entered in region 502, include options allowing a consumer to optionally
select
brand names, package size, and package type. The available options in these
CA 02350604 2001-05-14
data entry regions can also depend on the locale of the consumer as well as
the retailers selected in an earlier entry screen. To assist with building a
shopping fist, as shown in region 518, a data entry region 510 for entering
the
quantity of a product can also be provided.
After entering data identifying a product, a consumer can choose to
check pricing information for a individual product by selecting region 514, or
can add the product to the shopping list 518. The display region 516 provides
the consumer with pricing comparison data for the selected product.
After completing the shopping list 518, the consumer 110 may then have
the shopping list priced at the selected stores (block 128 of FIG. 1 B). In
the
exemplary screens of FIGS. 5 and 6, the shopping list region 518 includes a
selection area 520 to calculate a total for the shopping list at each
retailer. A
display of the retailer-by-retailer comparison is depicted in FIG. 6.
Alternatively,
a running total could be maintained for each retailer and displayed in real-
time
as an item is added to, or deleted from, the shopping list 518.
In FIG. 6, a total cost of the shopping list is displayed 602, 604, and 606
for each retailer that carries every product on the shopping list. For those
retailers that do not carry particular products, an informational screen
display
608, 610, and 612 is presented alerting the consumer that particular products
are unavailable and offering to calculate the total, for this retailer, using
some
type of substituted data. Using this information, a consumer 110 is able to
determine the convenience and variety of particular retailers, consider the
cost
differential among these retailers, and decide which retailer to purchase the
items from.
After deciding which retailer to purchase the products from, a consumer
110 still has a number of choices as a result of using the central site 102 to
perform comparison shopping. The purchase of the products on the shopping
list can be completed on-line (see block 134, FIG. 1 B) by prompting the
11
CA 02350604 2001-05-14
consumer 110 for credit card, debit card or other account information.
Depending on the delivery options provided by the chosen retailer, the
consumer can also be prompted to determine if the consumer wants the
products delivered by the retailer, delivered by a third party shipper, or
held for
pick-up. The list of products as well as account information provided by the
consumer 110 is then forwarded to the retailer to complete the purchase
transaction. The possibility of on-line purchasing also provides the central
site
102 an opportunity to charge a percentage of the transaction total to cover
the
site's operating expenses.
The upper section of F1G. 7 illustrates an exemplary data entry screen
for facilitating an on-line transaction as described above. Credit card
information can be provided using a dialog box 704 or other account
information can be identified by a selection box 702. The lower section of
FIG.
7 depicts multiple data entry regions 706 and 708 that allow a user to specify
particular delivery options.
In a more traditional "brick-and-mortar" purchase transaction, the
consumer can also select to physically visit the retailer and purchase the
products on the shopping list. In this latter scenario, the central site can
further
assist the consumer by generating a store map, as depicted in FIG. 8, that
illustrates the layout of the retailer premises and the location of the
various
products on the shopping list. In this embodiment with reference to FIG. 1 B,
the shopping list can be sorted in order of the aisles 801, 802, 803, 804,
805,
806, 807, 808, 809 (block 130) and presented to the consumer 110 (block 132).
Thus, the consumer 110 can print the list and walk through the store and
conveniently pick up the items on the shopping in order, without having to
scan
the list multiple times in every aisle to avoid missing an item and having to
go
back to fetch it.
12
CA 02350604 2001-05-14
The central site 102, in addition to price comparison data, can provide
other services to consumers as well. For example, if the retailers were
pharmacies, provisions could be provided that allow a consumer to check if a
prescription was ready for pick-up; or if the retailers were grocery stores, a
consumer could check if a special order, such as a birthday cake or party-
platter, was ready for pick-up. For these alternatives, a retailer would need
to
provide the central site 102 special product availability information in
addition to
routine pricing information. -_
To attract consumers, the central site might also provide searchable
recipe archives, chat rooms to ask store personnel or other experts questions
regarding products, or safety alert message boards to inform consumers of
urgent information. Once a consumer 110 has selected a recipe, for example,
the ingredients of that recipe can be automatically transferred to the
shopping
list and priced.
In another example, FIG. 9 illustrates a feedback form which might also
be provided at the central site to consumers so that consumers can provide
comments and suggestions 902 regarding their interactions with the central
site
and other retailers 904. Other enhancements may include a "related-links"
page to web-sites that cater to consumers that are likely to use the central
site
or a coupon page with allows retailers and product manufacturers to inform
consumers of special pricing related to particular products.
SHOPPING LIST EDITOR
One embodiment of the present invention provides a shopping list editor,
which is illustrated in FIG. 9B. The shopping list editor allows shoppers to
pre-
edit their shopping lists to eliminate certain items with selected product
ingredients. For example, a person with an allergy to peanuts may wish to use
this feature to eliminate all grocery items made from peanuts or peanut oil.
The
13
CA 02350604 2001-05-14
list generated for this person would avoid the items that include peanuts.
Consequently, the shopping time in the store for this person would be reduced,
because the person does not have to check the ingredient list for peanuts.
This
feature is also helpful for such people in checking whether the list of foods
derived from a recipe in the recipe library meets their dietary requirements.
In one implementation, the shopping list editor includes a pre-specified
check-list 910 and a user-specified input area 912. The pre-specified check-
list
910 illustrated in FIG. 9B includes a set of common requirements such as
peanut free, sugar free, meatless, Kosher, dairy free, fat free, organic, salt
free,
low-salt (less than ~ mg), and vegetarian, although other requirements may be
included, such as pareve, suitable for Passover, free-range raised, etc. Users
select one or more of these requirements within the pre-specified check-list
910
by input appropriate for the user interface, such as clicking in a check-box.
The user-specified input area 912 allows users to input specific
requirements to eliminate all foods with ingredients that the user enters in
the
user-specified input area 912. For example, if a user wishes to eliminate
grocery items with tomatoes, the user would enter "tomato" into the user-
specified input area 912. The shopping list editor also includes an enter
button
914, which, when activated, causes those items not satisfying the requirements
to be remove (e.g. by looking up the ingredients for the items in the database
and comparing the ingredients with the pre-specified and user-specified check
lists).
Although FIG. 9B is illustrated with regard to grocery items, the present
invention is not so limited and may usefully be applied to other items. For
medicines, drugs, and other pharmaceutical items, the user may specify certain
ingredients to exclude (e.g. if allergic to penicillin). In addition the user,
to avoid
negative drug interactions, the user may list those drugs currently being
taken
in a drug-interaction input area (not shown).
14
CA 02350604 2001-05-14
This information for pre-screening the items may be integrated
elsewhere in the web site. For example, the web server can be programmed to
respond to double clicking on an item in the shopping list by displaying the
nutritional or other appropriate information for the item.
MANU~ACTURERS~ COUPON SAVINGS
Many manufacturers of retail items, especially of groceries, offer
coupons to provide an incentive for consumers to try their products. Many
consumers, however, do not like to go through the often tedious process of
printing and clipping coupons, and many consumers are missed because the
coupon advertisements do not reach all of the consumers. Thus, conventional
means of distributing coupons fail to reach as large of a consumer base as
desired by the manufacturers and 'consumers.
Accordingly, one embodiment of the invention provides a mechanism for
manufacturer's to register their coupons at the central site 102. In this
embodiment, the savings for the registered coupons are automatically matched
up with the user's shopping list. FIG. 9C depicts an exemplary web page that
illustrates how the coupons savings may be communicated to the user. For
each retailer, e.g. ABC Supermarket 920, the pre-coupon total 922 is
displayed.
Then, the total coupon savings 924 is displayed along with each of the
automatically applied coupons in section 926. The final purchase price 928 is
calculated and displayed, allowing the user to see the benefit of the
manufacturer's coupons.
HARDWARE OVERVIEW
FIG. 10 is a block diagram that illustrates a computer system 1000 upon
which an embodiment of the central site 102 of the present invention may be
implemented. Computer system 1000 includes a bus 1002 or other
CA 02350604 2001-05-14
communication mechanism for communicating information, and a processor
1004 coupled with bus 1002 for processing information. Computer system
1000 also includes a main memory 1006, such as a random access memory
(RAM) or other dynamic storage device, coupled to bus 1002 for storing
information and instructions to be executed by processor 1004. Main memory
1006 also may be used for storing temporary variables or other intermediate
information during execution of instructions to be executed by processor 1004.
Computer system 1000 further includes a read only memory (ROM) 1008 or
other static storage device coupled to bus 1002 for storing static information
and instructions for processor 1004. A storage device 1010, such as a
magnetic disk or optical disk, is provided and coupled to bus 1002 for storing
information and instructions.
Computer system 1000 may be coupled via bus 1002 to a display 1012,
such as a cathode ray tube (CRT), for displaying information to a computer
user. An input device 1014, including alphanumeric and other keys, is coupled
to bus 1002 for communicating information and command selections to
processor 1004. Another type of user input device is cursor control 1016, such
as a mouse, a trackball, or cursor direction keys for communicating direction
information and command selections to processor 1004 and for controlling
cursor movement on display 1012. This input device typically has two degrees
of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y),
that
allows the device to specify positions in a plane.
The invention is related to the use of computer system 1000 for
providing pricing comparisan retail data to consumers and facilitating retail
shopping. According to one embodiment of the invention, these functions are
provided by computer system 1000 in response to processor 1004 executing
one or more sequences of one or more instructions contained in main memory
1006. Such instructions may be read into main memory 1006 from another
16
CA 02350604 2001-05-14
computer-readable medium, such as storage device 1010. Execution of the
sequences of instructions contained in main memory 1006 causes processor
1004 to perform the process steps described herein. One or more processors
in a multi-processing arrangement may also be employed to execute the
sequences of instructions captained in main memory 1006. In alternative
embodiments, hard-wired circuitry may be used in place of or in combination
with software instructions to implement the invention. Thus, embodiments of
the invention are not limited to any specific combination of hardware
circuitry
and software.
The term "computer-readable medium" as used herein refers to any
medium that participates in providing instructions to processor 1004 for
execution. Such a medium may take many forms, including but not limited to,
non-volatile media, volatile media; and transmission media. Non-volatile media
include, for example, optical or magnetic disks, such as storage device 1010.
Volatile media include dynamic memory, such as main memory 1006.
Transmission media include coaxial cables, copper wire and fiber optics,
including the wires that comprise bus 1002. Transmission media can also take
the form of acoustic or light waves, such as those generated during radio
frequency (RF) and infrared (IR) data communications. Common forms of
computer-readable media include, for example, a floppy disk, a flexible disk,
hard disk, magnetic tape, any other magnetic medium, a CD-ROM, DVD, any
other optical medium, punch cards, paper tape, any other physical medium with
patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, any other
memory chip or cartridge, a carrier wave as described hereinafter, or any
other
medium from which a computer can read.
Various forms of computer readable media may be involved in carrying
one or more sequences of one or more instructions to processor 1004 for
execution. For example, the instructions may initially be borne on a magnetic
17
CA 02350604 2001-05-14
disk of a remote computer. The remote computer can load the instructions into
its dynamic memory and send the instructions over a telephone line using a
modem. A modem local to computer system 1000 can receive the data on the
telephone line and use an infrared transmitter to convert the data to an
infrared
signal. An infrared detector coupled to bus 1002 can receive the data carried
in
the infrared signal and place the data on bus 1002. Bus 1002 carries the data
to main memory 1006, from which processor 1004 retrieves and executes the
instructions. The instructions received by main memory 1006 may optionally
be stored on storage device 1010 either before or after execution by processor
1004.
Computer system 1000 also includes a communication interface 1018
coupled to bus 1002. Communication interface 1018 provides a two-way data
communication coupling to a network link 1020 that is connected to a local
network 1022. For example, communication interface 1018 may be an
integrated services digital network (ISDN) card or a modem to provide a data
communication connection to a corresponding type of telephone line. As
another example, communication interface 1018 may be a local area network
(LAN) card to provide a data communication connection to a compatible LAN.
Wireless links may also be implemented. In any such implementation,
communication interface 1018 sends and receives electrical, electromagnetic
or optical signals that carry digital data streams representing various types
of
information.
Network link 1020 typically provides data communication through one or
more networks to other data devices. For example, network link 1020 may
provide a connection through local network 1022 to a host computer 1024 or to
data equipment operated by an Internet Service Provider (ISP) 1026. ISP 1026
in turn provides data communication services through the worldwide packet
data communication network, now commonly referred to as the "Internet" 1028.
18
CA 02350604 2001-05-14
Local network 1022 and Internet 1028 both use electrical, electromagnetic or
optical signals that carry digital data streams. The signals through the
various
networks and the signals on network link 1020 and through communication
interface 1018, which carry the digital data to and from computer system 1000,
are exemplary forms of carrier waves transporting the information.
Computer system 1000 can send messages and receive data, including
program code, through the network(s), network link 1020, and communication
interface 1018. In the Internet example, a server 1030 might transmit a
requested code for an application program through Internet 1028, ISP 1026,
local network 1022 and communication interface 1018. In accordance with the
invention, one such downloaded application provides for storing and retrieving
persistent objects as described herein. The received code may be executed by
processor 1004 as it is received, and/or stored in storage device 1010, or
other
non-volatile storage for later execution. In this manner, computer system 1000
may obtain application code in the form of a carrier wave.
While this invention has been described in connection with what is
presently considered to be the most practical and preferred embodiment, it is
to
be understood that the invention is not limited to the disclosed embodiment,
but
on the contrary, is intended to cover various modifications and equivalent
arrangements included within the spirit and scope of the appended claims. The
invention is capable of other and different embodiments and its several
details
are capable of modifications in various obvious respects, all without
departing
from the invention. Accordingly, the drawings and description are to be
regarded as illustrative in nature, and not as restrictive:
19