Project

General

Profile

Actions

Overview » History » Revision 5

« Previous | Revision 5/8 (diff) | Next »
Sergey Groshev, 02/04/2010 02:54 PM
Исправлено с учётом статьи, написанной в сборник


Aspectrace - технология расширяемой аспектно-ориентированной трассировки.

Назначение проекта

Инструментарий аспектно-ориентированной трассировки Aspectrace предназначен прежде всего для разработчиков и тестировщиков, которым нужны средства мониторинга работы сложных приложений или тестов для них. Система Aspectrace предоставляет возможность собирать в форме трасс (логов) разнородную и структурированную информацию, по мере необходимости расширяя набор собираемой информации, после чего гибко и эффективно выбирать из полученной трассы нужные данные, анализировать их, связывать между собой и строить на их основе разнообразные отчёты.

Технология поддерживает расширяемый формат трассы. Для работы с информацией нужного вида клиент подключает соответствующий модуль (называемый библиотекой аспекта), который предназначен для работы с ней; аспект определяет собственную модель данных и собственные типы трассируемых сообщений. Различные аспекты могут подключаться приложениями (как генерирующими трассу, так и анализирующими её) независимо друг от друга.

Предоставляется компонентная инфраструктура отчётов, позволяющая гибко собирать нужные пользователю генераторы отчётов из компонентов (как готовых библиотечных, так и разработанных под конкретную задачу), анализирующих различные срезы информации. Предоставляются механизмы, облегчающие связывание данных, извлечённых из трассы разными компонентами.

Также поддерживаются подключаемые модули, задающие внешние представления и способы хранения трассы.

Ключевые свойства

  1. Универсальность:
    Технология не привязана к какой-либо предметной области, классу приложений, способу тестирования (если мониторинг совмещён с тестированием), языку программирования, платформе или способу хранения данных.
  2. Структурированность данных:
    Поддерживается сброс в трассу структурированной информации и извлечение её с сохранением структуры.
  3. Расширяемость:
    Структура трассы и архитектура системы допускают добавление новых видов информации без дополнительных накладных расходов и без необходимости перекомпиляции старых приложений. Также возможен прозрачный выбор нужных (в зависимости от особенностей целевого приложения и его окружения) способов внешнего хранения и передачи трассы или добавление новых таких способов.
  4. Модульность:
    Приложение, генерирующее трассу, сбрасывает в неё только ту информацию, которую разработчик может собрать и считает существенной. По мере необходимости можно добавлять сброс новых видов информации.
    Приложение, анализирующее трассу, выбирает из неё только понятную ему и существенную для него информацию, безболезненно (как по ресурсам, так и с точки зрения согласованности данных) игнорируя все остальное. Архитектура системы позволяет легко настраивать, какую информацию брать из трассы, какими способами её обрабатывать и как связывать между собой, что позволяет создавать легко настраиваемые отчёты, собираемые из готовых компонентов.
  5. Простота связывания:
    Предоставляются средства, обеспечивающие автоматическое связывание разнородной информации при анализе трасс.
  6. Унификация:
    Стандартные виды информации, используемые в различных предметных областях, трассируются и обрабатываются в унифицированном виде, что позволяет легко разрабатывать как собственные библиотеки аспектов, так и универсальные анализаторы трассы, обрабатывающие информацию из разных аспектов.
  7. Гибкость трассировки и анализа:
    Возможность легко настраивать, что трассировать, а что нет; какую информацию брать из трассы, как её анализировать, как связывать между собой и как представлять.

Архитектура

Аспектные трассировщики и аспектные адаптеры входят в соответствующие библиотеки аспектов и подключаются приложениями при необходимости; при этом сообщения трассы, относящиеся к аспекту, для которого не подключён адаптер, игнорируются.

Tracer и Parser - инфраструктурные компоненты, непосредственно поддерживающие расширяемый формат трассы. Приложения взаимодействуют с ними не напрямую, а через библиотеки аспектов. Также возможно связывание этих двух компонентов (а через них - генераторы и анализаторы трассы) напрямую в одном адресном пространстве, без промежуточных внешних представлений трассы.

Примеры использования

source:trunk/src/java/com/unitesk/aspectrace/sampleApp

MainApp.java - приложение, генерирующее трассу, а потом строящее по ней HTML-отчёт.
В этом же пакете содержатся примеры компонентов генератора отчётов, обрабатывающие информацию от некоторых аспектов, способные гибко связываться между собой и обмениваться информацией. Эти компоненты используются также в других проектах.

Ссылки на более подробные документы

source:trunk/docs/Aspectrace_manual.doc

Ссылки для скачивания

Файлы поставки можно скачать здесь

Данный проект зависит от проекта coverage , файлы поставки которого можно скачать здесь

Updated by Sergey Groshev almost 15 years ago · 8 revisions