CPC G06F 16/219 (2019.01) [G06F 16/1805 (2019.01); G06F 16/21 (2019.01); G06F 16/2365 (2019.01); G06F 16/2477 (2019.01)] | 20 Claims |
1. Computing apparatus for monitoring and storing data pertaining to business processes, comprising:
one or more processors; and
memory storing:
a plurality of stencils, each stencil being for one of a plurality of business processes ρ=(ρ1, ρ2, . . . ), each stencil being a homogeneously structured program-code template by which a processor may instantiate a process object to monitor progress of a process ρ, the process object to operate as a finite state machine able to advance through a sequence of a predefined number of at least two discretized states S=(S1, S2, . . . , Sn), the states universal to each stencil for all modelled processes, the stencil defining:
one or more attributes for the modelled process ρi, each attribute having a specified data type, to be instantiated as key-value pairs; and
for the sequence of states S=(S1, S2, . . . , Sn), a mapping specifying, for each of the states in the sequence, at least:
a signal event taken to cause a transition to that state, the signal events including information updating knowledge concerning the process ρi defined by that stencil; and
an instruction for determining an expected timing for the transition to that state;
wherein the states S=(S1, S2, . . . , Sn) in sequence represent indicators of increasing certainty about the progress of the processes and their attribute values from initialisation to completion;
the memory further storing instructions which when executed cause one or more of the processors to implement a process object manager to:
monitor events received as messages in a stream or queue, wherein at least some of the events include or infer information updating knowledge concerning one or more business processes ρ=(ρ1, ρ2, . . . ); and
in response to receipt of any event matching a signal event in a mapping of a stencil for a given business process ρi for transitioning to a state Sj of that process, instruct a process object instantiated for process ρi based on the stencil for that process to transition to the state Sj, thereby causing the process object to generate and store in an immutable, denormalised block a complete view of the state of the process at the time of state transition, the generated block including:
a timestamp representing the information time for the transition to state Sj;
the current attribute values for the process based on information contained in the event and/or the stencil;
if a block has previously been generated corresponding to a transition to an earlier effective state Se=(S1, . . . , Sj−1) of the process ρi, a reference to the most recently generated and stored block;
for any and all previous effect states Se=(S1, . . . , Sj−1) of the process ρi:
a timestamp of the time the process transitioned to the previous effect state; and
attribute values for the process as stored in the block for that previous effect state;
and, for any and all subsequent effective states Se=(Sj+1, . . . , Sn) of the process ρi:
a timestamp of the expected time for the transition to that state; and
the expected attribute values for the process based on the current attribute values;
the receipt of event signals for the process ρi thereby generating an append-only contiguous chain of immutable blocks each providing a complete bitemporal view of the process ρi in its evolution over information time through the sequence of states S=(S1, S2, . . . , Sn), each block showing, at that information time, the realized times at which transitions of the process to earlier states occurred, the values of the attributes at those times, the time the current state took effect and the current values of the attributes, and the expected times at which transitions of the process to later states are expected take effect.
|