IP Library Granted Patent US 8,751,671
Granted Patent B2
US 8,751,671 · App. 13/298,236 · Granted Jun 10, 2014

Hierarchical bitmasks for indicating the presence or absence of serialized data fields

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,751,671
App. No.
13/298,236
Granted
Jun 10, 2014
Kind
B2
Abstract

Disclosed are systems and methods for communicating with a sender machine and a receiver machine, and analyzing a bitmask associated with a message to be sent from the sender machine to the receiver machine, such that the bitmask comprises one or more presence bits and one or more absence bits, such that the presence bits indicate that an associated field of the message are included in the message and the absence bits indicate that an associated field of the message are omitted in the message. The systems and methods also dynamically determine compression instructions to compress the bitmask, and provide the compression instructions to the sender machine, wherein the compression instructions reduce size of the bitmask associated with the message to be sent to the receiver machine.

Claims (36)

1. A format server for providing bitmask compression instructions, wherein the format server is operable to:

communicate with a sender machine and a receiver machine;

analyze a bitmask associated with a message to be sent from the sender machine to the receiver machine, wherein the bitmask comprises one or more presence bits and one or more absence bits, wherein the presence bits indicate that an associated field of the message are included in the message and the absence bits indicate that an associated field of the message are omitted in the message;

dynamically determine compression instructions to compress the bitmask, wherein the compression instructions comprise:

generating a tree using the presence bits and the absence bits; and

generating the compressed bitmask by traversing the tree comprising the presence bits and the absence bits; and

provide the compression instructions to the sender machine, wherein the compression instructions reduce size of the bitmask associated with the message to be sent to the receiver machine.

2. The format server of claim 1 , wherein the format server is further operable to provide the compression instructions to the receiver machine, wherein the receiver machine utilizes the compression instructions to uncompress the compressed bitmask of the message.

3. The format server of claim 1 , wherein the message is compressed according to the bit mask and the bitmask of the message is compressed according to the compression instructions.

4. The format server of claim 1 , wherein the message may have one or more fields that are sorted to group together one or more fields likely to have a value and group together one or more fields not likely to have a value.

5. The format server of claim 1 , wherein the format server is further operable to invert the bitmask prior to compressing the bitmask.

6. The format server of claim 1 , wherein the compression instructions can be used by the receiver machine to decompress the compressed bitmask by traversing the tree, reconstructing all subtrees having an absence bit, and copying a leaf node when traversed.

7. The format server of claim 1 , wherein the format server is a message-oriented middleware server.

8. The format server of claim 1 , wherein the sender and receiver machines that receive the compression instructions can store the compression instructions for future message compression or decompression of bitmasks sent or received by the sender and receiver machines without having to communicate with the format server.

9. A method for providing bitmask compression instructions, where the method comprises:

communicating, by a format server, with a sender machine and a receiver machine;

analyzing a bitmask associated with a message to be sent from the sender machine to the receiver machine, wherein the bitmask comprises one or more presence bits and one or more absence bits, wherein the presence bits indicate that an associated field of the message are included in the message and the absence bits indicate that an associated field of the message are omitted in the message;

dynamically determining compression instructions to compress the bitmask, wherein the compression instructions comprise:

generating a tree using the presence bits and the absence bits; and

generating the compressed bitmask by traversing the tree comprising the presence bits and the absence bits; and

providing the compression instructions to the sender machine, wherein the compression instructions reduce size of the bitmask associated with the message to be sent to the receiver machine.

10. The method of claim 9 , wherein the method further comprises providing the compression instructions to the receiver machine, wherein the receiver machine utilizes the compression instructions to uncompress the compressed bitmask of the message.

11. The method of claim 9 , wherein the message is compressed according to the bit mask, and the bitmask of the message is compressed according to the compression instructions.

12. The method of claim 9 , wherein the message may have one or more fields that are sorted to group together one or more fields likely to have a value and group together one or more fields not likely to have a value.

13. The method of claim 9 , wherein the method further comprises inverting the bitmask prior to compressing the bitmask.

14. The method of claim 9 , wherein the compression instructions can be used by the receiver machine to decompress the compressed bitmask by traversing the tree, reconstructing all subtrees having an absence bit, and copying a leaf node when traversed.

15. The method of claim 9 , wherein the format server is a message-oriented middleware server.

16. The method of claim 9 , wherein the sender and receiver machines that receive the compression instructions can store the compression instructions for future message compression or decompression of bitmasks sent or received by the sender and receiver machines without having to communicate with the format server.

17. Logic for providing bitmask message compression instructions, the logic being embodied in a non-transitory computer-readable medium and when executed operable to:

communicate with a sender machine and a receiver machine;

analyze a bitmask associated with a message to be sent from the sender machine to the receiver machine, wherein the bitmask comprises one or more presence bits and one or more absence bits, wherein the presence bits indicate that an associated field of the message are included in the message and the absence bits indicate that an associated field of the message are omitted in the message;

dynamically determine compression instructions to compress the bitmask, wherein the compression instructions comprise:

generating a tree using the presence bits and the absence bits; and

generating the compressed bitmask by traversing the tree comprising the presence bits and the absence bits; and

provide the compression instructions to the sender machine, wherein the compression instructions reduce size of the bitmask associated with the message to be sent to the receiver machine.

18. The logic of claim 17 , wherein the logic when executed is further operable to provide the compression instructions to the receiver machine, wherein the receiver machine utilizes the compression instructions to uncompress the compressed bitmask of the message.

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/0595 →
Continuity (2)
Provisional Application 61414342 · Nov 16, 2010
Related Publication 20120131117A1 · May 24, 2012