Time Aware Machine (TAM)
Time Aware Machine (TAM) is an object-oriented framework which simplifies the development of time aware applications.
Time aware activities are performed by time aware entities, which can be classified according to their relationship with time:
- time driven entities: entities whose activation must be triggered at predefined time instants (either periodic or not)
- time observer entities: entities that read the current time from one or more clocks
- time conscious entities: entities that work with information placed in a temporal context (without any reference to when the processing of information is performed)
Three main architectural abstractions are useful to realize the previously defined behaviors:
- timer: a timer is a cyclic source of events, which can be interpreted by an application as equally spaced in time. Timers can be arranged in a hierarchy, with a ground timer at the root of a tree where each descendant timer counts the events it receives from its reference and in turn emits an event when the number of received events equals its period.
- clock: a clock counts the events generated by a timer to keep track of current time.
- timeline: a timeline is a data structure which represents time as an ordered sequence of time grains, where a grain is an elementary unit of time whose interior cannot be inspected. Timelines can be arranged in a hierarchy, so that a single time grain on a timeline can be interpreted as a time interval on the reference timeline. A clock can connect a timer with a timeline, thereby defining the concept of current time on that timeline.
A Java implementation of the framework is currently available, which can be used to build soft real-time applications.