IP Library Granted Patent US 8,219,852
Granted Patent B2
US 8,219,852 · App. 12/433,094 · Granted Jul 10, 2012

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,219,852
App. No.
12/433,094
Granted
Jul 10, 2012
Kind
B2
Abstract

A computing system is configured to deploy a JAVA application for execution in a distributed manner. The computing system includes a plurality of computing nodes including a domain manager node, the plurality of computing nodes forming a computing domain configured as an administrative grouping of the nodes administered by the domain manager node. The domain manager node is configured to provide, to each of the computing nodes, a main portion of the JAVA application. The main portion defines, for each computing node, a portion of the behavior of the JAVA application to be accomplished by that computing node. Furthermore, each computing node is configured to receive at least one class file having classes appropriate for the portion of the behavior of the JAVA application defined, by the main portion, to be accomplished by that computing node.

Claims (73)

1. A computing system configured to deploy an application in a platform independent programming language for execution in a distributed manner, the computing system comprising:

a plurality of computing nodes including a domain manager node, the plurality of computing nodes forming a computing domain configured as an administrative grouping of the nodes administered by the domain manager node; and

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 domain manager node coordinating the deployment and distribution of distributed transactional applications to the computing domain, the domain manager is configured to provide, to each of the computing nodes, a first portion of the application;

the first portion defines, for each computing node, a portion of the behavior of the application to be accomplished by that computing node; and

each computing node is configured to receive from the domain manager at least one executable file for the portion of the behavior of the application defined, by the first portion, to be accomplished by that computing node;

wherein distributed applications for transactional processing on one or more virtual machines are transparently distributed and managed; and

wherein the integration layer includes at least one of service adaptors and transaction bindings to support user-defined business logic being executed by the one or more virtual machines employing the transaction processing features of the underlying transaction processing platform.

2. The computing system of claim 1 , wherein:

the computing system is configured such that transactions on objects of the application may be distributed across multiple ones of the computing nodes.

3. The computing system of claim 2 , wherein:

the transactions on objects of the application being distributed across multiple ones of the computing nodes includes maintaining, across the multiples ones of the computing nodes and in a distributed manner, transactional objects that are indicative of a transactional state of the application.

4. The computing system of claim 2 , wherein:

the transactional objects are distributed across multiple ones of the computing nodes so as to maintain a state of the transactional objects in a fault-tolerant manner.

5. The computing system of claim 4 , wherein:

distributing the objects across multiple ones of the computing nodes includes replicating each of at least some of the transactional objects from an active computing node for that object to at least one replica computing node for that object.

6. The computing system of claim 5 , wherein:

the system is configured such that, when one of the computing nodes becomes inoperable, at least one other computing node has access to a state of the transactional objects for which that inoperable computing node was active, in order to continue to accomplish the behavior of the application in a fault tolerant manner, without the inoperable computing node.

7. The computing system of claim 1 , wherein the computing system is further configured to:

execute a deployment tool, the deployment tool configured to define, to the domain manager, which computing nodes form the computing domain.

8. The computing system of claim 7 , wherein:

the deployment tool is configured to dynamically change the domain definition to add a new computing node to the computing domain while the computing nodes of the domain are currently executing the application; and

data required by a portion of the behavior of the application defined, by the first portion, to be accomplished by the new computing node is accessible via at least one transactional object managed by computing nodes of the domain other than the new computing node.

9. A method of deploying an application in a platform independent programming language for execution in a distributed manner, comprising:

providing a plurality of computing nodes including a domain manager node, the plurality of computing nodes forming a computing domain configured as an administrative grouping of the nodes administered by the domain manager node wherein the domain manager coordinates the deployment and distribution of transactional applications to the computing domain, the domain manager;

providing 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;

providing, by the domain manager node, to each of the computing nodes, a first portion of the application, wherein the first portion defines, for each computing node, a portion of the behavior of the application to be accomplished by that computing node; and

receiving by each computing node at least one executable file appropriate for the portion of the behavior of the application defined, by the first portion, to be accomplished by that computing node;

wherein distributed applications for transaction processing on one or more virtual machines are transparently distributed and managed;

wherein at least one of service adaptors and transaction bindings are provided to support user-defined business logic being executed by the one or more virtual machines employing the transaction processing features of the underlying transaction processing platform.

10. The method of claim 9 , wherein:

the computing system is configured such that transactions on objects of the application may be distributed across multiple ones of the computing nodes.

11. The method of claim 10 , wherein:

maintaining, across the multiples ones of the computing nodes and in a distributed manner, objects that are indicative of a transactional state of the application, to distribute the transactions on objects of the application across multiple ones of the computing nodes.

12. The method system of claim 9 , wherein:

the objects are distributed across multiple ones of the computing nodes so as to maintain a state of the objects in a fault-tolerant manner.

13. The method of claim 12 , wherein:

distributing the objects across multiple ones of the computing nodes includes replicating each of at least some of the objects from an active computing node for that object to at least one replica node for that object.

14. The method of claim 13 , wherein:

the computing system is configured such that, when one of the computing nodes becomes inoperable, at least one other computing node has access to a state of the objects for which that inoperable computing node was active, in order to continue to accomplish the behavior of the application in a fault tolerant manner, without the inoperable computing node.

15. The method of claim 9 , wherein the computing system is further comprising:

executing a deployment tool to define, to the domain manager, which computing nodes form the computing domain.

16. The method of claim 15 , further comprising:

configuring the deployment tool to dynamically change the domain definition to add a new computing node to the computing domain while the computing nodes of the domain are currently executing the application; and

wherein data required by a portion of the behavior of the application defined, by the first portion, to be accomplished by the new computing node is accessible via at least one object managed by computing nodes of the domain other than the new computing node.

17. The computer system of claim 1 , further comprising location transparent distribution including location transparency for managed objects.

18. The computer system of claim 17 , wherein the location transparent distribution includes providing for each managed object a distributed reference containing the location where the object was created.

19. The computer system of claim 17 , wherein the location transparent distribution comprises location discovery for runtime discovery of location information.

20. The computer system of claim 1 , wherein a new node joins a domain that is currently executing an application, the application is deployed to the new node transparently.

21. The method of claim 11 , further comprising: providing location transparent distribution including location transparency for objects.

22. The method of claim 21 , wherein providing location transparent distribution includes generating for each managed object a distributed reference containing the location where the object was created.

23. The method of claim 21 , wherein the providing location transparent distribution comprises location discovery for runtime discovery of location information.

24. The computer system of claim 1 , wherein a new node joins a domain that is currently executing an application, the application is deployed to the new node transparently.

25. The computer system of claim 1 , wherein code of the platform independent programming language of the application transparently executes with transaction processing semantics.

26. The computer system of claim 25 , wherein a user-defined business logic specified in the platform independent language is executed on a Virtual Machine and transparently accesses transaction processing features of the transactional processing platform.

27. A computer system configured to deploy an application in a platform independent programming language for execution in a distributed manner, the computing system comprising:

a plurality of computing nodes including a domain manager node, the plurality of computing nodes forming a computing domain configured as an administrative grouping of the nodes administered by the domain manager node; and

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 domain manager node coordinating the deployment and distribution of distributed transactional applications to the computing domain, the domain manager is configured to provide, to each of the computing nodes, a first portion of the application;

the first portion defines, for each computing node, a portion of the behavior of the application to be accomplished by that computing node; and

each computing node is configured to receive from the domain manager at least one executable file for the portion of the behavior of the application defined, by the first portion, to be accomplished by that computing node;

wherein distributed applications for transactional processing on one or more virtual machines are transparently distributed and managed;

wherein transaction bindings and a virtual machine interpreter are provided to support user-defined business logic being executed by the one or more virtual machines employing the transaction processing features of the underlying transaction processing platform.

28. The method of claim 9 , wherein a new node joins a domain that is currently executing an application, the application is deployed to the new node transparently.

29. The method of claim 9 , wherein code of the platform independent programming language of the application transparently executes with transaction processing semantics.

30. The system of claim 1 , wherein a user-defined business logic specified in the platform independent language is executed on a Virtual Machine and transparently accesses transaction processing features of the transactional processing platform.

31. A method of deploying an application in a platform independent programming language for execution in a distributed manner, comprising:

providing a plurality of computing nodes including a domain manager node, the plurality of computing nodes forming a computing domain configured as an administrative grouping of the nodes administered by the domain manager node wherein the domain manager coordinates the deployment and distribution of transactional applications to the computing domain, the domain manager;

providing 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;

providing, by the domain manager node, to each of the computing nodes, a first portion of the application, wherein the first portion defines, for each computing node, a portion of the behavior of the application to be accomplished by that computing node; and

receiving by each computing node at least one executable file appropriate for the portion of the behavior of the application defined, by the first portion, to be accomplished by that computing node;

wherein distributed applications for transaction processing on one or more virtual machines are transparently distributed and managed; and

wherein transaction bindings and a virtual machine interpreter are provided to support the user-defined business logic being executed by the one or more virtual machines employing the transaction processing features of the underlying transaction processing platform.

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 May 1, 2009
From: LIND, OTTO; PILE, JONATHON C.; SARMIENTO, RAMIRO; SIFTER, DANIEL J.; STONE, DAVID; ZANG, XIGUANG; PHILLIPS, MARK
To: KABIRA TECHNOLOGIES, INC.
Reel/Frame 022628/0648 →