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....
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.
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
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
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: