Web based client/server notification engine
Claim Score by NHIP
Abstract
Various technologies and techniques improve the updating of client content in a client/server arrangement. A client notification engine of a user interface subscribes to receive notifications from a central server side notification engine. The client notification engine polls the server side notification engine at a specified interval. The server side notification engine receives and aggregates notifications about and/or from one or more sources and aggregates them into a collection of relevant notifications. These notifications are sent to the client where the different subscriptions originated and are then used by the user interface in the client to update part of the content being displayed as appropriate.

Term
0.3 yearsto projected expiry
Projected expiry 3 January 2027, counted from filing; an application has no term until it is granted.
- Priority and filed
- Published
- Today
- Projected expiry
20 claims: 3 independent, 17 dependent
- 1Broadest claimClaim Score 53, average(NHIP)A method for improving client-side content updates comprising the steps of:receiving a request from a user interface to access a communications application that allows a user to manage information retrieved from at least one data store located on a separate computer;sending a request to a central notification engine to register for a plurality of notifications, the notifications including a plurality of information updates that the communications application wishes to receive;at a particular time interval, sending a polling request to the central notification engine to determine whether at least a portion of content in the at least one data store has changed for the requested notifications;receiving a notification response from the central notification engine, the notification response including updated information retrieved by the central notification engine from the at least one data store;and updating the user interface based on the notification response.
- 10A computer-readable medium having computer-executable instructions for causing a computer to perform steps comprising:receiving a request from a client application to register for a plurality of notifications;creating a condition advisor for at least a first folder in a particular set of folders, the condition advisor being operable to track a modified status for the first folder;creating an item count advisor for at least a second folder in the particular set of folders, the item count advisor being operable to track a count associated with one or more items in the second folder;creating an event queue for new notifications for at least a third folder in the particular set of folders, the event queue being operable to store at least a portion of information about new notifications that are received;communicating with at least one data store at specified data gathering time intervals to update the condition advisor, item count advisor, and event queue as a set of data in the data store changes;receiving a polling request from the client application after a specified polling interval passes;checking at least the condition advisor and item count advisor to determine whether there are one or more notifications to report to the client application;generating a notification response that includes at least a portion of the information in the condition advisor, item count advisor, and event queue;and transmitting the notification response to the client application.
- 19A system for facilitating content updates in an application comprising:a server, the server being operable to communicate with a client over a network;the server being further operable to communicate with at least one data store over a network;and wherein the server provides a central notification engine service, the central notification engine service being operable to perform a set of operations comprising the steps of: receiving a request from a client application located on the client to register for a plurality of notifications;creating an advisor indicator for each of a plurality of folders, the advisor indicator being operable to track whether a particular set of data in the data store has changed;communicating with at least one data store at specified data gathering time intervals to update the advisor indicator for each of the folders as a set of data in the data store changes;receiving a polling request from the client application after a specified polling interval passes;checking the advisor indicator for each of the folders to determine whether there are one or more notifications to report to the client application;and reporting the one or more notifications to the client application in a response.
Independent claims3
47 paragraphs in 4 sections, as filed
BACKGROUND
0001In today's world of technology, it has become easier than ever before to communicate with people using one or more of a variety of communication methods, such as email, telephone, fax, instant messaging, and so on. Communication and personal organizer programs typically have the ability to display messages received from one or more of these various sources. Some communication programs operate in a web browser, such as MICROSOFT® Office OUTLOOK® Web Access (OWA), Yahoo Mail, AOL Mail, and others. With such disconnected applications, the server is not contacted until something is needed, such as when the user performs an action that requires the page to be updated or changed. When new communication messages are received on the server, the client is not updated with the new content until the user selects an option to perform a manual refresh of the page's contents, or until the user otherwise takes some action causing the client to request that the server provide such updated information.
SUMMARY
0002Various technologies and techniques are disclosed that improve the updating of client content in a client/server arrangement. A client notification engine of a user interface, such as a communication management or email application, subscribes to receive notifications from a server side notification engine. The client polls the server side notification engine at specified intervals. The server side notification engine receives and aggregates notifications about and/or from one or more sources and aggregates them into a collection of relevant notifications at a specified interval. These notifications are sent to the client where the different subscriptions originated and are then used by the user interface in the client to update part of the content being displayed as appropriate. In one implementation, a status bar is updated to indicate that new communications have been received, such as a new email, a new fax, and/or a new voice mail. Alternatively or additionally, a folder list is updated to display updated totals, such as the number of unread messages in each folder or the number of total items in each folder. Alternatively or additionally, the contents of the folder that the user is currently viewing are updated if they changed.
0003This Summary was provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
BRIEF DESCRIPTION OF THE DRAWINGS
0004<figref idref="DRAWINGS">FIG. 1</figref> is a diagrammatic view of parts of a system of one implementation.
0005<figref idref="DRAWINGS">FIG. 2</figref> is a diagrammatic view of additional parts of the system of <figref idref="DRAWINGS">FIG. 1</figref> of one implementation.
0006<figref idref="DRAWINGS">FIG. 3</figref> is a high level process flow diagram for one implementation of the system of <figref idref="DRAWINGS">FIG. 1</figref>.
0007<figref idref="DRAWINGS">FIG. 4</figref> is a logical diagram for one implementation of the system of FIG.<b>1</b> illustrating the communications between the client side notification engine and the front end server notification engine for subscribing to and managing notifications.
0008<figref idref="DRAWINGS">FIG. 5</figref> is a process flow diagram for one implementation of the system of FIG.<b>1</b> illustrating the stages involved in registering for notifications, collecting notification responses, and processing the response received.
0009<figref idref="DRAWINGS">FIG. 6</figref> is a simulated screen for one implementation of the system for <figref idref="DRAWINGS">FIG. 1</figref> which illustrates allowing a user to specify messaging notification options.
0010<figref idref="DRAWINGS">FIG. 7</figref> is a simulated screen for one implementation of the system for <figref idref="DRAWINGS">FIG. 1</figref> which illustrates allowing a user to specify reminder notification options.
0011<figref idref="DRAWINGS">FIG. 8</figref> is a simulated screen for one implementation of the system for <figref idref="DRAWINGS">FIG. 1</figref> which illustrates an email application with unread totals that were updated based on the subscription process of <figref idref="DRAWINGS">FIGS. 4 and 5</figref>.
0012<figref idref="DRAWINGS">FIG. 9</figref> is a simulated screen for one implementation of the system for <figref idref="DRAWINGS">FIG. 1</figref> which illustrates an email application with a status bar that was updated based on the subscription process of <figref idref="DRAWINGS">FIGS. 4 and 5</figref>.
0013<figref idref="DRAWINGS">FIG. 10</figref> is a simulated screen for one implementation of the system for <figref idref="DRAWINGS">FIG. 1</figref> which illustrates the new email message that was received when the user selects the New Mail option on the status bar of the simulated screen of <figref idref="DRAWINGS">FIG. 9</figref>.
0014<figref idref="DRAWINGS">FIG. 11</figref> is a simulated screen for one implementation of the system for <figref idref="DRAWINGS">FIG. 1</figref> which illustrates the new voice mail message that was received when the user selects the New Voice Mail option on the status bar of the simulated screen of <figref idref="DRAWINGS">FIG. 9</figref>.
0015<figref idref="DRAWINGS">FIG. 12</figref> is a simulated screen for one implementation of the system for <figref idref="DRAWINGS">FIG. 1</figref> which illustrates the new fax message that was received when the user selects the New Fax option on the status bar of the simulated screen of <figref idref="DRAWINGS">FIG. 9</figref>.
0016<figref idref="DRAWINGS">FIG. 13</figref> is a simulated screen for one implementation of the system for <figref idref="DRAWINGS">FIG. 1</figref> which illustrates the new calendar reminder that was received when the user selects the Reminders option on the status bar of the simulated screen of <figref idref="DRAWINGS">FIG. 9</figref>.
DETAILED DESCRIPTION
0017For the purposes of promoting an understanding of the principles of the invention, reference will now be made to the embodiments illustrated in the drawings and specific language will be used to describe the same. It will nevertheless be understood that no limitation of the scope is thereby intended. Any alterations and further modifications in the described embodiments, and any further applications of the principles as described herein are contemplated as would normally occur to one skilled in the art.
0018The system may be described in the general context as a system that improves the updating of client content in a client/server arrangement. A client notification engine of a user interface subscribes to receive notifications from a server side notification engine. The client notification engine polls the server side notification engine at a specified interval. The server side notification engine receives and aggregates notifications about and/or from one or more sources and/or data stores and aggregates them into a collection of relevant notifications based on the context of the user. These notifications are sent to the client where the different subscriptions originated and are then used by the user interface in the client to update part of the content being displayed as appropriate. A status bar or other area is updated in the user interface to indicate that new communications have been received, such as a new email, a new fax, and/or a new voice mail. Alternatively or additionally, a folder list is updated to display updated totals, such as the number of unread messages in each folder or the number of total items in each folder. Alternatively or additionally, the contents of the folder that the user is currently viewing are updated if they changed.
0019The term folder as used herein is referring to any collection of messages, however they are stored and/or are represented in a graphical user interface. One of ordinary skill in the art will appreciate that some operating systems do not use the term folder when referring to a collection of messages, and that such scenarios are still covered by the examples illustrated herein that use the term folder.
0020In one implementation, the system is a web-based communication application such as MICROSOFT® Office OUTLOOK® Web Access (OWA), Yahoo Mail, or AOL Mail. In another implementation, the system is any type of communication application, web-based or not, that is not required to maintain a constant connection to one or more data stores, such as MICROSOFT® Office OUTLOOK® and/or other email clients that support POP3 and/or other disconnected message protocols. In yet another implementation, the system is not a communication application, but serves other purposes, such as project scheduling, travel planning, or others.
0021As shown in <figref idref="DRAWINGS">FIG. 1</figref>, an exemplary computer system to use for implementing one or more parts of the system includes one or more computing devices, such as computing devices <b>100</b>, <b>130</b>, and/or <b>150</b>. In its most basic configuration, computing devices <b>100</b>, <b>130</b>, and/or <b>150</b> typically include at least one processing unit (<b>102</b>, <b>132</b>, and <b>152</b>, respectively) and memory (<b>104</b>, <b>134</b>, and <b>154</b>, respectively). Depending on the exact configuration and type of computing device, memory (<b>104</b>, <b>134</b>, or <b>154</b>) may be volatile (such as RAM), non-volatile (such as ROM, flash memory, etc.) or some combination of the two. This most basic configuration is illustrated in <figref idref="DRAWINGS">FIG. 1</figref> by lines <b>106</b>, <b>136</b>, and <b>156</b>.
0022Additionally, devices <b>100</b>, <b>130</b>, and/or <b>150</b> may also have additional features/functionality. For example, devices <b>100</b>, <b>130</b>, and/or <b>150</b> may also include additional storage (removable and/or non-removable) including, but not limited to, magnetic or optical disks or tape. Such additional storage is illustrated in <figref idref="DRAWINGS">FIG. 1</figref> by removable storage (<b>108</b>, <b>138</b>, and <b>158</b>, respectively) and non-removable storage (<b>110</b>, <b>140</b>, and <b>160</b>, respectively). Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Memory (<b>104</b>, <b>134</b>, and <b>154</b>), removable storage (<b>108</b>, <b>138</b>, and <b>158</b>), and non-removable storage (<b>110</b>, <b>140</b>, and <b>160</b>) are all examples of computer storage media. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can accessed by device <b>100</b>, <b>130</b>, and/or <b>150</b>. Any such computer storage media may be part of device <b>100</b>, <b>130</b>, and/or <b>150</b>.
0023Computing devices <b>100</b>, <b>130</b>, and/or <b>150</b> include one or more communication connections that allow computing devices <b>100</b>, <b>130</b>, and/or <b>150</b> to communicate with each other and/or one or more other computing devices over network <b>116</b>. Communications connection(s) <b>114</b>, <b>144</b>, and <b>164</b> are examples of communication media. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. The term computer readable media as used herein includes both storage media and communication media.
0024In one implementation, computing device <b>100</b> is a client computer that communicates with front end server computer <b>130</b> using communication connection <b>114</b> and <b>144</b> over network <b>116</b>. In such an implementation, user interface <b>118</b> of client computing device <b>100</b> communicates with notification engine <b>148</b> on server computing device <b>130</b> to subscribe to notifications and receive updated information. Front end server computer <b>130</b> communicates with back end server computing device <b>150</b> by network <b>116</b> using communication connections <b>144</b> and <b>164</b>.
0025In one implementation, user interface <b>118</b> of client computing device <b>100</b> is a browser-based user interface, such as MICROSOFT® Office OUTLOOK® Web Access (OWA), server computing device <b>130</b> is a web server, and back end server computing device <b>150</b> hosts a data store for a communication program, such as MICROSOFT® Exchange. In another implementation, user interface <b>118</b> of client computing device <b>100</b> is a user interface included in an executable program located on client computing device <b>100</b>, such as MICROSOFT® Office OUTLOOK®, MICROSOFT® Project, or Lotus Notes. It will be appreciated that front end server computer <b>130</b> and back end server computing device <b>150</b> can be the same computer in alternate embodiments. Furthermore, it will be appreciated that additional back end server computing device <b>150</b> could also be used, such as where multiple data stores are accessed by front end server computing device <b>130</b>.
0026Computing devices <b>100</b>, <b>130</b>, and <b>150</b> may also have input device(s) (<b>112</b>, <b>142</b>, and <b>162</b>, respectively) such as keyboard, mouse, pen, voice input device, touch input device, etc. Output device(s) (<b>111</b>, <b>141</b>, and <b>161</b>, respectively) such as a display, speakers, printer, etc. may also be included. These devices are well known in the art and need not be discussed at length here.
0027Turning now to <figref idref="DRAWINGS">FIG. 2</figref> with continued reference to <figref idref="DRAWINGS">FIG. 1</figref>, a diagrammatic view of additional parts of system of <figref idref="DRAWINGS">FIG. 1</figref> of one implementation are illustrated. The same reference numerals are used on <figref idref="DRAWINGS">FIG. 2</figref> for those items that are the same as on <figref idref="DRAWINGS">FIG. 1</figref>. Notification engine <b>119</b> of user interface <b>118</b> on client computing device <b>100</b> communicates with central notification engine <b>148</b> of front end server computing device <b>130</b> to subscribe to notifications. In one implementation, central notification engine <b>148</b> has a notification manager class that contains methods for creating one or more event queues, deleting an event queue, flushing and/or disposing of an event queue, creating a condition advisor, deleting a condition advisor, flushing and/or disposing of a condition advisor, creating a folder count advisor, deleting a folder count advisor, flushing and/or disposing of a folder count advisor, and/or other methods for performing other operations.
0028Central notification engine <b>148</b> has an event queue object <b>180</b>, a condition advisor object <b>182</b>, and a count advisor object <b>184</b> that are operable to communicate with one or more data stores <b>168</b> on one or more back end server computing devices <b>150</b> to obtain updated information at specified data gathering intervals. A few non-limiting examples of such data stores include one or more message stores or products such as MICROSOFT® Exchange, a POP3 or IMAP email data store, a fax data store, and/or another file or database. The updated information is then aggregated by central notification engine <b>148</b> and returned to notification engine <b>119</b> on client computing device <b>100</b> for further processing by user interface <b>118</b>. In one implementation, only relevant information is returned, such as those specific to the context in which the user is working. As one non-limiting example, if the user is currently viewing his or her calendar, then detailed information about the calendar would be returned, but detailed information about the contents of the inbox would not be returned. In other implementations, more information is returned.
0029Turning now to <figref idref="DRAWINGS">FIG. 3</figref> with continued reference to <figref idref="DRAWINGS">FIGS. 1 and 2</figref>, a high level process flow for one implementation is presented. In one form, the process of <figref idref="DRAWINGS">FIG. 3</figref> is at least partially implemented in the operating logic of computing device <b>100</b>, <b>130</b>, and/or <b>150</b>. The process begins at start point <b>200</b> with the user logging into an email or other application (stage <b>202</b>). Client computing device <b>100</b> retrieves notification settings for the particular user (stage <b>204</b>). If notifications are not enabled for the particular user (decision point <b>206</b>), then the process ends at end point <b>214</b>. If notifications are enabled for the particular user (decision point <b>206</b>), then notification engine <b>119</b> of client computing device <b>100</b> communicates with central notification engine <b>148</b> on front end server computing device <b>130</b> to register for notifications (stage <b>208</b>).
0030A few non-limiting examples of notifications include email messages, calendar reminders, task reminders, folder content changes, folder count totals, etc. Notification engine <b>119</b> polls for and receives notifications that were aggregated by central notification service about what, if anything changed, updated totals (such as unread item counts), and/or some details about the changed and/or new content (stage <b>210</b>).
0031In one implementation, the details about the changes and status of the various data that are received by the client are included in one or more text files, such as XML. In another implementation, the details are received in a scripting language format, such as JavaScript or VBScript, where the script is executed and/or consumed by the notification engine on the client. In yet another implementation, the details are received in another file type or format for interpretation, execution, and/or display on the client. User interface <b>118</b> interprets the information received from the central notification engine and updates the user interface display appropriately (stage <b>212</b>). In one implementation, folder unread counts are updated to indicate the number of unread messages contained in that folder. Alternatively or additionally, a status or indicator bar in the user interface is updated to display whether there are new reminders and/or new messages, such as new email, fax, voice messages, and/or reminders. Alternatively or additionally, a custom-defined rule can be defined by the user for display in the status bar, such as to notify the user of any messages received from the boss. Alternatively or additionally, a folder the user is currently viewing is updated with any new content relevant to the particular display. Alternatively or additionally, other content can also be stored locally for quick retrieval once the user changes context where the information would be needed. The process then ends at end point <b>214</b>.
0032Turning now to <figref idref="DRAWINGS">FIG. 4</figref> with continued reference to <figref idref="DRAWINGS">FIGS. 1 and 2</figref>, a logical diagram describing the process for subscribing to and managing notifications in one implementation are illustrated. In one form, the process of <figref idref="DRAWINGS">FIG. 4</figref> is at least partially implemented in the operating logic of computing device <b>100</b>, <b>130</b>, and/or <b>150</b>. Client computing device <b>100</b> registers for one or more notifications, such as reminder notifications (stage <b>240</b>), folder tree unread count notifications (stage <b>242</b>), folder content change notifications (stage <b>244</b>), and/or other notifications (stage <b>246</b>) with client side notification engine <b>248</b> (<b>119</b> on <figref idref="DRAWINGS">FIG. 2</figref>). Client side notification engine <b>248</b> registers for notifications with front end server notification engine <b>256</b> (<b>148</b> on <figref idref="DRAWINGS">FIG. 2</figref>) and polls regularly (stage <b>252</b>). Front end server notification engine <b>256</b> manages event queues <b>258</b>, condition advisors <b>260</b>, folder count advisor <b>262</b>, and/or other information tracking objects <b>264</b>.
0033Front end server notification engine <b>256</b> registers for notifications (stage <b>266</b>) with one or more data stores <b>168</b> on back end server computing device(s) <b>268</b> (<b>150</b> on <figref idref="DRAWINGS">FIG. 2</figref>). Back end server computing device <b>268</b> updates front end server notification engine <b>256</b> with notifications periodically (stage <b>270</b>). In other words, the event queue(s), content advisors, and item count advisors are updated accordingly. In one implementation, front end server notification engine <b>256</b> combines the responses for all notification requests (stage <b>254</b>) and returns only the necessary ones (such as the relevant ones) to the client side notification engine <b>248</b>. The client side notification engine <b>248</b> distributes notifications to user interface components and performs the necessary actions (stage <b>250</b>), such as to update the display.
0034Turning now to <figref idref="DRAWINGS">FIG. 5</figref> with continued reference to <figref idref="DRAWINGS">FIGS. 1 and 2</figref>, the stages involved in registering for notifications, collecting notification responses, and processing the response received in one implementation are illustrated. In one form, the process of <figref idref="DRAWINGS">FIG. 5</figref> is at least partially implemented in the operating logic of computing device <b>100</b>, <b>130</b>, and/or <b>150</b>. The process begins at start point <b>300</b> with the user logging in to the application (stage <b>302</b>). Client side notification engine <b>248</b> of user interface <b>118</b> registers for notifications with the central notification engine <b>148</b>. In one implementation, central notification engine <b>148</b> creates folder modified condition advisors for all folders, event queues for new notifications, such as in the Inbox, and/or folder item count advisors for some or all of the folders (stage <b>304</b>). If the session has not timed out or otherwise ended (decision point <b>306</b>), then the client notification engine <b>119</b> checks to determine whether the polling interval time has passed (decision <b>308</b>). The client notification engine <b>119</b> waits until the polling interval passes by (decision point <b>308</b>) to poll the central notification engine <b>148</b> for notifications (stage <b>310</b>). If there are notifications to report (decision point <b>312</b>), then the central notification engine <b>148</b> generates a response based on the information in the event queue(s), condition advisors, and folder unread count advisor(s) and sends them to the client side notification engine <b>248</b> for further processing by the user interface <b>118</b> (stage <b>316</b>). User interface <b>118</b> interprets and/or otherwise executes the response, and updates the appropriate user interface views (stage <b>318</b>).
0035If there are no notifications to report (decision point <b>312</b>), then the central notification engine <b>148</b> generates an empty or blank response and sends it to the client side notification engine <b>248</b> (stage <b>314</b>). The process then repeats for each polling interval (decision point <b>308</b>) or until the user session times out or the user closes the application (decision point <b>306</b>). If the session times out or the user otherwise ends the session or application (decision point <b>306</b>), such as by closing the browser or program, then the event queue, condition advisors, and folder unread count advisor objects are destroyed (stage <b>320</b>) to free up system resources. The process then ends at end point <b>322</b>.
0036<figref idref="DRAWINGS">FIG. 6</figref> is a simulated screen <b>340</b> for one implementation of the system for <figref idref="DRAWINGS">FIG. 1</figref> which illustrates allowing a user to specify messaging notification options. The user can select whether to enable or disable options that display a notification message when new mail arrives <b>342</b>, display a notification message when a new voice mail arrives <b>344</b>, display a notification when new voice message arrives <b>346</b>, and/or to play a sound when new message arrives <b>348</b>. In one implementation, if any one or more of these options are enabled (decision point <b>206</b> on <figref idref="DRAWINGS">FIG. 3</figref>), then user interface <b>118</b> of client computing device <b>100</b> registers for messaging event notifications with central notification engine <b>148</b> on front end server computing device <b>130</b>.
0037<figref idref="DRAWINGS">FIG. 7</figref> is a simulated screen <b>350</b> for one implementation of the system for <figref idref="DRAWINGS">FIG. 1</figref> which illustrates allowing a user to specify reminder notification options. The user can select whether to enable or disable options that show reminder alerts for calendar items <b>352</b>, show reminder alerts for task items <b>354</b>, plays a sound when a reminder is due <b>356</b>, and/or to set the default reminder time frame <b>358</b>. In one implementation, if any one or more of options <b>352</b>, <b>354</b>, or <b>356</b> are enabled (decision point <b>206</b> on <figref idref="DRAWINGS">FIG. 3</figref>), then user interface <b>118</b> of client computing device <b>100</b> registers for reminder event notifications with central notification engine <b>148</b> on front end server computing device <b>130</b>.
0038After messaging and/or reminder notifications are registered with central notification engine <b>148</b>, user interface <b>118</b> then waits for the polling time to pass by (decision point <b>308</b>), polls for and receives aggregated notifications from the central notification engine <b>148</b> (stage <b>310</b>) and processes the response to update the user interface accordingly (stage <b>318</b>).
0039Non-limiting examples of how the user interface <b>118</b> can be updated based on the aggregated notifications are shown in simulated screens <b>8</b>-<b>13</b>. <figref idref="DRAWINGS">FIG. 8</figref> is a simulated screen <b>360</b> for one implementation of the system for <figref idref="DRAWINGS">FIG. 1</figref> which illustrates an email application with unread totals that were updated based on the event subscription process of <figref idref="DRAWINGS">FIGS. 3-5</figref>. Simulated screen <b>360</b> is a browser-based communication/personal organizer application that has various folders, such as Inbox <b>364</b>, one or more user defined folder(s), Deleted Items <b>366</b>, Calendar <b>368</b>, and/or other folders, for displaying information to the user and allowing the user to manage his or her information and/or schedule. Upon receiving aggregated notifications from central notification engine (stage <b>210</b>), folder counts are updated, such as “(7)” for Inbox <b>364</b>, and/or others shown on screen <b>360</b>. In one implementation, the totals represent the total number of unread items in the folder. In another implementation, the total represents the total number of items in the folder. Alternatively or additionally, the user interface can be updated automatically to display new content that is relevant to the context that the user is working in. For example, since the user has the Inbox folder <b>364</b> selected, new messages can be displayed in message area <b>369</b> based upon a sort order setting specified by the user or by a system default setting.
0040As shown in <figref idref="DRAWINGS">FIG. 9</figref>, in one implementation, a status bar is updated based on the aggregated notifications received from central notification engine (stage <b>210</b>). For example, status bar <b>377</b> on simulated screen <b>370</b> includes four notification messages: New Email <b>375</b>, New Voice Mail <b>371</b>, New Fax <b>372</b>, and New Reminder <b>373</b> that represent the type of new messages and/or reminders (e.g. calendar and/or task reminders) that have been received by the user. Other variations are also possible that include some or additional message and/or reminder notifications than these. In one implementation, a Help option <b>374</b> is displayed in the status bar.
0041Turning now to <figref idref="DRAWINGS">FIG. 10</figref>, in one implementation, when the user selects the New Email notification message <b>382</b> (or a particular notification) in the status bar of screen <b>380</b>, a snippet of the message <b>384</b> is shown near the status bar area to give the user a preview of the message. In one implementation, the New Email notification message <b>382</b> (or selected notification) then disappears after the user selects it from the status bar area. In another implementation, the New Email notification message <b>382</b> (or selected notification) is displayed until the user accesses the message in the Inbox folder and causes the status of the message to change to “read”.
0042Instead of or in addition to showing a snippet of the message <b>384</b> when the user selects New Email notification message <b>382</b>, the snippet <b>384</b> can be displayed for a specified period of time (such as 5 seconds) when the screen is first updated. In another implementation, when the user selects New Email notification message <b>382</b>, contents <b>386</b> of inbox folder are updated to include the new message(s). In yet another implementation, contents <b>386</b> of inbox folder are updated automatically when the aggregated notifications are received from the central notification engine <b>148</b>. Other variations are also possible that include combinations of these, fewer, and/or additional variations.
0043Similarly to <figref idref="DRAWINGS">FIG. 10</figref>, <figref idref="DRAWINGS">FIGS. 11-13</figref> are simulated screens (<b>390</b>, <b>400</b>, and <b>410</b>, respectively) for one implementation of the system for <figref idref="DRAWINGS">FIG. 1</figref> which illustrate what happens in the status bar area when the user selects the other options. For example, simulated screen <b>390</b> of <figref idref="DRAWINGS">FIG. 11</figref> illustrates what happens in the status bar area when the user selects the New Voice Mail notification message <b>392</b>. A snippet of the voice mail message <b>394</b> appears near the status bar and includes details such as the caller's phone number and the length of the message. Simulated screen <b>400</b> of <figref idref="DRAWINGS">FIG. 12</figref> illustrates an example of what happens in the status bar area when the user selects the New Fax notification message <b>402</b>. A snippet of the message <b>404</b> appears near the status bar and includes details such as the sender's fax number and/or the number of pages received. Alternatively or additionally, simulated screen <b>410</b> of <figref idref="DRAWINGS">FIG. 13</figref> illustrates an example of what happens in the status bar area when the user selects the New Reminders notification message <b>412</b>. A snippet of the reminder message <b>414</b> appears near the status bar and additional details about the appointment and/or task. In one implementation, calendar and task reminders are grouped together in the same reminder area. In another implementation, calendar reminders have a separate notification message on the status bar from task reminders.
0044With respect to simulated screens <b>9</b>-<b>13</b>, numerous other variations are also possible for determining when and where to display the respective snippet, if at all. In some implementations, part or all of the details related to the message and/or reminder are displayed and/or audibly rendered to the user in some fashion.
0045The examples in <figref idref="DRAWINGS">FIGS. 7-13</figref> are for purposes of illustration only, and are not limiting in nature. For example, other variations are also possible, such as using the technologies and techniques discussed herein for receiving updated content from a server in applications other than communications programs, such as from a project planning application, such as MICROSOFT® Project. Other examples can include any type of application that does not maintain a constant connection with the server while a user is accessing the application.
0046Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims. All equivalents, changes, and modifications that come within the spirit of the implementations as described herein and/or by the following claims are desired to be protected.
0047For example, a person of ordinary skill in the computer software art will recognize that the client and/or server arrangements, user interface screen content, and/or data layouts as described in the examples discussed herein could be organized differently on one or more computers to include fewer or additional options or features than as portrayed in the examples.
Contents4
14 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US8134727B1 | Cited by | United States of America | Search report |
| US2015381533A1 | Cited by | United States of America | Search report |
| US11175967B2 | Cited by | United States of America | Applicant |
| US9125035B2 | Cited by | United States of America | Applicant |
| WO2021126434A1 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US11272017B2 | Cited by | United States of America | Search report |
| US8780400B2 | Cited by | United States of America | Applicant |
| US9110739B2 | Cited by | United States of America | Search report |
| US9059953B2 | Cited by | United States of America | Applicant |
| US8769414B2 | Cited by | United States of America | Search report |
| US2015281399A1 | Cited by | United States of America | Search report |
| US8260864B2 | Cited by | United States of America | Search report |
| US10200460B2 | Cited by | United States of America | Applicant |
| US8305622B1 | Cited by | United States of America | Applicant |
| US2019207893A1 | Cited by | United States of America | Search report |
| US2011066974A1 | Cited by | United States of America | Pre-grant |
| US11249948B2 | Cited by | United States of America | Search report |
| US11121996B2 | Cited by | United States of America | Search report |
| US10063663B2 | Cited by | United States of America | Applicant |
| US9148456B2 | Cited by | United States of America | Applicant |
| US2009204666A1 | Cited by | United States of America | Pre-grant |
| US2007203991A1 | Cited by | United States of America | Pre-grant |
| WO2015073799A1 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US2012317170A1 | Cited by | United States of America | Pre-grant |
| TWI488103B | Cited by | Taiwan Province of China | Examiner |
| US2011302500A1 | Cited by | United States of America | Pre-grant |
| US8966377B2 | Cited by | United States of America | Applicant |
| US9059953B2 | Cited by | United States of America | Applicant |
| US9948775B2 | Cited by | United States of America | Applicant |
| US2010094883A1 | Cited by | United States of America | Pre-grant |
| US8831191B1 | Cited by | United States of America | Applicant |
| US8384942B1 | Cited by | United States of America | Applicant |
| US8713099B2 | Cited by | United States of America | Applicant |
| US2009048894A1 | Cited by | United States of America | Pre-grant |
| US2015281399A1 | Cited by | United States of America | Pre-grant |
| US2012036208A1 | Cited by | United States of America | Pre-grant |
| US9736756B2 | Cited by | United States of America | Applicant |
| US2019129974A1 | Cited by | United States of America | Search report |
| US7720916B2 | Cited by | United States of America | Search report |
| WO2015148588A1 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US9948502B2 | Cited by | United States of America | Applicant |
| US10178163B2 | Cited by | United States of America | Applicant |
| US2011307566A1 | Cited by | United States of America | Pre-grant |
| US9900375B2 | Cited by | United States of America | Search report |
| US8745538B2 | Cited by | United States of America | Search report |
| US11329940B2 | Cited by | United States of America | Search report |
| US8055657B2 | Cited by | United States of America | Applicant |
| US10291745B2 | Cited by | United States of America | Search report |
| US9172765B2 | Cited by | United States of America | Search report |
| US2010211917A1 | Cited by | United States of America | Pre-grant |
| US2015271254A1 | Cited by | United States of America | Pre-grant |
| US2004002958A1 | Cites | United States of America | Pre-grant |
| US2004225718A1 | Cites | United States of America | Pre-grant |
| US2005080857A1 | Cites | United States of America | Pre-grant |
| US2005091319A1 | Cites | United States of America | Pre-grant |
| US2005108332A1 | Cites | United States of America | Pre-grant |
| US2005160335A1 | Cites | United States of America | Pre-grant |
| US2005198159A1 | Cites | United States of America | Pre-grant |
| US2007076646A1 | Cites | United States of America | Pre-grant |
| US6101541A | Cites | United States of America | Pre-grant |
| US6167448A | Cites | United States of America | Pre-grant |
| US6185613B1 | Cites | United States of America | Pre-grant |
| US6598068B1 | Cites | United States of America | Pre-grant |
| US6725228B1 | Cites | United States of America | Pre-grant |
| US6763384B1 | Cites | United States of America | Pre-grant |
| US6871214B2 | Cites | United States of America | Pre-grant |
| US6920436B2 | Cites | United States of America | Pre-grant |
| US6963919B1 | Cites | United States of America | Pre-grant |
| US7068189B2 | Cites | United States of America | Pre-grant |
| US7076235B2 | Cites | United States of America | Pre-grant |
| US7127485B2 | Cites | United States of America | Pre-grant |
3 members in 1 office
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 33803906 | United States of America | A | |
| US20060338039 | – | – | – |
Members3
| Document | Office | Kind | |
|---|---|---|---|
| US2007198677A1 | United States of America | A1 | |
| US8015152B2 | United States of America | B2 | |
| US2012198053A1 | United States of America | A1 |
83 transactions on the USPTO file
Allowed after 4 non-final rejections, 2 final rejections and 2 RCEs.
- Non-final rejections
- 4
- Final rejections
- 2
- RCEs
- 2
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Change in Power of Attorney (May Include Associate POA)PA.. | PA.. | |
| Correspondence Address ChangeC.AD | C.AD | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail Examiner Interview Summary (PTOL - 413)MEXIN | MEXIN | |
| Examiner Interview Summary Record (PTOL - 413)EXIN | EXIN | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail Examiner Interview Summary (PTOL - 413)MEXIN | MEXIN | |
| Examiner Interview Summary Record (PTOL - 413)EXIN | EXIN | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail Notice of Informal or Non-Responsive AmendmentNINA | NINA | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Informal or Non-Responsive Amendment after Examiner ActionA.I. | A.I. | |
| Response after Non-Final ActionA... | A... | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail Examiner Interview Summary (PTOL - 413)MEXIN | MEXIN | |
| Examiner Interview Summary Record (PTOL - 413)EXIN | EXIN | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| IFW TSS Processing by Tech Center CompleteTSSCOMP | TSSCOMP | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Application Is Now CompleteCOMP | COMP | |
| Cleared by OIPE CSRL194 | L194 | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Initial Exam Team nnIEXX | IEXX |
6 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Maintenance fee paymentMAFP | MAFP | |
| Maintenance fee paymentMAFP | MAFP | |
| Fee paymentFPAY | FPAY | |
| AssignmentAS | AS | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| AssignmentAS | AS |
Numbers
- Publication
- 20070198677
- Publication, DOCDB
- 2007198677
- Publication, EPODOC
- US2007198677
- Application
- 11338039
- Application, DOCDB
- 33803906
- Application, EPODOC
- US20060338039
Titles
- English
- Web based client/server notification engine
Classification
- CPC, 4
- G06Q10/107
- H04L51/04
- H04L51/224
- Y10S707/966
- IPC, 1
- G06F15 173
- USPC, 1
- 709223000