Publication
January 2005
PROSE (PROgrammable extenSions of sErvices), an open source project (http://prose.ethz.ch/), is an adaptive middleware platform based on Java for dynamic AOP which allows aspects to be woven, unwoven, or replaced at run time. Woven into a program, an aspect may change several units of functionality. Aspects are expressed in the same source language as the application (Java). PROSE provides middleware tools that allow run time monitoring of remote aspects. The PROSE workbench for weaving, unweaving and querying aspects is a monitoring tool which displays information about what aspects are currently inserted in the system, what join-points belong to each aspect, and what the join-points of the system are. Embedded into an Eclipse plug-in, this tool is also used to developing and running PROSE applications from Eclipse and allows run time monitoring of remote aspects, and provides a creation wizard that helps to create PROSE aspects.
In this demonstration we present PROSE and its associated middleware tools. We show the flexibility of PROSE and how it has been embedded into Eclipse, and present a variety of examples of run time adaptation. In the first part of the demonstration we show how to modify the behavior of a running application by dynamically weaving an aspect that identifies places of interest in the application. After each weaving operation, 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. In the second part of the demonstration we show how easy is to create aspects that modify a program at run time using the creation wizard of the PROSE Development Tools for Eclipse. When an aspect is created, the user can select the PROSE crosscut types and pointcutters from a list. Then the code template for a PROSE aspect that defines an advice method and a poincut method will be generated. The aspects are then woven remotely into different VMs. After the weaving operation, we show that the running application has been adapted. In case of two running applications, we show that the aspects can be cut and pasted between distinct VMs using the PROSE workbench and also can be moved between distinct VMs by drag and drop using the PROSE plug-in for Eclipse. We also show how to insert and withdraw aspects transactionally. We start a transaction and then weave and unweave aspects into/from different VMs.
Aspect insertions and withdrawals won't be activated until the transaction is committed. The transaction can also be aborted, leaving the application as if no insertion or withdrawal ever took place.
@misc{abc, abstract = {PROSE (PROgrammable extenSions of sErvices), an open source project (http://prose.ethz.ch/), is an adaptive middleware platform based on Java for dynamic AOP which allows aspects to be woven, unwoven, or replaced at run time. Woven into a program, an aspect may change several units of functionality. Aspects are expressed in the same source language as the application (Java). PROSE provides middleware tools that allow run time monitoring of remote aspects. The PROSE workbench for weaving, unweaving and querying aspects is a monitoring tool which displays information about what aspects are currently inserted in the system, what join-points belong to each aspect, and what the join-points of the system are. Embedded into an Eclipse plug-in, this tool is also used to developing and running PROSE applications from Eclipse and allows run time monitoring of remote aspects, and provides a creation wizard that helps to create PROSE aspects. In this demonstration we present PROSE and its associated middleware tools. We show the flexibility of PROSE and how it has been embedded into Eclipse, and present a variety of examples of run time adaptation. In the first part of the demonstration we show how to modify the behavior of a running application by dynamically weaving an aspect that identifies places of interest in the application. After each weaving operation, 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. In the second part of the demonstration we show how easy is to create aspects that modify a program at run time using the creation wizard of the PROSE Development Tools for Eclipse. When an aspect is created, the user can select the PROSE crosscut types and pointcutters from a list. Then the code template for a PROSE aspect that defines an advice method and a poincut method will be generated. The aspects are then woven remotely into different VMs. After the weaving operation, we show that the running application has been adapted. In case of two running applications, we show that the aspects can be cut and pasted between distinct VMs using the PROSE workbench and also can be moved between distinct VMs by drag and drop using the PROSE plug-in for Eclipse. We also show how to insert and withdraw aspects transactionally. We start a transaction and then weave and unweave aspects into/from different VMs. Aspect insertions and withdrawals won{\textquoteright}t be activated until the transaction is committed. The transaction can also be aborted, leaving the application as if no insertion or withdrawal ever took place. }, author = {Angela Nicoara and Gustavo Alonso}, title = {PROSE - A middleware platform for dynamic adaptation}, year = {2005} }