IP Library Granted Patent US 11,321,668
Granted Patent B2
US 11,321,668 · App. 16/665,645 · Granted May 3, 2022

Extensibility of business logic shared across a business process orchestration engine, a rule engine, and a user interface

Inventors: Abhijit Anirrudha Rajwade (Pune, IN); Steve Wong (Markham, CA); David Lawrence Shapiro (Santa Clara, CA); Jiayi Gu (Sunnyvale, CA); Girish Kumar Gupta (Pune, IN); David T. Sulcer (Santa Clara, CA)
Assignee: BMC Software, Inc.
G06Q10/103G06F8/30G06F8/36G06F9/44505G06F9/45504
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 11,321,668
App. No.
16/665,645
Granted
May 3, 2022
Kind
B2
Abstract

A method for codeless development of an application includes registering one or more actions in a registry. Each action is coded in a reusable block of code, each action having an action definition including an action type name, an input parameters map, and an output parameters map. The method further includes performing an action type name look up in the registry for an invoked action with an action service ensuring that a number of arguments included in the action definition matches a number of arguments specified by the action type, passing an input to and receiving a return value from the invoked action, updating the output parameters map included in the definition of the invoked action, and returning the updated output parameters map to an application in development for updating processing variables in the application.

Claims (31)

1. A method for executing at least one application executable in at least one of a business process orchestration engine, a rule engine, and a user interface that are provided by a server platform executing on at least one server, the method comprising:

discovering, during runtime of the at least one application within one of the business process orchestration engine, the rule engine, and the user interface, one or more actions registered in a service registry of the server platform, each action annotated with a plurality of annotations and coded therewith in a reusable block of code compatible with the at least two of the business process orchestration engine, the rule engine, and the user interface, each action having an action definition specified using the plurality of annotations and including an action type name, an input parameters map, and an output parameters map;

delegating, by the at least one application, invocation of an action of the one or more actions to a process service coupled to the registry, the process service providing an interface between the at least one application and an action service coupled to the registry, the process service decoupling the at least one application from the one or more actions;

the process service looking up the action definition and creating an execution context and calling an execute method in the action service;

the action service being executed using the at least one server and externally to the business process orchestration engine, the rule engine, and the user interface, the execute method using the execution context for executing the invoked action using the at least one server and on behalf of, and externally to, the one of the business process orchestration engine, the rule engine, and the user interface in which the at least one application is executing;

the action service performing a look up of an action type in the service registry using the action type name, the action service ensuring, using the annotations, that a number of arguments included in the action definition matches a number of arguments specified by the action type; and

the action service passing an input to and receiving a return value from the invoked action, updating the output parameters map included in the definition of the invoked action, and returning the updated output parameters map within the execution context to the at least one application for updating processing variables in the at least one application.

2. The method of claim 1 , wherein a framework or application service publishes the invoked action.

3. The method of claim 2 ,

wherein the framework or application service implements a marker interface service.

4. The method of claim 3 , wherein the service registry uses the marker interface service to identify services on which a dynamic discovery of an action is performed.

5. The method of claim 1 , wherein the action is compatible with the business process orchestration engine, the rule engine, and the user interface.

6. The method of claim 1 , wherein the at least one application is part of a business object lifecycle modelled using a state machine.

7. The method of claim 1 , wherein delegating invocation of the action by the application further includes scheduling the execution of the invoked action based on a time rule.

8. The method of claim 1 , wherein executing the invoked action includes executing the invoked action remotely from the server platform.

9. A system for executing at least one application executable in at least one of a business process orchestration engine, a rule engine, and a user interface that are provided by a server platform executing on at least one server, the system comprising:

a service registrar configured to access, during runtime of the at least one application within one of the business process orchestration engine, the rule engine, and the user interface, a service registry of the server platform registering one or more actions, to thereby discover an action of the one or more actions, each action annotated with a plurality of annotations and coded therewith in a reusable block of code compatible with the at least two of the business process orchestration engine, the rule engine, and the user interface, each action having an action definition specified using the plurality of annotations and including an action type name, an input parameters map, and an output parameters map;

a process service coupled to the registry and executed using the at least one server and externally to the business process orchestration engine, the rule engine, and the user interface, the process service providing an interface between the at least one application and an action service coupled to the registry, the process service decoupling the at least one application from the one or more actions and being configured to receive a delegation, from the at least one application, to invoke the action including looking up the action definition and creating an execution context and calling an execute method in the action service;

the service process performing a look up of an action type in the service registry using the action type name, the action service ensuring, using the annotations, that a number of arguments included in the action definition matches a number of arguments specified by the action type, the action service passing an input to and receiving a return value from the invoked action, updating the output parameters map included in the definition of the invoked action, and returning the updated output parameters map within the execution context to the at least one application for updating processing variables in the at least one application.

10. The system of claim 9 , wherein the service action executes the invoked action by performing a method specified by the invoked action.

11. The system of claim 9 , wherein the at least one application is included in at least three of the business process orchestration engine, the business rule engine, the user interface, and a business object lifecycle modelled using a state machine.

12. A non-transitory, machine-readable medium having instructions stored thereon for executing at least one application executable in at least one of a business process orchestration engine, a rule engine, and a user interface that are provided by a server platform executing on at least one server, the instructions, when executed by a processor, cause a computing device to:

discover, during runtime of the at least one application within one of the business process orchestration engine, the rule engine, and the user interface, one or more actions in a service registry of the server platform, each action annotated with a plurality of annotations and coded therewith in a reusable block of code compatible with the at least two of the business process orchestration engine, the rule engine, and the user interface, each action having an action definition specified using the plurality of annotations and including an action type name, an input parameters map, and an output parameters map;

delegate, by the at least one application, invocation of an action of the one or more actions to a process service coupled to the registry and providing an interface between the at least one application and an action service coupled to the registry, the process service decoupling the at least one application from the one or more actions and being configured to look up the action definition and create an execution context, including calling an execute method in an action service coupled to the registry and executed using the at least one server and externally to the business process orchestration engine, the rule engine, and the user interface, the execute method using the execution context for executing the invoked action using the at least one server and on behalf of, and externally to, the one of the business process orchestration engine, the rule engine, and the user interface in which the at least one application is executing;

cause the action service to perform a look up of an action type in the service registry using the action type name, the action service ensuring, using the annotations, that a number of arguments included in the action definition matches a number of arguments specified by the action type; and

cause the action service to pass an input to and receive a return value from the invoked action, update the output parameters map included in the definition of the invoked action, and return the updated output parameters map within the execution context to the at least one application for updating processing variables in the at least one application.

13. The medium of claim 12 , wherein a framework publishes the invoked action.

14. The medium of claim 13 ,

wherein the instructions further cause the computing device to implement, by the framework, a marker interface service, and

wherein the instructions further cause the computing device to use, by the service registry, the marker interface service to identify services on which discovery of the invoked action is performed.

15. The medium of claim 12 , wherein instructions that cause the computing device to invoke the action include instructions that cause the computing device to access the action service to perform the action type name look up for the invoked action in the registry.

Assignments (12)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2025
From: BMC SOFTWARE, INC.
To: BMC HELIX, INC.
Reel/Frame 070442/0197 →
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0568 →
GRANT OF FIRST LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0628 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052854/0139) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0617 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052844/0646) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0408 →
OMNIBUS ASSIGNMENT OF SECURITY INTERESTS IN PATENT COLLATERAL Recorded Mar 4, 2024
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS RESIGNING COLLATERAL AGENT
To: GOLDMAN SACHS BANK USA, AS SUCCESSOR COLLATERAL AGENT
Reel/Frame 066729/0889 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 1, 2024
From: ALTER DOMUS (US) LLC
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 066567/0283 →
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Sep 30, 2021
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 057683/0582 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052844/0646 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052854/0139 →
SECURITY INTEREST Recorded Jun 4, 2020
From: COMPUWARE CORPORATION; BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE, AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 053467/0434 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 31, 2019
From: RAJWADE, ABHIJIT ANIRRUDHA; WONG, STEVE; SHAPIRO, DAVID LAWRENCE; GU, JIAYI; GUPTA, GIRISH KUMAR; SULCER, DAVID T.
To: BMC SOFTWARE, INC.
Reel/Frame 050873/0719 →
Cited By (1)
US 12,701,009