Disclosed herein are methods and systems for displaying alerts in a web browser. An alert repeater is configured to receive an alert from an alert provider. A geographical determiner is configured to determine an effective geographical area for the alert. The alert repeater sends the alert over a browser update communication channel to an alert receiver in a web browser within effective geographical area. The alert receiver then displays the alert in the web browser.
|
20. A method of sending alerts in a web browser comprising:
receiving an alert in an alert repeater from an alert provider;
determining an effective geographical area for the alert; and
sending the alert using a browser update communication channel to an alert receiver within the effective geographical area for the alert, wherein the browser update communication channel comprises a dedicated communication channel configured for providing updates to the web browser, and wherein the alert receiver has been installed without any user interaction in the web browser.
12. A method of receiving alerts in a web browser comprising:
receiving an alert in an alert receiver from an alert repeater, wherein:
the alert is received from the alert repeater over a browser update communication channel, wherein the browser update communication channel comprises a dedicated communication channel configured for providing updates to the web browser,
the alert receiver is within an effective geographical area of the alert, and
the alert receiver has been installed without any user interaction in the web browser; and
displaying the alert in the web browser.
1. A system of alerting comprising:
an alert repeater, configured to:
receive an alert over a communication channel from an alert provider, and
send the alert to an alert receiver over a browser update communication channel, wherein the browser update communication channel comprises a dedicated communication channel configured for providing updates to a web browser, and wherein the alert receiver has been installed in the web browser without any user interaction and the alert receiver is configured to display the alert in the web browser; and
a geographical determiner configured to:
determine an effective geographical area for the alert, and
limit the alert to the effective geographical area, wherein the alert is only sent to an alert receiver located in the effective geographical area.
2. The system of
3. The system of
5. The system of
8. The system of
9. The system of
10. The system of
11. The system of
15. The method of
16. The method of
17. The method of
receiving an alert via a service executing externally to the web browser.
18. The method of
restoring the web browser window if an alert is received by the alert receiver while the web browser window is minimized.
19. The method of
opening the web browser if an alert is received by the service while the web browser is closed.
21. The method of
determining an effective geographical area for the alert based upon IP geolocation.
22. The method of
determining an effective geographical area for the alert based upon a location entered by a user.
25. The method of
26. The method of
|
1. Field
Embodiments relate to alerting systems.
2. Background
Alerts, and in particular, time-critical alerts, often are needed to be delivered to a user in a manner that garners the user's attention and communicates the critical information in the most efficient manner possible. However, many alert systems are not effective in providing information to a large number of people, because they are either outdated or require additional effort on the part of those people. For example, the Emergency Broadcasting System requires that a person have a radio or television on to receive the alert. Other alert systems, such as text messaging alerts, require a person to specifically sign up (and often pay for) the alert service.
Embodiments include methods and systems for displaying alerts in web browsers. In an embodiment, an alert is received over a communication channel from an alert provider, and sent to an alert receiver over a browser update communication channel, wherein the alert receiver has been installed in a web browser without any user interaction and the alert receiver is configured to display the alert in the web browser. A geographical determiner is configured to determine an effective geographical area for the alert, and limit the alert to the effective geographical area, wherein the alert is only sent to an alert receiver located in the effective geographical area.
Further embodiments, features, and advantages of the invention, as well as the structure and operation of the various embodiments of the invention are described in detail below with reference to accompanying drawings.
Embodiments of the invention are described with reference to the accompanying drawings. In the drawings, like reference numbers may indicate identical or functionally similar elements. The drawing in which an element first appears is generally indicated by the left-most digit in the corresponding reference number.
While the present invention is described herein with reference to the illustrative embodiments for particular applications, it should be understood that the invention is not limited thereto. Those skilled in the art with access to the teachings provided herein will recognize additional modifications, applications, and embodiments within the scope thereof and additional fields in which the invention would be of significant utility.
In the detailed description of embodiments that follows, references to “one embodiment”, “an embodiment”, “an example embodiment”, etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to effect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
Alert provider 108 may be configured to create and send alert 116 to server device 102. Alert 116 may relate to a time-sensitive event that has occurred or is about to occur. For example, alert 116 may relate to a natural disaster, national security event, or another important event. Alert 116 may originate from any type of organization and may be related to any type of information that may need to be displayed to a user as an alert. However, according to an embodiment, alert 116 originates from a governmental entity. In particular, alert provider 108 may be located within the organization responsible for alerting. For example, alert provider 108 may be located within the governmental entity. Alert provider 108 may then be configured to send alert 116 when the organization deems it appropriate, over a network 118 to server device 102. Network 118 may be a wide area network (WAN), a local area network (LAN), or a combination of both. Alert provider 108 may communicate using a known alerting protocol format, for example, common alerting protocol (CAP). However, alert provider 108 may communicate using other messaging formats as well, including XML.
Alert provider 108 may also be configured to retrieve alert information from an organization, such as a government agency, and create alert 116 based upon the retrieved information. In such a case, alert provider 108 may be located outside of the organization or even within server device 102. For example, alert provider 108 may be configured to subscribe to an organization's real simple syndication (RSS) feed or may be configured to scrape information from a website. Alert provider 108 may then use the information retrieved using RSS or scraping to form and send alert 116. However, alert provider 108 may also manually communicate alert 116 to server device 102. For example, alert provider 108 may be a person or automated means that notifies another who is in control of server device 102 to send out alert 116. This notification may occur, for example, via telephone, email, or other means.
Server device 102 also includes an alert repeater 110. Alert repeater 110 may be configured to receive alert 116 from alert provider 108 and send alert 116 over a browser update communication channel 114 to web browser 104. However, in some cases alert 116 may not be in a format which is compatible with browser update communication channel 114. In such cases, alert repeater 110 may convert alert 116 into a format that can be sent over browser update communication channel 114. In particular, when alert 116 is sent over browser update communication channel 114, alert 116 may include text that is displayed to the user. Additionally alert 116 may also include any combination of a web link for more information about the alert, information related to the severity of the alert, or an expiration time for the alert.
Browser update communication channel 114 is a dedicated communication channel that is responsible for sending browser software updates to web browser 104. In particular, browser update communication channel 114 may use a protocol that is responsible for managing the sending and receiving of updates to web browser 104. For example, browser update communication channel 114 may allow for messages, in the form of eXtensible Markup Language (XML), to be sent between web browser 104 and server device 102. Browser update communication channel 114 may also support sending binary data. For example, browser updates may include software binaries that update web browser 104. However, because browser update communication channel 114 communicates updates to web browser 104, browser update communication channel 114 is secure and robust. For example, because the software updates that browser update communication channel 114 may communicate to web browser 104 update the software code of web browser 114, access may be controlled to browser update communication channel 114. In particular, only trusted sources may use browser update communication channel 114. For example, the developer or manufacturer of web browser 104 may have access to browser update communication channel 114 in order to provide updates to web browser 104. As a result, malicious updates or messaging may be avoided, as only trusted sources are permitted to have access to send updates or messages over browser update communication channel 114. Additionally, browser update communication channel 114 may be encrypted. For example, browser update communication channel 114 may use secure socket link (SSL) for encryption. Browser update communication channel 114 may also be configured to provide corresponding hashes to messages and updates, such that web browser 104 may be able to authenticate the identity of service device 102 using public/private key encryption. Browser update communication channel 114 may also have a very robust and a strong infrastructure with high availability as browser update communication channel 114 may be responsible for communications with millions of web browsers across many different time zones.
Browser update communication channel 114 may run over a network 120. Network 120 may be a WAN, LAN, or a combination of both. Browser update communication channel 114 may be configured to use peer-to-peer or direct communications. Browser update communication channel 114 may also be configured to allow for alert 116 to be sent. For example, the communication protocol of browser update communication channel 114 may have the capability of sending alerts from trusted sources. In particular, browser update communication channel 114 may be able to communicate alerts having text that is displayed to the user. Additionally, browser update communication channel 114 may be able to communicate any combination of a web link for more information about the alert, information related to the severity of the alert, or an expiration time for the alert. However, as discussed above, alert 116 may need to be converted to be able to be communicated using the protocol of browser update communication channel 114.
Web browser 104 may receive alert 116 in alert receiver 106 and then display the contents of alert 116 in the web browser. For example, web browser 104 may display the text of alert 116 in a status bar. The color of the status bar displayed in web browser 104 may change based upon the severity level. For example, for very severe alerts the color of the status bar may be red. Additionally, the status bar may display a hyperlink from the web link in alert 116.
Because browser update channel 114 is a dedicated communication link between web browser 104 and server device 102, channel 114 does not have to be actively maintained or managed by a user. Alert receiver 106 may be enabled in web browser 104 by default. Accordingly, the user may not have to enter any information, perform an action, or install alert receiver 106 for alert receiver 106 to receive alert 116 in web browser 104. Alert receiver 106 may also be configured to run natively within web browser 104, instead of, for example as a plugin.
Web browser 104 may communicate with server device 102 over browser update communication channel 114 using a polling method of communication, according to an embodiment. In particular, alert receiver 106 may be configured to check server device 102 at regular intervals over browser update communication channel 114 for any available alerts. For example, alert receiver 106 may be configured to check server device 102 every five minutes to determine whether server device 102, and in particular alert repeater 110, has created alert 116. Accordingly, alert receiver 106 may send a message over browser update communication channel 114 that asks server device 102 whether there is an outstanding alert. If there is an alert, server device 102 may respond with the alert message, such as alert 116. Alternatively, server device 102 may respond with a message communicating an alert is available, and alert receiver 106 may then send a message asking for the alert. Then, server device 102 may respond by sending the alert, for example alert 116.
According to an embodiment, instead of web browser 104 itself polling server device 102, another service, external to web browser 104 and in communication with web browser 104, may poll server device 102. For example, the computing device on which web browser 104 runs may be configured to run another service or program that may be always running and that is responsible for polling server device 102. In such a case, if the service determines that alert 116 is available, the service may then communicate alert 116 to alert receiver 106, which in turn may cause the contents of alert 116 to display in web browser 104.
Server device 102 may also push alert 116 to web browser 104, according to an embodiment. In particular, alert receiver 106, upon the initialization of web browser 104, may establish a constant communication socket with server device 102 using browser update communication channel 114. Thus, server device 102 may be able to communicate alerts, such as alert 116, to alert receiver 106 over the communication socket in real-time. Alternatively, according to an embodiment, a service may instead be responsible for establishing the socket with server device 102. If alert 116 is pushed over browser update communication channel 114 through the socket, the service may in turn communicate alert 116 to alert receiver 106. However, the exact implementation of the messaging protocol that web browser 104, alert receiver 106, and server device 102 may use, over browser update communication channel 114, may depend on the specific protocol that browser update communication channel 114 implements, and may also depend on the capabilities and features of web browser 104. A person having skill in the art would be able to adapt the methods and systems disclosed herein to any type of browser update communication channel and any type of web browser.
Server device 102 also includes a geographical determiner 112. Geographical determiner 112 may be configured to limit alert 116 to its affected geographical area. For example, server device 102 may communicate with more than one web browser located in different geographical areas. In some cases, alert 116 may only be useful to a finite geographical area, such as in the case of some natural disasters or weather events. Accordingly, in some cases, alert 116 may also contain location information related to alert's 116 affected areas, such as one or more ZIP codes, states, countries, or other regional information. In such a case, geographical determiner 112 may be configured to limit the recipients of alert 116, such that alert 116 is only sent to web browsers located in the affected area. In particular, geographical determiner 112 may use IP geolocation to determine the approximate location of web browser 104. IP geolocation is a technique where a location is determined based upon a computer's IP address. For example, based upon the IP address that web browser 104 uses to communicate with server device 102, geographical determiner 112 may use IP geolocation to determine an approximate location of web browser 104. If the location is within the affected area, then alert 116 may be sent to web browser 104.
Web browser 104 may also be configured to send its location based upon data entered through the browser's configuration settings. Accordingly, geographical determiner 112 may be configured to use IP geolocation, manually-entered information, or both. For example, the browser may have configuration settings that permit the user to enter location information such as a ZIP code, a telephone area code, or other information that may help identify the location of web browser 104. The location information may then be transmitted to server device 102, and in particular geographical determiner 112, such that geographical determiner may be able to determine the location of web browser 104. In such a case, geographical determiner 112 may use IP geolocation by default, unless geographical determiner 112 receives more specific location information from web browser 104. If the location is within the affected area, then alert 116 may be sent to web browser 104.
In some cases, while a user is using other applications, web browser 104 may not be active on the user's computing device. For example, a window of web browser 104 may be minimized. In such cases, when alert receiver 106 receives an alert, alert receiver 104 may cause the window of web browser 104 to be restored such that the user may see the alert. In other cases, web browser 104 may not even be opened when an alert is available. However, according to an embodiment, another service, external to web browser 104, may be responsible for receiving alert 116. In such a case, the service may be configured to open web browser 104, if it is closed, and then display the contents of alert 116.
At block 220, an effective geographical area is determined for the alert. In some cases, the alert may only be useful to a defined geographical area. In such cases, the alert may contain information specifying an affected area. For example, the alert may be related to a weather event or natural disaster confined to a certain geographical area. Accordingly, the alert may only be sent to web browsers within the effective geographical area. However, the location of the web browser to which the alert is going to be sent may first need to be determined. For example, a geographical determiner, such as geographical determiner 112, may determine a web browsers location based upon IP geolocation or from information the browser communicated, such as a ZIP code, area code, or other location information. If the web browsers location is determined to be within the affected area, then the alert repeater may send the alert to the web browser.
At block 230, the alert is sent using a browser update communication channel to an alert receiver within the effective geographical area for the alert, wherein the alert receiver has been installed without any user interaction in the web browser. For example, the alert receiver may be installed with the web browser during the installation of the web browser. This may permit the alert receiver to begin receiving alerts without the user performing any extra actions such as filling in information. The alert receiver may also be native to the browser, for example not installed as a plugin. Additionally, the alert receiver may receive the alert using a polling or a push method of communication.
The browser update communication channel may be a communication channel that is responsible for alerting a web browser that a browser software update is available and sending the update to the web browser. The browser update communication channel may run over a network such as a wide area network (WAN), a local area network (LAN), or a combination of both. The browser update communication channel may also be configured to incorporate messaging related to the alert. For example, the browser update communication channel may allow for an alert message to be sent using its communication protocol. The message may include text related to the alert that may be displayed in the browser and a web link for more information. The message additionally may include information related to the severity of the alert and an expiration time for the alert.
If an alert receiver is located within the effective geographical area of the alert, the alert may be sent over the browser update communication channel to that alert receiver. For example, alert 116 may be sent from alert repeater 110 to alert receiver 106. In some cases, the alert received from the alert provider in the alert receiver may be in a different format then what may be required over the browser update communication channel. The alert repeater may be configured to convert the alert into a format that may be sent using the browser update communication channel. For example, the browser update communication channel may not be able to support the CAP format, which is a common format for alerts. However, the alert repeater may receive an alert in CAP format. In such a case, the alert repeater may be configured to decode the alert in CAP format and convert the alert into a message that may be sent over the browser update communication channel.
At block 320, the alert is displayed in the web browser. The alert may be displayed in a number of ways in the web browser. In an embodiment, the alert may be displayed as a status bar below the address bar in a web browser. If the web browser is minimized because, for example, a user is working in another application, the browser may automatically be restored, such that the user may see the alert. Furthermore, according to an embodiment, if the web browser is closed, the web browser may be automatically opened to display the alert. The alert may also change colors depending on the severity level of the alert. For example, in the case of a severe alert, the alert may appear red, while a less severe alert may appear yellow, or a different color. The alert may also contain a selectable link that may open up a webpage displaying further information regarding the alert to the user. For example, the link may reference information on a government website discussing specific details related to the alert or information relating to preparedness for the alert.
One of ordinary skill in the art may appreciate that embodiments of the disclosed subject matter can be practiced with various computer system configurations, including multi-core multiprocessor systems, minicomputers, mainframe computers, computers linked or clustered with distributed functions, as well as pervasive or miniature computers that may be embedded into virtually any device.
For instance, a computing device having at least one processor device and a memory may be used to implement the above-described embodiments. A processor device may be a single processor, a plurality of processors, or combinations thereof. Processor devices may have one or more processor “cores.”
Various embodiments of the invention are described in terms of this example computer system 500. After reading this description, it will become apparent to a person skilled in the relevant art how to implement embodiments using other computer systems and/or computer architectures. Although operations may be described as a sequential process, some of the operations may in fact be perforated in parallel, concurrently, and/or in a distributed environment, and with program code stored locally or remotely for access by single or multi-processor machines. In addition, in some embodiments the order of operations may be rearranged without departing from the spirit of the disclosed subject matter.
As will be appreciated by persons skilled in the relevant art, processor device 504 may also be a single processor in a multi-core/multiprocessor system, such system operating alone, or in a cluster of computing devices operating in a cluster or server farm. Processor device 504 is connected to a communication infrastructure 506, for example, a bus, message queue, network, or multi-core message-passing scheme.
Computer system 500 also includes a main memory 508, for example, random access memory (RAM), and may also include a secondary memory 510. Secondary memory 510 may include, for example, a hard disk drive 512 and removable storage drive 514. Removable storage drive 514 may include a floppy disk drive, a magnetic tape drive, an optical disk drive, a flash memory, or the like. The removable storage drive 514 reads from and/or writes to a removable storage unit 518 in a well-known manner. Removable storage unit 518 may include a floppy disk, magnetic tape, optical disk, etc. which is read by and written to by removable storage drive 514. As will be appreciated by persons skilled in the relevant art, removable storage unit 518 includes a computer readable storage medium having stored thereon computer software and/or data.
Computer system 500 (optionally) includes a display interface 502 (which can include input and output devices such as keyboards, mice, etc.) that forwards graphics, text, and other data from communication infrastructure 506 (or from a frame buffer not shown) for display on display unit 530.
In alternative implementations, secondary memory 510 may include other similar means for allowing computer programs or other instructions to be loaded into computer system 500. Such means may include, for example, a removable storage unit 522 and an interface 520. Examples of such means may include a program cartridge and cartridge interface (such as that found in video game devices), a removable memory chip (such as an EPROM, or PROM) and associated socket, and other removable storage units 522 and interfaces 520 which allow software and data to be transferred from the removable storage unit 522 to computer system 500.
Computer system 500 may also include a communications interface 524. Communications interface 524 allows software and data to be transferred between computer system 500 and external devices. Communications interface 524 may include a modem, a network interface (such as an Ethernet card), a communications port, a PCMCIA slot and card, or the like. Software and data transferred via communications interface 524 may be in the form of signals, which may be electronic, electromagnetic, optical, or other signals capable of being received by communications interface 524. These signals may be provided to communications interface 524 via a communications path 526. Communications path 526 carries signals and may be implemented using wire or cable, fiber optics, a phone line, a cellular phone link, an RF link or other communications channels.
Some embodiments may be directed to computer products comprising software stored on any computer readable storage medium. Such software, when executed in one or more data processing devices, causes a data processing device(s) to operate as described herein.
Certain embodiments may be implemented in hardware, software, firmware, or a combination thereof. Some embodiments may be implemented via a set of programs running in parallel on multiple machines.
The summary and abstract sections may set forth one or more but not all exemplary embodiments of the present invention as contemplated by the inventor(s), and thus, are not intended to limit the present invention and the appended claims in any way.
Embodiments of the present invention have been described above with the aid of functional building blocks illustrating the implementation of specified functions and relationships thereof. The boundaries of these functional building blocks have been arbitrarily defined herein for the convenience of the description. Alternate boundaries can be defined so long as the specified functions and relationships thereof are appropriately performed.
The foregoing description of the specific embodiments will so fully reveal the general nature of the invention that others can, by applying knowledge within the skill of the art, readily modify and/or adapt for various applications such specific embodiments, without undue experimentation, without departing from the general concept of the present invention. Therefore, such adaptations and modifications are intended to be within the meaning and range of equivalents of the disclosed embodiments, based on the teaching and guidance presented herein. It is to be understood that the phraseology or terminology herein is for the purpose of description and not of limitation, such that the terminology or phraseology of the present specification is to be interpreted by the skilled artisan in light of the teachings and guidance.
The breadth and scope of the present invention should not be limited by any of the above-described exemplary embodiments.
Marra, Gregory Matthew, Wiltzius, Thomas Christian, Cushing, Kathryn, Wald, Gideon
Patent | Priority | Assignee | Title |
10103934, | May 23 2011 | Apple Inc. | Setting a reminder that is triggered by a target user device |
10375519, | May 23 2011 | Apple Inc. | Identifying and locating users on a mobile network |
10375526, | Jan 29 2013 | Apple Inc. | Sharing location information among devices |
10382378, | May 31 2014 | Apple Inc | Live location sharing |
10382895, | May 23 2011 | Apple Inc. | Identifying and locating users on a mobile network |
10715380, | May 23 2011 | Apple Inc. | Setting a reminder that is triggered by a target user device |
10863307, | May 23 2011 | Apple Inc. | Identifying and locating users on a mobile network |
11665505, | May 23 2011 | Apple Inc. | Identifying and locating users on a mobile network |
11700168, | May 23 2011 | Apple Inc. | Setting a reminder that is triggered by a target user device |
11943191, | May 31 2014 | Apple Inc. | Live location sharing |
Patent | Priority | Assignee | Title |
6721805, | Nov 12 1998 | International Business Machines Corporation | Providing shared-medium multiple access capability in point-to-point communications |
6778834, | Feb 27 2001 | Nokia Technologies Oy | Push content filtering |
7752259, | Feb 13 2004 | ENVISIONIT LLC | Public service message broadcasting system and method |
7814145, | Aug 24 2006 | EARTH NETWORKS, INC | System, method, apparatus, and computer media for distributing targeted alerts |
8026806, | Dec 09 2005 | Time Warner Cable Enterprises LLC | Emergency alert data delivery apparatus and methods |
8073903, | Feb 13 2004 | EnvisionIT, LLC | Message alert broadcast broker system and method |
20090309742, | |||
20120295570, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Feb 10 2012 | MARRA, GREGORY MATTHEW | Google Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 027748 | /0699 | |
Feb 13 2012 | CUSHING, KATHRYN | Google Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 027748 | /0699 | |
Feb 14 2012 | WILTZIUS, THOMAS CHRISTIAN | Google Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 027748 | /0699 | |
Feb 15 2012 | WALD, GIDEON | Google Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 027748 | /0699 | |
Feb 17 2012 | Google Inc. | (assignment on the face of the patent) | / | |||
Sep 29 2017 | Google Inc | GOOGLE LLC | CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 044277 | /0001 |
Date | Maintenance Fee Events |
Jan 22 2018 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Mar 14 2022 | REM: Maintenance Fee Reminder Mailed. |
Aug 29 2022 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Jul 22 2017 | 4 years fee payment window open |
Jan 22 2018 | 6 months grace period start (w surcharge) |
Jul 22 2018 | patent expiry (for year 4) |
Jul 22 2020 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jul 22 2021 | 8 years fee payment window open |
Jan 22 2022 | 6 months grace period start (w surcharge) |
Jul 22 2022 | patent expiry (for year 8) |
Jul 22 2024 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jul 22 2025 | 12 years fee payment window open |
Jan 22 2026 | 6 months grace period start (w surcharge) |
Jul 22 2026 | patent expiry (for year 12) |
Jul 22 2028 | 2 years to revive unintentionally abandoned end. (for year 12) |