blob: b46a4fce018e130def7e81b9005e9904ace2deca [file] [log] [blame]
<?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); $App = new App(); $Nav = new Nav(); $Menu = new Menu(); include($App->getProjectCommon()); # All on the same line to unclutter the user's desktop'
#*****************************************************************************
#
# template.php
#
# Author: Freddy Allilaire
# Date: 2005-12-07
#
# Description: Type your page comments here - these are not sent to the browser
#
#
#****************************************************************************
#
# Begin: page-specific settings. Change these.
$pageTitle = "AMW Use Case - Bridge between SQL-DDL and KM3";
$pageKeywords = "ModelGen, SQL, KM3, model weaving, transformations";
$pageAuthor = "Marcos Didonet Del Fabro";
# End: page-specific settings
#
# Paste your HTML content between the EOHTML markers!
$html = <<<EOHTML
<!-- Main part -->
<div id="midcolumn">
<h1><font color='#280882'>AMW</font> Use Case - Bridge between SQL-DDL and KM3</h1>
<a name="goals"></a>
<img align="right" src="../../resources/amwLogoSmall.png" valign="top" style="padding-left: 10px;" alt="AMW Logo" />
<blockquote>
<ul>
<li><a href="#overview"><b>Overview</b></a></li>
<li><a href="#download"><b>Download and examples</b></a></li>
<li><a href="#related"><b>Related use cases</b></a></li>
<li><a href="#acknowledgement"><b>Acknowledgement</b></a></li>
<li><a href="#reference"><b>Reference</b></a></li>
</ul>
</blockquote>
<hr class="clearer" />
<table>
<COLGROUP>
<COL width="2%">
<COL width="98%">
<tr>
<td>
</td>
This use case shows how weaving models and model transformations are used to translate SQL-DDL (Data Definition Language) into KM3 (a
modeling technical space) and to translate KM3 into SQL.
In model management platforms, this use case is considered an application of <a href="#reference">ModelGen</a> operations.
<p/>
<h4 STYLE="font-size: 10pt; padding: 0; border-bottom: 2px solid #49457C; background-position: top left; background-repeat; repeat-x;">
<a name="overview">Overview</a></h4>
<p align="justify">
The development of bridges between different technical spaces is a complex process divided in several phases. This use case illustrates
a bridge between an SQL-DDL file into a KM3 file. The SQL-DDL file conforms to a SQL grammar, for example with standard CREATE
TABLE statements. KM3 is a standard language for defining metamodels for the modeling world.
<p/>
The first step of the bridging process is to inject the SQL-DDL file into the EMF technical space (Ecore is the metametamodel).
The injection creates an SQL-DDL model that conforms to an SQL-DDL metamodel (see Figure 1.a). This metamodel is created manually by a developer.
<p/>
Then a weaving model (<i>Mw</i>) is created between the SQL-DDL and KM3 metamodels. <i>Mw</i> conforms to <i>MMw</i>, which is an extension to the
<a href="http://www.eclipse.org/gmt/amw/zoo/#AMW%20core">core weaving metamodel</a>. This extension contains different kinds of links that
define the equivalences between the elements of SQL-DDL and the elements of KM3. However, these two metamodels have different expressiveness. This means
it is not always possible to link all the elements of SQL and KM3. For instance, a KM3 <i>Class</i> does not have a "default value"
property; a SQL-DDL <i>Table</i> does not have references.
<p/>
<p align="center">
<img src="../resources/modelgen_overview.png"/>
<br /><br />
<b>1. Injection and weaving</b>
</p>
The weaving model is used as specification to produce model transformations (in ATL). We implement a
higher-order transformation (HOT) based on a generic transformation pattern. This HOT takes the weaving model as input
and produces a transformation model as output (Figure 2.a). This output transformation is used to transform a SQL-DDL model into a
KM3 model (Figure 2.b).
<p align="center">
<img src="../resources/modelgen_hot.png"/>
<br /><br />
<b>2. Transforming KM3 model into KM3 file</b>
</p>
The last step of the bridging process is the extraction of the KM3 model (with KM3 concepts such as Class, Attribute, Reference) into the
textual concrete syntax of KM3 (see Figure 3).
<p align="center">
<img src="../resources/modelgen_extract.png"/>
<br /><br />
<b>3. Extraction of KM3 model into KM3 file</b>
</p>
</p>
<h4 STYLE="font-size: 10pt; padding: 0; border-bottom: 2px solid #49457C;
background-position: top left; background-repeat; repeat-x;">
<a name="download">Download and examples</a></h4>
<table>
<COLGROUP>
<COL width="25%">
<COL width="75%">
<tr>
<td align="center">
<a href="../../examples/AMW_SQL2KM3/AMW_SQL2KM3.zip"><h3>SQL-DDL to KM3</h3></a>
</td>
<td>
This example implements a complete chain of operations that enables to bridge between SQL-DDL and KM3 (injection, weavings,
transformations and extraction). It uses an SQL file extracted from the <a href="http://www.mantisbt.org/">Mantis bug tracker</a> tool.
<p/>
</td>
</tr>
<td align="center">
<a href="../../examples/AMW_SQL2KM3/AMW_SQL2KM3_doc.php"><h3>SQL-DDL to KM3 HowTo</h3></a>
</td>
<td>
This document contains step-by-step instructions explaining how to execute the SQL-DDL to KM3 example.
<p/>
</td>
</tr>
<tr>
<td align="center">
<a href="../../examples/AMW_KM32SQL/AMW_KM32SQL.zip"><h3>KM3 to SQL-DDL</h3></a>
</td>
<td>
This example implements a bridge between KM3 and SQL-DDL, i.e., it is the opposite scenario of the example above.
It also provides the complete chain of operations.
<p/>
</td>
</tr>
<td align="center">
<a href="../../examples/AMW_KM32SQL/AMW_KM32SQL_doc.php"><h3>KM3 to SQL HowTo</h3></a>
</td>
<td>
This document contains step-by-step instructions explaining how to execute the KM3 to SQL-DDL example.
<p/>
</td>
</tr>
</table>
<h4 STYLE="font-size: 10pt; padding: 0; border-bottom: 2px solid #49457C;
background-position: top left; background-repeat; repeat-x;">
<a name="related">Related use cases</a></h4>
<table>
<COLGROUP>
<COL width="25%">
<COL width="68%">
<tr>
<td align="center">
<a href="../matching/"><h3>Matching</h3></a>
</td>
<td>
Matching is the generic process that creates weaving models.
This use case gives a general overview of the matching process, and how it is handled by AMW and ATL.
</td>
</tr>
<tr>
<td align="center">
<a href="../interoperability/"><h3>Tool interoperability</h3></a>
</td>
<td>
This use case shows how weaving models are used to capture the semantic heterogeneities between different tools'
metamodels. We use two well known bug tracking tools, Mantis and Bugzilla.
</td>
</tr>
<tr>
<td align="center">
<a href="../compare/"><h3>Metamodel comparison</h3></a>
</td>
<td>
This use case demonstrates how weaving models are used to compare different
metamodels and to produce executable model transformations (we use two metamodels used to define embedded
software in the avionics industry).
</td>
</tr>
<tr>
<td align="center">
<a href="../RDBMSXML/"><h3>Relational DB to XML</h3></a>
</td>
<td>
This use case shows how weaving models can be used to perform the data mapping between relational DBs and XML.
</td>
</tr>
<tr>
<td align="center">
<a href="../mergeSVG/"><h3>Merge of geographical information (GML) and statistical data</h3></a>
</td>
<td>
This use case presents a weaving model used to define a merge operation between a metamodel with geographical information
(an extension of GML) and a metamodel with statistical data into a graphical representation (SVG).
</td>
</tr>
<tr>
<td align="center">
<a href="../umlprofiles/"><h3>Bridge between DSL and UML Profiles</h3></a>
</td>
<td>
This use case shows how AMW and ATL are used to produce a bridge between Domain Specific Languages (DSLs) and UML profiles.
</td>
</tr>
<tr>
<td align="center">
<a href="../umlprofiles/"><h3>Bridge between DSL and UML Profiles</h3></a>
</td>
<td>
This use case shows how AMW and ATL are used to produce a bridge between Domain Specific Languages (DSLs) and UML profiles.
</td>
</tr>
<tr>
<td align="center">
<a href="../sys_of_sys/"><h3>System Architecture (SA) management</h3></a>
</td>
<td>
This use case shows how to map the overlapping concepts of different views of a complex system. It uses a System Architecture (SA)
framework called DoDAF (Department of Defense Architecture Framework).
</td>
</tr>
</table>
<h4 STYLE="font-size: 10pt; padding: 0; border-bottom: 2px solid #49457C; background-position: top left; background-repeat; repeat-x;">
<a name="acknowledgement"></a>Acknowledgement
</h4>
<table width="100%">
<COLGROUP>
<COL width="2%">
<COL width="98%">
</COLGROUP>
<tr>
<td></td>
<td>
This work is supported by the <a href="http://openembedd.inria.fr/home_html-en?set_language=en&cl=en">OpenEmbeDD project</a>.
</td>
</tr>
</table>
<p/>
<h4 STYLE="font-size: 10pt; padding: 0; border-bottom: 2px solid #49457C; background-position: top left; background-repeat; repeat-x;">
<a name="reference"></a>Reference
</h4>
Atzeni, P, Cappellari, P, Bernstein, P A. ModelGen: Model-Independent Schema and Data Translation. EDBT 2006, pp. 368-385
<p/>
</div><p/>
EOHTML;
# Generate the web page
$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>