Adaptability to the dynamic nature of the computing environments has become an important feature in today's modern systems. PROSE, an open source project, is a Java-based middleware platform for dynamic aspect-oriented programming (AOP). It supports runtime adaptation of applications by extending their functionality with new code (aspects) used to enhance, modify, or control the functionality already present in the application. Integrated into an Eclipse plug-in, the PROSE Development Tools for Eclipse is used to develop and run applications inside Eclipse, as well as for standalone Java applications. It provides tools for creating, runtime monitoring and distributed visualization of remote aspects.
In this demonstration we present PROSE, a generic platform which illustrates the benefits of dynamic AOP, and show how its associated tools can be used to modify the running applications with new functionality. We present the usefulness of new programming and runtime environments based on dynamic AOP and its incarnation in the PROSE Development Tools for Eclipse. The demo highlights the new Java language features introduced in Java 5, such as autoboxing and varargs, and how they are supported in PROSE. We show how to modify the behavior of a running application by dynamically weaving aspects that identify places of interest in the application. After an aspect has been weaved, we show that the running application has been adapted and we use the PROSE middleware tools to graphically display the join-points matched by the woven aspect. The aspects can also be withdrawn, leaving the application as if no insertion ever took place. Attendees will see examples of more advanced runtime adaptations, e.g., multiple method redefinitions support based on the aspects' priorities. This is an important feature in distributed applications, since it allows to control the order of executing functionality (code) that matches the same execution point. We will also show the ability to use Eclipse and PROSE to coordinately monitor and modify at runtime the code of remote applications. The aspects can be moved between distinct remote VMs by drag and drop using the PROSE plug-in for Eclipse.
Given the possibility to add and remove new functionality at an arbitrary point in time, it is important to know at any time what aspects are currently inserted into an application and what execution points they denote. For this purpose, PROSE provides powerful tools that allow the users to see how a given aspect will affect the application behavior at runtime. Attending this talk will give the participants the possibility to explore the powerful features of dynamic AOP.
Angela Nicoara joined the Information and Communication Systems Research Group of Prof. Dr. Gustavo Alonso at ETH Zurich, Switzerland in October 2002. She is currently the leader of the PROSE project. She is involved in the National Centres of Competence in Research, Mobile Information and Communication Systems (NCCR MICS), IP8 (System and Software Architecture) project, supported by the Swiss National Science Foundation. Her research interests cover dynamic Aspect-Oriented Programming (AOP), adaptive software architectures, middleware adaptation for various platforms, middleware for mobile and distributed computing. Before joining ETH Zurich, both as a student and after graduation she had contracts and internships with Google Inc. and Webquote (now called EmpactSoftware) in Silicon Valley, as well as the German software company Caatoosee. During these years she worked on different projects as a Java and C/C++ developer.