Optimizing Aspect-Oriented Mechanisms for Embedded Applications
As applications for small embedded mobile devices are getting larger and more complex, it becomes inevitable to adopt more advanced software engineering methods from the field of desktop application development. Aspect-oriented programming (AOP) is a promising approach due to its advanced modularization capabilities. However, existing AOP languages tend to add a substantial overhead in both execution time and code size which restricts their practicality for small devices with limited resources. In this paper, we present optimizations for aspect-oriented mechanisms at the level of the virtual machine. Our experiments show that these optimizations yield a considerable performance gain along with a reduction of the code size. Thus, our optimizations establish the base for using advanced aspect-oriented modularization techniques for developing Java applications on small embedded devices.
Keywordsaspect-orientation embedded systems mobile devices Java virtual machine optimization
Unable to display preview. Download preview PDF.
- 1.JamVM homepage, http://jamvm.sourceforge.net
- 2.Object Teams homepage, http://www.eclipse.org/objectteams/
- 3.Bockisch, C., Arnold, M., Dinkelaker, T., Mezini, M.: Adapting Virtual Machine Techniques for Seamless Aspect Support. In: OOPSLA ’06: Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, pp. 109–124. ACM, New York (2006)CrossRefGoogle Scholar
- 4.buglabs.net. Java VMs Compared (2008), http://bugblogger.com/java-vms-compared-160/
- 7.Ertl, M.A., Thalinger, C., Krall, A.: Superinstructions and Replication in the Cacao JVM interpreter. Journal of.NET Technologies 4, 25–32 (2006)Google Scholar
- 9.Haupt, M.: Virtual Machine Support for Aspect-Oriented Programming Languages. PhD thesis, Software Technology Group, Darmstadt University of Technology (2006)Google Scholar
- 10.Haupt, M., Mezini, M.: Virtual Machine Support for Aspects with Advice Instance Tables. L’Objet 11(3), 9–30 (2005)Google Scholar
- 13.Herrmann, S., Hundt, C., Mosconi, M.: ObjectTeams/Java Language Definition — version 1.0. Technical Report 2007/03, Fak. IV, Technical University Berlin (2007)Google Scholar
- 14.Hundt, C., Glesner, S.: Optimizing Aspectual Execution Mechanisms for Embedded Applications. In: Proceedings of the First Workshop on Generative Technologies (WGT) 2008. Electronic Notes in Theoretical Computer Science, vol. 238, pp. 35–45 (2009)Google Scholar
- 16.Lindholm, T., Yellin, F.: Java Virtual Machine Specification. Addison-Wesley Longman Publishing Co., Inc., Amsterdam (1999)Google Scholar
- 18.Spinczyk, O., Lohmann, D., Urban, M.: Advances in AOP with AspectC++. In: New Trends in Software Methodologies Tools and Techniques. Frontiers in Artificial Intelligence and Applications, pp. 33–53 (2005)Google Scholar