Skip to Content

Role Oriented Adaptive Design

HomeDownload ROADSource RepositoryProject MembersPublicationsImplementations

Past Implementations

Implementation of the ROAD Framework with Association Aspect

The ROAD (Role-Oriented Adaptive Design) framework is implemented in Java with the use of Association Aspect to intercept the invocation between roles. The intercepted invocation is then verified against pre-defined constraints. Only valid invocations are forwared to other roles, invalid invocations will be discarded (an exception will be raised).

Information about the implementation of ROAD framework can be found here:

  • Colman, A. and Han, J. (2006) 'Using Association Aspects to Implement Organisational Contracts' in Electronic Notes in Theoretical Computer Science, 150(3), Elsevier, pp.37-53. PDF
  • Pham, L. D., Colman, A. and Han, J. (2006) 'The Implementation of Message Synchronisation, Queuing and Allocation in the ROAD Framework' CeCSES Report: SUT.CeCSES-TR009, Swinburne University of Technology, Melbourne 33 pages. PDF


Installation instructions

  1. After downloaded the Association Aspect, install it by running: "java -jar aspectj-aa.jar"
  2. Set up the classpath and path to executable as specified after you complete installation of Association Aspect.
  3. Expand the To compile the code, change directory to ROAD, and run: "ajc -argfile widgetOrg\aa.lst"
  4. Run the program by: "java widgetOrg/TestComposite"

Implementation of the ROAD Framework with Behavioural Protocol

The description of behavioural protocol is specified by using Interaction Rule Specification (IRS). The IRS constraints are specified and stored inside the contracts between roles. The role then aggregates those constraints to form 'role-centric' protocol. This 'role-centric' protocol will then be converted to Finite State Automata. A service's behavioural description (in OWL-S for example) will also be converted to FSA. The resulting FSAs are then matched against each other to determine whether the Web service can play the role in terms of behavioural specification.

Details of this approach can be found here:

  • Colman, A., Pham, L. D., Han, J., and Schneider, J. (2007) 'Towards Matching Dynamic Business-Level Protocols in Adaptive Service Compositions'. Proceedings of Advances in Semantics for Web Services (semantics4ws2007), September, 2007, Brisbane, Australia. PDF
  • Pham, L. D., Colman, A. and Schneider, J. (2007) 'Dynamic Protocol Aggregation and Adaptation for Service-Oriented Computing'. In Proceedings of the Australian Software Engineering Conference 2007 (ASWEC'07), Melbourne, Australia, IEEE Computer Society Press, pp.39-48. PDF
  • Yu, J., Phan, T., Han, J., and Jin, Y. (2006) 'Pattern based Property Specification and Verification for Service Composition'. In proc. WISE 2006, Wuhan, China. PDF


Installation instructions

  1. Install a Web server (e.g. Tomcat) and expand the "" file to the corresponding directory of the Web server (e.g. "webapps" directory of Tomcat)
  2. Install Antlr, Graphviz and set up corresponding classpath and path to executables.
  3. Extract 3 zip files containing the code.
  4. Set up classpath to the "classes" directory "PropolsFSALib\classes" and "OWLSToFSAConverter\classes". This step to set the reference of ROADWithProtocol to those two projects. The other way is to create jar files corresponding to those two projects and include it into ROADWithProtocol.
  5. Start the Web server.
  6. Change directory to "ROADWithProtocol\src" and run "compile.bat" to compile the project.
  7. Run "run.bat" to run the project.

ROAD Framework with Dynamic Role Specification and Coordination Context

Previous approaches require that roles have types (i.e. strong types). There are certain limitations to those previous approaches. Thus, we have developed a different architecture in which role definitions are defined via the contracts that they are bound to.

In this implementation, we further enhanced the behavioural protocol by having a coordination context to keep track of different on-going interactions between roles. For example, in an online book ordering scenario, different book orders can be placed between two parties. Each order will be handled independently from each other and it should not interfere with the other orders. However, within a specific order, the interaction should follow the pre-defined sequence (e.g. asking for quote, receiving quote reply, placing order and receiving order acknowledgement).


Installation instructions

  1. Install Antlr, Graphviz and set up corresponding classpath and path to executables.
  2. Extract 2 zip files containing the code.
  3. Set up classpath to the bin directory "PropolsFSALib\bin". This step is to set the reference of ROADDynamicRole to the PropolsFSALib. The other way is to create jar file corresponding to PropolsFSALib and include it into ROADDynamicRole. Alternatively, if you are using Eclipse or other similar IDEs, you can set up the project ROADDynamicRole to reference to the project PropolsFSALib
  4. The main class is "" in the "" package.

Implementation of ROAD with Adaptation

In this implementation, we addressed the functional and behavioural match-making of role's specification and services' description (in OWL-S). The GUI front end will display the matching result which helps the user to decide which services to use. The adaptation composite will be loaded and displayed on the screen by using JGraph.


Installation Instructions

Directory 01

  • Extract into the directory <tomcat_home>/webapps/axis2/WEB-INF/services/

Axis2 Services

  • Extract and import this project into Eclipse. Add all the jar files WebServiceClients/lib/*.jar to the build path.
  • Extract and import this project into Eclipse. Add PropolsFSALib/lib/*.jarto the build path.
  • Extract and import this project into Eclipse. Add OWLSToFSAConverter/lib/mindswap-owl-s-1-1.jar to the build path. Add PropolsFSALib as the required project.

OWLS to FSA Converter

  • Extract and import this project into Eclipse. Add ROADDynamicRole/lib/log4j-1.2.15.jar to the build path. AddPropolsFSALib, OWLSToFSAConverter, WebServiceClients as the required projects.

ROAD Dynamic Role

  • Extract and import this project into Eclipse. Add ROADAdaptorWithJGraph/lib/log4j-1.2.15.jar andjgraph.jar to the build path. Add jgraph- as the source for jgraph.jar (optional). Add PropolsFSALib, OWLSToFSAConverter, ROADDynamicRole as the required projects.

Road Adaptor With JGraph

  • The main class of ROADAdaptorWithJGraph project is To enable Log4j, configure the run properties of this class to contain the VM arguments as: -Dlog4j.configuration=config/

Run Argument

  • DONE!


  • Start Tomcat
  • Run the in the project ROADAdaptorWithJGraph.
  • In the window of ROADMainFrame, choose menu File/Open and browse to the location of <ROADAdaptorWithJGraph project>/resources/bookComposite.xml
  • The composite is then parsed and displayed on the screen as below:

Run Argument