IP Library Granted Patent US 8,694,536
Granted Patent B2
US 8,694,536 · App. 13/298,230 · Granted Apr 8, 2014

Fast matching for content-based addressing

Inventor: Dan Leshchiner (Sunnyvale, CA)
Assignee: TIBCO Software Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,694,536
App. No.
13/298,230
Granted
Apr 8, 2014
Kind
B2
Abstract

Disclosed are systems and methods for efficient matching for content-based addressing wherein the systems and methods may: accept, at a receiver machine, a query; generate, at the receiver machine, a tree structure ordered by one or more fields of the query; analyze, at the receiver machine, a message from the sender machine; search, by the receiver machine, the tree structure using content from one or more fields of the message; determine, by the receiver machine, if the content values of the message match a content value of the query stored in the tree structure; and accept, by the receiver machine, the message if the content value of the message matches one or more content values of the query.

Claims (50)

1. A method for efficient matching for content-based addressing, the method comprising:

accepting, at a receiver machine, a query, wherein the query comprises one or more fields and one or more values, wherein the one or more fields are associated with a category of content, and wherein the one or more values are associated with a particular type of content;

generating, at the receiver machine, a tree structure ordered by the one or more fields of the query, wherein the tree structure comprises one or more tree nodes and the one or more tree nodes comprise one or more query nodes;

analyzing, at the receiver machine, a message from the sender machine, wherein the message comprises a content field associated with a content value;

searching, by the receiver machine, the tree structure using the content field of the message;

determining, by the receiver machine, if the content value of the message matches a content value of the query stored in the tree structure; and

accepting, by the receiver machine, the message if the content value of the message matches one or more content values of the query.

2. The method of claim 1 , further comprising:

sending a second query; and

placing the second query in the tree structure based on the order of one or more fields of the second query.

3. The method of claim 1 , further comprising:

sending a second query having the same field as the field of the first query and a different value than the value of the first query; and

placing the value of the second query in the same query node in the tree structure, wherein the query node is associated with the field of the first and second queries and the value of the first query and the value of the second query.

4. The method of claim 1 , further comprising:

sending a second query having a different field than the field of the first query; and

placing the field of the second query in a different query node in the tree structure than the query node associated with the field of the first query.

5. The method of claim 1 , wherein the tree structure is constructed by sorting the queries from the receiver machine in canonical order based on the field for each query.

6. The method of claim 1 , wherein the tree structure comprises one or more query nodes, wherein query nodes comprise at least one field and at least one value associated with the query.

7. The method of claim 1 , wherein the field is a ticker and the value is a particular ticker symbol.

8. The method of claim 1 , wherein the query is “Ticker=TIBX.”.

9. The method of claim 1 , wherein the tree structure comprises a root node, one or more internal nodes, and one or more leaf nodes.

10. A system for efficient matching for content-based addressing, the system comprising:

a receiver machine configured to:

accept a query from a receiver application, wherein the query comprises one or more fields and one or more values, wherein the one or more fields are associated with a category of content, and wherein the one or more values are associated with a particular type of content;

generate a tree structure ordered by the one or more fields of the query, wherein the tree structure comprises one or more tree nodes and the one or more tree nodes comprise one or more query nodes;

analyze a message from the sender machine, wherein the message comprises a content field associated with a content value;

search the tree structure using the content field of the message;

determine if the content value of the message matches a content value of the query stored in the tree structure; and

accept the message if the content value of the message matches one or more content values of the query.

11. The system of claim 10 , the receiver machine further configured to:

send a second query; and

place the second query in the tree structure based on the order of one or more fields of the second query.

12. The system of claim 10 , the receiver machine further configured to:

send a second query having the same field as the field of the first query and a different value than the value of the first query; and

place the value of the second query in the same query node in the tree structure, wherein the query node is associated with the field of the first and second queries and the value of the first query and the value of the second query.

13. The system of claim 10 , the receiver machine further configured to:

send a second query having a different field than the field of the first query; and

place the field of the second query in a different query node in the tree structure than the query node associated with the field of the first query.

14. The system of claim 10 , wherein the tree structure is constructed by sorting the queries from the receiver machine in canonical order based on the field for each query.

15. The system of claim 10 , wherein the tree structure comprises one or more query nodes, wherein query nodes comprise at least one field and at least one value associated with the query.

16. The system of claim 10 , wherein the field is a ticker and the value is a particular ticker symbol.

17. The system of claim 10 , wherein the query is “Ticker=TIBX.”.

18. The system of claim 10 , wherein the tree structure comprises a root node, one or more internal nodes, and one or more leaf nodes.

19. Logic for deploying an application, the logic being embodied in a computer-readable medium and when executed operable to:

accept a query from a receiver machine, wherein the query comprises one or more fields and one or more values, wherein the one or more fields are associated with a category of content, and wherein the one or more values are associated with a particular type of content;

generate a tree structure ordered by the one or more fields of the query, wherein the tree structure comprises one or more tree nodes and the one or more tree nodes comprise one or more query nodes;

analyze a message from the sender machine, wherein the message comprises a content field associated with a content value;

search the tree structure using the content field of the message;

determine if the content value of the message matches a content value of the query stored in the tree structure; and

accept the message if the content value of the message matches one or more content values of the query.

Assignments (15)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
CHANGE OF NAME Recorded Feb 7, 2023
From: TIBCO SOFTWARE INC.
To: CLOUD SOFTWARE GROUP, INC.
Reel/Frame 062714/0634 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
RELEASE REEL 052115 / FRAME 0318 Recorded Oct 3, 2022
From: KKR LOAN ADMINISTRATION SERVICES LLC
To: TIBCO SOFTWARE INC.
Reel/Frame 061588/0511 →
RELEASE (REEL 034536 / FRAME 0438) Recorded Sep 30, 2022
From: JPMORGAN CHASE BANK, N.A.
To: TIBCO SOFTWARE INC.
Reel/Frame 061574/0963 →
RELEASE (REEL 054275 / FRAME 0975) Recorded May 7, 2021
From: JPMORGAN CHASE BANK, N.A.
To: TIBCO SOFTWARE INC.
Reel/Frame 056176/0398 →
SECURITY AGREEMENT Recorded Nov 2, 2020
From: TIBCO SOFTWARE INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 054275/0975 →
SECURITY AGREEMENT Recorded Mar 6, 2020
From: TIBCO SOFTWARE INC.
To: KKR LOAN ADMINISTRATION SERVICES LLC, AS COLLATERAL AGENT
Reel/Frame 052115/0318 →
SECURITY INTEREST Recorded Dec 5, 2014
From: TIBCO SOFTWARE INC.; TIBCO KABIRA LLC; NETRICS.COM LLC
To: JPMORGAN CHASE BANK., N.A., AS COLLATERAL AGENT
Reel/Frame 034536/0438 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 5, 2014
From: LESHCHINER, DAN
To: TIBCO SOFTWARE INC.
Reel/Frame 034112/0584 →
Continuity (2)
Provisional Application 61414327 · Nov 16, 2010
Related Publication 20120131046A1 · May 24, 2012