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 |