IP Library Granted Patent US 7,797,289
Granted Patent B2
US 7,797,289 · App. 11/850,566 · Granted Sep 14, 2010

Method and apparatus for automatically executing rules in enterprise systems

Assignee: Oracle International Corporation
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,797,289
App. No.
11/850,566
Granted
Sep 14, 2010
Kind
B2
Abstract

One embodiment of the present invention provides an enterprise system that automatically executes a rule associated with an event. During operation, the system receives an event object at the enterprise system. Next, the system creates an intermediate event object based on the event object, wherein the intermediate object is an invocation context for the rule. The system also filters a set of rules with the intermediate event object to obtain a subset of rules. The system then selects a rule that is associated with the event from the subset of rules. Finally, the system executes the rule.

Claims (103)

1. A method for automatically executing a rule in an enterprise system, wherein the rule is associated with an event, the method comprising:

receiving an event object at the enterprise system;

creating an intermediate event object based on the event object, wherein the intermediate object is an invocation context for the rule;

filtering a set of rules with the intermediate event object to obtain a subset of rules;

selecting a rule that is associated with the event from the subset of rules; and

executing the rule.

2. The method of claim 1 , wherein the intermediate event object comprises an identifier for an environment associated with the event or rule, and wherein the environment specifies entities associated with the event or rule.

3. The method of claim 1 , wherein creating the intermediate event object can involve:

retrieving data from the event object;

storing the data in the intermediate event object;

retrieving additional data from entities associated with the event object;

storing the additional data in the intermediate event object;

associating the entity identifiers (EIDs) of the entities associated with the additional retrieved data;

determining an effective Access Control List (ACL) from the EIDs associated with the additional retrieved data; and

authorizing access to the data stored in the intermediate event object using the associated effective ACL.

4. The method of claim 1 , wherein filtering the set of rules involves performing a pattern matching operation on the set of rules, wherein the pattern matching operation matches indexed predicates associated with the set of rules to data associated with the intermediate event object.

5. The method of claim 1 , wherein selecting the rule from the subset of rules involves evaluating rule conditions associated with each rule based on indexed predicates and sparse predicates over data associated with the intermediate event object.

6. The method of claim 1 , wherein after filtering the set of rules, the method further comprises determining a user context which facilitates selecting a rule from the subset of rules.

7. The method of claim 6 , wherein determining the user context involves:

receiving the user context with the set of rules; and

storing the user context with the set of rules.

8. The method of claim 1 , wherein the rule specifies:

a set of indexed predicates required to invoke the rule;

a set of sparse predicates required to invoke the rule; and

a set of actions which are performed when the rule executes.

9. The method of claim 8 , wherein the set of actions can involve:

notifying an actor which has a subscription associated with the event about the occurrence of the event, wherein the actor is an entity which can perform actions upon other entities, and wherein an entity is an object;

notifying a user about the occurrence of the event;

invoking any action on the enterprise system or any operation on any entity;

invoking a second rule;

resolving conflicts between preference settings, wherein the preference settings can be associated with multiple actors;

combining multiple local preferences to derive global preferences for a shared workspace;

switching between preference profiles;

tagging the entity;

categorizing the entity;

selecting the sensitivity for the entity;

enabling roles;

disabling roles;

granting privileges; and

revoking privileges.

10. The method of claim 1 , wherein a second rule can extend the rule.

11. The method of claim 1 , wherein a policy can extend:

a policy schema which specifies attributes associated with the rule; and

a policy template which specifies how to perform data collection for data associated with the attributes.

12. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for automatically executing a rule in an enterprise system, wherein the rule is associated with an event, the method comprising:

receiving an event object at the enterprise system;

creating an intermediate event object based on the event object, wherein the intermediate object is an invocation context for the rule;

filtering a set of rules with the intermediate event object to obtain a subset of rules;

selecting a rule that is associated with the event from the subset of rules; and

executing the rule.

13. The computer-readable storage medium of claim 12 , wherein the intermediate event object comprises an identifier for an environment associated with the event or rule, and wherein the environment specifies entities associated with the event or rule.

14. The computer-readable storage medium of claim 12 , wherein creating the intermediate event object can involve:

retrieving data from the event object;

storing the data in the intermediate event object;

retrieving additional data from entities associated with the event object;

storing the additional data in the intermediate event object;

associating the entity identifiers (EIDs) of the entities associated with the additional retrieved data;

determining an effective Access Control List (ACL) from the EIDs associated with the additional retrieved data; and

authorizing access to the data stored in the intermediate event object using the associated effective ACL.

15. The computer-readable storage medium of claim 12 , wherein filtering the set of rules involves performing a pattern matching operation on the set of rules, wherein the pattern matching operation matches indexed predicates associated with the set of rules to data associated with the intermediate event object.

16. The computer-readable storage medium of claim 12 , wherein selecting the rule from the subset of rules involves evaluating rule conditions associated with each rule based on indexed predicates and sparse predicates over data associated with the intermediate event object.

17. The computer-readable storage medium of claim 12 , wherein after filtering the set of rules, the method further comprises determining a user context which facilitates selecting a rule from the subset of rules.

18. The computer-readable storage medium of claim 17 , wherein determining the user context involves:

receiving the user context with the set of rules; and

storing the user context with the set of rules.

19. The computer-readable storage medium of claim 12 , wherein the rule specifies:

a set of indexed predicates required to invoke the rule;

a set of sparse predicates required to invoke the rule; and

a set of actions which are performed when the rule executes.

20. The computer-readable storage medium of claim 19 , wherein the set of actions can involve:

notifying an actor which has a subscription associated with the event about the occurrence of the event, wherein the actor is an entity which can perform actions upon other entities, and wherein an entity is an object;

notifying a user about the occurrence of the event;

invoking any action on the enterprise system or any operation on any entity;

invoking a second rule;

resolving conflicts between preference settings, wherein the preference settings can be associated with multiple actors;

combining multiple local preferences to derive global preferences for a shared workspace;

switching between preference profiles;

tagging the entity;

categorizing the entity;

selecting the sensitivity for the entity;

enabling roles;

disabling roles;

granting privileges; and

revoking privileges.

21. The computer-readable storage medium of claim 12 , wherein a second rule can extend the rule.

22. The computer-readable storage medium of claim 12 , wherein a policy can extend:

a policy schema which specifies attributes associated with the rule; and

a policy template which specifies how to perform data collection for data associated with the attributes.

23. An apparatus configured to automatically execute a rule in an enterprise system, wherein the rule is associated with an event, comprising:

a receiving mechanism configured to receive an event object at the enterprise system;

a creation mechanism configured to create an intermediate event object based on the event object, wherein the intermediate object is an invocation context for the rule;

a filter mechanism configured to filter a set of rules with the intermediate event object to obtain a subset of rules;

a selection mechanism configured to select a rule that is associated with the event from the subset of rules; and

an execution mechanism configured to execute the rule.

24. The apparatus of claim 23 , wherein the intermediate event object comprises an identifier for an environment associated with the event or rule, and wherein the environment specifies entities associated with the event or rule.

25. The apparatus of claim 23 , wherein the creation mechanism is configured to create the intermediate event object by:

retrieving data from the event object;

storing the data in the intermediate event object;

retrieving additional data from entities associated with the event object;

storing the additional data in the intermediate event object;

associating the entity identifiers (EIDs) of the entities associated with the additional retrieved data;

determining an effective Access Control List (ACL) from the EIDs associated with the additional retrieved data; and

authorizing access to the data stored in the intermediate event object using the associated effective ACL.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE NUMBER OF PAGES IN THE ORIGINAL ASSIGNMENT DOCUMENT PREVIOUSLY RECORDED ON REEL 019873 FRAME 0247. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 29, 2008
From: CHAN, ERIC S.; CHOPRA, VIMAL; DAY, JIA-DER; ELIGETI, VINOD; JAMBULA, DHARMENDRA; LIU, LUCY; OLKIN, TERRY M.
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 020435/0135 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 25, 2007
From: CHAN, ERIC S.; CHOPRA, VIMAL; DAY, JIA-DER; ELIGETI, VINOD; JAMBULA, DHARMENDRA; LIU, LUCY; OLKIN, TERRY M.
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 019873/0247 →
Continuity (1)
Related Publication 20090063381A1 · Mar 5, 2009