UNIFIED EVENT PROGRAMMING AND QUERIES
Event processing is transformed into query processing. Furthermore, asynchronous computation can be modeled as an event processing. Moreover, any computation that is or can be represented as push-based can be unified under an event-based processing approach subject to processing with query operators. Query processing can be performed with respect to one or more streams of events, wherein events identify a response to a raised value, among other things.
1 . An event-based processing system, comprising:
a push stream of one or more event values associated with the occurrence of an event; and
a query component that executes a domain independent query operator over the push stream of event values and returns a result push stream of event values.
2 . The system of claim 1 , the event value is a return result of an asynchronous computation, wherein a consumer of the event value is unblocked while it awaits the value.
3 . The system of claim 1 , the event values are related to a graphical user interface event.
4 . The system of claim 1 , the event values are edge triggered to afford a discrete representation of a continuous event.
5 . The system of claim 1 , the event values of a push stream are employed by handlers to perform one or more actions registered on a related event.
6 . The system of claim 1 , further comprising a trigger component that raises event values on the push stream.
7 . The system of claim 1 , the query operator performs complex event processing including at least of correlation, filtering, transforming, scanning, parsing, regular expression pattern matching, or grouping.
8 . The system of claim 1 , the query operator implements a standard language integrated query pattern.
9 . The system of claim 1 , the query component facilitates program language integrated queries over push streams of event values.
10 . A computer-implemented method of event processing, comprising:
acquiring one or more push streams of event values associated with different sources that identify the occurrence of events and values associated with the events;
applying one or more domain independent query operators over the one or more streams of events; and
returning a resultant stream of events that reflects application of the one or more query operators to the one or more acquired streams.
11 . The method of claim 10 , comprising acquiring a push stream of a single event value that corresponds to the result of an asynchronous call.
12 . The method of claim 10 , comprising acquiring a push stream of events associated with graphical user interface actions.
13 . The method of claim 10 , comprising acquiring a push stream that includes at least one event indicative of a failure or exception.
14 . The method of claim 10 , comprising acquiring a push stream that includes event values that correspond to edges associated with initialization and termination of continuous events.
15 . The method of claim 10 , comprising acquiring a push stream of event values that is composed from at least one other push stream of event values.
16 . The method of claim 10 , further comprising applying correlation to perform at least one of filtering, transforming, scanning, parsing, regular expression pattern matching, or grouping.
17 . The method of claim 10 , further comprising adding event handlers for resultant stream events.
18 . A computer-readable medium having stored thereon computer executable code, comprising:
a first-class event object; and
a method for adding an event handler to the event that performs an action in response to a raised event.
19 . The computer-readable medium of claim 18 , the method for adding an event handler facilitates propagation of a hander of equivalent functionality to a source event.
20 . The computer-readable medium of claim 18 , further comprising a method for removing a handler returned by the method for adding the handler.