We introduce a high-level metamodel, EAP (event-action-process), for reasoning about concurrent processes. EAP shares with CSP notions of observable events and processes, but as its name suggests, EAP is also concerned with actions. Actions represent an intermediate level of event composition that provide the basis for a hierarchical structure that builds up from individual, observable events, to processes that may themselves be units of composition. EAP's composition hierarchy corresponds to the reality that intermediate units of composition exist, and that these intermediate units don't always fall neatly within process boundaries.
One prominent example of an intermediate unit of composition, or action, is threads. Threads of execution are capable of crossing process boundaries, and one popular programming paradigm, object-oriented programming, encourages this approach to concurrent program design. While we may advocate for more disciplined, process-oriented design, the demand for better models for reasoning about threads remains.
On a more theoretical level, traces of a computation are also actions. Traces are event structures, composed by the CSP observer, according to a set of rules for recording the history of a computation. In one of the author's model for view-centric reasoning (VCR), the CSP observer is permitted to record simultaneous events without interleaving; and in previous joint work by the authors, the extended VCR (EVCR) model permits the CSP observer to record events with duration, so that events may overlap entirely, partially, or not at all. Sequential composition may be viewed as a special case of parallel composition—one of many forms of composition we wish to be better able to reason about.
Since such diverse types of composition exist, at the event, action, and process levels; and because such problematic actions as threads exist in real systems, we must find more appropriate models to reason about such systems. To this end, we are developing algebras at different levels of compositionality to address these goals. In particular, we are interested in a corresponding hierarchy of algebras, at the event, action, and process levels.
The present focus of our efforts is at the action level, since these are the least well understood. This talk presents fundamental notions of actions and examples of actions in the context of real systems. A diversity of possible compositions at the action level will be revealed and discussed, as well as our progress on the action algebra itself.