IP Library Granted Patent US 8,555,033
Granted Patent B2
US 8,555,033 · App. 13/186,556 · Granted Oct 8, 2013

Extending operations of an application in a data processing 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,555,033
App. No.
13/186,556
Granted
Oct 8, 2013
Kind
B2
Abstract

A method, an apparatus, and computer instructions are provided for extending operations of an application in a data processing system. A primary operation is executed. All extended operations of the primary operation are cached and pre and post operation identifiers are identified. For each pre operation identifier, a pre operation instance is created and executed. For each post operation identifier, a post operation instance is created and executed.

Claims (82)

1. A method, in a data processing system, for extending operations of an application, comprising:

responsive to running a primary operation, identifying all pre and post operations based on predefined metadata and environment context of the application;

recursively running all pre operations in a predefined order;

executing the primary operation; and

recursively running all post operations in a predefined order.

2. The method of claim 1 , wherein

the identifying comprising:

responsive to running the primary operation, determining whether a cycle is present in execution path of the primary operation;

upon no cycle is present, populating an extended operation cache; and

identifying a plurality of pre operation identifiers and post operation identifiers from the cached extended operation identifiers.

3. The method of claim 2 , wherein

the recursively running all the pre operations comprises:

for each pre operation identifier in the plurality of pre operation identifiers,

creating a pre operation instance using the pre operation identifier,

passing a data model of the primary operation to the pre operation instance,

and running the pre operation instance.

4. The method of claim 2 , wherein

the recursively running all the post operations comprises:

for each post operation identifier in the plurality of post operation identifiers,

creating a post operation instance using the post operation identifier,

passing a data model of the primary operation to the post operation instance, and

running the post operation instance.

5. The method of claim 2 , wherein

the populating comprises:

reading a plurality of operation extensions for a given primary operation identifier;

determining whether each operation extension in the plurality of operation extensions defines at least one of a pre or post operation identifier;

associating the at least one of pre or post operation identifier with a function group identifier;

for each operation extension in the plurality of operation extensions,

creating a primary operation record for each operation extension, and

placing the primary operation record in the extended operation cache.

6. The method of claim 5 , wherein

the populating comprises:

for each operation extension in the plurality of operation extensions and upon no function group record being present for the operation extension,

creating a function group record for each operation extension,

adding the function group record to a plurality of function group records for the primary operation, and

determining whether a pre operation identifier is present in the operation extension.

7. The method of claim 6 , wherein further comprising:

upon the pre operation identifier being present, adding the pre operation identifier to the function group record;

determining whether a post identifier is present in the operation extension; and

upon the post operation identifier being present, adding the post operation identifier to the function group record.

8. The method of claim 2 , wherein

the identifying comprises:

retrieving a set of function group records from the cache based on a unique identifier of the primary operation;

for each function group record in the set, determining whether a function group corresponding to the function group record is active;

upon the function group being active, retrieving all pre operation identifiers from the function group record; and

storing the pre operation identifiers to a cache of pre operation identifiers.

9. The method of claim 8 , wherein

the identifying comprises:

upon the function group being active, retrieving all post operation identifiers from the function group record; and

storing the post operation identifiers to a cache of post operation identifiers.

10. The method of claim 2 , wherein

each of the plurality of pre operation identifiers and post operation identifiers is defined by one of a fully qualified name and a unique key within a factory pattern.

11. The method of claim 2 , wherein

the extended operations identified by the extended operation identifiers are themselves primary operations.

12. The method of claim 8 , further comprising:

upon no function group corresponding to the function group record is active, executing only the primary operation.

13. The method of claim 5 , wherein

the plurality of operation extensions are defined in an extensible markup language file.

14. The method of claim 6 , wherein

one or more function groups of the plurality of function groups are active at a given time and

one or more function groups of the plurality of function groups are ordered based on a predefined priority.

15. The method of claim 3 , wherein

the pre operation instance modifies properties of the data model, and

a post operation instance modifies properties of the data model.

16. The method of claim 4 , further comprising:

responsive to detecting a failure of the pre operation instance, ignoring post operations corresponding to the pre operation instance.

17. The method of claim 1 , wherein

the extended operations identified by the extended operation identifiers are defined to a number of depth and

the extended operations have no knowledge of operations from which the extended operations are extended.

18. The method of claim 16 , wherein

the extended operations are automatically extendable once the extended operations are defined.

19. A data processing system, comprising:

a processor, wherein the processor is configured to perform

identifying, responsive to running a primary operation, all pre and post operations based on predefined metadata and environment context of an application;

recursively run all pre operations in a predefined order;

execute the primary operation; and

recursively run all post operations in a predefined order.

20. A computer program product comprising a computer memory having stored therein computer usable program code for extending operations of an application, the computer usable program code, which when executed by a computer hardware system, causes the computer hardware system to perform:

identifying, responsive to running a primary operation, all pre and post operations based on predefined metadata and environment context of the application;

recursively running all pre operations in a predefined order;

executing the primary operation; and

recursively running all post operations in a predefined order.

Assignments (1)
CONVEYOR IS ASSIGNING UNDIVIDED 50% INTEREST Recorded Jan 12, 2018
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: SERVICENOW, INC.; INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 045059/0486 →