Abstract
Synchronization is a good candidate for an aspect in aspect-oriented programming (AOP) since programmers have to choose the best granularity of synchronization for the underlying hardware to obtain the best execution performance. If synchronization is an aspect, programmers can change the synchronization code independently of the rest of the program when the program runs on different hardware. However, existing AOP languages such as AspectJ have problems. They cannot select an arbitrary code region as a join point. Moreover, they cannot enforce weaving of a synchronization aspect. Since it is an alternative feature in feature modeling, at least one of available synchronization aspects must be woven. Otherwise, the program would be thread-unsafe. Since an aspect in AspectJ is inherently optional, programmers must be responsible for weaving it. To solve these problems, this paper proposes two new constructs for AspectJ, regioncut and assertions for advice. Regioncut selects arbitrary code region as a join point and assertion for advice enforces weaving a mandatory advice. We implemented these constructs by extending the AspectBench compiler. We evaluated the design of our constructs by applying them to two open-source software products, Javassist and Hadoop.
- {#jassist-28} javassist enhancement failed on deserializing hibernate proxies - jboss.org jira. http://jira.jboss.org/jira/browse/JASSIST-28.Google Scholar
- C. Allan, P. Avgustinov, A. S. Christensen, L. Hendren, S. Kuzins, O. Lhotak, O. de Moor, D. Sereni, G. Sittampalam, and J. Tibble. Adding trace matching with free variables to aspectj. In OOPSLA'05: Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, pages 345--364, New York, NY, USA, 2005. ACM. Google Scholar
Digital Library
- S. Apel and D. Batory. When to use features and aspects?: a case study. In GPCE '06: Proceedings of the 5th international conference on Generative programming and component engineering, pages 59--68, New York, NY, USA, 2006. ACM. Google Scholar
Digital Library
- P. Avgustinov, A. S. Christensen, L. Hendren, S. Kuzins, J. Lhotak, O. Lhotak, O. de Moor, D. Sereni, G. Sittampalam, and J. Tibble. abc: an extensible aspectj compiler. In AOSD '05: Proceedings of the 4th international conference on Aspect-oriented software development, pages 87--98, New York, NY, USA, 2005. ACM. Google Scholar
Digital Library
- D. Batory, J. N. Sarvela, and A. Rauschmayer. Scaling step-wise refinement. In ICSE '03: Proceedings of the 25th International Conference on Software Engineering, pages 187--197, Washington, DC, USA, 2003. IEEE Computer Society. Google Scholar
Digital Library
- N. Cacho, F. C. Filho, A. Garcia, and E. Figueiredo. Ejflow: taming exceptional control flows in aspect-oriented programming. In AOSD '08: Proceedings of the 7th international conference on Aspect-oriented software development, pages 72--83, New York, NY, USA, 2008. ACM. Google Scholar
Digital Library
- S. Chiba. Load-time structural reflection in java. In ECOOP '00: Proceedings of the 14th European Conference on Object-Oriented Programming, pages 313--336, London, UK, 2000. Springer-Verlag. Google Scholar
Digital Library
- J. Dean and S. Ghemawat. Mapreduce: simplified data processing on large clusters. In OSDI'04: Proceedings of the 6th conference on Symposium on Opearting Systems Design&Implementation, pages 10--10, Berkeley, CA, USA, 2004. USENIX Association. Google Scholar
Digital Library
- T. Ekman and G. Hedin. The jastadd extensible java compiler. In OOPSLA '07: Companion to the 22nd ACM SIGPLAN conference on Object-oriented programming systems and applications companion, pages 884--885, New York, NY, USA, 2007. ACM. Google Scholar
Digital Library
- R. E. Filman and D. P. Friedman. Aspect-oriented programming is quantification and obliviousness. In Aspect-Oriented Software Development, pages 21--35. Addison-Wesley, 2005.Google Scholar
- B. Harbulot and J. R. Gurd. A join point for loops in aspectj. In AOSD '06: Proceedings of the 5th international conference on Aspect-oriented software development, pages 63--74, New York, NY, USA, 2006. ACM. Google Scholar
Digital Library
- G. Hedin and E. Magnusson. Jastadd: an aspect-oriented compiler construction system. Sci. Comput. Program., 47(1):37--58, 2003. Google Scholar
Digital Library
- K. C. Kang, S. G. Cohen, J. A. Hess,W. E. Novak, and A. S. Peterson. Feature-oriented domain analysis (foda) feasibility study. Technical report, Carnegie-Mellon University Software Engineering Institute, November 1990.Google Scholar
- K. C. Kang, S. Kim, J. Lee, K. Kim, G. J. Kim, and E. Shin. Form: A feature-oriented reuse method with domain-specific reference architectures. Annals of Software Engineering, 5:143--168, 1998. Google Scholar
Digital Library
- G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. G. Griswold. An overview of aspectj. In ECOOP '01: Proceedings of the 15th European Conference on Object-Oriented Programming, pages 327--353, London, UK, 2001. Springer-Verlag. Google Scholar
Digital Library
- K. Klose and K. Ostermann. Back to the future: Pointcuts as predicates over traces. In FOAL 2005: Foundations of Aspect-Oriented Languages 2005. ACM, 2005.Google Scholar
- K. Kourai, H. Hibino, and S. Chiba. Aspect-oriented application-level scheduling for j2ee servers. In AOSD '07: Proceedings of the 6th international conference on Aspect-oriented software development, pages 1--13, New York, NY, USA, 2007. ACM. Google Scholar
Digital Library
- H. Masuhara, G. Kiczales, and C. Dutchyn. Compilation semantics of aspect-oriented programs. In FOAL 2002: Foundations Of Aspect-Oriented Languages - Workshop at AOSD 2002 -. ACM, 2002.Google Scholar
- M. Stoerzer and J. Graf. Using pointcut delta analysis to support evolution of aspect-oriented software. In ICSM'05: Proceedings of the 21st IEEE International Conference on Software Maintenance, pages 653--656, Washington, DC, USA, 2005. IEEE Computer Society. Google Scholar
Digital Library
- The Apache Software Foundation. Welcome to apache hadoop! http://hadoop.apache.org/.Google Scholar
- R. Vallee-Rai, P. Co, E. Gagnon, L. Hendren, P. Lam, and V. Sundaresan. Soot - a java bytecode optimization framework. In CASCON '99: Proceedings of the 1999 conference of the Centre for Advanced Studies on Collaborative research, page 13. IBM Press, 1999. Google Scholar
Digital Library
- R. J. Walker and K. Viggers. Implementing protocols via declarative event patterns. In SIGSOFT '04/FSE-12: Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering, pages 159--169, New York, NY, USA, 2004. ACM. Google Scholar
Digital Library
- C. Xi, B. Harbulot, and J. R. Gurd. A synchronized block join point for aspectj. In FOAL '08: Proceedings of the 7th workshop on Foundations of aspect-oriented languages, pages 39--39, New York, NY, USA, 2008. ACM. Google Scholar
Digital Library
- C. Xi, B. Harbulot, and J. R. Gurd. Aspect-oriented support for synchronization in parallel computing. In PLATE '09: Proceedings of the 1st workshop on Linking aspect technology and evolution, pages 1--5, New York, NY, USA, 2009. ACM. Google Scholar
Digital Library
- C. Zhang. Flexsync: An aspect-oriented approach to java synchronization. In ICSE '09: Proceedings of the 2009 IEEE 31st International Conference on Software Engineering, pages 375--385, Washington, DC, USA, 2009. IEEE Computer Society. Google Scholar
Digital Library
Index Terms
Extending AspectJ for separating regions
Recommendations
Extending AspectJ for separating regions
GPCE '09: Proceedings of the eighth international conference on Generative programming and component engineeringSynchronization is a good candidate for an aspect in aspect-oriented programming (AOP) since programmers have to choose the best granularity of synchronization for the underlying hardware to obtain the best execution performance. If synchronization is ...
Region pointcut for AspectJ
ACP4IS '09: Proceedings of the 8th workshop on Aspects, components, and patterns for infrastructure softwareThis paper proposes a new pointcut called region pointcut, which has the ability to pick out regions as join points. This pointcut allows programmers to modularize synchronization, exception handling and parallelization. Although these are typical ...
Resolving Synchronization and Analyzing Based on Aspect-Oriented Programming
ISCSCT '08: Proceedings of the 2008 International Symposium on Computer Science and Computational Technology - Volume 01Synchronization is an important problem in the design and development of the software, which has been resolved in the object-oriented programming (OOP). However, the implementation of OOP is easy to leads to code-tangling and code-scattering between ...







Comments