IP Library Granted Patent US 10,216,498
Granted Patent B2
US 10,216,498 · App. 15/274,120 · Granted Feb 26, 2019

Custom-built process engine with minimal memory and disk resource consumption

Inventors: Francisco Martinez (Somerville, MA); Rajeev Kozhikkattuthodi (San Jose, CA)
Assignee: TIBCO Software Inc.
G06F8/4434G06F8/30G06F9/4843G06F9/5016
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,216,498
App. No.
15/274,120
Granted
Feb 26, 2019
Kind
B2
Abstract

A minimum set of process engine components needed to perform a process application is determined. An executable code that includes the determined minimum set of process engine components and omits at least a subset of process engine components not included in the determined minimum set of process engine components is compiled. The executable code is deployed to a device.

Claims (59)

1. A method, comprising:

receiving a selection of a trigger associated with a process application;

receiving a selection of one or more activities associated with the process application based on the selected trigger;

determining a minimum set of process engine components needed to perform the process application, wherein the determining further includes:

analyzing a process flow associated with the selected trigger and one or more activities to identify process engine components associated with the selected trigger and one or more activities respectively;

determining that, based on the analysis, at least one process engine component of the identified process engine components is not invoked by the process application at runtime, wherein the at least one process engine component is associated with at least one activity of the selected one or more activities, wherein an input of the at least one activity is not output of any of the selected trigger or one or more activities preceding to the at least one activity;

removing the at least one process engine component from the identified process engine components to form the minimum set of process engine components; and

compiling the process application into an executable code that includes the determined minimum set of process engine components.

2. The method of claim 1 , further comprising deploying the executable code to a device.

3. The method of claim 1 , further comprising receiving a set of activities and triggers that define the process application.

4. The method of claim 3 , wherein at least one of activities and triggers of the set of activities and triggers is stored locally.

5. The method of claim 3 , wherein at least one of the activities and triggers of the set of activities and triggers is stored remotely.

6. The method of claim 1 , further comprising:

filtering a set of available activities based on the selected trigger; and

providing the filtered set of available activities as selectable options.

7. The method of claim 1 , further comprising:

filtering a set of available activities based on the selected one or more activities; and

providing the filtered set of available activities as selectable options.

8. The method of claim 1 , wherein determining a minimum set of process engine components needed to perform a process application further includes:

analyzing a process flow associated with each selected one or more activities and trigger to identify one or more branches of activities;

determining, based on the analysis which, if any, branches of the one or more branches of activities are not invoked by the process application at runtime; and

removing one or more unused process engine components associated with a branch that is not invoked by the process application from the minimum set of process engine components.

9. The method of claim 1 , wherein determining a minimum set of process engine components needed to perform a process application further includes:

analyzing a process flow associated with each selected one or more activities and trigger to identify one or more libraries;

determining, based on the analysis which, if any or a portion thereof, of the identified one or more libraries are invoked in the process application at runtime; and

removing an unused library or portion thereof from the minimum set of process engine components.

10. The method of claim 1 , wherein compiling the process application into an executable code based at least in part on the determined minimum set of process engine components further comprises including in the executable code one or more bindings associated with the determined minimum set of process engine components.

11. A system, comprising:

a user interface to receive a selection of a trigger associated with a process application and a selection of one or more activities associated with the process application based on the selected trigger;

a memory including a database stored with the selected trigger and one or more activities received from the user interface and configured to provide a processor with instructions; and

the processor coupled with the user interface and the memory including the database, wherein the processor configured to:

determine a minimum set of process engine components needed to perform the process application, wherein the determining further includes:

analyzing a process flow associated with the selected trigger and one or more activities to identify process engine components associated with the selected trigger and one or more activities respectively;

determining that, based on the analysis, at least one process engine component of the identified process engine components is not invoked by the process application at runtime, wherein the at least one process engine component is associated with at least one activity of the selected one or more activities, wherein an input of the at least one activity is not output of any of the selected trigger or one or more activities preceding to the at least one activity;

removing the at least one process engine component from the identified process engine components to form the minimum set of process engine components; and

compile the process application into an executable code that includes the determined minimum set of process engine components.

12. The system of claim 11 , wherein the processor is further configured to receive a set of activities and triggers that define the process application.

13. The system of claim 11 , wherein the processor is further configured to:

filter a set of available activities based on the selected trigger; and

provide the filtered set of available activities as selectable options.

14. The system of claim 11 , wherein the processor is further configured to:

filter a set of available activities based on the selected activity; and

provide the filtered set of available activities as selectable options.

15. The system of claim 11 , wherein to determine a minimum set of process engine components needed to perform a process application, the processor is further configured to:

analyze a process flow associated with each selected one or more activities and trigger to identify one or more branches of activities;

determine, based on the analysis which, if any, branches of the one or more branches of activities are not invoked in the process application at runtime; and

remove one or more unused process engine components associated with a branch that is not invoked by the process application from the minimum set of process engine components.

16. The system of claim 11 , wherein to determine a minimum set of process engine components needed to perform a process application, the processor is further configured to:

analyze a process flow associated with each selected one or more activities and trigger to identify one or more libraries;

determine, based on the analysis which, if any or a portion thereof, of the identified one or more libraries are invoked in the process application at runtime; and

remove an unused library from the minimum set of process engine components.

17. A computer program product, the computer program product being embodied in a tangible non-transitory computer readable storage medium and comprising computer instructions for:

receiving a selection of a trigger associated with a process application;

receiving a selection of one or more activities associated with the process application based on the selected trigger;

determining a minimum set of process engine components needed to perform the process application, wherein the determining further includes:

analyzing a process flow associated with the selected trigger and one or more activities to identify process engine components associated with the selected trigger and one or more activities respectively;

determining that, based on the analysis, at least one process engine component of the identified process engine components is not invoked by the process application at runtime, wherein the at least one process engine component is associated with at least one activity of the selected one or more activities, wherein an input of the at least one activity is not output of any of the selected trigger or one or more activities preceding to the at least one activity;

removing the at least one process engine component from the identified process engine components to form the minimum set of process engine components; and

compiling the process application into an executable code that includes the determined minimum set of 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 →
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 041791 / FRAME 0203) Recorded Sep 30, 2022
From: JPMORGAN CHASE BANK, N.A.
To: TIBCO SOFTWARE INC.
Reel/Frame 061575/0225 →
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 Feb 23, 2017
From: TIBCO SOFTWARE, INC., AS GRANTOR
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 041791/0203 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 29, 2016
From: MARTINEZ, FRANCISCO; KOZHIKKATTUTHODI, RAJEEV
To: TIBCO SOFTWARE INC.
Reel/Frame 040451/0619 →
Continuity (2)
Provisional Application 62336475 · May 13, 2016
Related Publication 20170329586A1 · Nov 16, 2017