Advice Weaving
Una de las fases mas importantes de AOP es el weaving. Una ves definido los aspectos, o sea, haber indentificado los puntos de ejecución por donde se va a ejecutar un determinado código que hace a la separación en incumbencias, se debe "tejer" o unir los aspecto al sistema. Esto significa que hay que, de alguna manera, introducir los advise al sistema.
Dependiendo de la herramienta [1] que estemos usando para escribir los aspectos variará la manera en que se haga el weaving [2]. Básicamente hay dos maneras de implementar el weaving: de manera estática (compile time) o de manera dinámica (runtime). Entonces los diferentes tipos de implementaciones de weaving son:
- Compile-time weaving
- Class load-time weaving
- Hotswap weaving
- Runtime OO methods
- Bytecode modification weaving
- Dynamic proxy weaving
- VM level AOP
Estas implementaciones tiene ventajas y desventajas [2], las cuales permitiran tener mayor o menor control sobre los aspecto en diferentes fases del desarrollo (runtime, compile-time, debugging).
Como experiencia personal, la elección de un framework de AOP, fue la actividad más importante. Es necesario tener en cuenta ciertas características que están relacionadas con el proyecto. Como por ejemplo: qué capacidad tiene el framework de interactuar con
Lamentablemte AOP tiene un impacto en la performance que puede ser mayor o menor, pero que hay que tener presente; digo que, si bien la separación en incumbencias mejora la calidad de mi sistema, esto tiene un costo.
[2] The Aspect Blog
[3] http://www.csg.is.titech.ac.jp/~chiba/javassist/
