To discuss side effects produced by evaluation of some conditions, we introduce time into our model explicitly. Time is discrete and is represented by a totally ordered set of natural numbers. Each number corresponds to a discrete time interval. A time interval is related to a condition evaluation process.
To simplify our presentation, we assume that dependent authorization requests do not overlap. The effects of the dependent requests are resolved by serialization, in which the requests are ordered by the cause-effect ordering.
Similarly, we assume that conditions are evaluated consecutively. These two assumptions enable us to concentrate on a single condition evaluation per each time interval and, therefore, avoid the problem of coordination of multiple condition evaluation processes.
Figure 3 illustrates our representation.
A time interval begins when a condition evaluation starts and it ends when the condition evaluation is completed with the resulting 26#26/27#27/28#28. This means that the duration of the time intervals can vary.
The general idea underlying our approach is that the system state can be formalized by a sequence of system states 108#108, 109#109, 110#110, 111#111. Each system state 112#112 is labeled by the time interval 113#113.
By a system state we mean not only information describing a particular computer system such as system load, network bandwidth consumption, number of available processors, but also all information about the real world which is representable in a computer system, for example: bank account balance, temperature, user identity.
Here any system state 112#112 is all the information that has been deduced up to the time interval 113#113. The information is represented by a set of system variables. The information is partial, since some system variables can be undefined at some time intervals.
At each time interval 113#113 there is a transition 114#114from the current system state 112#112 to the new system state 115#115. Each transition is characterized by updating the values of some system variables. The variables can change not only as the result of condition evaluation but also because of other events, e.g., system load is altered. All side effects of condition evaluation are recorded in the corresponding system variables.