1. Technical Field
The present invention relates in general to a system and method for redirecting a web page in a wireless environment. More particularly, the present invention relates to a system and method for using a Wireless Access Protocol (WAP) gateway to forward a selected URL to a user's account for viewing at a later time.
2. Description of the Related Art
The Internet includes a vast amount of information for a user to access. The user may want to access the information when he is not at a computer terminal. For example, the user may want to know the location of restaurants or gas stations in close proximity to him while he is in his automobile.
Wireless technologies, such as Wireless Access Protocol (WAP), are being implemented to provide Internet access to mobile devices, such as cellular phones and personal digital assistants (PDAs). WAP is a standard protocol for the transmission of data over low bandwidth wireless networks which allows a mobile device to browse the Internet. WAP is implemented using two key components, a WAP gateway and a microbrowser (i.e. mobile device software application). Together, these components enable mobile devices to access information on the Internet.
The WAP gateway converts HyperText Transfer Protocol (HTTP) formatted data to Wireless Mark-up Language (WML) formatted data and visa versa. WML is format which includes text information corresponding to web page selections. WML minimizes wireless bandwidth use because graphics are typically omitted. The WAP gateway may also provide additional information about the microbrowser device through HTTP headers, such as the user's cell phone number, its mobile (i.e., cellular) identifier, and location of the mobile device.
The microbrowser is a software application on a mobile device which receives WML formatted data from the WAP gateway and displays it on the mobile device's screen for the user to view. The microbrowser also sends WML information to the WAP gateway corresponding to the user's selection, such as an address of a web page that the user wishes access.
A challenge found with viewing a web page using a mobile device is the display size of the mobile device. Even with WAP, a web page may include too much information for the mobile device to effectively display. For example, a web page may include multiple options for a user to choose in which a limited number of those options are displayed at one time based upon the number of lines a mobile device is able to display.
A mobile Internet user occasionally locates a web page that appears to be interesting or useful. Due to the challenges described above, the user may not be able to effectively comprehend the content of the web page. Therefore, the user may want to revisit the web page at a later time in an environment offering suitable rendering characteristics (i.e. a computer monitor). A challenge found with revisiting the web page at a later time is remembering the address of the web page. What is needed, therefore, is a way to forward the address corresponding to a web page to a different location allowing the user to revisit the web page at a later time in an environment offering suitable rendering characteristics.
It has been discovered that code may be added to a Wireless Access Protocol (WAP) gateway and a WAP mobile device to redirect URLs to a destination chosen by the user for later viewing. A URL is the acronym for Uniform Resource Locator and is the global address of files and resources, such as web pages, located on the World Wide Web, or “web.” The WAP enabled mobile device is configured with URL redirection software which allows a user to forward a redirection request which includes one or more URL's to one or more redirect addresses. The WAP gateway includes code which receives the redirection request from the mobile device and sends a message which includes one or more URL's to corresponding redirect addresses through a computer network, such as the Internet.
When a user locates a web page that he wishes to send to a different location, the user selects a target redirect address from a list of addresses stored on the user's mobile device. If the target redirect address is not included in the pre-defined redirect address list, the user may add the target redirect address to the pre-defined redirect address list. The user has the option to enter a text message to describe the URL which is being sent. The additional text message is especially helpful when the URL is rather cryptic. For example, if the URL corresponds to a web page regarding sightseeing in Dallas, Tex., the user may enter “Dallas sights” to describe the URL, while the actual URL may be “http://www.acmecompany.com/page123.htm.”
The user may select multiple redirect addresses for a single URL location. For example, a manager may find a web page that includes information about his company's competition. The manager may send the corresponding URL to himself and five of his employees. Another example is a user may locate a web page that is illegible on his mobile device's small screen. The user may redirect the corresponding URL location to his office email so that the user is able to view the web page either at work or at home on a larger screen, such as a computer monitor. The user is also able to assign a priority to individual redirect requests. Using the example described above, the user may be driving to his office and wish to view the web page immediately. The mobile user may assign a “high” priority to his work email redirect request, and assign a “normal” priority to his personal homepage redirect request.
Once the mobile user is finished selecting redirect entries, the mobile device sends a redirect request that includes one or more redirect entries through a wireless network to a WAP gateway. The WAP gateway receives the redirect request and notifies a redirect manager. The redirect manager may be a software application loaded on the WAP gateway which manages the redirection of URL locations received from wireless devices.
The redirect manager analyzes the priority corresponding to each redirect entry included in the redirect request. If a “high” priority is assigned to a redirect entry, the redirect manager sends the redirect message to the corresponding redirect address through a computer network, such as the Internet, upon receipt of the request. If a redirect entry is “Normal” priority, the redirect manager stores the redirect entry in a redirect storage area. At frequent intervals, such as every hour, the redirect manager retrieves stored redirect entries from the redirect storage area. The redirect managers sorts the redirect entries based upon their corresponding redirect address. The redirect manager creates a message to send to a redirect address, and includes each URL and optional URL text description which is currently stored in the redirect storage area. For example, if “JohnDoe@email.com” is the redirect address for five corresponding redirect entries, a message addressed to “JohnDoe@email.com” is created and the five URL's and text description corresponding to the redirect entries are included in the message. In addition, an identifier corresponding to the sender of the request may be included in the message so that the recipient can see who sent the corresponding URL links.
The redirect manager sends redirect messages to recipient destinations corresponding to the redirect address of the redirect entry. The redirect message may include the senders ID (i.e. name or phone number), one or more URL's, and optional text descriptions of corresponding URL's.
The foregoing is a summary and thus contains, by necessity, simplifications, generalizations, and omissions of detail; consequently, those skilled in the art will appreciate that the summary is illustrative only and is not intended to be in any way limiting. Other aspects, inventive features, and advantages of the present invention, as defined solely by the claims, will become apparent in the non-limiting detailed description set forth below.
The present invention may be better understood, and its numerous objects, features, and advantages made apparent to those skilled in the art by referencing the accompanying drawings. The use of the same reference symbols in different drawings indicates similar or identical items.
The following is intended to provide a detailed description of an example of the invention and should not be taken to be limiting of the invention itself. Rather, any number of variations may fall within the scope of the invention which is defined in the claims following the description.
User 105 selects a URL corresponding to a web page using wireless device 100. The request is sent to WAP gateway 140 which, in turn, retrieves the corresponding web page from computer network 180, converts the web page to WML if applicable, and sends the corresponding WML information back to wireless device 100. If user 105 chooses to redirect the URL (web page), wireless device 100 invokes redirect software 110. The user may choose to redirect a URL because the corresponding web page is illegible or because the corresponding web page includes information that user 105 wants to forward to another user or to one of his personal email accounts.
Redirect software 110 requests information from user 105 as to the redirect addressee and optional text associated with the URL. Redirect storage 120 is nonvolatile storage that includes pre-defined redirect addresses which user 105 may select. In addition, user 105 may add a new redirect address and store it in redirect storage 120 (see
Once redirect software 110 receives relevant information from user 105, wireless device 100 sends redirect request 130 to WAP gateway 140 through the wireless network. Redirect request 130 may include one or more redirect addresses, one or more URL's, a priority level for the redirect request, and optional text for each redirect entry describing the corresponding URL. WAP gateway 140 receives redirect request 130 and forwards the pertinent information to redirect manager 150 for processing. Redirect manager 150 is a software application that manages the redirection of URL locations received from wireless devices.
Redirect manager 150 analyzes the priority corresponding to each redirect entry. If a “high” priority is assigned to a redirect entry, redirect manager 150 sends a redirect message (redirect message 170) to corresponding recipient destination 190 through computer network 180, such as the Internet (see
At certain intervals, such as every hour, redirect manager 150 retrieves redirect entries from redirect data store 160 and sorts the redirect entries based upon their corresponding redirect address. Redirect manager 150 creates a message to send to a redirect address, and includes each URL and optional URL text description which is currently stored in redirect data store 160. For example, if “JohnDoe@email.com” is the redirect address for five corresponding redirect entries, a message addressed to “JohnDoe@email.com” is created and the five URL's and text description corresponding to the redirect entries are included in the message. Redirect manager 150 sends redirect message 170 to recipient destination(s) 190 through computer network 180, such as the Internet (see
If the web page is to be redirected, decision 250 branches to “Yes” branch 252 whereupon mobile redirect processing occurs (pre-defined process block 260, see
A determination is made as to whether the user selects more URL's (decision 270). For example, the user may be browsing the Internet and wish to select multiple URL's. If the user selects more URL's decision 270 branches to “Yes” branch 272 which loops back to process the next URL. This looping continues until the user stops selecting URL's, at which point decision 270 branches to “No” branch 278.
A determination is made as to whether the mobile device currently has unsent redirect selections (decision 280). For example, the mobile device may have redirect entries stored in memory or a nonvolatile storage area that have not yet been sent to the WAP gateway. If the mobile device has unsent redirect selections, decision 280 branches to “Yes” branch 282 whereupon the unsent redirect selections are processed (pre-defined process block 290, see
Stored redirect addresses are retrieved from redirect addresses store 325 and displayed on the mobile device screen (step 320). Redirect addresses store 325 may be stored on a non-volatile storage area, such as a computer hard drive or nonvolatile memory. A determination is made as to whether a target redirect address is included in the displayed pre-defined redirect addresses (decision 330). The target redirect address corresponds to where a mobile user wants to redirect the URL. If the target redirect address is included in the pre-defined redirect address list, decision 330 branches to “No” branch 332 whereupon the user selects a redirect address from the pre-defined redirect address list (step 335). On the other hand, if the target redirect address is not included in the pre-defined redirect address list, decision 330 branches to “Yes” branch 334 whereupon the user enters the name and address of the target recipient which is then stored in redirect addresses store 325 (step 340).
The URL, redirect address, and optional text are stored in redirect buffer 365 at step 360. Redirect buffer 365 may be stored on a non-volatile storage device, such as a computer hard drive or nonvolatile memory or in memory included in the mobile device. A determination is made as to whether the URL should be sent to another addressee (decision 370). For example, the user may wish to send the same URL to four of his co-workers. If the URL is to be sent to another addressee, decision 370 branches to “Yes” branch 372 which loops back to process the next redirect address. This looping continues until the user does not wish to send the URL to additional redirect addresses, at which point decision 370 branches to “No” branch 374.
A determination is made as to whether to send the redirect entries to the gateway (decision 375). If the user chooses to not send the entries at this time, decision 375 branches to “No” branch 377 bypassing redirect processing. The user may choose to send entries at a later time when he is browsing the Internet and thinks that he will be adding more redirect entries with different URL's to redirect buffer 365. In another embodiment, processing may wait until redirect buffer 365 is full before sending the redirect entries in order to save battery life by minimizing the amount of times the mobile device transmits to the WAP gateway.
On the other hand, if the user (or processing) chooses to send the redirect entries to the WAP gateway at this time, decision 375 branches to “Yes” branch 379 whereupon the redirect entries are processed (pre-defined process block 380, see
The redirect entry is added to the redirect request at step 430. The redirect entry includes a URL corresponding to a web page, the address of the redirect recipient, and optional text that may be included to describe the corresponding URL. The selected entry is removed from redirect buffer 425 at step 440. A determination is made as to whether there are more entries in redirect buffer 425 (decision 450). If there are more entries, decision 450 branches to “Yes” branch 452 which loops back to select (step 460) and process the next redirect entry. This looping continues until there are no more redirect entries in redirect buffer 425, at which point decision 450 branches to “No” branch 458.
A determination is made as to whether the redirect request is a priority request (decision 465). A priority request may be handled differently at the WAP gateway (see
The gateway redirect request is closed at step 480. The redirect request is sent to WAP gateway 490 at step 485. WAP gateway 490 analyzes the redirect requests and forwards the redirect entries to corresponding recipient(s) (see
On the other hand, if the request is to redirect a web page, decision 520 branches to “Yes” branch 524 whereupon a determination is made as to whether the web page redirection request is a priority request. For example, the web page may include information that a customer is waiting for and the user (i.e. salesperson) requests that the corresponding URL to be sent to the customer without delay. If the web page redirection request is a priority request, decision 530 branches to “Yes” branch 532 whereupon the priority request is processed (pre-defined process block 535, see
On the other hand, if the web page redirection request is not a priority request, decision 530 branches to “No” branch 534 to process the request in a “normal priority” manner. The first entry included in the request is selected at step 540. Processing acquires write lock 555 corresponding to redirect data store 565 at step 550. Write lock 555 is acquired to prevent other gateway processing threads from accessing redirect data store 565 while URL redirect entries are written to redirect data store 565. Redirect data store may be stored in a non-volatile storage area, such as a computer hard drive. Redirect data store 565 may also include a database, such as a relational database, managed by a database management system (DBMS).
The redirect entry including the redirect address, requestor's ID, URL, and optional text describing the URL are written to redirect data store 565 at step 560. The requestor's ID may be the requestor's wireless phone number or name and may be obtained through standard wireless protocols. A determination is made as to whether the redirect request includes more redirect entries (decision 570). If the redirect request includes more redirect entries, decision 570 branches to “Yes” branch 572 which loops back to select (step 575) and process the next entry. This looping continues until there are no more redirect entries to process in the redirect request, at which point decision 570 branches to “No” branch 578.
Write lock 555 is released at step 580 which allows other gateway processing threads to access redirect data store 565. A determination is made as to whether gateway processing continues processing mobile requests (decision 590). If processing is to continue processing mobile requests, decision 590 branches to “Yes” branch 592 which loops back to process more mobile device requests. This looping continues until processing terminates, at which point decision 590 branches to “No” branch 598 and gateway processing ends at 599.
The first redirect entry including the redirect address, requestor's ID, URL, and optional text describing the URL are written to temporary data store 610 at step 620. The redirect address is the address to which the URL location is sent. The requestor's ID may be the requestor's wireless phone number and may be obtained through standard wireless protocols. A determination is made as to whether there are more than one entry included in the selected priority redirect request (decision 625). For example, the selected priority redirect request may include five redirect entries each addressed to the same redirect address. If there are more entries in the selected priority redirect request, decision 625 branches to “Yes” branch 627 which loops back to select (step 630) and process the next redirect entry. This looping continues until there are no more redirect entries to process in the selected priority redirect request, at which point decision 625 branches to “No” branch 629.
Processing sorts the redirect entries included in temporary store 610 based upon their corresponding redirect address and stores the sorted results in sorted temporary store 640 (step 635). Using the example described above, if “JohnDoe@email.com” is the redirect address for the five entries, the five entries are sorted such that they are next to each other in regards to order. Sorted temporary store 640 may be stored on a non-volatile storage area, such as a computer hard drive.
Processing selects the first redirect address from sorted temporary store 640 at step 645. Processing creates message 655 addressed to the corresponding redirect address at step 650. Using the example described above, message 655 is addressed to “JohnDoe@email.com”. The first redirect entry information corresponding to the redirect address is written to message 655 at step 660. The redirect information includes the requestor's ID (i.e. phone number or name), the redirected URL, and optional text describing the redirected URL.
A determination is made as to whether there are more entries in sorted temporary store 640 (decision 670). If there are more entries in sorted temporary store 640, decision 670 branches to “Yes” branch 674 whereupon the next entry is selected at step 675. A determination is made as to whether the redirect address of the current redirect entry selection is the same as the redirect address of the prior redirect entry selection (decision 680). If the redirect addresses are the same, decision 680 branches to “Yes” branch 682 which loops back to write the current redirect entry information to message 655 which includes the corresponding redirect address. Using the example described above, the second redirect request addressed to “JohnDoe@email.com” is written to message 655 at this time.
On the other hand, if the current redirect address is different than the prior redirect address, decision 680 branches to “No” branch 684 whereupon processing closes and sends message 655 to the corresponding redirect address (step 685). Using the example described above, a message that includes five redirect entries is sent to “JohnDoe@email.com”. Processing loops back to create a new message with the new redirect address (step 650) and process the redirect entries corresponding to the next redirect address.
When there are no more entries to process in sorted temporary store 640, decision 670 branches to “No” branch 672 whereupon the current message being processed is closed and sent to the corresponding redirect address (step 690). Temporary store 610 and sorted temporary store 640 are erased at 695, and processing ends at 699.
When the timer interval expires, processing acquires write lock 715 corresponding to redirect data store 725 (step 710). Write lock 715 is acquired to prevent other gateway processing threads from accessing redirect data store 725 while redirect entries in redirect data store 725 are sorted and stored in sorted data store 730 (step 720).
The redirect entries may be sorted in alphabetical order based upon corresponding redirect addresses. Redirect data store 725 and sorted data store 730 may be stored in a non-volatile storage area, such as a computer hard drive.
After the redirect entries are sorted and stored in sorted data store 730, the redirect entries are purged from redirect data store 725 (step 735) and write lock 715 is released (step 740).
The redirect entries are now sorted based upon redirect address in sorted data store 730. The first redirect address is selected from sorted data store 730 at step 745. For example, the first redirect address may be “JohnDoe@email.com”. Processing creates message 755 addressed to the corresponding redirect address at step 750. Using the example described above, message 755 is addressed to “JohnDoe@email.com”. The first redirect entry information corresponding to the redirect address is written to message 755 at step 760. The redirect information includes the requestor's ID (i.e. phone number or name), the redirected URL, and optional text describing the redirected URL.
A determination is made as to whether there are more entries in sorted data store 730 (decision 770). If there are more entries in sorted data store 730, decision 770 branches to “Yes” branch 774 whereupon the next entry in sorted data store 730 is selected at step 775. A determination is made as to whether the redirect address of the current redirect entry selection is the same as the redirect address of the prior redirect entry selection (decision 780). If the redirect addresses are the same, decision 780 branches to “Yes” branch 782 which loops back to write the current redirect entry information to message 755 which includes the corresponding redirect address. Using the example described above, the second redirect request addressed to “JohnDoe@email.com” is written to message 755 at this time.
On the other hand, if the current redirect address is different than the prior redirect address, decision 780 branches to “No” branch 784 whereupon processing closes and sends message 755 to the corresponding redirect address (step 785). Using the example described above, a message that includes five redirect entries is sent to “JohnDoe@email.com”. Processing loops back to create a new message with the new redirect address (step 750) and process the redirect entries corresponding to the new redirect address.
When there are no more entries to process in sorted data store 730, decision 770 branches to “No” branch 772 whereupon the current message being processed is closed and sent to the corresponding redirect address (step 790). Sorted data store 730 is erased at 795, and processing ends at 799.
BIOS 880 is coupled to ISA bus 840, and incorporates the necessary processor executable code for a variety of low-level system functions and system boot functions. BIOS 880 can be stored in any computer readable medium, including magnetic storage media, optical storage media, flash memory, random access memory, read only memory, and communications media conveying signals encoding the instructions (e.g., signals from a network). In order to attach computer system 801 to another computer system to copy files over a network, LAN card 830 is coupled to PCI bus 825 and to PCI-to-ISA bridge 835. Similarly, to connect computer system 801 to an ISP to connect to the Internet using a telephone line connection, modem 875 is connected to serial port 864 and PCI-to-ISA Bridge 835.
While the computer system described in
One of the preferred implementations of the invention is an application, namely, a set of instructions (program code) in a code module which may, for example, be resident in the random access memory of the computer. Until required by the computer, the set of instructions may be stored in another computer memory, for example, on a hard disk drive, or in removable storage such as an optical disk (for eventual use in a CD ROM) or floppy disk (for eventual use in a floppy disk drive), or downloaded via the Internet or other computer network. Thus, the present invention may be implemented as a computer program product for use in a computer. In addition, although the various methods described are conveniently implemented in a general purpose computer selectively activated or reconfigured by software, one of ordinary skill in the art would also recognize that such methods may be carried out in hardware, in firmware, or in more specialized apparatus constructed to perform the required method steps.
While particular embodiments of the present invention have been shown and described, it will be obvious to those skilled in the art that, based upon the teachings herein, changes and modifications may be made without departing from this invention and its broader aspects and, therefore, the appended claims are to encompass within their scope all such changes and modifications as are within the true spirit and scope of this invention. Furthermore, it is to be understood that the invention is solely defined by the appended claims. It will be understood by those with skill in the art that if a specific number of an introduced claim element is intended, such intent will be explicitly recited in the claim, and in the absence of such recitation no such limitation is present. For a non-limiting example, as an aid to understanding, the following appended claims contain usage of the introductory phrases “at least one” and “one or more” to introduce claim elements. However, the use of such phrases should not be construed to imply that the introduction of a claim element by the indefinite articles “a” or “an” limits any particular claim containing such introduced claim element to inventions containing only one such element, even when the same claim includes the introductory phrases “one or more” or “at least one” and indefinite articles such as “a” or “an”; the same holds true for the use in the claims of definite articles.
Number | Name | Date | Kind |
---|---|---|---|
4058838 | Crager et al. | Nov 1977 | A |
5812930 | Zavrel | Sep 1998 | A |
5918239 | Allen et al. | Jun 1999 | A |
6073142 | Geiger et al. | Jun 2000 | A |
6076734 | Dougherty et al. | Jun 2000 | A |
6088127 | Pieterse | Jul 2000 | A |
6164541 | Dougherty et al. | Dec 2000 | A |
6289346 | Milewski et al. | Sep 2001 | B1 |
6311180 | Fogarty | Oct 2001 | B1 |
6499055 | Yamaguchi | Dec 2002 | B1 |
6941349 | Godfrey et al. | Sep 2005 | B1 |
6965926 | Shapiro et al. | Nov 2005 | B1 |
20010005864 | Mousseau et al. | Jun 2001 | A1 |
20010021649 | Kinnunen et al. | Sep 2001 | A1 |
20010035976 | Poon | Nov 2001 | A1 |
20010044808 | Milewski et al. | Nov 2001 | A1 |
20010054115 | Ferguson et al. | Dec 2001 | A1 |
20020138581 | MacIntosh et al. | Sep 2002 | A1 |
20020188689 | Michael | Dec 2002 | A1 |
20030093483 | Allen et al. | May 2003 | A1 |
20040005040 | Owens et al. | Jan 2004 | A1 |
20040199657 | Eyal et al. | Oct 2004 | A1 |
20050028195 | Feinleib et al. | Feb 2005 | A1 |
20050055627 | Lloyd et al. | Mar 2005 | A1 |
20050120305 | Engstrom et al. | Jun 2005 | A1 |
Number | Date | Country |
---|---|---|
1061440 | Dec 2000 | EP |
Number | Date | Country | |
---|---|---|---|
20030185197 A1 | Oct 2003 | US |