METHODS AND SYSTEMS FOR FACILITATING USER ACCESS TO WEB PAGES USING PORTAL DEVICE

Abstract: Methods and systems for facilitating user access to web pages include a portal device (100) that includes keys or areas associated with web pages. Processing and communication circuitry detects when a user presses one of the keys or areas and forwards a key code to a portal client computer (104). The portal client computer sends a query for accessing a web page based on the key code.

Description: Description METHODS AND SYSTEMS FOR FACILITATING USER ACCESS TO WEB PAGES USING PORTAL DEVICE Priority Application Information This application claims the benefit of United States Provisional Patent Application 60/156,020, filed September 23, 1999, the disclosure of which is incorporated herein by reference in its entirety. Technical Field The present invention relates to methods and systems for facilitating user access to web pages. More particularly, the present invention relates to methods and systems for facilitating user access to web pages using a portal device. Background Art As the number of web servers connected to computer networks, such as the Internet, increases, it becomes more and more difficult for users to access useful web pages. In addition, the number of "hits" per web user decreases, because users are faced with a greater number of choices as the number of web pages increases. As a result, company revenue generated per web user decreases. One conventional mechanism for facilitating user access to web pages and for increasing the number of hits to web pages is a software portal. A software portal is a web page that includes links to other web pages. A software portal can be accessed by users through a conventional web browser. Once the user accesses the software portal, icons for various web pages are displayed in the browser window. The user accesses the web pages by clicking on one of the icons. While software portals provide an interface through which users can access multiple web pages, the user must still manually invoke a browser and either manually or automatically, through a "favorites" interface of the browser, access the web page corresponding to the software portal. Each step required to be performed by users in order to access a desired web page increases the time and complexity required to access a web page and decreases the likelihood that the user will access the web page. Some keyboards currently being sold for personal computers include special function keys that correspond to functions normally provided by browsers. For example, one conventional keyboard includes forward, back, and reload keys that allow users to access web pages according to the list of Hypertext Transfer Protocol (HTTP) queries displayed in the browser's address window. This feature is useful in allowing users to access previously-accessed web pages. However, the address window can include many queries corresponding to web pages that the user does not desire to access. As a result, the user can be required to "page" through multiple unwanted web pages before accessing a web page of interest. This paging increases the time required to access a web page of interest and decreases the likelihood that a user will access a web page of interest. Accordingly, there exists a long felt need in the industry for facilitating user access to web pages and for increasing hits to selected web pages. Disclosure of the Invention The present invention includes methods and systems forfacilitating user access to web pages using portal devices and for increasing hits to selected web pages. As used herein, the term "web page" includes data sent from a web server to a web client in response to a query from the web client. A web server can include one or more programs that execute on one or more computers that respond to queries from web clients. A web client can include one or more programs that execute on one or more computers that query web servers and receive responses from the web servers. As used herein, the term "portal device" includes a device capable of communicating with a computer to facilitate user access to web pages and to facilitate collection of user information. The portal device can include, but is not limited to, an electrical or electro-mechanical user interface, such as a keypad, for receiving input from a user. Processing and communication circuitry identifies keys pressed by the user and communicates key codes for identifying the keys to downstream software. A mapping module generates a signal or code for varying the association between keys on the keypad and web pages. A method forfacilitating user access to web pages using a portal device includes transmitting a key code from a portal device to portal client software executing on a portal client computer. The portal client computer can include, but is not limited to, a general purpose computer connected to other computers over a network. The portal client software forwards the key code along with user identification information to portal server software executing on a portal server computer. The portal server software determines a web page that the user desires to access by accessing user information in a portal server database. The key code and the user identification code can be used to perform a lookup in the database and extract the corresponding web page access information. As used herein, the phrase "web page access information" includes any information usable by a web client to instruct a web server to deliver a specific web page. For example, the web page access information can include the domain name of the web server that serves the web page and additional information such as file and directory information for locating the web page on the web server. The portal server software forwards the web page access information to the portal client software. The portal client software then formulates and sends a query to the web server that serves the web page indicated by the web page access information. The web server sends data back to the portal client device for display to the user. Thus, user information is collected and a web page is accessed merely by pressing a single key. According to another aspect, the present invention includes computer program products comprising computer-executable instructions embodied in computer-readable media. As used herein, the phrase computer-readable medium includes, but is not limited, to optical, electrical, and magnetic storage devices, such as disk storage devices, memory storage devices, and cards. Accordingly, it is an object of the present invention to provide novel methods and systems for facilitating user access to web pages. It is another object of the present invention to increase hits to web pages. It is another object of the present invention to provide a hardware portal for facilitating user access to web pages. It is yet another object of the present invention to provide a method for collecting user preference information with regard to web page access. It is yet another object of the present invention to provide business methods using hardware portal devices to increase hits to web pages. These and other objects are achieved in whole or in part by the present invention. Some of the objects of the invention having been stated hereinabove, other objects will become evident as the description proceeds, when taken in connection with the accompanying drawings as best described hereinbelow. Brief Description of the Drawings The present invention will now be explained with reference to the accompanying drawings of which: Figure 1 is a block diagram illustrating a system for facilitating user access to web pages using a portal device according to an embodiment of the present invention; Figure 2 is a block diagram illustrating a portal device according to an embodiment of the present invention; Figure 2(a) is a block diagram illustrating a user interface for a portal device according to an embodiment of the present invention; Figure 2(b) is a block diagram illustrating a mapping module for a portal device according to an embodiment of the present invention; Figure 3 is a block diagram illustrating portal client software according to an embodiment of the present invention; Figure 4 is a block diagram illustrating portal server software according to an embodiment of the present invention; Figure 5 is a partial block/partial flow diagram illustrating a method for facilitating user access to web pages according to an embodiment of the present invention; Figure 6 is a partial block/partial flow diagram illustrating a method for facilitating user access to web pages according to another embodiment of the present invention; Figure 7 is a partial block/partial flow diagram illustrating a method for facilitating user access to web pages according to yet another embodiment of the present invention; Figure 8 is a perspective view of a portal device according to an embodiment of the present invention; and Figure 9 is a top view of exemplary cards associated with a mapping module of a portal device according to an embodiment of the present invention. Detailed Description of the Invention Figure 1 is a block diagram illustrating a system for facilitating user access to web pages utilizing a portal device according to an embodiment of the present invention. In Figure 1 , the system includes a portal device 100, portal client software 102 that executes on a portal client computer 104, and portal server software 106 that executes on a portal server computer 108. The portal client computer 104 and the portal server computer 108 can each comprise general purpose computers, such as IBM, IBM-compatible, Macintosh, or Macintosh-compatible computers. The portal client computer 104 and the portal server computer 108 can be connected to each other and to web servers 110 through a computer network, such as a TCP/IP network or a UDP/IP network. The portal device 100, the portal client software 102, and the portal server software 106 cooperate to facilitate user access to web pages served by the web servers 110. Each of these components will now be discussed in more detail. Portal Device The portal device 100 can comprise any device that receives input from a user indicative of a web page or a plurality of web pages that the user desires to access and transmits signals to the portal client software 102 indicative of the user's selection. Figure 2 is a block diagram illustrating a portal device 100 according to an embodiment of the present invention. In Figure 2, the portal device 100 includes a user interface 200 adapted to receive user input relating to a web page or a plurality of web pages that the user desires to access. In a preferred embodiment of the invention, the user interface 200 comprises a keypad having a plurality of keys, where each key is associated with a web page or a plurality of web pages that the user can desire to access. In an alternative embodiment of the invention, the user interface 200 can comprise a touch screen having keys or areas associated with web pages that the user can desire to access. In yet another alternative embodiment, the user interface can comprise voice recognition hardware and software combined with a graphical display. For example, keys can be displayed to a user on a computer display device. Each key can have a label, such as "YAHOO.COM". The user can actuate a key to contact a web page by speaking the appropriate label into a microphone connected to portal client computer 104. Portal client software 102 can include voice recognition circuitry for identifying the web page that the user desires to access. Portal client software 102 can then generate a query for that web page and send the query to the appropriate web server. The portal device 100 includes processing and communication circuitry 202 for monitoring the user interface 200 to identify a key or area being pressed or touched by the user and output a signal indicative of the key to the portal client computer 104 illustrated in Figure 1. The processing and communication circuitry 202 can comprise hardware, software, or a combination of hardware and software configured to communicate with the user interface 200 and the portal client computer 104. For example, the processing and communication circuitry 202 can comprise a microprocessor programmed to perform the processing and communication functions described herein. An exemplary microprocessor suitable for use as the processing and communication circuitry 202 is the Model No. CY631101A available from Cypress Semiconductor. To communicate with the portal client computer 104, the processing and communication circuitry 202 can include a serial interface, such as an RS-232 interface, for communicating with the serial port of the portal client computer 104, a parallel interface for communicating with the parallel port of the portal client computer 104, or high speed serial interface for communicating with the USB port of the portal client computer 104. Alternatively, the processing and communication circuitry 202 can be configured to communicate with the portal client computer 104 through a wireless interface, such as an infrared interface or a radio frequency interface. The mapping module 204 can comprise hardware, software, or a combination or hardware and software that produces output signals or codes for varying the association between at least some of the keys or areas associated with the user interface 200 and web pages. The association between other keys associated with the user interface 200 and web pages might or might not be varied using the mapping module 204. In one embodiment, the mapping module 204 comprises a card reader adapted to read information stored on cards insertable in the card reader. For example, the mapping module 204 can comprise a bar code reader. A card (not shown) insertable in the bar code reader can include a bar code that stores a card identification code. The card identification code instructs software downstream from the card reader to interpret user input received through the user interface 200 in a certain way. For example, the card identification code can be used to vary the association between keys or areas associated with the user interface and web pages. For example, if the "news" key or area is pressed and an "ABC News" card is inserted in the card reader, software downstream from the card reader can generate a query to a web server having the domain name abcnews.com. If, the "news" key is pressed while a CNN card is inserted in the card reader, software downstream from the card reader can generate a query to the web server having the domain name cnn.com. If no card is inserted in the card reader, software downstream from the card reader preferably sends a query to a default location, as specified by the key or area being pressed and any user preferences, as will be discussed in more detail below. According to another aspect of the invention, the mapping module 204 can comprise a card reader adapted to generate card insertion and removal signals when a card is inserted or removed, respectively. These signals can be transmitted to the portal client computer 104. In response to the card insertion signal, the portal client software 102 can generate a query containing web page access information specified by the signal. For example, if the card is an eBAY.com card, the portal client software 102 might query the web server corresponding to the domain name eBAY.com to access the eBay.com home page. Similarly, when a card is removed, client software 102 can query a default web server or web servers to display a default web page. In an alternative embodiment of the invention, the portal client software 102 can communicate card insertion and removal signals to portal server software 106. The card insertion and removal signals can indicate the card type to the portal server software. The portal server software can then generate a query to a web server for a web page corresponding to the card type. Exemplary User Interface and Detector Circuitry Figure 2(a) illustrates exemplary user interface and detector circuitry that can be included in the user interface 200 and the processing and communication circuit 202. In Figure 2(a), the user interface 200 comprises a keypad 220 including a plurality of keys 222. Each of the keys 222 includes an indicium associated with a web page or a plurality of web pages. For example, the indicium on each key can include a company identifier, a web page identifier, a product or service category identifier, or other indicium for facilitating user access to a web page or a plurality of web pages. The user interface 200 can include any electrical, mechanical, electromechanical, or other mechanism for detecting when a user presses a key and for determining which key has been pressed. In the illustrated embodiment, the user interface 200 includes a matrix of row conductors 224 and column conductors 226 that underlies the keys on the keypad. A plurality of switches S, - S n can be connected between the row conductors 224 and the column conductors 226. For example, there can be a single switch corresponding to each key 222 on the keypad 220. The row conductors 224 are electrically isolated from the column conductors 226 until one of the keys 222 is pressed. A detector 228, which can be included in the processing and communication circuitry 202, can be connected to the row conductors 224 and the column conductors 226 for detecting closure of one of the switches S.,-S n , identifying the key being pressed. The detector 228 can be variously configured. For example, the detector 228 can comprise hardware, software, or any combination of hardware and software that scans the keypad matrix to identify a key being pressed. To scan the matrix, the detector 228 can be adapted to sequentially or randomly generate electrical signals on the row conductors or the column conductors. The detector 228 can also be adapted to receive return signals from the row conductors or the column conductors when a key is pressed. If the detector 228 is adapted to transmit signals on the row conductors 224, then the detector 228 is preferably adapted to receive signals on the column conductors, and vice versa. In the illustrated embodiment, the detector 228 drives a transmitter 230 connected to the row conductors 224 for transmitting scanning signals on the row conductors 224. The detector 228 monitors signals output from a receiver 232 connected to the column conductors 226 for receiving return signals from the column conductors 226. When a key is pressed by the user, the switch corresponding to the key being pressed is closed. The transmitter 230 transmits signals, e.g. sequentially, randomly, or in a predetermined order, on the row conductors 224 under control of the detector 228. When the transmitter 230 transmits a signal on the row conductor connected to the switch corresponding to the key being pressed, the receiver 232 detects the return signal on the column conductor connected to the switch and forwards the return signal to the detector 228. Because the detector 228 knows the row conductor on which the transmission occurred and the column conductor on which the return signal was detected, the detector 228 can identify the key being pressed. Once the detector identifies the key being pressed, the processing and communication circuitry 202 preferably generates a key code indicative of the key being pressed. The key code can be a number or other identifier that uniquely identifies a key. The key code can be transmitted to the portal client computer 104 in any suitable manner, as discussed above. Mapping Module Figure 2(b) illustrates a mapping module according to an embodiment of the present invention. In the illustrated embodiment, the mapping module 204 includes a card reader 240 for reading a bar codes 242 and 244 on a card 246 insertable into the card reader 240. The card reader 240 includes one or more optical sensors 248 and 250 for reading the bars in the bar code and outputting electrical signals indicative of the code. The optical sensor 248 is positioned to read bar code 242 on the card 246, which includes data, such as a card identification code. Accordingly, the optical sensor 248 is preferably connected to a data input of the processing and communication circuitry 202. The optical sensor 250 is positioned to read the bar code 244, which includes sync bits for synchronizing the reading of the bar code 242. Accordingly, the optical sensor 250 is preferably connected to a sync input of the processing and communication circuitry 202. The present invention is not limited to having the bar code 242 on the top of the card and the bar code 244 containing synchronization bits on the bottom. In an alternative embodiment, the bar code 242 could be on the bottom and the bar code 244 could be on the top. In addition, either or both of the bar codes 242 and 244 can be replaced by a magnetic strip, an eprom, or any other information-bearing medium. The bar code 244 includes translucent or non-reflective areas 246 and opaque or reflective areas 248. When the user inserts a card into the card reader 240, the translucent or reflective areas and the opaque or reflective areas pass the optical sensor 250 and the bar code 242 passes the optical sensor 248. Transitions from areas 246 to areas 248 produce rising edges, i.e., a clock signal, on the sync input of the processing and communication circuitry 202. The rising edges generate interrupts to the processing and communication circuitry 202. The interrupts cause the processing and communication circuitry 202 to read and process the data bits in the bar code 242. In the illustrated embodiment, the bars in the bar code 242 must be correctly aligned with transitions in the bar code 244 so that data bits are read at the correct time. The processing and communication circuitry 202 preferably executes a software routine for reading the data from the bar code 242. For example, the barcode 242 can include a preamble portion, a data portion, and a postamble portion. The processing and communication circuitry 202 uses the preamble portion to detect card insertion. For example, the preamble portion can be a bit sequence, such as "0101". If this sequence is detected as an initial pattern, i.e., when the card reader is activated, the processing and communication circuitry 202 determines that a card is being inserted. As stated above, upon detection of card removal, a query can be sent to a default web server for accessing a default web page for the card. If the initial pattern detected by the processing and communication circuitry 202 is not an initial pattern, the processing and communication circuitry 202 determines whether the initial pattern is the postamble portion in reverse, indicating that a card is being removed from the card reader. For example, if a valid postamble pattern is "0011", and the card reader detects "1100", the processing and communication circuitry 202 determines that a card is being removed. As stated above, upon detection of card removal, a query can be sent to a default web server for displaying a default web page for the card. If the processing and communication circuitry 202 detects any other initial pattern, the processing and communication circuitry 202 determines that the preamble is invalid and takes appropriate action. For example, invalid patterns can cause the processing and communication circuitry 202 to enter a timeout period during which all data is ignored. The processing and communication circuitry 202 can also reset data variables for storing data read from the bar code 242. After waiting for a predetermined time period, the processing and communication circuitry 202 can return to waiting for a valid preamble or postamble. Data is only considered valid if the optical sensors scan a valid preamble, e.g., "0101 ", the correct number of data bits, e.g., 24 bits or 32 bits, and a valid postamble "0011 ". When the card is fully inserted, the sync sensor 250 should be blocked. Therefore, a valid insertion event results in preamble, data, postamble, and sync blocked for extended time period. A valid removal consists of the reverse data sequence followed by sync path clear. Invalid card activity will trigger a card insertion event with invalid data, such as "OxFFFFFFFF". Once the processing and communication circuitry 202 determines that it has received valid data, the processing and communication circuitry 202 reads the data to determine the card identification code. The processing and communication circuitry 202 then transmits the card identification code, along with the key being pressed, to the portal client software 102 illustrated in Figure 1. The portal client software 102 uses the card identification code to vary the association between the keys on the keypad and one or more web pages, as will be discussed in more detail below. The present invention is not limited to using a bar code and a bar code reader to vary the association between keys and web pages. For example, in an alternative embodiment of the present invention, the mapping module 204 can comprise magnetic card reader for reading a magnetic card that encodes the card identification code. In yet another alternative embodiment, the card can include a memory device and the processing and communication circuitry 202 can be adapted to read the card identification from the memory device. In yet another alternative embodiment of the invention, the card can comprise a smart card including a microprocessor and associated memory that can be used in performing secure e-commerce transactions using the hardware portal device. In such an embodiment, the mapping module 204 would include appropriate interface circuitry for communicating data between the smart card and the processing and communication circuitry 202. The present invention is not limited to a mapping module embodied in the portal device 100. For example, in an alternative embodiment of the invention, the mapping module can comprise a virtual card that can be downloaded to the portal client computer 104 from an external source, such as a friend's website. The virtual card can be read by the portal client software 102 executing on the portal client computer 104 to which the portal device 100 is attached. The portal client software 102 can receive the key code generated by the portal device 100 and use the information on the virtual card to generate the correct query, just as if a physical card had been inserted in the mapping module 204. For example, if the virtual card is an "ABC News" virtual card and the "news" key is pressed, the portal client software 102 can generate a query to "abcnews.com". Portal Client Software Referring back to Figure 1 , the portal client software 102 executing on the portal client computer 104 receives user input from the portal device 100 and communicates with the portal server software 106 executing on the portal server computer 108 and with web servers 110. Figure 3 is a block diagram illustrating exemplary client software according to an embodiment of the present invention. In the illustrated embodiment, the portal client software 102 includes a device driver 300, a controller 302, and a browser 304. The device driver 300 receives signals including key codes, card identification codes, and card insertion and removal signals from the portal device 100, converts the signals to data recognizable by the controller 302 and writes the data into a memory location accessible by the controller 302. For example, if the portal device is configured to communicate with the portal client computer 104 using the USB interface of the portal client computer 104, the device driver 300 can be configured to read a USB data stream and write data from the USB data stream to main memory of the portal client computer 104. The controller 302 receives the data from the device driver 300, formulates queries and passes the queries to the browser 304. The queries can comprise URL strings or other identifiers for accessing web pages. Passing the query to the browser can be done in a number of ways, for example, using the COM interface, available in Microsoft WINDOWS® operating systems or directly invoking the browser with a command line argument, e.g., "netscape.exe www.abcnews.com". The controller 302 preferably also directly passes information to the portal server software 106, without using a browser interface. This communication can be achieved using standard networking protocols, such as UDP or TCP, or using HTTP over TCP/IP. The portal client software 102 and the portal server software 106 can exchange information for a variety of reasons, including keeping the client software current, communicating user preference and identification information, preferably with the user's permission, to the portal server software, and for receiving information from the portal server software. The controller 302 can also manage a portal client database 306 that stores user preferences for one or more users to influence the formulation of queries. For example, the portal client database 306 can include web page access information based on preferences of a single user on a plurality of users. The formulation of queries can be based on data received from the portal device 100, the portal server software 106, and/or the portal client database 306. The browser 304 can be any type of web client adapted to forward queries to external machines and receive data from the external machines. The browser 304 can also provide a graphical user interface for displaying information from the external machines to the user and allow the user to interact with the external machines. Exemplary browsers suitable for use with the present invention include Internet Explorer available from Microsoft Corporation and Netscape Navigator, available from America Online Corporation. The present invention is not limited to using a browser and a separate controllerforformulating queries and communicating with an external machine. For example, the controller 302 and the browser 304 can be integrated within a single software module to communicate with the portal device 100, external machines, the user, and the portal client database 306. Portal Server Software Referring back to Figure 1 , the system forfacilitating user access to web pages using a portal device includes portal server software 106 executing on portal server computer 108 for communicating with portal client software 102 executing on portal client computer 104. Figure 4 illustrates the portal server software 106 in more detail. In the illustrated embodiment, the portal server software 106 includes a server application 400 that reads information from and writes information to a portal server database 402. The server application 400 can be any type of server capable of communicating with the portal client software 102 and/or the web servers 110 over a computer network. For example, the server application can be configured to communicate using TCP/IP, UDP/IP, or HTTP over TCP/IP. Communication between the portal server application 400 and external devices will be discussed in more detail below. The portal server database 402 comprises information regarding users and web page names access information for each user. For example, the portal server database 402 can store information regarding user preferences, and information for mapping key codes and card codes to web page access information. The portal server application 400 is preferably capable of storing information regarding users in the portal server database 402 and extracting web page access information from the portal server database 402 using information received from the portal client software 102. Communication Methods Figure 5 is an exemplary partial block/partial flow diagram illustrating an exemplary method for facilitating user access to web pages according to an embodiment of the present invention. The blocks have the same general structure and functions as described above, and thus this discussion need not be repeated. The arrows connecting the blocks indicate message flows between the blocks in an exemplary method forfacilitating user access to web pages using a portal device. The number beside each arrow indicates the order in which the message occurs. The message flow will be explained as a series of steps performed by the various devices according to the present invention. The steps can be implemented by hardware, software, or a combination of hardware and software. In step 1 , the portal device 100 detects that a key or an area is being pressed or otherwise actuated by the user and formulates a key press package to the portal client software 102. The key press package can include a key code indicative of the key being pressed, a card code indicative of a card inserted in the mapping module, and a device code indicative of the portal device 100. The device code and the card code are optional and need not be sent. In step 2, the portal client software 102 sends a user identification code, a password, and the key press package to the portal server application 400. The user identification code and the password can be received from the user when the user invokes the portal client software 102. Sending the user identification code and password to the portal server application 400 is optional. However, in a preferred embodiment, this data is sent to allow the portal server application 400 to authenticate the user and collect information regarding the user. In step 3, the portal server application performs user authentication by verifying that the password is correct for the user identification received with the password and requests user data from the database. For example, the portal server application can perform a table lookup in the database 402 using the key code, the card code, and/or the device code to extract web page access information for the web page that the user desires to access. The portal server application 400 can also record user information, such as the web page that the user is accessing. To obtain permission from the user to record and sell his or her information, the portal client software 102 can display an agreement to which the user must agree before the software can be successfully installed. Alternatively, the user can be prompted during authentication of his or her user identification code and password as to whether or not the user consents to the recording and selling of his or her identification and preference information. If the user consents to the recording of his or her identification and preference information, the information can be stored in the database 400. If the user does not consent, the user identification and preference information are preferably not stored in the database 402. In step 4, the portal server application 400 forwards the web page access information for the web page or pages that the user desires to access to the portal client software 102. The web page access information can be transmitted in HTTP format such that the web page or pages corresponding to the web page access information can be displayed by the browser. If web page access information for a plurality of web pages is communicated to the portal client software 102, the portal client software 102 can display a list of web pages to the user. The list can be in the form of an index page that includes a plurality of links to the web pages that the user desires to access. In step 5, the portal client software 102 transmits a query to the appropriate web server 110 based on the user's selection from the list of web pages or, if a single web page was requested, based on the web page access information received from the portal server software 102. In step 6, the selected web server 110 returns a response containing the desired information to the portal client software 102. For example, the response can contain data for displaying a web page on a display device connected to the portal client computer 104. The embodiment illustrated in Figure 5 illustrates exemplary steps by which information entered by the user through a portal device is used to access a web page of interest. All the user is required to do is press a key, and the appropriate information is extracted from the portal server, returned to the portal client application, and used to access the desired web page. Figure 6 illustrates an alternative method for facilitating user access to web pages according to an embodiment of the present invention. In Figure 6, the portal client software 102 accesses information in the portal client database 306 to facilitate user access to web pages. In step 1 , the portal device 100 detects that a key or an area has been pressed or otherwise actuated by the user and formulates a key press package to the portal client software 102. The key press package can include a key code indicative of the key being pressed, a card code indicative of a card inserted in the mapping module, and a device identifier that identifies the hardware portal device. The device identifier and the card identifier are optional and need not be sent. In step 2, the portal client software 102 extracts user profile information from the portal client database 306 and/or updates user profile information in the portal client database 306. The user profile information can include geographic information, such as a postal code, for the user, or user preference information, for facilitating access to web pages. To update user profile information in the portal client database 306, the portal client software can transmit the user identification information, and optionally a password, and the key press package to the portal client database 306. In step 3, the portal client software 102 transmits the key press package and any user profile information, such as the postal code, to the portal server application 400. As stated above, the transmission can be in TCP/IP format, UDP/IP format, or HTTP over TCP/IP format. In step 4, the portal server application 400 updates profile information in the database 402, if changes have occurred to the information in the portal client database 306. If the user profile information has not changed, in step 5, the portal server application 400 requests that one of the web servers, as specified by the key press package and any user profile information, transmit information to the portal client application, e.g., using the HTTP redirect command. In step 6, in response to the re-direct command, the accessed web server transmits data to the portal client application to allow the user to view the desired web page. Thus, unlike the embodiment illustrated in Figure 5, the embodiment illustrated in Figure 6 does not require that the portal server software communicate the web page access information back to the portal client software before the web page can be accessed. The user's request is processed by the portal server software, which directs the appropriate web server to send data to the client. In addition, client information can still be collected in the portal server database, since the original request from the protocol client software is transmitted through the portal server software. Figure 7 illustrates another embodiment of the present invention for facilitating user access to web pages. Like the embodiment illustrated in Figure 6, the portal client software includes the portal client database 306 for storing user profile information. However, unlike the embodiment illustrated in Figure 6, the portal client software 102 communicates directly with one or more of the web servers 110 to access a desired web page. In step 1 , the portal device 100 detects that a key or an area has been pressed or otherwise actuated by the user and transmits a key press package to the portal client software 102. The key press package can include a key code indicative of the key being pressed, a card code indicative of a card inserted in the mapping module, and a device code indicative of the hardware portal device. The device code and the card code are optional and need not be sent. In step 2a, the portal client software 102 extracts user profile information from the portal client database 306 and updates user profile information in the portal client database 306. The user profile information can include geographic information, such as a postal code, for the user, or user preference information, such as web page access information for the user, forfacilitating access to web pages. To update user profile information in the portal client database 306, the portal client software 102 can transmit the user identification information, an optional password, and the key press package to the portal client database 306. In step 2b, the portal client software 102 formulates a query to one of the web servers based on at least one of, the key press package, the user profile information extracted from the database 306, the card ID, and the device ID. The query can be in any suitable format, e.g., TCP/IP format, UDP/IP format, or HTTP over TCP/IP format. Concurrently with step 2b, the portal client software can transmit user profile information to the portal server application 400 so that the portal server application 400 can update user profile information in the database 402 (step 2c). The portal server application 400 can also determine whether the user profile information is current by accessing portal server database 402, and, in step 2d, send updates to the user profile information to the client side, e.g., to notify that the client that a web page in the client's personal profile has been moved or that a key mapping has been changed. An example of a change in key mapping is a change in the default mapping of the "news" key changes from "abcnews.com" to "cnn.com". Because the portal server application 400 and the portal client software 102 preferably interact to maintain consistency between the databases 306 and 402, the information in both databases is kept current. In step 3, the web server 110 contacted by the portal client software 102 transmits the requested information to the portal client software 102. Thus, the embodiment illustrated in Figure 7 includes the advantages of direct client access to a web page, while still allowing updating of user profile information on both client and server sides. Configuration File Updates In an alternative embodiment of the invention, updates to user profile information can be accomplished by the portal client software 102 downloading from the portal server application 400, preferably over HTTP, the latest version of a configuration file containing the user profile information. Each configuration file contains a version number such as "version=1". The portal client software 102 can determine the version number of the configuration file currently in use. The portal client software 102 calculates the next version of the configuration file in sequence by incrementing the version number of the current configuration file by a predetermined increment. For example, if the current version is 1 , and the increment is 1 , the next file can be version 2. The portal client software 102 determines whether a configuration file update is needed by checking for the next version of the file in sequence, stored in a directory on the portal server computer 108 associated with that version. If the next version of the configuration file exists, the portal client software 102 downloads and installs the file. If the file does not exist, the portal client software 102 knows that the configuration file currently in use does not require updating. For example, a configuration file might be named "config.txt", the portal client software 102 might currently be using version 2 of the configuration file, and the increment might be 1. On the portal server computer 108, configuration files are stored in directories called: "/configurations/versions/1", "/configurations/versions/2", etc. Since the portal client software 102 has version 2, it creates an HTTP request for the next version of the file. In this example, the request might be: http://www.planetportal.eom/configurations/versions/3/config.txt. The request can be sent as an unmodified HTTP request to the portal server application 400. If the portal server application 400 responds "file not found", the portal client software 102 knows that it has the latest version of config.txt. However, if version 3 exists, it will be downloaded to the portal client software 102 in response to the request, and the portal client software 102 can install it. The process of checking for updates can be combined in a novel manner with the process for conveying information to the portal server, as illustrated by step 2c in Figure 7. Specifically, when the portal client software 102 requests: http://www.planetportal.eom/configurations/versions/3/config.txt the portal client software 102 can append the user profile information as parameters in the URL. For example, the URL above can become: http://www.planetportal.com/configurations/versions/3/config.txt?&userlD=da vid&buttonlD=7&cardlD=2 When this request reaches the portal server application 400, the portal server application 400 can automatically log the request to a log file. Logging HTTP requests to a log file is a standard web server function, which is preferably included in the portal server application 400. Thus, both the updating of the client files and the logging of the user's request is accomplished with a single request. Furthermore, the logging operation requires no additional server code to be written; rather, it uses the logging function of a portal server application 400 in a novel way. As a result of this process for downloading configuration file updates, the portal client software 102 can be informed of newer file versions without server intervention or new server code, beyond what exists in a standard web server. Hybrid Communication Methods As described above with respect to Figure 6, according to one embodiment of the invention, signals generated by the portal device are redirected through the portal server application 400 to a web server. More particularly, the portal client software 102 transmits a key press package to the portal server application 400 based on the key pressed on the portal device 100. The portal server application 400 then transmits a redirect message to the appropriate web server, and the web server responds directly to the portal client software 102. In another embodiment, for example as described with respect to Figure 7, the portal client software 102 generates a query directly to the web server 110 and uploads user profile information to the portal server application in parallel with loading the web page or pages. In yet another alternative embodiment, a hybrid method for facilitating user access to web pages can combine the steps illustrated in Figures 6 and 7. That is, the portal client software 102 can send a query directly to a web server and concurrently send the user profile information to the portal server application 400. For example, a method for facilitating user access to web pages can begin by executing the steps illustrated in Figure 7. However, if the portal server application 400 experiences difficulty, e.g., a predetermined time period elapses, in receiving the user profile information from the portal client software 102, the method can include executing the steps in Figure 6. That is, the portal client software can transmit a request for accessing a web page to the portal server application 400. The portal server application 400 can then update its database by automatically logging the request, as described above. As a result, collection of user profile information can be reliably performed. Portal Device Physical Configuration Figure 8 illustrates an exemplary portal device physical configuration according to an embodiment of the present invention. In the illustrated embodiment, the portal device includes a housing 800 for housing the portal device circuitry. A cable 802 extends from the housing for connecting the internal circuitry to an external computer. In the illustrated embodiment, the cable 802 is a USB cable for connecting to the USB port of the portal client computer. The housing includes a card slot 804 for receiving a card 246. A keypad 220 is located in open area 806 of the housing 800. The keypad includes a plurality of keys 222a - 222c, each including indicium related to web pages that a user can desire to access. For example, keys, such as the key 222a, each have an indicium, such as "jobs", "tickets", or "music" for accessing categories of web pages. Keys, such as the key 222b, each include an indicium, such as "Dominos", "AT&T", or "eBAY", that indicates company names or logos. Finally, keys, such as keys 222c, include generic indicia that correspond to specific indicia 808 on the card 246. In other words, the indicia 808 on the card 246 indicates the function of the indicia on the keys 222c. The function of the keys 222c change according to the card 246 inserted in the slot 804. Figure 9 illustrates exemplary embodiments of the card 246. In the illustrated embodiment, cards 246a-246d each include different indicia 808a- 808d for indicating different functions of the keys 222c. Cards 246a-246d also include different company identifiers 810a-810d indicative of the company accessed by the portal device when the card is inserted in the portal device and the user presses one of the keys 222c. Although the cards can be any of the types of cards described above, in the illustrated embodiment, the cards include bar codes 242a-242d for instructing software downstream from the cards 242a-246d to alter the function of the keys 222c on the portal device. An exemplary mechanism for altering the function of the keys 222c is described in detail above and need not be repeated herein. For example, card 246a is a Barnes & Noble card. When the user inserts the card 246a in the portal device and presses one of the keys 222c labeled "home", the portal device causes the portal client software to access "barnesandnoble.com". Similar functionality is provided by the cards 246b-246d. In addition, the barcodes on the cards 246a-246d can cause the generation of card insertion and removal signals that result in queries to default web pages for each of the cards. Thus, a user can have a single portal device and a plurality of cards. As a result, the portal device can be easily reconfigured, simply by placing a new card in the card slot, according to the web page or pages that the user desires to access. Business Methods Using Portal Device According to another aspect, the present invention includes methods of doing business using portal devices. For example, a company that distributes portal devices can sell key space on the portal device to other companies. When a company buys key space on the portal device, an indicium of the company is placed on one or more keys on the keypad. In addition, the portal client software and/or the portal server software is configured to generate queries to the purchasing company's web page or pages when the key or keys owned by the company are pressed. The portal device and the portal client software are then distributed to a plurality of users. Although the portal devices and the portal client software can be sold to the users, in a preferred business method according to the invention, the portal devices and the portal client software are distributed to users without charge. Distributing the portal devices and portal client software to users without charge increase the number of users of portal devices. Accordingly, web page hits will increase for companies that own key space on the portal device. Like the portal devices, the cards 246a- 246d can be distributed to users with or without charge to the end users to increase hits to company-sponsored web pages. According to an alternative embodiment of the present invention, a method for doing business can include charging companies for mapping web page names to default buttons. For example, the portal device can include a default key labeled "news". A company, such as CNN, can pay for the right to have the news button mapped to cnn.com. Users can modify the default selection, but CNN will be the default for the news button. For example, portal client software 102 can present a list of news selections to the user with CNN being the first selection in the list. The mapping of the news button to cnn.com can be performed using any of the methods described above. Similarly, in the list of choices presented to the user other than the default choice, e.g., ABC News or MSNBC, each slot can be sold to companies with lower slots commanding a lower price. Thus, the present invention provides improved methods for increasing hits to web pages and for generating revenue based on the increased hits. It will be understood that various details of the invention can be changed without departing from the scope of the invention. Furthermore, the foregoing description is for the purpose of illustration only, and not for the purpose of limitation--the invention being defined by the claims.

Claims: CLAIMS What is claimed is: 1. A method for facilitating user access to web pages using a portal device, the method comprising: (a) receiving, at a portal client computer, a key code generated by a portal device indicative of a key being pressed by a user for accessing a web page; (b) transmitting a query over a network for accessing the web page based on the key code; (c) updating information pertaining to the user or user preferences based on the query; and (d) receiving the web page from a web server based on the query. 2. The method of claim 1 wherein transmitting a query over a network comprises transmitting a first query to a portal server computer, the first query including the key code. 3. The method of claim 2 comprising receiving a response from the portal server computer based on the key code, the response including web page access information for the web page. 4. The method of claim 3 comprising transmitting a second query over the network for accessing the web page specified by the web page access information. 5. The method of claim 2 wherein, in response to the first query, the portal server computer transmits a redirect message to the web server for accessing the web page based on the key code and the web server sends the web page to the portal client computer. 6. The method of claim 1 further comprising accessing a database using the key code to obtain web page access information for the web page and wherein transmitting a query over a network comprises transmitting a first query from the portal client computer to the web server for accessing the web page specified by the web page access information. 7. The method of claim 1 wherein updating information pertaining to the user or user preferences includes transmitting information pertaining to the user or user preferences to a portal server computer and storing the information in a database managed by the portal server computer. 8. The method of claim 1 wherein updating information pertaining to the useror user preferences includes receiving information pertaining to user preferences from a portal server computer and storing the information pertaining to user preferences in a database managed by the portal client computer. 9. The method of claim 1 wherein updating information pertaining to the user or user preferences includes storing the information in a first database managed by the portal client computer and in a second database managed by a portal server computer connected to the portal client computer over a network. 10. The method of claim 6 wherein updating information pertaining to the user or user preferences comprises transmitting user preference information from the portal client computer to a portal server computer independently of transmitting the query to the web server, and, in response to failing to receive the user preference information at the portal server computer within a predetermined time period, transmitting a second query containing the user preference information to the portal server computer. 11. The method of claim 1 wherein transmitting a query over a network includes transmitting the query to a portal server computer, the query including web page access information for the web page and user identification information, and wherein updating information pertaining to the user comprises logging the query in a log file associated with the portal server computer. 12. The method of claim 10 wherein the second query comprises an HTTP query and the user identification information is embedded in the HTTP query. 13. A computer program product comprising computer-executable instructions embodied in a computer-readable medium for performing steps comprising: (a) receiving, at portal client computer, a key code generated by a portal device indicative of a key being pressed by a user for accessing a web page; (b) transmitting a query over a network for accessing the web page based on the key code; (c) updating information pertaining to the user or user preferences based on the query; and (d) receiving the web page from a web server based on the query. 14. The computer program product of claim 13 wherein transmitting a query over a network comprises transmitting a first query to a portal server computer, the first query including the key code. 15. The computer program product of claim 14 comprising receiving a response from the portal server computer based on the key code, the response including web page access information for the web page. 16. The computer program product of claim 15 comprising transmitting a second query to the web server for accessing the web page specified by the web page access information. 17. The computer program product of claim 13 wherein updating information pertaining to the user or user preferences includes transmitting information pertaining to the user or user preferences to a portal server computer and storing the information in a database managed by the portal server computer. 18. The computer program product of claim 13 wherein updating information pertaining to the user or user preferences includes receiving information pertaining to user preferences from a portal server computer and storing the information pertaining to user preferences in a database managed by the portal client computer. 19. The computer program product of claim 13 wherein updating information pertaining to the user or user preferences includes storing the information in a first database managed by the portal client computer and transmitting the information to a portal server computer for storage in a second database managed by the portal server computer. 20. The computer program product of claim 13 wherein transmitting a query over a network includes transmitting the query to a portal server computer, the query including web page access information for the web page and user identification information, and wherein updating information pertaining to the user comprises logging the query in a log file associated with the portal server computer. 21. The computer program product of claim 13 wherein the query comprises an HTTP query and the user identification information is embedded in the HTTP query. 22. The computer program product of claim 13 wherein: transmitting a query over a network includes transmitting a first query to the web server for accessing the web page; and updating information pertaining to the user or user preferences comprises transmitting the information to a portal server computer, and in response to failing to receive the information at the portal server computer, transmitting a second query including information to the portal server computer. 23. A portal device for facilitating user access to web pages comprising: (a) a user interface having a plurality of keys or areas for receiving user input regarding a web page or web pages that a user desires to access, each key being associated with a web page or a plurality of web pages; (b) processing and communication circuitry operatively associated with the keys or areas for identifying a key or area being actuated by a user, producing a key code indicative of the key or area, and forwarding the key code to a computer; and (c) a mapping module for producing information for varying the association between at least some of the keys or areas and web pages. 24. The portal device of claim 23 wherein the mapping module comprises a card reader coupled to the processing and communication circuitry for reading codes from cards associated with the card reader, wherein the codes are used for varying the association between the keys or areas and web pages. 25. The portal device of claim 24 wherein the card reader comprises a bar code reader for reading bar codes containing information for varying the association between at least some of the keys or areas and web pages. 26. The portal device of claim 24 wherein the card reader comprises a magnetic card reader for reading magnetically encoded information for varying association between at least some of the keys or areas and web pages. 27. The portal device of claim 24 wherein the card reader comprises a memory card reader for reading information stored in a memory card for varying the association between at least some of the keys or areas and web pages. 28. The portal device of claim 24 wherein the card reader is adapted to generate a query for accessing a web page in response to at least one of insertion or removal of the card. 29. The portal device of claim 23 wherein the mapping module comprises a smart card interface for receiving information from a smart card for varying the association between at least some of the keys or areas and web pages. 30. The portal device of claim 23 wherein the mapping module comprises a virtual card downloadable from a web server for varying the association between at least some of the keys or areas and web pages. 31. A method for generating revenue and for increasing hits to company sponsored web pages, the method comprising: (a) selling key space on portal devices to companies, the key space including a key or an area having a company or product identifier and being adapted to produce a code for generating a query to a company-sponsored web page; and (b) distributing the portal devices to users to increase hits to the company-sponsored web page accessible using the key or area on the portal devices. 32. The method of claim 31 wherein distributing the portal devices to users includes distributing the portal devices to the users without charge to the users. 33. The method of claim 31 wherein distributing the portal devices to users includes selling the portal devices to the users. 34. The method of claim 31 comprising recording user identification information and user preference information generated by the portal devices. 35. The method of claim 34 comprising selling the user identification and preference information. 36. The method of claim 31 comprising distributing cards to users having company or product identifiers, wherein the cards are insertable in the portal devices for modifying the portal devices to access web pages relating to the company or product identifiers on the cards. 37. A method for increasing hits to a web page, the method comprising: (a) in a portal device, generating, in response to insertion of a card in a card reader associated with the portal device, a first signal for accessing a first web page; (b) transmitting the first signal from the portal device to a portal client computer coupled to the portal device; and (c) transmitting, from the portal client computer, a first query for accessing the first web page based on the signal. 38. The method of claim 37 further comprising: (d) in the portal device, generating, in response to removal of the card from the card reader, a second signal for accessing a second web page; (e) transmitting the second signal from the portal device to the portal client computer; and (f) transmitting, from the portal client computer, a second query for accessing the second web page based on the second signal. 39. A method for updating user configuration files for mapping keys associated with a portal device to web page access information, the method comprising: at a portal client computer: (a) reading a version number of a configuration file for mapping keys associated with a portal device associated with the portal client computer to web page access information; (b) incrementing the version number by a predetermined increment; (c) transmitting a query to a portal server computer based on the incremented version number; at the portal server computer: (d) receiving the query from the portal client computer; (e) searching for an updated configuration file based on the incremented version number; and (f) in response to locating the updated configuration file, transmitting the updated configuration file to the portal client computer. 40. The method of claim 39 comprising, in response to failing to locate the updated configuration file, transmitting a file not found message to the portal client computer. 41. The method of claim 39 wherein transmitting the updated configuration file to the portal client computer includes transmitting an updated configuration file including information for mapping keys associated with the portal device to web page access information. 42. A method for generating revenue and for facilitating user access to web pages, the method comprising: (a) distributing a plurality of portal devices to a plurality of users, each portal device including at least one key having an indicium indicative of a category of goods, services, or entertainment; (b) providing a default mapping between the key and a web page; and (c) charging a company associated with the web page for providing the default mapping. 43. The method of claim 42 comprising providing a plurality of alternative mappings between alternative web pages and the key and charging companies associated with the alternative web pages for providing the alternative mappings.

Inventors: DEKOENIGSBERG GREGORY REASONER, KAMINSKY DAVID LOUIS, KLEINHEKSEL BRENT MICHAEL, LAI CHUN-WEN, MAGES KENNETH GLENN, OGLE DAVID MARK, DEKOENIGSBERG, GREGORY, REASONER, KAMINSKY, DAVID, LOUIS, KLEINHEKSEL, BRENT, MICHAEL, LAI, CHUN-WEN, MAGES, KENNETH, GLENN, OGLE, DAVID, MARK
Applicants: PLANETPORTAL COM INC, PLANETPORTAL.COM, INC.
Application year: 1999
Main classification: G06F17
IPC codes: G06F17, G06Q30