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

Content based publish-and-subscribe system integrated in a relational database system

Assignee: Oracle International Corp
•
Filing: 1999-07-21
•
Granted: 2002-06-11
•
Expires: 2019-07-21
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and apparatus are provided for implementing a content based publish-and-subscribe system in a relational database system. A subscriber may request for messages by using a query language supported by the database server. The queries are then used as subscription rules for determining whether an incoming message is to be sent to the subscriber. Evaluation of incoming messages against subscription rules involves a two-tier process. The first tier involves filtering out all the subscription rules that could not possibly apply to the incoming message. The second tier involves further evaluation of the incoming message, if needed, to determine which subscribers are to receive the incoming message. In another aspect of the embodiment, in cases where the publisher is the relational database system itself, queries that request for messages are not stored as subscription rules because publication of the messages is implicit.

Inventors

  • 👤 Neerja Bhatt
  • 👤 Dieter Gawlick
  • 👤 Ekrem Soylemez
  • 👤 Rahim Yaseem

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-06 16:16
CPC Classifications
G; G06; G06F; G06F16/00; G06F16/20; G06F16/24; G06F16/245; G06F16/2455; G06F16/24568; G06F16/24564; G06F16/24565; Y; Y10; Y10S; Y10S707/00; Y10S707/953; Y10S707/954; Y10S707/99931; Y10S707/99933; Y10S707/99934; Y10S707/99935

Claims Analysis

Total Claims: 48
Claim 1
Independent Claim 93 words
A method for implementing a content based publish-and-subscribe system in a relational database system, the method comprising the steps of: receiving a query that is written in a query language supported by the relational database system from a subscriber; storing the query in the relational database system as a subscription rule for determining whether incoming messages are to be sent to the subscriber; after storing the query, the relational database system determining whether the incoming messages satisfy the query; and publishing incoming messages to the subscriber when the incoming messages satisfy the query.
Claim 2
Independent Claim 93 words
A method for implementing a content based publish-and-subscribe system in a relational database system, the method comprising the steps of: receiving a query that is written in a query language supported by the relational database system from a subscriber; storing the query in the relational database system as a subscription rule for determining whether incoming messages are to be sent to the subscriber; after storing the query, the relational database system determining whether the incoming messages satisfy the query; and publishing incoming messages to the subscriber when the incoming messages satisfy the query.
Claim 3
Dependent Claim 57 words
The method of claim 1 wherein the step of publishing incoming messages to the subscriber further comprises the steps of: receiving incoming messages from a publisher; upon receiving the incoming messages, determining whether the incoming messages satisfy the subscription rule; and if the incoming messages satisfy the subscription rule, then publishing the incoming messages to the subscriber.
Claim 4
Dependent Claim 136 words
The method of claim 2 wherein the step of determining whether the incoming messages satisfy the subscription rule further comprises the steps of: evaluating the incoming messages against the array of rules associated with each column in an array of filters; and determining which subscription rules in the array of rules could possibly apply to the incoming messages; evaluating the incoming messages against the subscription rules that could possibly apply to the incoming messages and determining if further evaluation is needed for the incoming messages; and if further evaluation is needed, then determining if a simple follow-on evaluation is needed, and if a simple follow-on evaluation is needed, then proceeding with the simple follow-on evaluation; and determining if a complete evaluation is needed, and if a complete evaluation is needed, then proceeding with the complete evaluation.
Claim 5
Dependent Claim 21 words
The method of claim 3 wherein the complete evaluation further comprises using a query language engine of the relational database system.
Claim 6
Dependent Claim 76 words
The method of claim 1 wherein the step of storing the query in the relational database system as a subscription rule further comprises the steps of: creating an array of filters comprising one or more columns; determining to which column in the array of filters the subscription rule applies; and storing the subscription rule in an array of rules that is associated with the column to which the subscription rule applies in the array of filters.
Claim 7
Dependent Claim 108 words
The method of claim 5 wherein the step of determining to which column in the array of filters the subscription rule applies further comprises the steps of: parsing the query from the subscriber; normalizing the query into a series of expressions wherein each expression comprises one or more conditions joined by conjunctive operators and wherein each expression is combined with each other expression using a disjunctive operator; assigning each expression to one column in the array of filters; and storing each expression as the subscription rule in the array of rules that is associated with the column to which the subscription rule applies in the array of filters.
Claim 8
Dependent Claim 18 words
The method of claim 5 further comprising the step of organizing the array of rules in an index.
Claim 9
Dependent Claim 25 words
The method of claim 1 further comprising the step of specifying in the subscription rule a destination and a protocol for delivering the incoming messages.
Claim 10
Dependent Claim 34 words
The method of claim 1 wherein the step of publishing the incoming messages further comprises the step of delivering the incoming messages to a destination specified by the subscription rule submitted by the subscriber.
Claim 11
Dependent Claim 58 words
The method of claim 1 wherein the step of publishing the incoming messages further comprises the step of sending notifications of the incoming messages to a notification destination specified in the subscription rule submitted by the subscriber and in addition to delivering the incoming messages to a message destination specified by the subscription rule submitted by the subscriber.
Claim 12
Dependent Claim 15 words
The method of claim 10 wherein the notification destination is different from the message destination.
Claim 13
Dependent Claim 37 words
The method of claim 1 wherein the step of publishing the incoming messages further comprises the step of delivering the incoming messages to a destination deduced from the context that resulted in the publication of the message.
Claim 14
Dependent Claim 34 words
The method of claim 1 wherein the step of publishing the incoming messages further comprises the step of delivering the incoming messages using a protocol specified by the subscription rule submitted by the subscriber.
Claim 15
Dependent Claim 37 words
The method of claim 1 wherein the step of publishing the message further comprises the steps of: determining whether the subscriber qualifies to receive the incoming messages more than once; and delivering the incoming messages only once.
Claim 16
Dependent Claim 33 words
The method of claim 1 further includes the step of publishing to the subscriber previously published messages that have not been published to the subscriber when the previously published messages satisfy the query.
Claim 17
Dependent Claim 105 words
A computer-readable medium carrying one or more sequences of instructions for implementing a content based publish-and-subscribe system in a relational database system, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of: receiving a query that is written in a query language supported by the relational database system from a subscriber; storing the query in the relational database system as a subscription rule for determining whether incoming messages are to be sent to the subscriber; and publishing incoming messages to the subscriber when the incoming messages satisfy the query.
Claim 18
Dependent Claim 105 words
A computer-readable medium carrying one or more sequences of instructions for implementing a content based publish-and-subscribe system in a relational database system, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of: receiving a query that is written in a query language supported by the relational database system from a subscriber; storing the query in the relational database system as a subscription rule for determining whether incoming messages are to be sent to the subscriber; and publishing incoming messages to the subscriber when the incoming messages satisfy the query.
Claim 19
Dependent Claim 58 words
The computer-readable medium of claim 16 wherein the step of publishing incoming messages to the subscriber further comprises the steps of: receiving incoming messages from a publisher; upon receiving the incoming messages, determining whether the incoming messages satisfy the subscription rule; and if the incoming messages satisfy the subscription rule, then publishing the incoming messages to the subscriber.
Claim 20
Dependent Claim 137 words
The computer-readable medium of claim 17 wherein the step of determining whether the incoming messages satisfy the subscription rule further comprises the steps of: evaluating the incoming messages against the array of rules associated with each column in an array of filters; and determining which subscription rules in the array of rules could possibly apply to the incoming messages; evaluating the incoming messages against the subscription rules that could possibly apply to the incoming messages and determining if further evaluation is needed for the incoming messages; and if further evaluation is needed, then determining if a simple follow-on evaluation is needed, and if a simple follow-on evaluation is needed, then proceeding with the simple follow-on evaluation; and determining if a complete evaluation is needed, and if a complete evaluation is needed, then proceeding with the complete evaluation.
Claim 21
Dependent Claim 22 words
The computer-readable medium of claim 18 wherein the complete evaluation further comprises using a query language engine of the relational database system.
Claim 22
Dependent Claim 77 words
The computer-readable medium of claim 16 wherein the step of storing the query in the relational database system as a subscription rule further comprises the steps of: creating an array of filters comprising one or more columns; determining to which column in the array of filters the subscription rule applies; and storing the subscription rule in an array of rules that is associated with the column to which the subscription rule applies in the array of filters.
Claim 23
Dependent Claim 109 words
The computer-readable medium of claim 20 wherein the step of determining to which column in the array of filters the subscription rule applies further comprises the steps of: parsing the query from the subscriber; normalizing the query into a series of expressions wherein each expression comprises one or more conditions joined by conjunctive operators and wherein each expression is combined with each other expression using a disjunctive operator; assigning each expression to one column in the array of filters; and storing each expression as the subscription rule in the array of rules that is associated with the column to which the subscription rule applies in the array of filters.
Claim 24
Dependent Claim 43 words
The computer-readable medium of claim 20 further comprising one or more additional sequences of instructions which, when executed by the one or more processors, cause the one or more processors to perform the step of organizing the array of rules in an index.
Claim 25
Dependent Claim 50 words
The computer-readable medium of claim 16 further comprising one or more additional sequences of instructions which, when executed by the one or more processors, cause the one or more processors to perform the step of specifying in the subscription rule a destination and a protocol for delivering the incoming messages.
Claim 26
Dependent Claim 35 words
The computer-readable medium of claim 16 wherein the step of publishing the incoming messages further comprises the step of delivering the incoming messages to a destination specified by the subscription rule submitted by the subscriber.
Claim 27
Dependent Claim 59 words
The computer-readable medium of claim 16 wherein the step of publishing the incoming messages further comprises the step of sending notifications of the incoming messages to a notification destination specified in the subscription rule submitted by the subscriber and in addition to delivering the incoming messages to a message destination specified by the subscription rule submitted by the subscriber.
Claim 28
Dependent Claim 16 words
The computer-readable medium of claim 25 wherein the notification destination is different from the message destination.
Claim 29
Dependent Claim 38 words
The computer-readable medium of claim 16 wherein the step of publishing the incoming messages further comprises the step of delivering the incoming messages to a destination deduced from the context that resulted in the publication of the message.
Claim 30
Dependent Claim 35 words
The computer-readable medium of claim 16 wherein the step of publishing the incoming messages further comprises the step of delivering the incoming messages using a protocol specified by the subscription rule submitted by the subscriber.
Claim 31
Dependent Claim 38 words
The computer-readable medium of claim 16 wherein the step of publishing the message further comprises the steps of: determining whether the subscriber qualifies to receive the incoming messages more than once; and delivering the incoming messages only once.
Claim 32
Dependent Claim 34 words
The computer-readable medium of claim 16 further includes the step of publishing to the subscriber previously published messages that have not been published to the subscriber when the previously published messages satisfy the query.
Claim 33
Dependent Claim 94 words
A relational database system comprising a memory that includes one or more sequences of one or more instructions which, when executed by one or more processors, cause the one or more processors to perform the steps of: receiving a query that is written in a query language supported by the relational database system from a subscriber; storing the query in the relational database system as a subscription rule for determining whether incoming messages ale to be sent to the subscriber; and publishing incoming messages to the subscriber when the incoming messages satisfy the query.
Claim 34
Dependent Claim 94 words
A relational database system comprising a memory that includes one or more sequences of one or more instructions which, when executed by one or more processors, cause the one or more processors to perform the steps of: receiving a query that is written in a query language supported by the relational database system from a subscriber; storing the query in the relational database system as a subscription rule for determining whether incoming messages ale to be sent to the subscriber; and publishing incoming messages to the subscriber when the incoming messages satisfy the query.
Claim 35
Dependent Claim 59 words
The relational database system of claim 31 wherein the step of publishing incoming messages to the subscriber further comprises the steps of: receiving incoming messages from a publisher; upon receiving the incoming messages, determining whether the incoming messages satisfy the subscription rule; and if the incoming messages satisfy the subscription rule, then publishing the incoming messages to the subscriber.
Claim 36
Dependent Claim 138 words
The relational database system of claim 32 wherein the step of determining whether the incoming messages satisfy the subscription rule further comprises the steps of: evaluating the incoming messages against the array of rules associated with each column in an array of filters; and determining which subscription rules in the array of rules could possibly apply to the incoming messages; evaluating the incoming messages against the subscription rules that could possibly apply to the incoming messages and determining if further evaluation is needed for the incoming messages; and if further evaluation is needed, then determining if a simple follow-on evaluation is needed, and if a simple follow-on evaluation is needed, then proceeding with the simple follow-on evaluation; and determining if a complete evaluation is needed, and if a complete evaluation is needed, then proceeding with the complete evaluation.
Claim 37
Dependent Claim 23 words
The relational database system of claim 33 wherein the complete evaluation further comprises using a query language engine of the relational database system.
Claim 38
Dependent Claim 78 words
The relational database system of claim 31 wherein the step of storing the query in the relational database system as a subscription rule further comprises the steps of: creating an array of filters comprising one or more columns; determining to which column it the array of filters the subscription rule applies; and storing the subscription rule in an array of rules that is associated with the column to which the subscription rule applies in the array of filters.
Claim 39
Dependent Claim 110 words
The relational database system of claim 35 wherein the step of determining to which column in the array of filters the subscription rule applies further comprises the steps of: parsing the query from the subscriber; normalizing the query into a series of expressions wherein each expression comprises one or more conditions joined by conjunctive operators and wherein each expression is combined with each other expression using a disjunctive operator; assigning each expression to one column in the array of filters; and storing each expression as the subscription rule in the array of rules that is associated with the column to which the subscription rule applies in the array of filters.
Claim 40
Dependent Claim 44 words
The relational database system of claim 35 further comprising one or more additional sequences of instructions which, when executed by the one or more processors, cause the one or more processors to perform the step of organizing the array of rules in an index.
Claim 41
Dependent Claim 51 words
The relational database system of claim 31 further comprising one or more additional sequences of instructions which, when executed by the one or more processors, cause the one or more processors to perform the step of specifying in the subscription rule a destination and a protocol for delivering the incoming messages.
Claim 42
Dependent Claim 36 words
The relational database system of claim 31 wherein the step of publishing the incoming messages further comprises the step of delivering the incoming messages to a destination specified by the subscription rule submitted by the subscriber.
Claim 43
Dependent Claim 60 words
The relational database system of claim 31 wherein the step of publishing the incoming messages further comprises the step of sending notifications of the incoming messages to a notification destination specified in the subscription rule submitted by the subscriber and in addition to delivering the incoming messages to a message destination specified by the subscription rule submitted by the subscriber.
Claim 44
Dependent Claim 17 words
The relational database system of claim 40 wherein the notification destination is different from the message destination.
Claim 45
Dependent Claim 39 words
The relational database system of claim 31 wherein the step of publishing the incoming messages further comprises the step of delivering the incoming messages to a destination deduced from the context that resulted in the publication of the message.
Claim 46
Dependent Claim 36 words
The relational database system of claim 31 wherein the step of publishing the incoming messages further comprises the step of delivering the incoming messages using a protocol specified by the subscription rule submitted by the subscriber.
Claim 47
Dependent Claim 39 words
The relational database system of claim 31 wherein the step of publishing the message further comprises the steps of: determining whether the subscriber qualifies to receive the incoming messages more than once; and delivering the incoming messages only once.
Claim 48
Dependent Claim 35 words
The relational database system of claim 31 further includes the step of publishing to the subscriber previously published messages that have not been published to the subscriber when the previously published messages satisfy the query.

References Cited (Backward Citations)

US5870522A Cited
JPH06319024A Cited
US5873084A Cited
US6021443A Cited
US6038601A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2005-06-10 2005-12-10 2006-06-11 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2009-06-10 2009-12-10 2010-06-11 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2013-06-10 2013-12-10 2014-06-11 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag