A Dynamic Approach to Combine Components and Aspects
Resumo
In this paper we discuss the use of a dynamic approach to combine components and aspects in order to form a CORBA-based application. We use AspectLua, an extension of an interpreted and dynamically typed language – Lua, which supports aspect-oriented programming. We describe the use of AspectLua in the context of a CORBA-based environment. AspectLua explores the reflexive features of Lua and the powerful of its small syntax and allows the dynamic definition of aspects and it also offers support for dynamic weaving. The difference of AspectLua to the traditional aspect-oriented languages is the fact of being interpreted and dynamically typed – this allows the insertion/removal of components and aspects in an application at runtime.
Referências
Bonér, J. AspectWerkz: dynamic AOP for Java. http://codehaus.org/~jboner/papers/aosd2004_aspectwerkz.pdf. 2003.
Blank G., Vayngrib G. Aspects of Enterprise Java Beans, Aspect-Oriented Programming (AOP) Workshop at ECOOP'98. 1998.
Brichau, J., De Meuter, W. and De Volder, K. Jumping Aspects. Position paper at the workshop Aspects and Dimensions of Concerns. ECOOP 2000, Sophia Antipolis and Cannes, France, June 2000.
Bryant A. and Feldt R. AspectR - Simple aspect-oriented programming in Ruby. Available at http://aspectr.sourceforge.net/. 2002.
Cerqueira, R., Cassino, C., and Ierusalimschy, R. Dynamic component gluing across different componentware systems. In International Symposium on Distributed Objects and Applications (DOA'99), pages 362-371, Edinburgh, Scotland. OMG, IEEE Press. 1999.
Dechow, D. Advanced Separation of Concerns for Dynamic, Lightweight Languages. In: 5th Generative Programming and Component Engineering. 2003.
Elrad, T., Aksit, M., Kiczales, G., Lieberherr, K., and Ossher, H. Discussing Aspects of AOP. Communications of the ACM, Vol. 44, No. 10, pp 33-38, October 2001.
Herrmann S. and Mezini M. Combining Composition Styles in the Evolvable Language LAC. ASoC Workshop in ICSE. 2001.
Ierusalimsky, R., Figueiredo, L. H., and Celes, W. Lua - an extensible extension language. Software: Practice and Experience, 26(6):635-652. 1996.
Kaustub, D. and Grimes, D. A comparison of object oriented scripting languages: Python and Ruby. Available at [link]. 2001.
Lieberherr, K., Lorenz, D. and Mezini, M. Programming with Aspectual Components. Technical Report, NU-CCS-99-01. Available at: [link]. March 1999.
Papadoupoulos, G. and Arbab, F. Coordination Languages and Models, In: Advances in Computers. Academic Press. 1998.
Rasche, A. and Polze, A. Configuration and Dynamic Reconfiguration of Component-based Applications with Microsoft .NET. 6th IEEE International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC 2003), Hakodate, Hokkaido, Japan, ISBN 0-7695-1928-8, IEEE Computer Society Press. May 2003.
Rossum, G. v. Python Reference Manual. Available at http://www.python.org/doc/current/ref/ref.html. 2003.
Szyperski, C. Component Software: Beyond Object-Oriented Programming. Addison-Wesley. 1998.
Thomas D. and Hunt A. Programming Ruby: A Pragmatic Programmer's Guide. Available at http://www.rubycentral.com/book/. 2000.