Time Indexing Architecture
The implementation itself has a layered architecture, with an application
independent core providing a foundation for various kinds
of applications suitable for different business domains.
The diagram below shows the architecture:
The three lowest levels, which are the indexing core, provide
an implementation of the set of operations on the container,
and the set of formats for the container.
- Layer one is how the time-index is formatted on a disc,
it is a static entity, being just the bytes on the disc.
- Layer two provides input and output services, to get
the data to and from the disc and into memory.
- Layer three is the implementation of the container operations.
The implementation can be in any programming
language as the format on disc is language independent.
The next two levels are for index presentation.
In these layers more complex operations on time-indexes are
- Layer four is for plug-in components that provide
a bridge between the domain of time-indexing
and the application domain.
Such plug-in components include data specific recorders and players,
that rely on the indexing core for their operation.
Examples might be a log file recorder, which would add one log entry at a time,
or an audio player, which would select a single audio sample
from the time index and play just the one sample.
Also at this level are plug-in matching components which inspect or match the data
but do not attempt to play it back.
- Layer five implements the more complex operations
that gives time-indexing much of its power.
These include operations such as the merging, the cross-referencing, and
the compositing operations.
The top most layer is for the applications themselves. These
applications utilize the core operations on time-indexes, the
complex operations such as the merging, compositing, and cross
referencing, and access the plug-in components.
At this level many kinds of application can be written.