Model Transformation Service

The model transformation service (MTS) is a service entry point to manage, store and execute model transformations that are aimed at aligning the huge diversity of models used in the design, integration and implementation tasks of enterprise applications and systems.

The service supports the following standards:

  • EMF is used to support for metamodels. EMF is a subset of the MOF standard.
  • ATL is used to support model-to-model transformations. ATL is compliant with the QVT standard.
  • MOFScript is used to support model-to-text transformation. MOFScript aims to be compliant with the forthcoming MOF2Text standard.

Functionality of the current version (v1.2)

The service comprises both an Axis2 WebService, and a GUI developed in the Google Web Toolkit (GWT). The service is divided into the Transformation Manager and the Transformation Executor:

  • Transformation Manager:
    • Manage metamodels that are to be used by the model-to-model and model-to-text transformations: creation and removal of metamodels. It is not possible to remove a metamodel that is used by an existing transformation. Metamodels are expressed in EMF (Eclipse Modelling Framework)
    • Manage and store relevant information on the transformations: short description, engine used, source and target models/texts, source file of the transformation. It is possible to create, update and remove transformations.
    • Search transformations by use of filters on the transformation engine and type, as well as source and target models/texts
    • By default, the transformation manager GUI is accessible from anywhere. It is possible to restrict the access to the intranet: to do so, you need to change the accessDomain variable in the file no.sintef.modeltransformation.gwt.server.TransformationManagerImpl.java (project ModelTransformationService.web). Later version of the transformation manager will have better authentification/security, by using for instance OAuth.
  • Transformation Executor
    • Execute Model-to-Model (M2M) and Model-to-Text (M2T) transformations. The GUI provides a simple viewer with a Save button in order to view and save each target file that was created during the transformation.
    • Search transformations by use of filters on the transformation engine and type, as well as source and target models/texts
    • The transformation executor GUI is available from anywhere.

The following transformation engines are currently supported:

  • ATL v3.0, for Model-to-Model (M2M) transformations only.
  • MOFScript v1.4.3, for both Model-to-Model and Model-to-Text (M2T) transformations.

Screenshot of the Model Transformation Service, Management panel:

Management screenshot

Screenshot of the Model Transformation Service, Management of metamodels:

screenshot of metamodel management

Screenshot of the Model Transformation Service, Execution panel:

MTSE Execution screenshot

Adding a Transformation Engine

It is possible to add any transformation engine that is supported by Java. It is done by implementing the interface no.sintef.modeltransformation.integration.provider. This interface has the following methods:

List<File>
executeTransformation (TransformationDescriptorForProvider transformation,
                       List<File> sourceModels)
    throws ExecutionException;
List<CompileError>
compileTransformationFile (File transformationFile,
                           File compiledFile)
    throws IOException;

You then need to register your transformation engine by editing the file registeredEngine.properties in the project no.sintef.modeltransformation.integration.services, and export the project as a jar file and include it when deploying the Axis2 implementation of the service.

It is recommended to take a look at the ATL and MOFScript providers, as examples. They are included in the source files.

Licence

This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html

Additional information

The Model Transformation Service was developed as part of the baseline (Enterprise Interoperability (EI) services of the FP7 IP COIN project, which ended in December 2011. It is now used and enhanced in the FP7 STREP NEFFICS project (2010-2013).

Source files (eclipse workspace)

The source files are provided as-is. You need the following environment:

  • Eclipse with the following plugins installed:
    • GWT (Google Web Toolkit)
    • Axis2 eclipse plugin
    • Java Web dev tools (for editing WSDL descriptions)
    • JAX-WS (used with Axis2)
    • JST-Server Adapter (for tomcat)
  • For deploying and testing:
    • Apache tomcat (at least v5.0)
    • Axis2 (at least v1.4), deployed in tomcat.

A ReadMe.pdf/ppt is provided in the project ModelTransformationService and explains the code structure and how to compile and deploy the Axis2 (aar) and GWT (war) files.

ModelTransformationService_workspace.zip

Deployment files and installation

The following deployment files are provided as-is. You need the following installed:

  • Apache tomcat (at least v5.0)
  • Axis2 (at least v1.4), deployed in tomcat.
Axis2 implementation of the MTS service. It should be deployed in the Axis2 environment ModelTransformationService_axis2.aar (zipped)
 GUI of the MTS service (GWT). It should be deployed in the tomcat environment. The GUI is accessible via localhost:8080/MTS/ModelTransformationService_web.html (with a default installation of tomcat) ModelTransformationService_gwt.war (zipped)
jar file to be used in a Java client when accessing the Axis2 MTS. no.sintef.modeltransformation.axis2.client.jar (zipped)