=> Русская версия

Aspectrace: the technology for extensible aspect-oriented tracing.

Project purposes.

The Aspectrace technology is intended to help developers and testers to monitor complex multi-component systems as well as tests for them. The Aspectrace toolkit facilitates collecting heterogeneous and structured information about target system execution in form of execution traces. It lets developers to add new types of information into traces, to extract only needed data from them flexibly and effectively, to analyze and link the extracted information and to convert it into reports of various kinds.

The Aspectrace toolkit supports an extensible trace format. Toolkit users can plug in needed modules (named "_aspect libraries_") to work with information from appropriate subject areas. Aspects define their own data models and types of trace messages. Different aspects may be plugged in independently by application generating traces as well as by application analyzing them.

The toolkit provides a component infrastructure for report generation that supports flexible construction of report generators from independent components (both off-the-shelf and developed for a particular task) analyzing different information aspects. It also provides means of linking data extracted by different components.

Key features.

  1. Versatility:
    The solution is not tied to any subject area, class of applications, testing technology, programming language, platform or data storage.
  2. Support for structured data
    Trace structure supports storing and retrieving complex structured objects.
  3. Extensibility and modularity:
    Trace structure and architecture of supporting tools allow adding new types of monitored events without significant overhead and without need to recompile old applications. Applications that generate traces may trace only information they consider essential. Analyzing tools are able to receive only the information essential for them, ignoring everything else effectively and preserving data consistency. It is easy to extend existing analyzing tools with data models describing new kinds of information. The toolkit also supports pluggable modules implementing different external representations of traces and methods for storing and transmitting them.
  4. Easy data linkage:
    The toolkit provides means for automatic linking of heterogeneous information extracted by different analyzing modules.
  5. Unification:
    Standard types of information are traced and processed in the same format to reduce development effort and increase reusability of analysis tools.

Toolkit architecture.

The figure shows components and data flow through them.
Aspect tracers and aspect adapters are parts of appropriate aspect libraries (different aspects are marked with different textures), they may be plugged when needed. Trace messages originating from aspect that has no attached analyzers are ignored by trace provider.

The tracer и trace provider are core components supporting extensible trace format. Applications do not interact directly with them; instead they use layer of aspect libraries to deal with data models provided by aspects.

Usage examples.

See source package: com.unitesk.aspectrace.sampleApp

This package contains some report generator components that analyze information from some aspects, communicate with each other, link data they obtain and generate HTML reports from them. It also contains some examples working with coverages of different kinds. is an application that generates a sample trace of test execution and then generates a report from it. It is also used as a simple report generator by other projects.

Verbose documentation.

Sorry, only on Russian for awhile...



This project depends on project coverage , that can be downloaded here