Project

General

Profile

Overview » History » Revision 4

Revision 3 (Sergey Groshev, 12/24/2009 12:47 PM) → Revision 4/8 (Sergey Groshev, 12/24/2009 04:33 PM)

h1. Overview 

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

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

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

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

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

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

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

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

 h2. Архитектура 

 !Aspectrace_architecture.gif! !http://forge.ispras.ru/attachments/133/Aspectrace_architecture.gif! 

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

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

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

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

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

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

 source:trunk/docs/Aspectrace_manual.doc 


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

 Файлы поставки можно скачать "здесь":http://forge.ispras.ru/projects/list_files/aspectrace здесь: http://forge.ispras.ru/projects/list_files/aspectrace 

 Данный проект зависит от проекта "coverage":http://forge.ispras.ru/projects/show/coverage , файлы поставки которого можно скачать "здесь":http://forge.ispras.ru/projects/list_files/coverage 
 здесь: http://forge.ispras.ru/projects/list_files/coverage