IP Library Granted Patent US 8,407,723
Granted Patent B2
US 8,407,723 · App. 12/576,186 · Granted Mar 26, 2013

JAVA virtual machine having integrated transaction management system and facility to query managed objects

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,407,723
App. No.
12/576,186
Granted
Mar 26, 2013
Kind
B2
Abstract

A computing system and method is a specification of user-defined business logic is provided as JAVA program instructions (or another programming language) which does not natively provide for specification of full transactionality, to accomplish a fully transactional application, including executed managed objects. The managed objects are persisted in a shared memory of the computing system, such that a scope of the objects is global to the fully transactional application. Furthermore, a catalog of the managed object is maintained. A query interface is provided for querying the managed objects, in order to receive a query from an application, to process the catalog, and to provide a result indication of at least one of the managed objects back to the querying application. Thus, for example, the application may process the managed objects that are indicated in the query result.

Claims (55)

1. A computing system, comprising at least one computing device configured to execute computer program instructions to:

accomplish a fully transactional application defined at least in part using the Java programming language, including executing managed objects, wherein the managed objects are persisted in a shared memory of the computing system, such that a scope of the objects is global to the fully transactional application;

maintain a parametric mapping of the managed objects, the parametric mapping including at least one key for each of at least some of the cataloged managed objects with an index for the keys maintained in the shared memory such that high-performance queries may be performed against the managed objects using the index; and

receive from the application a parametric selection of the managed objects relative to the maintained catalog, and to provide to the application a result of the parametric selection that is a portion of the managed objects.

2. The computing system of claim 1 , wherein:

the at least one key for each of the managed objects in the catalog is defined using Java constructs with respect to a definition of that managed object.

3. The computing system of claim 2 , wherein:

the Java constructs include annotations, and an annotation to define a key captures information including at least one member from the group consisting of the name of the key, a list of one or more fields making up the key, a property indicating whether the key is unique, and/or a property indicating whether the key is ordered.

4. A computer-implemented method carried out by at least one computing device, the method comprising:

by the at least one computing device, executing computer program instructions to accomplish a fully transactional application defined at least in part using the Java programming language, including executing managed objects, wherein the managed objects are persisted in a shared memory of the computing system, such that a scope of the objects is global to the fully transactional application;

by the at least one computing device, executing computer program instructions to maintain a parametric mapping of the managed objects, the parametric mapping including at least one key for each of at least some of the cataloged managed objects with an index for the keys maintained in the shared memory such that high-performance queries may be performed against the managed objects using the index; and

by the at least one computing device, executing computer program instructions to receive from the application a parametric selection of the managed objects relative to a maintained catalog, and to provide to the application a result of the parametric selection that is a portion of the managed objects.

5. The computer-implemented method of claim 4 , wherein:

the at least one key for each of the managed objects in the catalog is defined using Java constructs with respect to a definition of that managed object.

6. The computer-implemented method of claim 5 , wherein:

the Java constructs include annotations and an annotation to define a key captures information including at least one member from the group consisting of the name of the key, a list of one or more fields making up the key, a property indicating whether the key is unique, and/or a property indicating whether the key is ordered.

7. A computing system, comprising at least one computing device configured to execute computer program instructions to:

accomplish a fully transactional application defined at least in part using the Java programming language, including executing managed objects, wherein the managed objects are persisted in a shared memory of the computing system, such that a scope of the objects is global to the fully transactional application;

maintain a catalog of the managed objects:

the catalog of managed objects includes at least one key for each of the cataloged managed objects, the parametric mapping including at least one key for each of at least some of the cataloged managed objects with an index for the keys maintained in the shared memory such that high-performance queries may be performed against the managed objects using the index, the at least one key for each of the managed objects in the catalog is defined using Java constructs with respect to a definition of that managed object; and

provide a query interface for querying the managed objects, in order to receive a query from an application, to process the catalog including processing the keys included in the catalog, and to provide a result indication of at least one of the managed objects back to the querying application.

8. The computing system of claim 7 , wherein:

the Java constructs include annotations.

9. The computing system of claim 7 , wherein:

the catalog of managed objects is an index of the keys.

10. The computing system of claim 7 , wherein:

at least some of the keys are defined to be unique keys and at least some of the keys are defined to be ordered keys.

11. The computing system of claim 7 , wherein:

the query interface includes at least one class via which to define key name/value pairs.

12. The computing system of claim 7 , wherein:

the query interface includes at last one class via which to instantiate a query definition and execution.

13. The computing system of claim 7 , wherein:

the catalog is configured such that update transactions to the catalog are transactionally isolated from other transactions of the computing system.

14. The computing system of claim 7 , wherein:

the query interface includes a mechanism to atomically select a managed object if the managed object exists and, if the managed object does not exist, create an instance of the managed object.

15. A computer-implemented method carried out by at least one computing device, the method comprising:

by the at least one computing device, executing computer program instructions to accomplish a fully transactional application defined at least in part using the Java programming language, including executing managed objects, wherein the managed objects are persisted in a shared memory of the computing system, such that a scope of the objects is global to the fully transactional application;

by the at least one computing device, executing computer program instructions to maintain a catalog of the managed objects the catalog of managed objects includes at least one key for each of the cataloged managed objects with an index maintained in shared memory for the keys such that high-performance queries may be performed against the managed objects using the index; and

by the at least one computing device, executing computer program instructions to provide a query interface for querying the managed objects, in order to receive a query from an application, to process the catalog, and to provide a result indication of at least one of the managed objects back to the querying application.

16. The computer-implemented method of claim 15 , wherein:

the at least one key for each of the managed objects in the catalog is defined using Java constructs with respect to a definition of that managed object.

17. The computer-implemented method of claim 16 , wherein:

the Java constructs include annotations and an annotation to define a key captures information including at least one member from the group consisting of the name of the key, a list of one or more fields making up the key, a property indicating whether the key is unique, and/or a property indicating whether the key is ordered.

18. The computer-implemented method of claim 16 , wherein:

the catalog of managed objects is an index of the keys.

19. The computer-implemented method of claim 16 , wherein:

at least some of the keys are defined to be unique keys and at least some of the keys are defined to be ordered keys.

20. The computer-implemented method of claim 16 , wherein:

the query interface includes at least one class via which to define key name/value pairs.

21. The computer-implemented method of claim 15 , wherein:

the query interface includes at last one class via which to instantiate a query definition and execution.

22. The computer-implemented method of claim 15 , wherein:

the catalog is configured such that update transactions to the catalog are transactionally isolated from other transactions of the computing system.

23. The computer-implemented method of claim 15 , wherein:

the query interface includes a mechanism to atomically select a managed object if the managed object exists and, if the managed object does not exist, create an instance of the managed object.

Assignments (19)
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 →
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 →
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 →
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 →
NUNC PRO TUNC ASSIGNMENT Recorded Nov 13, 2018
From: TIBCO KABIRA LLC
To: TIBCO SOFTWARE INC.
Reel/Frame 047490/0354 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE'S ADDRESS PREVIOUSLY RECORDED AT REEL: 034300 FRAME: 0206. ASSIGNOR(S) HEREBY CONFIRMS THE CERTIFICATE OF CONVERSION. Recorded Dec 8, 2014
From: TIBCO KABIRA, INC.
To: TIBCO KABIRA LLC
Reel/Frame 034679/0140 →
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 →
CHANGE OF NAME Recorded Nov 19, 2014
From: KABIRA TECHNOLOGIES, INC.
To: TIBCO KABIRA, INC.
Reel/Frame 034299/0053 →
CERTIFICATE OF CONVERSION Recorded Nov 19, 2014
From: TIBCO KABIRA, INC.
To: TIBCO KABIRA LLC
Reel/Frame 034300/0206 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 12, 2009
From: LIND, OTTO; PILE, JONATHON C.; SARMIENTO, RAMIRO; SIFTER, DANIEL J.; STONE, DAVID; ZANG, XIGUANG; PHILLIPS, MARK
To: KABIRA TECHNOLOGIES, INC.
Reel/Frame 023359/0065 →