Software Architecture Laboratory


Time Aware Machine (TAM)

Related Areas: Time Awareness

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.

People: Francesco Fiamberti Daniela Micucci Francesco Tisato

--> © 2021 Software Architecture Laboratory