Just like objects, activities must be described along two perspectives, actual and symbolic. Actual descriptions deal with their execution in business context, symbolic descriptions deal with the processing of representations.
It is worth to note that symbolic descriptions may target actual as well as symbolic activities.
Activities and Processes
As for objects, activity descriptions must distinguish between actual processes, which describe system operational states when activities are performed “in vivo”, i.e bound to actual events, objects or agents; and symbolic activities, which describe the logical sequence of actions “in vitro”, i.e ignoring the constraints of time and resources.
Whereas symbolic and actual descriptions may look alike, they differ with target and purpose:
- As with objects, not all symbolic activities are to be mapped into actual ones, that is necessary only if some control has to be done while they are running. Otherwise computations appear as instantly performed.
- Conversely, actual activities will need a symbolic counterpart only if they are associated with some symbolic processing.
- Activities can be bound to context, as described by swim-lanes, either through objects flows or by interactions with agents. Actual activities may deal with actual (events from physical context) or symbolic (messages from agents or systems) flows. Symbolic activities cannot deal with actual contexts.
- Finally, and most importantly, each description deals with a different aspect of synchronization: symbolic activities deal with flows (data or control) dependency, actual ones deal with time dependencies as described by state transitions.
Details of symbolic and actual processing are described by rules targeting both object states and processes execution.
As far as architectures are concerned, two criteria must be used to characterize execution units:
- Are the possible execution paths contingent or can they be known upfront at the starting point.
- Whatever execution paths, could the activity be performed locally or should it preempt some resources not directly or immediately at hand.
Similarly to binary objects, a special case is to be made for real-time activities which coalesce actual and symbolic processing: changes in contexts and representations are executed simultaneously, ie under a single clock control.