IP Library Granted Patent US 10,657,476
Granted Patent B2
US 10,657,476 · App. 16/385,411 · Granted May 19, 2020

Just in time compilation (JIT) for business process execution

Inventors: Suresh Subramani (San Jose, CA); Pranab K. Dhar (Santa Clara, CA); Alan Amaya (Palo Alto, CA)
Assignee: TIBCO SOFTWARE INC.
G06Q10/06316G06F8/41G06F8/65G06F9/45516G06Q10/067
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 10,657,476
App. No.
16/385,411
Granted
May 19, 2020
Kind
B2
Abstract

Techniques to provide and deploy a business process are disclosed. A business process source filed stored in a memory is received. The business process source file, as stored in memory, is provided as an input to an in-memory compiler. A business process class file stored in the memory is received as output from the in-memory compiler. The business process class file, as stored in memory, is provided to a business process engine class loader.

Claims (37)

1. A method of providing a business process, comprising:

receiving, by a processor, a business process source file stored in a memory, wherein the business process is associated with the business process source file and the business process includes one or more related, structured activities or tasks;

determining, by the processor, based at least in part on the business process source file a virtual file system that does not rely on a native file system of a computer system, wherein the virtual file system includes a hierarchical namespace;

providing, by the processor, the business process source file as an input to a compiler during runtime;

receiving, by the processor, from the compiler as output a business process compilation output file stored in the memory, wherein the business process compilation output file is stored in the memory based at least in part on the hierarchical namespace of the virtual file system, wherein the business process compilation output_file outputted by the compiler includes a new or updated version of the business process; and

providing, by the processor, the business process compilation output file to a business process engine.

2. The method of claim 1 , wherein receiving the business process source file includes retrieving from an archive storage node an archive file that includes the business process source file.

3. The method of claim 2 , wherein receiving the business process source file further includes extracting the business process source file from the retrieved archive file and storing the business process source file in a memory location in the memory.

4. The method of claim 3 , wherein the memory location in the memory location is associated with a package with which the archive file is associated.

5. The method of claim 4 , further comprising identifying the memory location using a package namespace associated with the package.

6. The method of claim 5 , wherein the memory location is identified at least in part by using a hierarchical name within the package namespace from which hierarchical name a place of the source file within the name hierarchy within the package namespace can be derived.

7. The method of claim 6 , wherein the hierarchical name within the package namespace represents a virtual hierarchy of the virtual file system within which the source file comprises a virtual leaf node and in which one or more nodes higher than the source file within the hierarchy represent a virtual folder node in which the source file is virtually located.

8. The method of claim 7 , wherein the source file comprises source code encapsulated as a file object.

9. The method of claim 8 , wherein the file object comprises an object of a custom type defined to encapsulate source code within the virtual file system.

10. The method of claim 9 , wherein the business process compilation output file is received as output at least in part by instructing the compiler to store the compilation output file in a memory location associated with the package namespace.

11. The method of claim 10 , wherein the compilation output file is stored in a same level within the virtual hierarchy of the package namespace as the source file.

12. The method of claim 10 , wherein the compilation output file comprises source code encapsulated as a file object.

13. The method of claim 12 , wherein the source file object comprises an object of a first custom type and the compilation output file object comprises an object of a second custom type defined to encapsulate compiled code within the virtual file system.

14. The method of claim 13 , wherein providing the business process compilation output file to the business process engine comprises providing to the business process engine an indication of a location of the compilation output file within the package namespace.

15. A computer system, comprising:

a memory; and

a processor coupled to the memory and configured to:

receive a business process source file stored in the memory, wherein a business process is associated with the business process source file and the business process includes one or more related, structured activities or tasks;

determine based at least in part on the business process source file a virtual file system that does not rely on a native file system of a computer system, wherein the virtual file system includes a hierarchical namespace;

provide the business process source file as an input to a compiler during runtime;

receive from the compiler as output a business process compilation output_file stored in the memory, wherein the business process compilation output file is stored in the memory based at least in part on the hierarchical namespace of the virtual file system, wherein the business process compilation output file outputted by the compiler includes a new or updated version of the business process; and

provide the business process compilation output file to a business process engine.

16. The system of claim 15 , wherein the processor is further configured to retrieve from an archive storage node an archive file that includes the business process source file.

17. The system of claim 16 , wherein the processor is further configured to extract the business process source file from the archive file and store the business process source file in the memory in a memory location identified at least in part using a package namespace associated with a package with which the business process source file is associated.

18. The system of claim 17 , wherein the memory location is identified at least in part using a hierarchical name within the package namespace and wherein the hierarchical name indicates a virtual hierarchical location of the business process source file within a virtual file system.

19. The system of claim 18 , wherein the business process compilation output file is stored in the memory in a location associated with the package namespace at a same virtual hierarchical level within the virtual file system as the business process source file.

20. A computer program product to provide a business process, the computer program product being embodied in a tangible, non-transitory computer readable storage medium and comprising computer instructions for:

receiving a business process source file stored in a memory, wherein the business process is associated with the business process source file and the business process includes one or more related, structured activities or tasks;

determine based at least in part on the business process source file a virtual file system that does not rely on a native file system of a computer system, wherein the virtual file system includes a hierarchical namespace;

providing the business process source file as an input to a compiler during runtime;

receiving from the compiler as output a business process class file stored in the memory, wherein the business process class file is stored in the memory based at least in part on the hierarchical namespace of the virtual file system, wherein the business process class file outputted by the compiler includes a new or updated version of the business process; and

providing the business process class file to a business process engine.

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 →
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 →
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 →
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 50055 / FRAME 0641) Recorded Sep 30, 2022
From: JPMORGAN CHASE BANK, N.A.
To: TIBCO SOFTWARE INC.
Reel/Frame 061575/0801 →
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 AGREEMENT Recorded Aug 14, 2019
From: TIBCO SOFTWARE INC
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 050055/0641 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 24, 2019
From: SUBRAMANI, SURESH; DHAR, PRANAB K.; AMAYA, ALAN
To: TIBCO SOFTWARE INC.
Reel/Frame 048981/0580 →
Continuity (4)
Continuation 15344138 · Nov 4, 2016
Continuation 13975000 · Aug 23, 2013
Provisional Application 61693181 · Aug 24, 2012
Related Publication 20190244151A1 · Aug 8, 2019