27.03.2014 Views

SEKE 2012 Proceedings - Knowledge Systems Institute

SEKE 2012 Proceedings - Knowledge Systems Institute

SEKE 2012 Proceedings - Knowledge Systems Institute

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

some previous work [2, 7], this work did not propose a concrete<br />

model for advice execution in threads. Most popular<br />

AOP languages effectively ignore concurrency; in AspectJ<br />

the thread that reaches a joinpoint will execute the advice,<br />

and nothing is specified beyond that. Ansaloni and Binder<br />

[2] introduced a framework that enables asynchronous advice<br />

execution by collecting advice invocations in a buffer<br />

and executing the advices in a separate thread. Douence<br />

et al. [9] created Concurrent Event-based AOP (CEAOP)<br />

which defines concurrent AOP using labeled transition systems,<br />

and overcomes some of the limitations of synchronization<br />

and thread communications. CEAOP supports concurrency<br />

in the underlying program, and concurrent execution<br />

of advice with the base program by allowing the advice<br />

body executions in parallel.<br />

5. Conclusion<br />

Fundamental to AOP is the notion of a joinpoint, which<br />

has traditionally been thought of as a point in the program<br />

execution that can practically be mapped to points in the<br />

program itself. We argued here that the notion of a joinpoint<br />

really should be a defined interval of program execution<br />

whose defining conditions may or may not be related<br />

to loci in the program itself. This change better captures<br />

existing usage of AOP, in particular with the around advice<br />

application and the treatment of threads, and it allows thinking<br />

about new and novel directions for AOP. We also argue<br />

here that this change in joinpoint thinking also helps to better<br />

separate advice execution from pointcut definition, and<br />

allows the imagination of new types of advice execution that<br />

have wide applicability in the software engineering field.<br />

In this paper we are only presenting ideas of how the abstractions<br />

in AOP might be generalized and expanded. We<br />

are not attempting to claim that it is straightforward to put<br />

these ideas into practice. Indeed the existing ideas within<br />

AOP are arguably there because it was somewhat obvious<br />

how to implement them efficiently. Other ideas have followed<br />

similar paths. The idea of tracematches as joinpoint<br />

designators was introduced first, then followed by work in<br />

optimizing their detection [6].<br />

Working out other details as well, such as how to create<br />

a usable advice language that embodies these ideas without<br />

overwhelming the user, may be problematic. Certainly<br />

some of the success of AOP, as with other technologies,<br />

is found in the combination of power and simplicity. Yet<br />

the continuing research in AOP should consider breaking<br />

away from ideas that limit what can be imagined and implemented,<br />

and should explore radical new and novel approaches<br />

to AOP.<br />

References<br />

[1] M. Achenbach and K. Ostermann. A Meta-Aspect Protocol<br />

for Developing Dynamic Analyses. In Proc. 1st Int’l Conf.<br />

on Runtime Verification, pages 153–167, Berlin, Heidelberg,<br />

2010. Springer-Verlag.<br />

[2] D. Ansaloni, W. Binder, A. Villazón, and P. Moret. Parallel<br />

Dynamic Analysis on Multicores with Aspect-Oriented Programming.<br />

In 2010 Conference on Aspect-Oriented Software<br />

Development (AOSD), pages 1–12, 2010.<br />

[3] T. Aotani and H. Masuhara. SCoPE: an AspectJ Compiler for<br />

Supporting User-Defined Analysis-Based Pointcuts. In Proc.<br />

6th Int’l Conf. on Aspect-Oriented Software Development,<br />

pages 161–172, New York, 2007. ACM.<br />

[4] P. Avgustinov, T. Ekman, and J. Tibble. Modularity First:<br />

A Case for Mixing AOP and Attribute Grammars. In Proc.<br />

7th Int’l Conf. on Aspect-Oriented Software Development,<br />

AOSD ’08, pages 25–35, New York, 2008. ACM.<br />

[5] W. Binder, P. Moret, D. Ansaloni, A. Sarimbekov,<br />

A. Yokokawa, and E. Tanter. Towards a Domain-Specific<br />

Aspect Language for Dynamic Program Analysis: Position<br />

Paper. In Proc. 6th Workshop on Domain-Specific Aspect<br />

Languages, pages 9–11, New York, 2011. ACM.<br />

[6] E. Bodden, L. Hendren, and O. Lhoták. A Staged Static<br />

Program Analysis to Improve the Performance of Runtime<br />

Monitoring. In ECOOP, pages 525–549, 2007.<br />

[7] W. Cazzola, A. Cicchetti, and A. Pierantonio. Towards a<br />

Model-Driven Join Point Model. In <strong>Proceedings</strong> of the 2006<br />

ACM Symposium on Applied Computing, SAC ’06, pages<br />

1306–1307, New York, 2006. ACM.<br />

[8] F. Chen and G. Roşu. MOP: an Efficient and Generic Runtime<br />

Verification Framework. In OOPSLA ’07: Proc. 22nd<br />

ACM SIGPLAN Conf. on Object Oriented Programming,<br />

<strong>Systems</strong>, and Applications, pages 569–588, New York, NY,<br />

USA, 2007. ACM.<br />

[9] R. Douence, D. Le Botlan, J. Noyé, and M. Südholt. Concurrent<br />

Aspects. In <strong>Proceedings</strong> of the 5th International Conference<br />

on Generative Programming and Component Engineering,<br />

GPCE ’06, pages 79–88, New York, 2006. ACM.<br />

[10] R. Dyer and H. Rajan. Nu: a Dynamic Aspect-Oriented Intermediate<br />

Language Model and Virtual Machine for Flexible<br />

Runtime Adaptation. In Proc. 7th Int’l Conf. on Aspect-<br />

Oriented Software Devel., pages 191–202. ACM, 2008.<br />

[11] G. Kiczales and M. Mezini. Aspect-Oriented Programming<br />

and Modular Reasoning. In <strong>Proceedings</strong> of the 27th International<br />

Conference on Software Engineering, ICSE ’05, pages<br />

49–58, New York, 2005. ACM.<br />

[12] S. Kojarski and D. H. Lorenz. Modeling Aspect Mechanisms:<br />

a Top-Down Approach. In Proc. 28th International<br />

Conference on Software Engineering, pages 212–221, New<br />

York, 2006. ACM.<br />

[13] E. Marques, L. Veiga, and P. Ferreira. An Extensible Framework<br />

for Middleware Design Based on Concurrent Event-<br />

Based AOP. In Proc. 9th Int’l Workshop on Adaptive and<br />

Reflective Middleware, pages 26–31, New York, 2010. ACM.<br />

[14] H. Masuhara, Y. Endoh, and A. Yonezawa. A Fine-Grained<br />

Join Point Model for More Reusable Aspects. In Proc.<br />

Fourth ASIAN Symposium on Programming Languages and<br />

<strong>Systems</strong>, (LNCS 4279), pages 131–147, Nov. 2006.<br />

157

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!