Project

General

Profile

Overview » History » Version 8

Sergey Groshev, 04/09/2010 05:11 PM
Link to english overview

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