Using aspect-oriented PHP to implement crosscutting concerns in a collaborative web system

Aspect-Oriented Programming (AOP) is a new technology that was proposed to improve separation of concerns in software development. AOP's main focus is to use aspect modules to implement concerns that would be generally scattered across the system and tangled with other modules (crosscutting concerns). Although much research has focused on AOP's application to traditional software development, little has been done towards its application to Web development. Aspect-oriented PHP (aoPHP) is an addition to PHP that allows the use of AOP in the Web development context. In this paper we describe an application of aoPHP to show that AOP can also be effectively used in theWeb development context. In particular, we have implemented two crosscutting concerns in a collaborative Web system named CoTeia: the access control and the version control functionalities. Furthermore, we discuss how AOP can enhance the design of Web applications by reasoning on the refactored system

[1]  Gregor Kiczales,et al.  Using aspectC to improve the modularity of path-specific customization in operating system code , 2001, ESEC/FSE-9.

[2]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[3]  Yuanyuan Song,et al.  Information hiding interfaces for aspect-oriented design , 2005, ESEC/FSE-13.

[4]  Renata Pontin de Mattos Fortes,et al.  Strategies for automatic LOM metadata generating in a web-based CSCL tool , 2005, WebMedia '05.

[5]  Geert-Jan Houben,et al.  From adaptation engineering to aspect-oriented context-dependency , 2006, WWW '06.

[6]  Martin P. Robillard,et al.  Concern graphs: finding and describing concerns using structural program dependencies , 2002, Proceedings of the 24th International Conference on Software Engineering. ICSE 2002.

[7]  John W. Stamey,et al.  The aspect-oriented web , 2005, SIGDOC '05.

[8]  Tzilla Elrad,et al.  Aspect-oriented programming: Introduction , 2001, CACM.

[9]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[10]  David H. Lorenz,et al.  Domain driven web development with WebJinn , 2003, OOPSLA '03.

[11]  Mark Guzdial,et al.  Beyond Adoption to Invention: Teacher-Created Collaborative Activities in Higher Education , 2001 .

[12]  Bryan T. Saunders,et al.  Implementing database solutions on the web with aspect-oriented programming , 2005 .

[13]  G. Kiczales,et al.  Aspect-oriented programming and modular reasoning , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[14]  Gregor Kiczales,et al.  Role-based refactoring of crosscutting concerns , 2005, AOSD '05.

[15]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[16]  Lori L. Pollock,et al.  Timna: a framework for automatically combining aspect mining analyses , 2005, ASE '05.