D5: PROSE - A middleware platform for dynamic adaptation
Angela Nicoarã, Swiss Federal Institute of Technology Zürich
Gustavo Alonso, Swiss Federal Institute of Technology Zürich
Wednesday, March 17, 11:30
Thursday, March 18, 12:00
PROSE (PROgrammable extenSions of sErvices), an open source project
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.
Edited by the AOSD Conference Committee. Send comments to: webmasteraosd.net