← Back to Patent Explorer
US7797306B1 Expired / Lapsed US ⏱️ 0.0 years remaining

System and method for providing notification(s) in accordance with middleware technologies

Assignee: Microsoft Technology Licensing LLC
•
Filing: 2003-02-26
•
Granted: 2010-09-14
•
Expires: 2023-02-26
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract The present invention relates to a system and methodology to facilitate subscription, delivery, processing, and reception of notification services. A global service framework is provided that operates in conjunction with a notification platform architecture to deliver information from one or more event sources to one or more notification sinks that receive information from the services. The global framework includes discovery and description components that provide information relating to available notification services. Subscriptions can be obtained via subscription events, whereby notifications can be delivered via notification events, wherein such events can be modeled as part of the global service framework. Various communications protocols can also be provided to facilitate communications with the notification services and global services framework. Furthermore, various notification delivery protocols can be provided that operate with structured database technologies to facilitate bulk message delivery and service in a reliable manner while mitigating network problems such as delivering notifications under power-interrupting conditions.

Inventors

  • 👤 Shyamalan Pather
  • 👤 Lon Eugene Fisher
  • 👤 Richard Dievendorff
  • 👤 Praveen Seshadri
  • 👤 Philip Garrett
  • 👤 Holly Knight
  • 👤 Vincent H. Curley
  • 👤 Robert F. Blanch
  • 👤 Charles Tete Mensa-Annan

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-29 14:16
CPC Classifications
G; G06; G06F; G06F16/00; G06F16/90; G06F16/95; G06F16/958; H; H04; H04L; H04L12/00; H04L12/02; H04L12/16; H04L12/18; H04L12/1859; G06F16/953; G06F16/9535; H04L51/00; H04L51/21; H04L51/224; Y; Y10; Y10S; Y10S707/00; Y10S707/99931; Y10S707/99933

Claims Analysis

Total Claims: 33
Claim 1
Independent Claim 247 words
A notification system comprising a computer processor executing software components stored on a computer-readable medium, the software components comprising: a database engine component that processes received events and subscription information, the database engine component modeling the events and subscriptions as data prior to processing so as to facilitate event and subscription processing; a notification server component that delivers notifications to subscribers in accordance with the processed events and subscription information, at least one of the database engine component and the notification server component operative in a global web services environment, wherein the notification server determines to which subscribers to send notifications of a received event by performing a join between the received event and the subscriptions that are modeled as data by the database engine; and a context analyzer component that analyzes information regarding variables and parameters of a user, wherein the notification server component distributes notifications based on the variables and parameters stored by the context analyzer component, and wherein the parameters comprise contextual information discerned based on observations made autonomously via one or more sensors and statistical models, additional parameters conditioned on the contextual information, observations dynamically inferred via automated inference, a user's state specified in real-time and default notification preference parameters; wherein the notification server component performs a decision-theoretic analysis for pending notifications to determine whether to convey the pending notifications and in what manner to convey the pending notifications, by accessing variables and parameters stored in the context analyzer that indicate user preference.
Claim 2
Dependent Claim 247 words
A notification system comprising a computer processor executing software components stored on a computer-readable medium, the software components comprising: a database engine component that processes received events and subscription information, the database engine component modeling the events and subscriptions as data prior to processing so as to facilitate event and subscription processing; a notification server component that delivers notifications to subscribers in accordance with the processed events and subscription information, at least one of the database engine component and the notification server component operative in a global web services environment, wherein the notification server determines to which subscribers to send notifications of a received event by performing a join between the received event and the subscriptions that are modeled as data by the database engine; and a context analyzer component that analyzes information regarding variables and parameters of a user, wherein the notification server component distributes notifications based on the variables and parameters stored by the context analyzer component, and wherein the parameters comprise contextual information discerned based on observations made autonomously via one or more sensors and statistical models, additional parameters conditioned on the contextual information, observations dynamically inferred via automated inference, a user's state specified in real-time and default notification preference parameters; wherein the notification server component performs a decision-theoretic analysis for pending notifications to determine whether to convey the pending notifications and in what manner to convey the pending notifications, by accessing variables and parameters stored in the context analyzer that indicate user preference.
Claim 3
Dependent Claim 26 words
The system of claim 1 , the global web services environment includes a global XML web services architecture (GXA) to facilitate event, subscription, and notification processing.
Claim 4
Dependent Claim 37 words
The system of claim 2 , the GXA includes at least one of a discovery component, a description component, a protocol component, an asynchronous messaging component, a reliable messaging component, a transactions component, and a security component.
Claim 5
Dependent Claim 68 words
The system of claim 2 , the GXA includes a protocol component, the protocol component includes at least one of Simple Object Access Protocol (SOAP) that is employed as a communications protocol for XML Web services, an HTTP protocol, an SMTP protocol, a TCP/IP protocol, a Direct Internet Message Encapsulation (DIME) protocol utilized for binary message exchanges, and a transaction or routing delivery protocol to facilitate notification processing.
Claim 6
Dependent Claim 39 words
The system of claim 2 , the GXA includes a discovery component, the discovery component includes at least one of an inspection schema, a Web Services Description Language (WSDL) component, and a Universal Discovery Description and Integration (UDDI) component.
Claim 7
Dependent Claim 29 words
The system of claim 2 , the GXA includes a description component, the description component includes a meta-data component that describes one or more aspects of a notification service.
Claim 8
Dependent Claim 25 words
The system of claim 6 , the description component facilitates negotiations between nodes about available communications mechanisms and protocols for negotiating characteristics of message exchange.
Claim 9
Dependent Claim 35 words
The system of claim 7 , the description component facilitates at least one of security negotiations, security authentications, and security authorizations, the security negotiations including at least one of WS-Policy, WS-Policy Assertions, and WS-Policy Bindings.
Claim 10
Dependent Claim 37 words
The system of claim 2 , the GXA includes a discovery component and a description component, the discovery component and the description component employ an Application Definition File (ADF) to facilitate discovery and description of notification services.
Claim 11
Dependent Claim 32 words
The system of claim 2 , the GXA includes an asynchronous messaging component, the asynchronous messaging component includes at least one of an asynchronous protocol, an eventing protocol, and a routing protocol.
Claim 12
Dependent Claim 41 words
The system of claim 10 , the asynchronous protocol includes a web service AsyncMSG (WS-AsyncMSG) protocol that is defined by an XML SOAP extension, and includes at least one of end-to-end message information, hop-by-hop message information, and correlation information between messages.
Claim 13
Dependent Claim 43 words
The system of claim 10 , the asynchronous messaging component includes a routing protocol, the routing protocol includes a web services routing protocol (WS-Routing) for exchanging one-way SOAP messages and a subscription submission/notification delivery protocol that includes a web services eventing protocol (WS-Eventing).
Claim 14
Dependent Claim 35 words
The system of claim 1 , the notification server component further comprising at least one of an event provider, an event collector, a message queue component, and a Distributed Transaction Coordinator (DTC) to process notifications.
Claim 15
Dependent Claim 22 words
The system of claim 13 , further comprising a Transaction Server (MTS) having at least one resource manager to process the notifications.
Claim 16
Dependent Claim 18 words
The system of claim 13 , the notification server component employs an “exactly once” protocol to deliver notifications.
Claim 17
Dependent Claim 33 words
The system of claim 1 , the notification server component further comprising a message queue component, the message queue utilizes at least one of a commit and an abort function when processing notifications.
Claim 18
Dependent Claim 15 words
The system of claim 1 , the database engine component employing an SQL database application.
Claim 19
Dependent Claim 22 words
The system of claim 1 , further comprising a priorities component to determine a notification ordering for one or more received notifications.
Claim 20
Dependent Claim 212 words
A computer implemented notification method, comprising the following computer executable acts: abstracting subscription and event information as data; storing the subscription and event data in respective tables, the tables being propagated with the subscription and event information; upon a notification event occurring, processing the subscription and event data to generate notification data in accordance with a messaging protocol, wherein processing the subscription and event data comprises performing a join between the event data and the subscription data to determine for which subscribers notification data regarding the notification event should be generated; employing an event protocol processed in accordance with a web services protocol to facilitate processing subscriptions and notification events; analyzing information regarding variables and parameters of a user that influence notification decision-making, wherein the parameters comprise contextual information discerned based on observations made autonomously via one or more sensors and statistical models, additional parameters conditioned on the contextual information, observations dynamically inferred via automated inference, a user's state specified in real-time and default notification preference parameters; delivering notifications to subscribers in accordance with the variables and parameters; and performing a decision-theoretic analysis for pending notifications to determine whether to convey the pending notifications and in what manner to convey the pending notifications, by accessing variables and parameters that indicate user preference.
Claim 21
Dependent Claim 212 words
A computer implemented notification method, comprising the following computer executable acts: abstracting subscription and event information as data; storing the subscription and event data in respective tables, the tables being propagated with the subscription and event information; upon a notification event occurring, processing the subscription and event data to generate notification data in accordance with a messaging protocol, wherein processing the subscription and event data comprises performing a join between the event data and the subscription data to determine for which subscribers notification data regarding the notification event should be generated; employing an event protocol processed in accordance with a web services protocol to facilitate processing subscriptions and notification events; analyzing information regarding variables and parameters of a user that influence notification decision-making, wherein the parameters comprise contextual information discerned based on observations made autonomously via one or more sensors and statistical models, additional parameters conditioned on the contextual information, observations dynamically inferred via automated inference, a user's state specified in real-time and default notification preference parameters; delivering notifications to subscribers in accordance with the variables and parameters; and performing a decision-theoretic analysis for pending notifications to determine whether to convey the pending notifications and in what manner to convey the pending notifications, by accessing variables and parameters that indicate user preference.
Claim 22
Dependent Claim 30 words
The method of claim 19 , further comprising employing at least one of an event provider process, an event collector process, an event flush process, and a message delivery process.
Claim 23
Dependent Claim 42 words
The method of claim 19 , further comprising employing an event provider process, the event provider process further comprising at least one of: initiating a Distributed Transaction Coordinator (DTC) transaction; de-queuing a message; committing the DTC transaction; and aborting the DTC transaction.
Claim 24
Dependent Claim 52 words
The method of claim 19 , further comprising employing an event collector process, the event collector process further comprising at least one of: determining if a DTC transaction has started; starting a database transaction; inserting a row into an event batch table; and inserting a new event row in another event table.
Claim 25
Dependent Claim 41 words
The method of claim 19 , further comprising employing an event flush process, the event flush process further comprising at least one of: updating a batch header; committing a DTC transaction; and aborting the DTC transaction depending on a flush parameter.
Claim 26
Dependent Claim 50 words
The method of claim 19 , further comprising employing a message delivery process, the message delivery process further comprising at least one of: initiating a DTC transaction; calling a delivery protocol handler; marking a row in a database to indicate a message has been delivered; and committing the DTC transaction.
Claim 27
Dependent Claim 221 words
One or more computer readable media storing computer executable instructions which when executed by a processor perform the following method: abstracting subscription and event information as data; storing the subscription and event data in respective tables, the tables being propagated with the subscription and event information; upon a notification event occurring, processing the subscription and event data to generate notification data in accordance with a messaging protocol, wherein processing the subscription and event data comprises performing a join between the event data and the subscription data to determine for which subscribers notification data regarding the notification event should be generated; employing an event protocol processed in accordance with a web services protocol to facilitate processing subscriptions and notification events; analyzing information regarding variables and parameters of a user that influence notification decision-making, wherein the parameters comprise contextual information discerned based on observations made autonomously via one or more sensors and statistical models, additional parameters conditioned on the contextual information, observations dynamically inferred via automated inference, a user's state specified in real-time and default notification preference parameters; delivering notifications to subscribers in accordance with the variables and parameters; and performing a decision-theoretic analysis for pending notifications to determine whether to convey the pending notifications and in what manner to convey the pending notifications, by accessing variables and parameters that indicate user preference.
Claim 28
Dependent Claim 221 words
One or more computer readable media storing computer executable instructions which when executed by a processor perform the following method: abstracting subscription and event information as data; storing the subscription and event data in respective tables, the tables being propagated with the subscription and event information; upon a notification event occurring, processing the subscription and event data to generate notification data in accordance with a messaging protocol, wherein processing the subscription and event data comprises performing a join between the event data and the subscription data to determine for which subscribers notification data regarding the notification event should be generated; employing an event protocol processed in accordance with a web services protocol to facilitate processing subscriptions and notification events; analyzing information regarding variables and parameters of a user that influence notification decision-making, wherein the parameters comprise contextual information discerned based on observations made autonomously via one or more sensors and statistical models, additional parameters conditioned on the contextual information, observations dynamically inferred via automated inference, a user's state specified in real-time and default notification preference parameters; delivering notifications to subscribers in accordance with the variables and parameters; and performing a decision-theoretic analysis for pending notifications to determine whether to convey the pending notifications and in what manner to convey the pending notifications, by accessing variables and parameters that indicate user preference.
Claim 29
Dependent Claim 44 words
The computer readable media of claim 25 , wherein the method performed by the execution of the computer executable instructions further comprises: employing at least one of an event provider process, an event collector process, an event flush process, and a message delivery process.
Claim 30
Dependent Claim 55 words
The computer media of claim 25 , wherein the method performed by the execution of the computer executable instructions further comprises: employing an event provider process, the event provider process further comprising at least one of: initiating a Distributed Transaction Coordinator (DTC) transaction; de-queuing a message; committing the DTC transaction; and aborting the DTC transaction.
Claim 31
Dependent Claim 67 words
The computer storage readable media of claim 25 , wherein the method performed by the execution of the computer executable instructions further comprises: employing an event collector process, the event collector process further comprising at least one of: determining if a DTC transaction has started; starting a database transaction; inserting a row into an event batch table; and inserting a new event row in another event table.
Claim 32
Dependent Claim 55 words
The computer readable media of claim 25 , wherein the method performed by the execution of the computer executable instructions further comprises: employing an event flush process, the event flush process further comprising at least one of: updating a batch header; committing a DTC transaction; and aborting the DTC transaction depending on a flush parameter.
Claim 33
Dependent Claim 64 words
The computer readable media of claim 25 , wherein the method performed by the execution of the computer executable instructions further comprises: employing a message delivery process, the message delivery process further comprising at least one of: initiating a DTC transaction; calling a delivery protocol handler; marking a row in a database to indicate a message has been delivered; and committing the DTC transaction.

References Cited (Backward Citations)

US4774658A Cited
US5760768A Cited
US5301326A Cited
US6490633B1 Cited
US5481700A Cited
US5555346A Cited
US5367633A Cited
US6748318B1 Cited
US5416725A Cited
US5835768A Cited
US5852812A Cited
US5870746A Cited
US6185613B1 Cited
US6490718B1 Cited
US6151643A Cited
US5813007A Cited
US6021403A Cited
US5973612A Cited
US6446092B1 Cited
US6988262B1 Cited
US6055570A Cited
US6260148B1 Cited
US5893091A Cited
US6219782B1 Cited
US6209011B1 Cited
US6112192A Cited
US6026235A Cited
US6173284B1 Cited
US6122633A Cited
US6629138B1 Cited
US5974406A Cited
US6016394A Cited
US6484149B1 Cited
US5999978A Cited
US6208996B1 Cited
US6055505A Cited
US6704803B2 Cited
US6510429B1 Cited
US6138158A Cited
US6108712A Cited
US6487548B1 Cited
US6167448A Cited
US6330566B1 Cited
US6424966B1 Cited
US6353926B1 Cited
US6256664B1 Cited
US6480885B1 Cited
US6314533B1 Cited
US6275957B1 Cited
US6606618B2 Cited
US6327705B1 Cited
US6343376B1 Cited
US6292825B1 Cited
US6466949B2 Cited
US6564251B2 Cited
US6438618B1 Cited
US6920616B1 Cited
US6829770B1 Cited
US6826560B1 Cited
US6400810B1 Cited
US6405191B1 Cited
US6643682B1 Cited
US6829639B1 Cited
US6829478B1 Cited
US20020069244A1 Cited
US6751657B1 Cited
US20010009016A1 Cited
US6662195B1 Cited
US6910070B1 Cited
US20020032602A1 Cited
US6766329B1 Cited
US6601012B1 Cited
US20040128359A1 Cited
US20020032597A1 Cited
US20040083463A1 Cited
US20020082919A1 Cited
US20020080938A1 Cited
US7266595B1 Cited
US20020010804A1 Cited
US6513026B1 Cited
US20030023435A1 Cited
US6839730B1 Cited
US20020167488A1 Cited
US20020032771A1 Cited
US7032115B2 Cited
US20020095399A1 Cited
US6847889B2 Cited
US20020035482A1 Cited
US6938240B2 Cited
US20020077842A1 Cited
US20020075293A1 Cited
US6574552B2 Cited
US20020165729A1 Cited
US6745180B2 Cited
US20020087740A1 Cited
US20030105732A1 Cited
US6532471B1 Cited
US20020077910A1 Cited
US20020087388A1 Cited
US6745193B1 Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2013-09-13 2014-03-15 2014-09-14 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2017-09-13 2018-03-15 2018-09-14 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2021-09-13 2022-03-15 2022-09-14 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag