IP Library Granted Patent US 7,814,460
Granted Patent B2
US 7,814,460 · App. 11/457,228 · Granted Oct 12, 2010

Hierarchical modular software packages and associated development tool

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 7,814,460
App. No.
11/457,228
Granted
Oct 12, 2010
Kind
B2
Abstract

A hierarchical modular software development tool provides a graphical user interface to allow development of hierarchical module software components. The software development tool allows graphical creation of a software component processing hierarchy and then generates a software component using this specified processing hierarchy. The packages developed using this tool are able to include event modules that allow sub-branches of the software component processing hierarchy to be executed without requiring processing of modules of the software component hierarchy that precede the event nodes. Further nodes that are able to be included in the processing hierarchy include action nodes, that contain operational software, and conditional nodes that allow condition testing and conditional execution of processing branches.

Claims (92)

1. A computer implemented method for developing a modular software component, the method comprising:

using a processor to perform the following:

providing a graphical user interface adapted to accept operator inputs;

defining, through the graphical user interface, a hierarchical representation for at least one software component, the hierarchical representation comprising:

an event node able to be associated with a selected external event such that child nodes of the event nodes execute in response to an occurrence of the selected external event;

at least one action node arranged as a child node to the event node within the hierarchical representation, the at least one action node having a respective associated child software action module; and

a parent node arranged as a parent node to the event node within the hierarchical representation, the parent node having an associated parent software action module,

the hierarchical representation indicating that the respective associated child software action module executes:

in the absence of an occurrence of the selected external event associated with the event node and

in response to completion of execution of the complete parent software action module associated with the parent node, and

the respective associated child action module executes in response to an occurrence of the selected external event associated with the event node in the absence of execution the parent software module;

accepting an input through the graphical user interface, the input identifying the selected event external to the software component and the input also identifying the selected software component within the at least one software component;

associating, in response to the accepting through the graphical user interface, the event node with the selected external event external to the software component; and

creating a software package comprising the child software action module and the parent software action module as defined by the hierarchical representation,

the child software action module is executes independently of execution of the parent software action module and in response to the selected external event and

the child software action module executes upon completion of execution of the complete parent software action module.

2. The computer implemented method according to claim 1 , further comprising distributing the software package to a plurality of computer workstations for execution on each computer workstation within the plurality of computer workstations.

3. The computer implemented method according to claim 1 , wherein the software package comprising the child software action module and the parent software action module as defined by the hierarchical representation is for altering a configuration of a computer workstation.

4. The computer implemented method according to claim 1 , wherein the hierarchical representation comprises a plurality of nodes, each node in the plurality of nodes being selected, through the graphical user interface, from a set of pre-defined nodes comprising all of:

an event node being associated, through the graphical user interface, with the selected external event,

an action node being associated, through the graphical user interface, with an executable software module,

a condition node defining, through the graphical user interface, at least one conditional to be satisfied in order to execute child action modules, and

a combination module defined, through the graphical user interface, as a combination of a plurality of the event modules, the action modules and the condition modules, and

wherein the child software node is selected from at least one of the event node and the combination node.

5. The computer implemented method according to claim 1 , wherein the software package is for controlling a computer workstation.

6. A non-transitory machine readable medium tangibly encoded with computer software component, the computer software component comprising:

a hierarchical representation comprising:

an event node able to be associated with a selected external event such that child nodes of the event nodes execute in response to an occurrence of the selected external event;

at least one action node arranged as a child node to the event node within the hierarchical representation, the at least one action node having a respective associated child software action module; and

a parent node arranged as a parent node to the event node within the hierarchical representation, the parent node having an associated parent software action module,

the hierarchical representation indicating that the respective associated child software action module executes:

in the absence of an occurrence of the selected external event associated with the event node and

in response to completion of execution of the complete parent software action module associated with the parent node, and

the respective associated child action module executes in response to an occurrence of the selected external event associated with the event node in the absence of execution of the parent software module;

the event node being associated with a selected external event external to the software component; and

at least one child software action module,

wherein the child software action module is a child of the parent software action module as defined by the hierarchical representation,

wherein of the child software action module executes independently of execution of the parent software action module and in response to the selected external event and

the child software action module executes upon completion of execution of the complete parent software action module.

7. The computer software component according to claim 6 , wherein the hierarchical representation comprises a plurality of nodes, each node in the plurality of nodes being selected, through the graphical user interface, from a set of pre-defined nodes comprising all of:

an event node being associated, through the graphical user interface, with the selected external event,

an action node being associated, through the graphical user interface, with an executable software module,

a condition node defining, through the graphical user interface, at least one conditional to be satisfied in order to execute child action modules, and

a combination module defined, through the graphical user interface, as a combination of a plurality of the event modules, the action modules and the condition modules, and

wherein the child software node is selected from at least one of the event node and the combination node.

8. A software development system adapted to developing a modular software component, the software development system comprising:

a graphical user interface adapted to:

accepting operator inputs;

defining a hierarchical representation for at least one software component, the hierarchical representation comprising:

an event node able to be associated with a selected external event such that child nodes of the event nodes execute in response to an occurrence of the selected external event;

at least one action node arranged as a child execution node to the event node within the hierarchical representation, the at least one action node having a respective associated child software action module; and

a parent node arranged as a parent node to the event node within the hierarchical representation, the parent node having an associated parent software action module,

the hierarchical representation indicating that the respective associated child software action module executes:

in the absence of an occurrence of the selected external event associated with the event node and

in response to completion of execution of the complete parent software action module associated with the parent node, and

the respective associated child action module executes in response to an occurrence of the selected external event associated with the event node in the absence of execution of the parent software module; and

accepting an input through the graphical user interface, the input identifying the selected event external to the software component and the input also identifying the selected software component within the at least one software component;

an event manager adapted to associating, through the graphical user interface and in response to the accepting, the event node with the selected external event external to the software component; and

a software component generator adapted to creating a software package comprising the child software action module and the parent software action module as defined by the hierarchical representation,

the child software action module executes independently of execution of the parent software action module and in response to the selected external event and

the child software action module executes upon completion of execution of the complete parent software action module.

9. The software development system according to claim 8 , further comprising a software distribution processor adapted to distributing the software package to a plurality of computer workstations for execution on each computer workstation within the plurality of computer workstations.

10. The software development system according to claim 8 , wherein the software component generator is further adapted to adapting the software package comprising the child software action module and the parent software action module as defined by the hierarchical representation for altering a configuration of a computer workstation.

11. The software development system according to claim 8 , wherein the hierarchical representation comprises a plurality of nodes, each node in the plurality of nodes being selected, through the graphical user interface, from a set of pre-defined nodes comprising all of:

an event node being associated, through the graphical user interface, with the selected external event,

an action node being associated, through the graphical user interface, with an executable software module,

a condition node defining, through the graphical user interface, at least one conditional to be satisfied in order to execute child action modules, and

a combination module defined, through the graphical user interface, as a combination of a plurality of the event modules, the action modules and the condition modules, and

wherein the child software node is selected from at least one of the event node and the combination node.

12. A non-transitory machine readable medium tangibly encoded with a machine executable program, the machine executable program comprising instructions for:

providing a graphical user interface adapted to accept operator inputs;

defining, through the graphical user interface, a hierarchical representation for at least one software component, the hierarchical representation comprising:

an event node able to be associated with a selected external event such that child nodes of the event nodes execute in response to an occurrence of the selected external event;

at least one action node arranged as a child node to the event node within the hierarchical representation, the at least one action node having a respective associated child software action module; and

a parent node arranged as a parent node to the event node within the hierarchical representation, the parent node having an associated parent software action module,

the hierarchical representation indicating that the respective associated child software action module executes:

in the absence of an occurrence of the selected external event associated with the event node and

in response to completion of execution of the complete parent software action module associated with the parent node, and

the respective associated child action module executes in response to an occurrence of the selected external event associated with the event node in the absence of execution the parent software module;

accepting an input through the graphical user interface, the input identifying the selected event external to the software component and the input also identifying the selected software component within the at least one software component;

associating, in response to the accepting through the graphical user interface, the event node with the selected external event external to the software component; and

creating a software package comprising the child software action module and the parent software action module as defined by the hierarchical representation,

the child software action module executes independently of execution of the parent software action module and in response to the selected external event and

the child software action module executes upon completion of execution of the complete parent software action module.

13. The machine readable medium according to claim 12 , the machine executable program further comprising instructions for distributing the software package to a plurality of computer workstations for execution on each computer workstation within the plurality of computer workstations.

14. The machine readable medium according to claim 12 , wherein the software package comprising the child software action module and the parent software action module as defined by the hierarchical representation is for altering a configuration of a computer workstation.

15. The machine readable medium according to claim 12 , wherein the hierarchical representation comprises a plurality of nodes, each node in the plurality of nodes being selected, through the graphical user interface, from a set of pre-defined nodes comprising all of:

an event node being associated, through the graphical user interface, with the selected external event,

an action node being associated, through the graphical user interface, with an executable software module,

a condition node defining, through the graphical user interface, at least one conditional to be satisfied in order to execute child action modules, and

a combination module defined, through the graphical user interface, as a combination of a plurality of the event modules, the action modules and the condition modules, and

wherein the child software node is selected from at least one of the event node and the combination node.

Assignments (30)
RELEASE OF SECURITY INTEREST Recorded Nov 19, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.
Reel/Frame 073606/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 18, 2025
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.
Reel/Frame 073613/0326 →
SECURITY INTEREST Recorded Jun 8, 2025
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; ERWIN, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071527/0649 →
SECURITY INTEREST Recorded Jun 8, 2025
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; ERWIN, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071527/0001 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059105/0479 →
FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 2, 2022
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.; ONE IDENTITY LLC; ONELOGIN, INC.; ONE IDENTITY SOFTWARE INTERNATIONAL DESIGNATED ACTIVITY COMPANY
To: GOLDMAN SACHS BANK USA
Reel/Frame 058945/0778 →
SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 2, 2022
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.; ONE IDENTITY LLC; ONELOGIN, INC.; ONE IDENTITY SOFTWARE INTERNATIONAL DESIGNATED ACTIVITY COMPANY
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 058952/0279 →
RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059096/0683 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0347 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0486 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS RECORDED AT R/F 040581/0850 Recorded May 22, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 046211/0735 →
CHANGE OF NAME Recorded Dec 6, 2017
From: DELL SOFTWARE INC.
To: QUEST SOFTWARE INC.
Reel/Frame 044800/0848 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED AT REEL: 040587 FRAME: 0624. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 28, 2017
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 044811/0598 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Nov 10, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040587/0624 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Nov 9, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040581/0850 →
RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040039/0642) Recorded Oct 31, 2016
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0016 →
RELEASE OF SECURITY INTEREST Recorded Oct 31, 2016
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0467 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040030/0187 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040039/0642 →
RELEASE OF SECURITY INTEREST Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040040/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040065/0618 →
RELEASE OF SECURITY INTEREST Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLANT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040065/0216 →
PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Jan 2, 2014
From: DELL INC.; APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 031899/0261 →
PATENT SECURITY AGREEMENT (ABL) Recorded Jan 2, 2014
From: DELL INC.; APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 031898/0001 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Jan 2, 2014
From: APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS FIRST LIEN COLLATERAL AGENT
Reel/Frame 031897/0348 →
CHANGE OF NAME Recorded Aug 20, 2013
From: QUEST SOFTWARE, INC.
To: DELL SOFTWARE INC.
Reel/Frame 031043/0281 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 25, 2013
From: SCRIPTLOGIC CORPORATION
To: QUEST SOFTWARE, INC.
Reel/Frame 030075/0113 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Sep 28, 2012
From: WELLS FARGO CAPITAL FINANCE, LLC (FORMERLY KNOWN AS WELLS FARGO FOOTHILL, LLC)
To: QUEST SOFTWARE, INC.; AELITA SOFTWARE CORPORATION; SCRIPTLOGIC CORPORATION; VIZIONCORE, INC.; NETPRO COMPUTING, INC.
Reel/Frame 029050/0679 →
PATENT SECURITY AGREEMENT Recorded Feb 18, 2009
From: QUEST SOFTWARE, INC.; AELITA SOFTWARE CORPORATION; SCRIPTLOGIC CORPORATION; VIZIONCORE, INC.; NETPRO COMPUTING, INC.
To: WELLS FARGO FOOTHILL, LLC
Reel/Frame 022277/0091 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 13, 2006
From: BUCKLEW, CHARLES B.; HAK, MICHAEL
To: SCRIPTLOGIC CORPORATION
Reel/Frame 017927/0634 →