Securely and efficiently extending data processing pipeline functionality
First Claim
1. At a computer system, a method for registering a data processing agent to manipulate data of a data processing pipeline, the method comprising:
- an act of receiving a self-contained assembly that contains instructions for implementing a data processing agent and that contains configuration data indicating how the data processing agent is to be configured, the configuration data identifying a specified event the data processing agent is to hook into;
an act of storing the assembly at a specified location;
an act of detecting an occurrence of an event;
an act of determining that the detected event is the specified event;
an act of configuring the computer system to implement the data processing agent in accordance with the contained configuration data in response to the determination; and
an act of loading the data processing agent such that the instructions can be executed to manipulate data related to the detected event in accordance with the contained configuration data.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention extends to methods, systems, and computer program products for securely and efficiently extending data processing pipeline functionality. Data processing agents register, potentially based solely on configuration data contained in the data processing agents, to manipulate data of a data processing pipeline. Configuration data can identify a specified event (e.g., an SMTP verb) the data processing agent is to hook into. Upon detection of a specified event, one or more agents that have registered for the specified event are loaded into secure zones. Process boundaries separate agents from one another and from other processes such that execution of each agent is isolated from other processes. Pipeline related data (e.g., electronic message data) is transferred to each loaded agent. Application Program Interfaces (“APIs”) can be used to transfer data between modules that implement embodiments of the present invention.
31 Citations
42 Claims
-
1. At a computer system, a method for registering a data processing agent to manipulate data of a data processing pipeline, the method comprising:
-
an act of receiving a self-contained assembly that contains instructions for implementing a data processing agent and that contains configuration data indicating how the data processing agent is to be configured, the configuration data identifying a specified event the data processing agent is to hook into;
an act of storing the assembly at a specified location;
an act of detecting an occurrence of an event;
an act of determining that the detected event is the specified event;
an act of configuring the computer system to implement the data processing agent in accordance with the contained configuration data in response to the determination; and
an act of loading the data processing agent such that the instructions can be executed to manipulate data related to the detected event in accordance with the contained configuration data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. At a computer system, a method for extending the functionality of a data processing pipeline, the method comprising:
-
an act of detecting an occurrence of an event;
an act of determining that one or more data processing agents have registered for the detected event;
an act of loading each of the one or more data processing agents into a secure zone such that execution of each data processing agent is isolated from execution all other data processing agents;
an act of mapping the detected event to a corresponding handler at each of the one or more data processing agents; and
an act of transferring pipeline related data to each corresponding handler such that the one or more data processing agents can process the pipeline related data. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
-
-
33. A computer program product for use at a computer system, the computer program product for implementing a method for registering a data processing agent to manipulate data of a data processing pipeline, the computer program product comprising one or more computer-readable media having stored thereon computer-executable instructions that, when executed by a processor, cause the computer system to perform the following:
-
receive a self-contained assembly that contains instructions for implementing a data processing agent and that contains configuration data indicating how the data processing agent is to be configured, the configuration data identifying a specified event the data processing agent is to hook into;
store the assembly at a specified location;
detect an occurrence of an event;
determine that the detected event is the specified event;
configure the computer system to implement the data processing agent in accordance with the contained configuration data in response to the determination; and
load the data processing agent such that the instructions can be executed to manipulate data related to the detected event in accordance with the contained configuration data. - View Dependent Claims (34, 35, 36, 37, 39, 40, 41, 42)
-
-
38. A computer program product for use at a computer system, the computer program product for implementing a method for extending the functionality of a data processing pipeline, the computer program product comprising one or more computer-readable media having stored thereon computer-executable instructions that, when executed by a processor, cause the computer system to perform the following:
-
detect an occurrence of an event;
determining that one or more data processing agents have registered for the detected event;
load each of the one or more data processing agents into a secure zone such that execution of each data processing agent is isolated from execution all other data processing agents;
map the detected event to a corresponding handler at each of the one or more data processing agents; and
transfer pipeline related data to each corresponding handler such that the one or more data processing agents can process the pipeline related data.
-
Specification