×

Securely and efficiently extending data processing pipeline functionality

  • US 8,037,123 B2
  • Filed: 08/27/2004
  • Issued: 10/11/2011
  • Est. Priority Date: 08/27/2004
  • Status: Active Grant
First Claim
Patent Images

1. At a computer system, the computer system including a processor and system memory, the computer system also including a data pipeline comprising a sequential arrangement of a plurality of pipeline modules, an electronic message received at the data pipeline being sequentially processed by pipeline modules such that the output of at least one pipeline module is the input to the next sequential pipeline module, a method for extending the functionality of the data processing pipeline, the method comprising:

  • an act of an agent engine that is external to the data pipeline detecting an occurrence of an event within the data pipeline;

    an act of mapping the detected event to a specified topic string representing an electronic messaging command;

    an act of matching the specified topic string to the topic string for a plurality of data processing agents previously stored at a specified known location at the computer system so as to determine that the plurality of data processing agents have registered for the detected event, the plurality of data processing agents being external to the data pipeline;

    an act of the processor loading each of the plurality of data processing agents into a secure zone such that execution of each data processing agent in the plurality of data processing agents is isolated from execution of all the other data processing agents in the plurality of data processing agents;

    for each of the plurality of data processing agents;

    an act of the agent engine external to the data pipeline diverting pipeline data related to the represented electronic messaging command out of the data pipeline from a first pipeline module and to the data processing agent to extend the functionality of the data pipeline subsequent to loading the data processing agent, wherein the pipeline data is diverted by the external agent engine when the pipeline data is directed from the first pipeline module to a second pipeline module, such that the external agent engine at least temporarily prevents the pipeline data from reaching its intended destination, namely the second pipeline module, the second pipeline module being a next sequential pipeline module following the first pipeline module; and

    an act of the agent engine external to the data pipeline injecting results from the data processing agent back into the data pipeline for further processing, the results being injected at the second pipeline module such that sequential processing continues at the next sequential pipeline module following the first pipeline module, namely the second pipeline module to which the pipeline data was directed prior to such pipeline data being diverted by the agent engine;

    the agent engine accessing a plurality of application programming interfaces (API), including at least;

    an Initialize API configured to transfer a server value, configuration settings values, and an agent group value for initializing the agent engine;

    an Invoke API configured to transfer an execution context value, an event identifier value, and a list of other context values for invoking the plurality of data processing agents;

    an Asynchronous Invoke API configured to transfer the execution context value, the event identifier value, a time out value, a callback value, a state value, and the list of other context values for asynchronously invoking the plurality of data processing agents; and

    an Event Handler API configured to transfer an event source value and event argument values for executing a specified agent handler within one or more of the plurality of data processing agents; and

    the specified known location at the computer system storing data processing agents mapped to each of the following topic strings and Extended Simple Mail Transfer Protocol keywords and verbs;

    OnDataCommand, OnEhloCommand, OnEndOfData, OnEndOfHeaders, OnHeloCommand, OnHelpCommand, OnMailCommand, OnNoopCommand, OnRcptCommand, OnReject, OnRsetCommand, OnSessionStopEvent, OnCategorization, OnDeleteMailItem, OnPostCategorization, OnSubmit, OnPerRecipient, OnAuthCommand, SMTP HELLO, and SMTP AUTH.

View all claims
  • 2 Assignments
Timeline View
Assignment View
    ×
    ×