Showing content from http://prose.ethz.ch/ below:
PROSE (PROgrammable extenSions of sErvices) Open Source Project
PROSE (PROgrammable extenSions of sErvices)
Open Source Project
Adaptability to the dynamic nature of the computing environments is one of the biggest challenges for software engineering and has become an important feature in today’s modern systems, mobile and pervasive computing. Applications which execute in such environments need to adapt to changing settings they encounter during their active life time. They should be able to react and modify their behavior dynamically in response to changes in their execution environments, without being required to be preprogrammed with the software functionality needed for typical adaptations.
Our research work addresses this challenge. PROSE is an infrastructure that supports dynamic adaptation of applications by extending their functionality with new code (extensions) used to enhance, modify, or control the functionality already present in the application. The system performs controlled, systematic, and efficient modification of the code of running Java applications without requiring them to be shut down. Changes are composable, and may be reordered or selectively withdrawn at any time. The modifications are expressed as Java classes, providing additional development benefits.
Given the possibility to add and remove new functionality at an arbitrary point in time, it is important to know at any time what extensions 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 extension will affect the application behavior at runtime. Embedded into an Eclipse plug-in, the PROSE Development Tools for Eclipse allows runtime monitoring and adaptation of applications from Eclipse. The tools allow to monitor and modify the code of local and remote applications at runtime.
PROSE can be used for a wide range of purposes: program instrumentation and profiling, online debugging and logging, hotfixes and security patches, evolution of critical legacy applications, software adaptation in a number of applications including web servers, J2EE containers, and mobile computing. Furthermore, PROSE provides the infrastructure for a number of research projects exploring the use of PROSE for assuring application performance, enterprise applications, software evolution, and implementation of service migration.
People
Contact information
For more information, please contact Dr. Angela Nicoara, the leader of the PROSE project. About the PROSE project
PROSE was one of the first platforms that tackled the problem of dynamic AOP. As a result, PROSE has evolved through a number of versions, each one of them based on different forms of interception and weaving.
- The first version of PROSE used the Java Virtual Machine Debugger Interface (JVMDI) event notification mechanism to convert join-points into stop points. Once the application had been stopped, the advice was executed externally to the application although the advice had access to the context where it was being executed (e.g., stack frames, calling parameters for methods, etc.).
- The second version of PROSE extended this model by giving the option of, instead of using the debugger, using the baseline JIT compiler. The idea was to weave hooks into the application at native code locations that correspond to all potential join-points. When executed, the hooks determine whether an advice needed to be invoked for that particular join-point and called the advice.
- The new version of PROSE uses (a) an advice weaving strategy for method replacement join-points and (b) a stub weaving mechanism for join-points involving external advices. It implements adaptation by a novel mechanism based on dynamic bytecode instrumentation that supports method code replacement while an application is running. Modifications take the form of replacement method bodies, and can use both type-based and regular expression patterns to select code for replacement. New code can make use of replaced method implementations cleanly, facilitating code evolution. Changes are composable, and may be reordered or selectively withdrawn at any time. 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 extensions.
An important characteristic of PROSE is that these different weaving mechanisms are meant as alternatives. The idea is to mirror the flexibility offered by middleware platforms in which designers can choose different approaches depending on the type of application involved.
Publications
- Angela Nicoara, Gustavo Alonso, Timothy Roscoe: Controlled, Systematic, and Efficient Code Replacement for Running Java Programs. In: Proceedings of the ACM EuroSys 2008 Conference (EuroSys 2008), Glasgow, Scotland, UK, April 2008.
- Angela Nicoara: Controlled, Systematic, and Efficient Code Replacement for Running Java Programs. Dissertation ETH No. 17571, Department of Computer Science, ETH Zurich, Switzerland, December 2007.
- Angela Nicoara, Gustavo Alonso: Making Applications Persistent at Run-time. In: Proceedings of the IEEE 23rd International Conference on Data Engineering (ICDE 2007), Istanbul, Turkey, April 2007.
- Angela Nicoara, Gustavo Alonso: Runtime monitoring and adaptation of applications from Eclipse [slides]. In: EclipseCon 2007, Santa Clara, California, USA, March 2007.
- Angela Nicoara, Gustavo Alonso: Dynamic AOP with PROSE. In: Proceedings of the International Workshop on Adaptive and Self-Managing Enterprise Applications (ASMEA 2005) in conjunction with the 17th International Conference on Advanced Information Systems Engineering (CAiSE 2005), Porto, Portugal, June 2005.
- Angela Nicoara, Gustavo Alonso: PROSE - A middleware platform for dynamic adaptation. Demo presented at the 4th International Conference on Aspect-Oriented Software Development (AOSD 2005), Chicago, USA, March 2005.
- Gustavo Alonso: PROSE: Automated Software Adaptation for Pervasive Computing. ERCIM News No.58, July 2004.
- P. Falcarin, G. Alonso: Software Architecture Evolution through Dynamic AOP. In: First European Workshop on Software Architecture (EWSA 2004), co-located with the International Conference on Software Engineering (ICSE 2004), St Andrews, Scotland, May 2004.
- A. Frei, A. Popovici, G. Alonso: Event based systems as adaptive middleware platforms. In: Workshop of the 17th Europeean Conference for Object-Oriented Programming, Darmstadt, Germany July 2003.
- A. Popovici, G. Alonso, T. Gross: Be Aware: Dynamic Aspect-Oriented Infrastructure. Book chapter for the Book "Aspect-Oriented Software Development", eds T. Ellrad, M. Aksit, R. Filman and S. Clarke.
- A. Popovici: PROSE, a study on Dynamic AOP. Dissertation ETH No. 15176, Department of Computer Science, ETH Zurich, Switzerland, 2003.
- A. Popovici, G. Alonso, T. Gross: Spontaneous Container Services. In: Proceedings of the 17th Europeean Conference for Object-Oriented Programming (ECOOP), Darmstadt, Germany, July 2003.
- A. Popovici, A. Frei, G. Alonso: A proactive middleware platform for mobile computing. In: Proceedings of the 4th ACM/IFIP/USENIX International Middleware Conference, Rio de Janeiro, Brazil, June 2003.
- A. Popovici, G. Alonso, T. Gross: Just in Time Aspects: Efficient Dynamic Weaving for Java. In: Proceedings of the 2nd International Conference on Aspect-Oriented Software Development (AOSD), Boston, USA, 2003.
- A. Popovici, G. Alonso: Ad-hoc Transactions for Mobile Services In: Proceedings of the 3rd VLDB Workshop on Technologies for E-Services, Hong-Kong, August 2002.
- A. Popovici, T. Gross, G. Alonso: Dynamic Weaving for Aspect Oriented Programming. In: 1st International Conference on Aspect-Oriented Software Development (AOSD), Enschede, The Netherlands, April 2002.
- A. Popovici, G. Alonso, T.Gross AOP Support for Mobile Systems. Presented in Advanced Separation of Concerns in Object-Oriented Systems (OOPSLA 2001 Workshop), Tampa, USA, October 2001.
- A. Popovici, T. Gross, G. Alonso Dynamic Homogenous AOP with PROSE. Technical Report, Dept. of Computer Science, March 2001.
Invited Talks and Presentations
- Angela Nicoara: Advanced Modification of the Code of Running Java Services - invited talk and demo. Presented at Samsung Information Systems America, San Jose, California, USA, April 2009.
- Angela Nicoara: Advanced Performance Instrumentation and Debugging for Online Application Services - invited talk. Presented at Deutsche Telekom Inc., R&D Lab USA, Silicon Valley, California, USA, July 2008.
- Angela Nicoara: Dynamic Code Replacement for Java Applications - invited talk and demo. Presented at the adhoc PES AG (adhoc Performance Engineering Solutions AG), Basel, Switzerland, January 2008.
- Angela Nicoara, Gustavo Alonso: Making Applications Persistent at Run-time - talk and poster presentation. Presented at the NCCR MICS 2007 Workshop, Neuchatel, Switzerland, July 2007.
- Angela Nicoara, Gustavo Alonso: PROSE: A Software Infrastructure for Dynamic Adaptation - poster presentation. Presented at the NCCR MICS 2006 5th Scientific Conference, Zurich, Switzerland, October 2006.
- Angela Nicoara, Gustavo Alonso: Dynamic AOP with PROSE - invited talk and poster presentation. Presented at the NCCR MICS 2005 Scientific Conference, Loewenberg, Switzerland, September 2005.
- Angela Nicoara, Gustavo Alonso: PROSE - A Platform for Dynamic AOP - demo and poster presentation of a platform for dynamic aspect-oriented programming (d-AOP) based on Jikes Research Virtual Machine (RVM). Presented at the NCCR MICS 2004 Workshop, Zurich, Switzerland, July 2004.
Download PROSE is an Open Source project and can be downloaded from SourceForge.
Documentation
- Documentation about PROSE: system architecture, design, implementation, performance evaluation, programming runtime extensions, tools, PROSE Development Tools for Eclipse, and applications of PROSE can be found here.
- Getting started with PROSE => PROSE User Manual.
Note: A new version of the User Manual will be available soon on the project website.
Students that have contributed
- Markus Egli's thesis, Dynamic adaptive caching strategies for data-intensive web sites with PROSE and OSGi. His work was supervised by Angela Nicoara (assistant), Jan S. Rellermeyer (assistant), and Gustavo Alonso (professor).
- Gerald Linhofer's thesis, Dynamic weaving based on advice weaving implemented a dynamic advice weaver for PROSE based on SUN VM. His work was supervised by Angela Nicoara (assistant) and Gustavo Alonso (professor).
- Johann Gyger's thesis, Bytecode-Level Advice Weaving for Dynamic Aspect-Oriented Programming implemented a dynamic advice weaver for PROSE based on Jikes Research Virtual Machine (RVM). His work was supervised by Angela Nicoara (assistant) and Gustavo Alonso (professor).
- Philippe Schoch's thesis, Monitorisierung und Visualisierung von Aspekten in PROSE created a GUI tool for inserting, withdrawing, and visualizing aspects from arbitrary VM's. Supervisors: Andrei Popovici (assistant) and Gustavo Alonso (professor).
- Kaspar von Gunten's thesis, MACROBOT: A Framework for adaptive Robots with LEGO MINDSTORMS dealt with creating a prototype for adaptive robots. That is, robots with a behavior that can be modified through dynamic aspect-orientation. Supervisors: Andrei Popovici (assistant) and Gustavo Alonso (professor).
- Gerard Roos's thesis, Persistence of Java Components in an Adaptive Environment dealt with creating an object-relational mapper and using dynamic AOP for orthogonal object persistence in Java. Supervisors: Andrei Popovici (assistant) and Gustavo Alonso (professor).
- Marcel Mueller's thesis, Adaptive Security for existing Jini Services created MirrACL, a software package, based on PROSE, that adds access control and authentication to all Jini services spontaneously joining a Jini community. Supervisors: Andrei Popovici (assistant) and Gustavo Alonso (professor).
- Gregor Wieser's thesis, Integrations of Persistence, Security and Transactions in existing Jini Services layed down a concept for integrating dynamic AOP (PROSE), transactions (Cheetah), orthogonal persistence (Tengwar, the result of Gerard's thesis) and security (MirrACL, Marcel's contribution). Supervisors: Andrei Popovici (assistant) and Gustavo Alonso (professor).
- Philipp Sieber's thesis, Configuration of an Adaptive Service Community focused on creating a virtual component container for arbitrary services. Supervisors: Andrei Popovici. (assistant) and Gustavo Alonso (professor).
- Stephan Markwalder's thesis Entwicklung einer Aspekt-Schnittstelle zur Java Virtual Machine focused on creating an aspect-oriented interface to a Java Virtual Machine (IBM's Jikes Research Virtual Machine). Supervisors: Andrei Popovici (assistant) and Gustavo Alonso (professor).
Additional work has been done by Stephan Heinzer, Marius Buerki and Philipp Sieber. They worked on semester projects for integrating Lego Mindstorms with Java, and monitorisation and logging of controlled devices (based on Lego).
!!! Dieses Dokument stammt aus dem
ETH Web-Archiv
und wird nicht mehr gepflegt !!!
!!! This document is stored in the
ETH Web archive
and is no longer maintained !!!
RetroSearch is an open source project built by @garambo
| Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4