Project

General

Profile

Overview » History » Version 4

Sergey Groshev, 12/24/2009 04:33 PM

1 1 Sergey Groshev
h1. Overview
2
3 4 Sergey Groshev
Aspectrace - технология расширяемой аспектно-ориентированной трассировки.
4 1 Sergey Groshev
5
h2. Назначение проекта
6
7 4 Sergey Groshev
Инструментарий аспектно-ориентированной трассировки Aspectrace предназначен прежде всего для разработчиков и тестировщиков, которым нужно *трассировать (логгировать)* при работе многокомпонентного приложения или теста *разнородную* и *структурированную* информацию, по мере необходимости расширяя набор сбрасываемой информации, после чего гибко выбирать из полученной трассы нужные данные, анализировать их, связывать между собой и строить разнообразные отчёты.
8 1 Sergey Groshev
9 4 Sergey Groshev
Технология поддерживает расширяемый формат трассы. Для работы с информацией нужного вида клиент подключает соответствующий модуль (называемый _аспектом_), который предназначен для работы с ней; аспект определяет собственную модель данных и собственные типы сообщений трассы. Различные аспекты могут подключаться приложениями (как генерирующими трассу, так и анализирующими её) независимо друг от друга.
10 1 Sergey Groshev
11 4 Sergey Groshev
Поддерживается компонентная инфраструктура отчётов, позволяющая гибко собирать из компонентов генератора отчётов (как готовых библиотечных, так и разработанных под конкретную задачу), анализирующих различные срезы информации, нужные пользователю отчёты. Предоставляются механизмы, облегчающие связывание данных из разных аспектов.
12
13
Также поддерживаются подключаемые модули, задающие внешние представления и способы хранения трассы.
14
15 1 Sergey Groshev
h2. Ключевые свойства
16
17
# *Универсальность:*
18
Технология не привязана к какой-либо предметной области, классу приложений, способу тестирования, языку программирования, платформе или способу хранения данных.
19
# *Расширяемость:*
20 4 Sergey Groshev
Структура трассы и архитектура системы допускают добавление новых видов информации без дополнительных накладных расходов и без необходимости перекомпиляции старых приложений. Также возможен прозрачный выбор нужных (в зависимости от особенностей реализации и среды) способов внешнего хранения и передачи трассы или добавление новых.
21 1 Sergey Groshev
# *Модульность:*
22
Приложение, генерирующее трассу, сбрасывает в неё без ущерба для логической целостности только ту информацию, которую разработчик считает существенной. По мере необходимости можно добавлять сброс новых видов информации.
23
Приложение, анализирующее трассу, выбирает из неё только понятную ему и существенную для него информацию, безболезненно (как по ресурсам, так и с точки зрения согласованности данных) игнорируя все остальное. Архитектура системы позволяет легко настраивать, какую информацию брать из трассы, какими способами её обрабатывать и как связывать между собой, что позволяет создавать легко настраиваемые отчёты, собираемые из готовых компонентов.
24
# *Простота связывания:*
25
Предоставляются средства, упрощающие автоматическое связывание разнородной информации при анализе трассы.
26
# *Унификация:*
27 4 Sergey Groshev
Стандартные виды информации, используемые в различных предметных областях, трассируются и обрабатываются в унифицированном виде, что позволяет легко разрабатывать как собственные библиотеки аспектов, так и универсальные анализаторы трассы, обрабатывающие информацию из разных аспектов.
28 1 Sergey Groshev
# *Структурированность данных:*
29
Поддерживается сброс в трассу структурированной информации и извлечение её с сохранением структуры.
30
# *Гибкость трассировки и анализа:*
31
Возможность легко настраивать, что трассировать, а что нет; какую информацию брать из трассы, как её анализировать, как связывать между собой и как представлять.
32
33
h2. Архитектура
34
35 4 Sergey Groshev
!Aspectrace_architecture.gif!
36 1 Sergey Groshev
37 4 Sergey Groshev
*Аспектные трассировщики* и *аспектные адаптеры* входят в соответствующие библиотеки аспектов и подключаются приложениями при необходимости; при этом сообщения трассы, относящиеся к аспекту, для которого не подключён адаптер, игнорируются.
38
39
*Tracer* и *Parser* - инфраструктурные компоненты, непосредственно поддерживающие расширяемый формат трассы. Приложения взаимодействуют с ними не напрямую, а через библиотеки аспектов. Также возможно связывание этих двух компонентов (а через них - генераторы и анализаторы трассы) напрямую в одном адресном пространстве, без промежуточных внешних представлений трассы.
40
41 1 Sergey Groshev
h2. Примеры использования
42
43
source:trunk/src/java/com/unitesk/aspectrace/sampleApp
44
45 4 Sergey Groshev
MainApp.java - приложение, генерирующее трассу, а потом строящее по ней HTML-отчёт.
46
В этом же пакете содержатся примеры компонентов генератора отчётов, обрабатывающие информацию от некоторых аспектов, способные гибко связываться между собой и обмениваться информацией. Эти компоненты используются также в других проектах.
47
48 1 Sergey Groshev
h2. Ссылки на более подробные документы
49
50
source:trunk/docs/Aspectrace_manual.doc
51
52
53
h1. Ссылки для скачивания
54
55 4 Sergey Groshev
Файлы поставки можно скачать "здесь":http://forge.ispras.ru/projects/list_files/aspectrace
56 1 Sergey Groshev
57 4 Sergey Groshev
Данный проект зависит от проекта "coverage":http://forge.ispras.ru/projects/show/coverage , файлы поставки которого можно скачать "здесь":http://forge.ispras.ru/projects/list_files/coverage