Table of Contents

Distributed JAsCo!

JAsCo now supports a true distributed setup that has very powerful distributed features. Aspects can intercept joinpoints executing on other hosts and are also able to execute their advices on other hosts. This work is a collaboration with the OBASCO group of Ecole Des Mines de Nantes in the context of AOSD-Europe.

The following paper describes the AWED language and the DJAsCo implementation:

The DJAsCo website focuses on the implementation and technical realization of AWED. For more information regarding AWED and it concepts, we refer to the AWED website: http://www.emn.fr/x-info/lbenavid/awed.html.

Remember that the current implementation is still a prototype and that many features are still lacking....

Setup

In order to activate the distributed setup, simply lauch all VMs using the following VM option: -Djasco.distribution.enabled=true

Also make sure that the jasco-distribution.jar is in your classpath.

Language Additions

Remote pointcuts/Distributed Advice

There are two new pointcuts for allowing to execute advice on other hosts and select joinpoints specific to certain hosts. These pointcuts are specified as usual, i.e. in the hook’s constructor:

These can also be combined using logical operators. e.g. joinpointhost(”10.0.4.10”)&&!executionhost(”10.0.4.10”) will intercept joinpoints on host 10.0.4.10 and execute the advices on all hosts except host 10.0.4.10.

NOTE: The joinpointhost keyword is equivalent to AWED’s on pointcut designator and executionhost is equivalent to AWED’s host pointcut designator

Distributed Deployment

It is also possible to limit the deployment scope of the connector so that it does not work distributed. The following options are available using annotations placed in front of the connector specification:

NOTE: The FULL deployment is equivalent to AWED’s all deployment and the local deployment is equivalent to AWED’s single deployment

State Sharing

It is possible to share state between several aspect instances of the same aspect type that are possibly deployed at several hosts. This can be done by supplying the Shared annotation to an aspect field or aspect declaration. Sharing can either be: