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

Programming model for subscription services

Assignee: Microsoft Technology Licensing LLC
•
Filing: 2002-06-26
•
Granted: 2007-02-13
•
Expires: 2022-06-26
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract The present invention relates to a subscription modeling system and methodology. A query processor receives subscription query and subscriber information and transforms the query and subscriber information into data. An index component propagates at least one database with the transformed data; and a matching component that associates the transformed data with event data to generate a database of notification data that can be delivered to subscribers. The invention provides for abstracting subscription and subscriber information (as well as event information if desired) to high-level classes (e.g., data fields)—thus the invention provides for modeling such notification related information as data. Subscription applications can thus be developed at high levels wherein complex subscription queries and subscriber information can be defined as data fields for example. Databases in accordance with the data fields can be propagated with subscription/subscriber specific information. The present invention takes advantages of the processing power associated with database engines (e.g., SQL server) to generate notifications via performing a join operation on the databases (e.g., subscription database(s), subscriber database(s) and event database(s)). Accordingly, notifications are generated en masse as compared to per subscription per subscriber. Thus the present invention provides for a highly scalable and efficient notification system.

Inventors

  • 👤 Shyamalan Pather
  • 👤 Praveen Seshadri
  • 👤 Phil Garrett
  • 👤 Robert F. Blanch
  • 👤 Holly Knight
  • 👤 Dick Dievendorff
  • 👤 Vince H. Curley

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-31 00:46
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/54; G06F9/542; G06F16/00; G06F16/90; G06F16/95; G06F16/953; G06F16/9535; G06Q; G06Q30/00; G06Q30/02; H; H04; H04L; H04L67/00; H04L67/50; H04L67/55; G06F2209/00; G06F2209/54; G06F2209/544; Y; Y10; Y10S; Y10S707/00; Y10S707/99931; Y10S707/99933; Y10S707/99934; Y10S707/99936

Claims Analysis

Total Claims: 31
Claim 1
Independent Claim 128 words
A subscription modeling system, comprising: a query processor that receives subscription query and subscriber information and transforms the query and subscriber information into data, the query processor employs subscription templates based at least in part upon common structures associated with subsets of queries, and subscribers propagate parameters to customize a respective template; an index component that propagates at least one database with the transformed data; a matching component that associates the transformed data with event data to generate a database of notification data, wherein the notification data is delivered to subscribers; and a programming model that builds subscription applications, the subscription applications utilize an SQL server to do subscription and event matching, the SQL server performs a data join operation in connection with generation of the notification data.
Claim 2
Dependent Claim 128 words
A subscription modeling system, comprising: a query processor that receives subscription query and subscriber information and transforms the query and subscriber information into data, the query processor employs subscription templates based at least in part upon common structures associated with subsets of queries, and subscribers propagate parameters to customize a respective template; an index component that propagates at least one database with the transformed data; a matching component that associates the transformed data with event data to generate a database of notification data, wherein the notification data is delivered to subscribers; and a programming model that builds subscription applications, the subscription applications utilize an SQL server to do subscription and event matching, the SQL server performs a data join operation in connection with generation of the notification data.
Claim 3
Dependent Claim 20 words
The system of claim 1 , the matching component employing a set of match rules to associate the transformed data.
Claim 4
Dependent Claim 24 words
The system of claim 1 , the query processor parsing the information and abstracting at least portions of the parsed information into data fields.
Claim 5
Dependent Claim 17 words
The system of claim 3 , the data fields being propagated with subscriber or event specific data.
Claim 6
Dependent Claim 25 words
The system of claim 1 , the matching component comprising an inference engine that facilitates inferring how data should be joined pursuant to subscriber preferences.
Claim 7
Dependent Claim 97 words
A computer implemented application definition file (ADF) for employment in connection with subscription services, comprising the following computer executable component: a set of schemas that describe subscriptions and subscribers; and a subscription logic component that defines how subscriptions are evaluated, the subscription logic component is parameterized so that individual subscriptions personalize the subscription logic component, subscription templates are employed based at least in part upon common structures associated with subsets of subscriptions and subscribers propagate parameters to customize a respective template; wherein once the subscription logic component is personalized, notifications are delivered based on the individual subscriptions.
Claim 8
Dependent Claim 97 words
A computer implemented application definition file (ADF) for employment in connection with subscription services, comprising the following computer executable component: a set of schemas that describe subscriptions and subscribers; and a subscription logic component that defines how subscriptions are evaluated, the subscription logic component is parameterized so that individual subscriptions personalize the subscription logic component, subscription templates are employed based at least in part upon common structures associated with subsets of subscriptions and subscribers propagate parameters to customize a respective template; wherein once the subscription logic component is personalized, notifications are delivered based on the individual subscriptions.
Claim 9
Dependent Claim 34 words
The ADF of claim 6 further comprising event definitions that specify structure of at least one of: event data, event providers that collect data, and structure event chronicles used by a notification subscription application.
Claim 10
Dependent Claim 39 words
The ADF of claim 6 further comprising notification definitions that specify structure of at least one of: structure of raw notification data, formatting for messages that will be sent to subscribers, and delivery protocols used to send the messages.
Claim 11
Dependent Claim 22 words
The ADF of claim 6 further comprising subscription schema that defines structure of subscription parameters and when subscriptions are to be evaluated.
Claim 12
Dependent Claim 14 words
The ADF of claim 9 , the subscription schema defining structure of subscription parameters.
Claim 13
Dependent Claim 27 words
The ADF of claim 6 further comprising execution settings that facilitate an application developer to enhance behavior and performance of an application when executed by notification services.
Claim 14
Independent Claim 136 words
A method that facilitates providing notifications of information to recipients comprising: storing subscription queries as data; employing subscription templates based at least in part upon common structures associated with subsets of queries; propagating parameters to customize a respective template; storing event information as data; upon a notification event occurring performing a join operation on the subscription query data and the event data to produce a first set of notification data; propagating a notification database with the first set of notification data; generating a second set of notification data based at least in part on the first set of notification data, wherein the second set of notification data is delivered to subscribers; and building subscription applications, the subscription applications utilizing an SQL server to perform the join operation on the subscription query data and the event data.
Claim 15
Independent Claim 136 words
A method that facilitates providing notifications of information to recipients comprising: storing subscription queries as data; employing subscription templates based at least in part upon common structures associated with subsets of queries; propagating parameters to customize a respective template; storing event information as data; upon a notification event occurring performing a join operation on the subscription query data and the event data to produce a first set of notification data; propagating a notification database with the first set of notification data; generating a second set of notification data based at least in part on the first set of notification data, wherein the second set of notification data is delivered to subscribers; and building subscription applications, the subscription applications utilizing an SQL server to perform the join operation on the subscription query data and the event data.
Claim 16
Dependent Claim 23 words
The method of claim 12 , further comprising formatting the first and second sets of notification data and delivering the formatted notification data.
Claim 17
Dependent Claim 31 words
The method of claim 13 , the formatted notification data being delivered via a delivery channel, the delivery channel being an intermediary between a notification services application and a delivery service.
Claim 18
Dependent Claim 17 words
The method of claim 13 , the formatted notification data being delivered via a digest delivery protocol.
Claim 19
Dependent Claim 15 words
The method of claim 12 further comprising employing match rules to effect the join operation.
Claim 20
Dependent Claim 20 words
The method of claim 12 , the first and second sets of notification data being delivered via a multicasting protocol.
Claim 21
Dependent Claim 94 words
A computer implemented subscription modeling methodology, comprising the following computer executable acts: providing an interface for an application developer to create an application definition file (ADF) in connection with modeling a subscription application; defining metadata nodes via an application developer; writing a subscription management application, the application is written via the application developer to allow users to subscribe to a subscription service and receive notifications storing subscription queries as data; employing subscription templates based at least in part upon common structures associated with subsets of queries; and propagating parameters to customize a respective template.
Claim 22
Dependent Claim 94 words
A computer implemented subscription modeling methodology, comprising the following computer executable acts: providing an interface for an application developer to create an application definition file (ADF) in connection with modeling a subscription application; defining metadata nodes via an application developer; writing a subscription management application, the application is written via the application developer to allow users to subscribe to a subscription service and receive notifications storing subscription queries as data; employing subscription templates based at least in part upon common structures associated with subsets of queries; and propagating parameters to customize a respective template.
Claim 23
Dependent Claim 31 words
The method of claim 18 , further comprising specifying one or more event classes in the application definition file, the event class(es) corresponding to particular event types accepted by the application.
Claim 24
Dependent Claim 33 words
The method of claim 18 , further comprising specifying one or more notification classes in the application definition file, the notification class(es) corresponding to one particular kind of notification generated by the application.
Claim 25
Dependent Claim 33 words
The method of claim 18 , further comprising specifying one or more subscription classes in the application definition file, the subscription class(es) corresponding to one particular kind of subscription accepted by the application.
Claim 26
Dependent Claim 26 words
The method of claim 21 , wherein specifying the subscription class(es) includes writing rules, which are Transact-SQL statements that either generate notifications, or update chronicle tables.
Claim 27
Dependent Claim 24 words
The method of claim 22 , the rules being invoked when an event provider submits a new batch of events on a scheduled basis.
Claim 28
Dependent Claim 39 words
The method of claim 18 , the subscription management application accepts and validates information about a subscriber, target devices that the subscriber is using for notification delivery, and subscriptions that specify information that the subscriber would like to receive.
Claim 29
Dependent Claim 25 words
The method of claim 18 , further comprising defining an event provider that monitors an external entity and generates an event upon an action occurring.
Claim 30
Dependent Claim 123 words
A computer readable medium having stored thereon a data structure comprising: a first set of data fields containing data representing subscription information, wherein subscription templates are utilized based at least in part upon common structures associated with subsets of queries to parameterize the data and subscribers propagate parameters to customize a respective template; a second set of data fields containing data representing subscriber information; a third set of data fields containing data representing event information; and a fourth set of data fields containing notification data derived from performing a join operation on subsets of the first, second and third sets of data fields, wherein an SQL server performs the join operation on subsets of the first, second and third sets of data fields.
Claim 31
Dependent Claim 123 words
A computer readable medium having stored thereon a data structure comprising: a first set of data fields containing data representing subscription information, wherein subscription templates are utilized based at least in part upon common structures associated with subsets of queries to parameterize the data and subscribers propagate parameters to customize a respective template; a second set of data fields containing data representing subscriber information; a third set of data fields containing data representing event information; and a fourth set of data fields containing notification data derived from performing a join operation on subsets of the first, second and third sets of data fields, wherein an SQL server performs the join operation on subsets of the first, second and third sets of data fields.

References Cited (Backward Citations)

US4774658A Cited
US5555346A Cited
US5367633A Cited
US5416725A Cited
US5852812A Cited
US6185613B1 Cited
US6151643A Cited
US5813007A Cited
US6021403A Cited
US5973612A Cited
US6988262B1 Cited
US6055570A Cited
US6260148B1 Cited
US5893091A Cited
US6219782B1 Cited
US6209011B1 Cited
US6173284B1 Cited
US6122633A Cited
US6629138B1 Cited
US5974406A Cited
US5999978A Cited
US6208996B1 Cited
US6055505A Cited
US6704803B2 Cited
US6510429B1 Cited
US6138158A Cited
US6487548B1 Cited
US6167448A Cited
US6424966B1 Cited
US6353926B1 Cited
US6256664B1 Cited
US6480885B1 Cited
US6314533B1 Cited
US6275957B1 Cited
US6292825B1 Cited
US6466949B2 Cited
US6438618B1 Cited
US6829770B1 Cited
US6826560B1 Cited
US6400810B1 Cited
US6405191B1 Cited
US6643682B1 Cited
US6829639B1 Cited
US20020069244A1 Cited
US6751657B1 Cited
US20010009016A1 Cited
US6662195B1 Cited
US6910070B1 Cited
US20020032602A1 Cited
US20040128359A1 Cited
US20020032597A1 Cited
US20020082919A1 Cited
US20020080938A1 Cited
US20020010804A1 Cited
US6839730B1 Cited
US20020032771A1 Cited
US20020095399A1 Cited
US20020035482A1 Cited
US20020075293A1 Cited
US20020077842A1 Cited
US6938240B2 Cited
US20020165729A1 Cited
US20020087740A1 Cited
US20020120711A1 Cited
US20020136173A1 Cited
US20020154010A1 Cited
US20020194305A1 Cited
US6981250B1 Cited
US20030050046A1 Cited
US20030154193A1 Cited
US6910033B2 Cited
US20030046539A1 Cited
US20030101322A1 Cited
US20030083952A1 Cited
US20030131143A1 Cited
US20030177402A1 Cited
US20040002988A1 Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2010-02-12 2010-08-14 2011-02-13 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2014-02-12 2014-08-14 2015-02-13 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2018-02-12 2018-08-14 2019-02-13 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag