The invention relates to electronic commerce. More particularly, the invention relates to management of electronic commerce sessions.
Typical electronic commerce sessions consist of a user at a client device accessing an electronic commerce World Wide Web site that provides products and/or services. When the user accesses the site, the client device is generally connected to one of a group of servers that provide a copy of the site to the client device. From the user's perspective the server that fact that multiple servers provide copies of the site is transparent.
Because multiple servers can provide copies of the electronic commerce Web site, the multiple servers often provide redundant services. For example, common searches may be performed by each server. For example, during cold season, many users may search an electronic commerce site for cold remedies. Typically, each server that receives such a search request performs the search, which may include relatively slow disk accesses. Multiple servers performing the same search multiple times is inefficient and can result in slower access for users of the electronic commerce site.
Another inefficiency that can result from having multiple servers provide an electronic commerce site is that a user may make multiple accesses within a relatively short period of time. If these user accesses are assigned to servers randomly or on a circular basis, user data may be loaded to a first server for a first access and a second server for a second access. This can also result in slower access for users because the user must wait for data to be retrieved by the second server.
Methods and apparatuses for electronic commerce session management is described. In one embodiment, data is stored on a server coupled to receive requests from client devices. A set of one or more predetermined search requests corresponding to searches of the data is generated. The set of predetermined search requests is performed. The results of the set of predetermined search requests are stored on the server. Selected search results are provided in response to a corresponding search request being received from one of the client devices. In one embodiment, during a predetermined period of time without inactivity by the user, all requests are directed to the same server.
The invention is illustrated by way of example, and not by way of limitation in the figures of the accompanying drawings in which like reference numerals refer to similar elements.
Methods and apparatuses for electronic commerce session management are described. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the invention. It will be apparent, however, to one skilled in the art that the invention can be practiced without these specific details. In other instances, structures and devices are shown in block diagram form in order to avoid obscuring the invention.
Some portions of the detailed descriptions which follow are presented in terms of algorithms and symbolic representations of operations on data within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art.
An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussion throughout the description, discussions utilizing terms such as “processing” or “computing” or “calculating” or “determining” or “displaying” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
The invention also relates to apparatuses for performing the operations herein. These apparatuses may be specially constructed for the required purposes, or may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a machine-readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus.
The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the required method steps. The required structure for a variety of these systems will appear from the description below. In addition, the present invention is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the invention as described herein.
Reference in the specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the invention. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment.
Methods and apparatuses for electronic session management are disclosed. In one embodiment, a user is connected to a server when initiating a session. Until a predetermined period of time passes without any activity from the user, the user is connected to the same server even if the initial connection with the server is broken. During that time, information related to the user is stored in volatile memory of the server. In one embodiment, a one or more searches are performed and the results of the searches are stored on the servers. When a user performs one of the searches the results are retrieved without repeating the searches. Thus, commonly performed searches can be provided in a more efficient manner as compared to performing the searches multiple times.
Client device 140 and client device 150 represent devices used to access networked resources for a user of the respective client devices. Any number of client devices can be coupled to Internet 100. In one embodiment, client devices 140 and 150 are computer systems; however, other devices can also be used. For example, client devices 140 and/or 150 can be “set-top boxes” or “Internet terminals” such as a WebTV™ terminal available from Sony Electronics, Inc. of Park Ridge, N.J., or a set-top box using a cable modem to access a network such as the Internet.
Alternatively, client devices 140 and/or 150 can be “dumb” terminals or thin client devices such as the ThinSTAR™ available from Network Computing Devices, Inc. of Mountain View, Calif. In another alternative embodiment, client devices 140 and/or 150 can be hand held electronic devices, for example, personal digital assistants (PDAs), cellular telephones, pagers, or other electronic systems that provide network access.
Web farm 120 represents any configuration of servers that provide access to electronic resources such as, for example, Web pages, databases. In one embodiment Web farm 120 includes multiple Hypertext Markup Language (HTML) servers that provide electronic commerce Web pages to client devices 140 and/or 150. Any configuration that provides access to electronic resources using any appropriate protocol can be used.
Computer system 200 includes bus 201 or other communication device to communicate information, and processor 202 coupled to bus 201 to process information. While computer system 200 is illustrated with a single processor, computer system 200 can include multiple processors and/or co-processors. Computer system 200 further includes random access memory (RAM) or other dynamic storage device 204 (referred to as main memory), coupled to bus 201 to store information and instructions to be executed by processor 202. Main memory 204 also can be used to store temporary variables or other intermediate information during execution of instructions by processor 202.
Computer system 200 also includes read only memory (ROM) and/or other static storage device 206 coupled to bus 201 to store static information and instructions for processor 202. Data storage device 207 is coupled to bus 201 to store information and instructions. Data storage device 207 such as a magnetic disk or optical disc and corresponding drive can be coupled to computer system 200.
Computer system 200 can also be coupled via bus 201 to display device 221, such as a cathode ray tube (CRT) or liquid crystal display (LCD), to display information to a computer user. Alphanumeric input device 222, including alphanumeric and other keys, is typically coupled to bus 201 to communicate information and command selections to processor 202. Another type of user input device is cursor control 223, such as a mouse, a trackball, or cursor direction keys to communicate direction information and command selections to processor 202 and to control cursor movement on display 221.
Network interface 230 provides an interface between computer system 200 and an external network (not shown in
Instructions are provided to main memory 204 from a storage device, such as magnetic disk, a read-only memory (ROM) integrated circuit (IC), CD-ROM, DVD, via a remote connection (e.g., over a network), etc. In alternative embodiments, hard-wired circuitry can be used in place of or in combination with software instructions to provide on-line prescription ordering.
Starting page 300 can receive user information from user database 350. In one embodiment, user database 350 stores information (e.g., name, address, preference information, previous order information) related to users of the electronic commerce site. User information can be retrieved from user database 350 based on, for example, using a “cookie” stored on the user's computer system to identify which user to retrieve information for, or alternatively, based on a login procedure.
In general, a cookie is information that a Web server stores on a client device to provide information to the server at a later time. A cookie can, for example, provide identification information, preferences, or similar information to the server when the client device subsequently contacts the server. The cookie can be used to identify a user the corresponding information can be retrieved from user database 350 and used without requiring the user to enter information that had previously been provided.
From starting page 300, a user can navigate to one of several category pages (e.g., 310, 320, 330). In one embodiment, the category pages provide information (e.g., photographs, prices, manufacturer) related to various products offered for sale through the electronic commerce site. In one embodiment, product information is provided in response to user requests by product database 340, which can be implemented in any manner known in the art. Also, although not shown in
Category pages are not required; however, some organization of information that a user can navigate may provide a better experience for the user. Starting page 300 can also provide links to multiple related Web pages, rather than categories. For example, starting page 300 can operate as an electronic commerce “mall” and provide links to more specific electronic commerce sites (e.g., clothing, jewelry, electronics).
In one embodiment, user database 350 maintains a record of products previously purchased by various users as well as other useful information. In one embodiment, one or more products previously purchased are presented to the user in the form of a list. The user can select a product from the list for simplified reordering or for other (e.g., research, pricing) information. The list can be presented in several formats with various categorizations. The following are some, but not all, of the formats and categorizations in which the list of products can be presented.
The list of products can be presented as a pull-down/pop-up menu, as a menu item, as a linked document, or in any other format. When the list of products is presented to the user, the list includes all of the products previously purchased, all of the products previously purchased within a predetermined time period, a predetermined number of products. The products included in the list can be categorized in any manner, selected categories of products can be presented, etc. Any other useful categorization can also be used.
The user can select one or more of the products from the list for reordering. In one embodiment, shipping information (e.g., address, shipping method, payment method) are verified in response to a product being selected and the server causes the product to be ordered and shipped to the user. If the shipping information has changed or is inaccurate, the user can modify the shipping information as needed.
In one embodiment, customized product list page 370 is compiled from product database 340 and user database 350 for each user that accesses starting page 300. Customized product list page 370 includes information related to previous purchases. For example, customized product list page 370 can list all products previously purchased by a particular user, either in a categorized (e.g., by product category, by date, by price) format or an uncategorized format. Customized product list page 370 can also include additional information such as, for example, products the user intends to purchase in the future, or products that the user wishes to research. A customized product listing can also be provided to the user in a different format, for example, the listing can be in the form of a menu or any other format.
Server 360 operates in conjunction with product database 340 and user database 350 to provide starting page 300 and multiple category pages with product information and user information as described above.
Also, searches that are anticipated to be common can be designated as common search requests. For example, during flu season a search for flu remedies can be pre-designated as a common search. Similarly, category searches can be treated as common search requests.
The common search requests are performed on a database of information at 410. In one embodiment, each server of a Web farm stores a copy of a product/service database that is offered by an electronic commerce Web site. The database information is updated periodically. When the database information is updated, the common searches are performed on the updated database. The updated database and the corresponding search results are distributed to the servers of the Web farm at 120.
In response to a server receiving a search request from a client device at 430, the server determines whether the search request is a common search request at 440. If the search request is a common search request at 440, the corresponding search results are retrieved at 450 and provided at 460. If the search request is not a common search request at 440, the server performs the search on the database at 470 and provides the results at 480.
In the foregoing specification, the invention has been described with reference to specific embodiments thereof. It will, however, be evident that various modifications and changes can be made thereto without departing from the broader spirit and scope of the invention. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.
Number | Name | Date | Kind |
---|---|---|---|
5761418 | Francis et al. | Jun 1998 | A |
5862223 | Walker et al. | Jan 1999 | A |
5920856 | Syeda-Mahmood | Jul 1999 | A |
5933822 | Braden-Harder et al. | Aug 1999 | A |
5963915 | Kirsch | Oct 1999 | A |
5983218 | Syeda-Mahmood | Nov 1999 | A |
6092100 | Berstis et al. | Jul 2000 | A |
6101512 | DeRose et al. | Aug 2000 | A |
6167405 | Rosensteel et al. | Dec 2000 | A |
6282543 | Kawasaki et al. | Aug 2001 | B1 |
6345256 | Milsted et al. | Feb 2002 | B1 |
6480853 | Jain | Nov 2002 | B1 |
6486892 | Stern | Nov 2002 | B1 |
6523023 | Sonnenberg | Feb 2003 | B1 |
6611862 | Reisman | Aug 2003 | B1 |
6629127 | Deen et al. | Sep 2003 | B1 |
6691114 | Nakamura | Feb 2004 | B1 |
6983311 | Haitsuka et al. | Jan 2006 | B1 |