Patent ID: 8024480

Claim:
A method for complex event processing, comprising: receiving a plurality of complex input event streams, wherein each complex input event stream has a plurality of events that correspond to a plurality of event topics; using an inter-process communication protocol to communicate the plurality of event topics to at least two complex event processing services; at each of the at least two complex event processing services, using the inter-process communication protocol to identify at least one of the event topics for processing by the complex event processing service; at each of the complex event processing services, processing events that correspond to the at least one event topic by: determining whether a service function provided by the complex event processing service can be partitioned; if the service function can be partitioned, then generating a sub-function input stream having a plurality of events that correspond to a plurality of sub-function event topics; using the inter-process communication protocol to communicate the plurality of sub-function event topics to at least two sub-services, wherein each sub-service corresponds to a sub-function; at each of the at least two sub-services, using the inter-process communication protocol to identify at least one of the sub-function event topics for processing by the sub-service; at each of the at least two sub-services, processing events corresponding to the at least one sub-function event topic; generating an output of the complex event processing service based on the processing performed by the at least two sub-services; if the service function cannot be partitioned, then generating the output of the complex event processing service based on the processing of events that correspond to the at least one event topic; and generating a complex event processing output based on the processing performed by the first and second complex event processing services, wherein a complex event processing output service comprises executing a service action or providing a derived event stream.