Patent ID: 7877748

Claim:
In a distributed data processing system, a software program method comprising a set of instructions, stored on a non-transitory computer-readable media, wherein said instructions, when executed by a computer, perform the necessary steps for timely processing time sensitive tasks executing data from data sources and by data sinks, comprising: writing at least one source's data di into a buffer as an unordered set during an epoch, wherein said step of writing further comprises agreeing among said data sources and said data sinks as to what data items have been written into said buffer, and prescribing a time budget for processing said at least one source's data so as to produce composite outputs; processing said at least one source's data from said buffer in data sinks; temporally ordering said at least one source's data during said epoch by enforcing state consistency and integrating the passage of real time in a degree specific to an application; partitioning a task into subtasks, wherein each of said subtasks represents an execution of at least one source's data from said data sources and said data sinks; synchronizing said subtasks' results; extracting parallelism in the execution of said subtasks, further comprising: a first step of identifying the functional dependencies between each said subtask and data needed for the execution of each said subtask; a second step of identifying task execution points requiring input of a sensor data item “x”, wherein said sensor data item “x” comprises a distinct unit of data collection for input to said subtask, relative to the processing of other data items in the execution of said subtask; wherein said sensor data item “x” refers to said at least one source's data; scheduling said subtasks accordingly; computing said epoch according to ε+β+max({ζ k }), k= 1 , . . . , M where ε comprises the maximum time skew allowed between the data samples of various said data sources in a given epoch, β comprises the time to process said data, ζ comprises the time to transition from the current said epoch to the next said epoch, and M is a counter which counts consecutive sink processes; and invoking by each of said data source ui( . . . ) a write_buf primitive after data di becomes available for processing, so as to form a wrtset of successful writes to said buffer during each said epoch, wherein wrt set:=write — buf ( di, ε, grp, e ), wherein wrtset comprises the set of successful writes on the buffer in said epoch e, wherein grp comprises a broadcast group address to which process p is subscribed to, wherein ε is a time-window over which the competing write requests are collected by a communication layer, and wherein write_buf is a programming primitive.