Overview » History » Revision 5
Revision 4 (Sergey Groshev, 12/24/2009 04:33 PM) → Revision 5/8 (Sergey Groshev, 02/04/2010 02:54 PM)
h1. Overview Aspectrace - технология расширяемой аспектно-ориентированной трассировки. {{toc}} h2. Назначение проекта Инструментарий аспектно-ориентированной трассировки *Aspectrace* Aspectrace предназначен прежде всего для разработчиков и тестировщиков, которым нужны средства мониторинга работы сложных приложений нужно *трассировать (логгировать)* при работе многокомпонентного приложения или тестов для них. Система Aspectrace предоставляет возможность собирать в форме *трасс* (логов) теста *разнородную* и *структурированную* информацию, по мере необходимости расширяя набор собираемой сбрасываемой информации, после чего гибко и эффективно выбирать из полученной трассы нужные данные, анализировать их, связывать между собой и строить на их основе разнообразные отчёты. Технология поддерживает расширяемый формат трассы. Для работы с информацией нужного вида клиент подключает соответствующий модуль (называемый _библиотекой аспекта_), _аспектом_), который предназначен для работы с ней; аспект определяет собственную модель данных и собственные типы трассируемых сообщений. сообщений трассы. Различные аспекты могут подключаться приложениями (как генерирующими трассу, так и анализирующими её) независимо друг от друга. Предоставляется Поддерживается компонентная инфраструктура отчётов, позволяющая гибко собирать нужные пользователю генераторы отчётов из компонентов генератора отчётов (как готовых библиотечных, так и разработанных под конкретную задачу), анализирующих различные срезы информации. информации, нужные пользователю отчёты. Предоставляются механизмы, облегчающие связывание данных, извлечённых данных из трассы разными компонентами. разных аспектов. Также поддерживаются подключаемые модули, задающие внешние представления и способы хранения трассы. h2. Ключевые свойства # *Универсальность:* Технология не привязана к какой-либо предметной области, классу приложений, способу тестирования (если мониторинг совмещён с тестированием), тестирования, языку программирования, платформе или способу хранения данных. # *Структурированность данных:* Поддерживается сброс в трассу структурированной информации и извлечение её с сохранением структуры. # *Расширяемость:* Структура трассы и архитектура системы допускают добавление новых видов информации без дополнительных накладных расходов и без необходимости перекомпиляции старых приложений. Также возможен прозрачный выбор нужных (в зависимости от особенностей целевого приложения реализации и его окружения) среды) способов внешнего хранения и передачи трассы или добавление новых таких способов. новых. # *Модульность:* Приложение, генерирующее трассу, сбрасывает в неё без ущерба для логической целостности только ту информацию, которую разработчик может собрать и считает существенной. По мере необходимости можно добавлять сброс новых видов информации. Приложение, анализирующее трассу, выбирает из неё только понятную ему и существенную для него информацию, безболезненно (как по ресурсам, так и с точки зрения согласованности данных) игнорируя все остальное. Архитектура системы позволяет легко настраивать, какую информацию брать из трассы, какими способами её обрабатывать и как связывать между собой, что позволяет создавать легко настраиваемые отчёты, собираемые из готовых компонентов. # *Простота связывания:* Предоставляются средства, обеспечивающие упрощающие автоматическое связывание разнородной информации при анализе трасс. трассы. # *Унификация:* Стандартные виды информации, используемые в различных предметных областях, трассируются и обрабатываются в унифицированном виде, что позволяет легко разрабатывать как собственные библиотеки аспектов, так и универсальные анализаторы трассы, обрабатывающие информацию из разных аспектов. # *Структурированность данных:* Поддерживается сброс в трассу структурированной информации и извлечение её с сохранением структуры. # *Гибкость трассировки и анализа:* Возможность легко настраивать, что трассировать, а что нет; какую информацию брать из трассы, как её анализировать, как связывать между собой и как представлять. h2. Архитектура !Aspectrace_architecture.gif! *Аспектные трассировщики* и *аспектные адаптеры* входят в соответствующие библиотеки аспектов и подключаются приложениями при необходимости; при этом сообщения трассы, относящиеся к аспекту, для которого не подключён адаптер, игнорируются. *Tracer* и *Parser* - инфраструктурные компоненты, непосредственно поддерживающие расширяемый формат трассы. Приложения взаимодействуют с ними не напрямую, а через библиотеки аспектов. Также возможно связывание этих двух компонентов (а через них - генераторы и анализаторы трассы) напрямую в одном адресном пространстве, без промежуточных внешних представлений трассы. h1. h2. Примеры использования source:trunk/src/java/com/unitesk/aspectrace/sampleApp MainApp.java - приложение, генерирующее трассу, а потом строящее по ней HTML-отчёт. В этом же пакете содержатся примеры компонентов генератора отчётов, обрабатывающие информацию от некоторых аспектов, способные гибко связываться между собой и обмениваться информацией. Эти компоненты используются также в других проектах. h1. h2. Ссылки на более подробные документы source:trunk/docs/Aspectrace_manual.doc h1. Ссылки для скачивания Файлы поставки можно скачать "здесь":http://forge.ispras.ru/projects/list_files/aspectrace Данный проект зависит от проекта "coverage":http://forge.ispras.ru/projects/show/coverage , файлы поставки которого можно скачать "здесь":http://forge.ispras.ru/projects/list_files/coverage