IP Library Granted Patent US 8,606,877
Granted Patent B2
US 8,606,877 · App. 12/433,742 · Granted Dec 10, 2013

Java virtual machine having integrated transaction management system

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,606,877
App. No.
12/433,742
Filed
Apr 30, 2009
Granted
Dec 10, 2013
Kind
B2
Art Unit
2453
USPC
709/217
Abstract

A computing system comprises a plurality of computing nodes and is configured such that each computing node includes a processor configured to execute JAVA computer program instructions. The computing nodes cooperate to form a cluster, wherein the JAVA computer program instructions being executed by the plurality of computing nodes collectively accomplish a fully transactional application. Each application data object partition is associated with one of the computing nodes as a primary node for application data objects of that partition and further associated with at least one of the computing nodes as at least one secondary node for application data objects of that partition. Messages relative to an application data object are provided to the primary node for the application data object as well as to the at least one secondary node for that application data object, for updates. The particular application object is readable at any of the primary node and the at least one secondary node for that particular application data object.

Claims (58)

1. A computing system comprising a plurality of computing nodes, the computing system configured such that:

each computing node includes a processor configured to execute computer program instructions in a platform independent language, wherein the computing nodes cooperate to form a cluster to support distributed transactional processing;

application objects are organized into partitions, wherein each partition is associated with one of the computing nodes as an active node for application data objects of that partition and further associated with at least one of the computing nodes as a replica node for application objects of that partition;

the computing nodes are configured such that messages relative to an application object are provided to the active node for the application object as well as to at least one replica node for that application object, for updates;

the computing system including a virtual machine integration layer integrating at least one Virtual Machine (VM) with a transaction processing platform that is transparent to the platform independent language;

wherein the computer program instructions executed by the cluster of computing nodes collectively accomplish a fully transactional distributed application executing on the at least one virtual machine.

2. The computing system of claim 1 , wherein:

the computing nodes are configured such that the particular application object is readable at any of the active node and the at least one replica node for that particular application data object.

3. The computing system of claim 1 , wherein the computing system is configured such that:

for the particular application object, all the nodes of the partition of that particular application object are configured to receive requests relating to the particular application object and to cause the requests to be routed to the active node for that particular application object.

4. The computing system of claim 3 , wherein:

causing the requests to be routed to the active node for that particular data object is accomplished transparently.

5. The computing system of claim 3 , wherein:

causing the requests to be routed to the active node for that particular application object is accomplished transparently for all application objects of the partition to which the particular data object belongs.

6. The computing system of claim 5 , wherein:

transparent routing, for application objects of a partition, to a designated node.

7. The computing system of claim 1 , wherein:

the replica node is a single one of the computing nodes.

8. The computing system of claim 1 , wherein:

the system is configured to change the designated node to which to route requests to the replica node.

9. The computing system of claim 8 , wherein:

the computing system is configured to change which node is the designated node based on the active node being unavailable.

10. The computing system of claim 9 , wherein:

the computing system is further configured to restore a state of the application object from one of the at least one replica nodes based on the active node again becoming available.

11. The computing system of claim 1 , wherein:

the computing system is configured to use an optimized implicit commit transactional protocol, wherein operations including creates, updates, and deletes for an application data object are transparently provided in a single request to the at least one replica node along with a commit for that operation and no transaction locks are taken on the at least one replica node as a result of such operations.

12. The system of claim 1 , wherein the fully transactional application preserves atomicity, consistency, isolation, and durability properties of a transaction.

13. The system of claim 1 , wherein the fully transactional application supports transactional locking, deadlock detection, and isolation.

14. The system of claim 1 , wherein the system comprises service adaptors arranged to transparently accomplish user-defined business logic provided in the platform independent language in conjunction with generic transaction processing logic.

15. The system of claim 14 , wherein transaction bindings are provided to support the user-defined business logic being executed by the at least one virtual machine employing the transaction processing features of the underlying transaction processing platform.

16. A computer program product comprising at least one tangible non-transitory computer readable medium having computer program instructions tangibly embodied thereon, the computer program instructions to configure a computing system comprising a plurality of computing nodes to:

configure each computing node to execute computer program instructions in a platform independent language, wherein the computing nodes cooperate to form a cluster to support distributed transactional processing, wherein the computer program instructions being executed by the plurality of computing nodes collectively accomplish a fully transactional application;

organize application objects into partitions, wherein each partition is associated with one of the computing nodes as an active node for application objects of that partition and further associated with at least one of the computing nodes as a replica node for application objects of that partition;

configure the computing nodes such that messages relative to an application object are provided to the active node for the application object as well as to at least one replica node for that application object, for updates;

the computing system including a virtual machine integration layer integrating at least one Virtual Machine (VM) with a transaction processing platform that is transparent to the platform independent language;

wherein the computer program instructions executed by the cluster of computing nodes collectively accomplish a fully transactional distributed application executing on the at least one virtual machine.

17. The computer program product of claim 16 , wherein:

the computer program instructions configure the computing nodes such that the particular application object is readable at any of the active node and the at least one replica node for that particular application data object.

18. The computer program product of claim 16 , wherein the computer program instructions configure the computing nodes such that, for the particular application object, all the nodes of the partition of that particular application object are configured to receive requests relating to the particular application object and to cause the requests to be routed to the active node for that particular application object.

19. The computer program product of claim 18 , wherein:

causing the requests to be routed to the active node for that particular application object is accomplished transparently.

20. The computer program product of claim 18 , wherein:

causing the requests to be routed to the active node for that particular data object is accomplished transparently for all application objects of the partition to which the particular data object belongs.

21. The computer program product of claim 20 , wherein:

transparent routing for application objects of a partition, to a designated node.

22. The computer program product of claim 16 , wherein:

the at least one replica node is a single one of the computing nodes.

23. The computer program product of claim 16 , wherein:

the computer program instructions configure the computing nodes to change the designated node to which to route requests to one of the at least one replica node.

24. The computer program product of claim 23 , wherein the computer program instructions configure the computing nodes to change which node is the designated node based on the active node being unavailable.

25. The computer program product of claim 24 , wherein:

the computer program instructions configure the computing nodes to restore a state of the application object from one of the at least one replica nodes based on the active node again becoming available.

26. The computer program product of claim 16 , wherein:

the computer program instructions configure the computing nodes to use an optimized implicit commit transactional protocol, wherein operations including creates, updates, and deletes for an application data object are provided in a single request to the at least one replica node along with a commit for that operation and no transaction locks are taken on the least one replica node as a result of such operations.

27. The computer program product of claim 16 , wherein the fully transactional application preserves atomicity, consistency, isolation, and durability properties of a transaction.

28. The computer program product of claim 16 , wherein the fully transactional application supports transactional locking, deadlock detection, and isolation.

29. The computer program product of claim 16 , wherein the system comprises the transaction processing platform is configured to execute instantiated service adaptors arranged to accomplish user-defined business logic provided in the platform independent language in conjunction with generic transaction processing logic.

30. The computer program product of claim 29 , wherein transaction bindings are provided to support the user-defined business logic being executed by the at least one virtual machine employing the transaction processing features of the underlying transaction processing platform.

Assignments (18)
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: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
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 →
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 →
CERTIFICATE OF CONVERSION Recorded Nov 19, 2014
From: TIBCO KABIRA, INC.
To: TIBCO KABIRA LLC
Reel/Frame 034300/0206 →
CHANGE OF NAME Recorded Nov 19, 2014
From: KABIRA TECHNOLOGIES, INC.
To: TIBCO KABIRA, INC.
Reel/Frame 034299/0053 →