| <?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' | |
| $pageTitle = ""; | |
| $pageKeywords = ""; | |
| $pageAuthor = ""; | |
| ob_start(); | |
| ?> | |
| <div id="maincontent"> | |
| <div id="midcolumn"> | |
| <h1>EMF Registry Proposal</h1> | |
| </p> | |
| <?php | |
| include_once($_SERVER['DOCUMENT_ROOT'] . "/projects/fragments/proposal-page-header.php"); | |
| generate_header("EMF Registry"); | |
| ?> | |
| <h2>Introduction</h2> | |
| <p>EMF Registry is a proposed open source project under the <a HREF="/modeling/emft/">Eclipse | |
| Modeling Framework Technology Project</a> (EMFT).</p> | |
| <p>This proposal is in the Project Proposal Phase (as defined in the | |
| <a HREF="/projects/dev_process/">Eclipse Development Process | |
| document</a>) and is written to declare its intent and scope. This | |
| proposal is written to solicit additional participation and input | |
| from the Eclipse community. You are invited to comment on and/or join | |
| the project. Please send all feedback to the | |
| <a HREF="http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology.emft">http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology.emft</a> | |
| newsgroup.</p> | |
| <h2>Background</h2> | |
| <p>EMF provides a well-established and widely used mechanism to allow developers | |
| to publish model and meta-model as plugin registrations for use by Eclipse users.</p> | |
| <p>There is no accepted mechanism to allow users to publish models and meta-models | |
| for use by themselves or other users. Consequently a modeling user developing | |
| for instance both a model transformation and a | |
| meta-model has no convenient way to enable tools processing the model transformation | |
| to locate the meta-model. Various modeling projects have worked around this | |
| problem with inconsistent and not very satisfactory solutions.</p> | |
| <p>This problem was addressed in a modeling project independent fashion by | |
| the GMT UMLX Model Registry which migrated to the M2M QVT Declarative Model Registry. | |
| In order to support the migration of an OCL editor from M2M QVT Declarative | |
| to MDT OCL, a further migration of the Model Registry is necessary.</p> | |
| <p>This proposal advocates making the Model Registry available as an independent | |
| project, facilitating its availability and usage in a modeling project independent fashion. | |
| An EMFT positioning makes this simple but critical modeling functionality available | |
| to all EMF users eliminating dependency problems. It avoids the need for | |
| a Model Registry migration to MDT OCL.</p> | |
| <h2>Description</h2> | |
| <p>A more detailed write-up may be found at | |
| <a HREF="http://www.eclipse.org/gmt/umlx/doc/EclipseAndOMG08/ModelRegistry.pdf"> | |
| http://www.eclipse.org/gmt/umlx/doc/EclipseAndOMG08/ModelRegistry.pdf</a> | |
| <p>The model registry supports a two level user definable mapping. Firstly | |
| from an arbitrary name (such as UML_4_5) to a nominal URI (such as "http://one/day/uml4.5")~ | |
| and then from a nominal URI to an exact URI | |
| (such as platform://projects/MyUML/model/uml4_5.uml). Tool support | |
| for languages that define models using URIs can use the model registry | |
| as a URI resolver. Tool support for languages that define models using | |
| names may use both levels of mapping. | |
| <p>EMF Registry will provide the following functionality: | |
| </p> | |
| <dl> | |
| <dt>Persistent Registry</dt><dd> | |
| The Model Registrations are saved in a per-project EMF model. | |
| <dt>Registry API</dt><dd> | |
| The API enables tools to browse the registry and locate and load | |
| a required (meta-)model. | |
| <dt>UI - Registrations</dt><dd> | |
| Property pages support maintenance of the registry. | |
| </dd> | |
| <dt>UI - Browser</dt><dd> | |
| A browser supports viewing registered models in a 'Sample Ecore Editor'. | |
| </dd> | |
| <dt>Extensibility</dt><dd> | |
| Registration mechanisms will be extensible to support registration of a | |
| a variety of different model-related artefacts, such as transformations, | |
| execution engines, ... | |
| </dd> | |
| </dl> | |
| <p>EMF Registry will not provide the following functionality: | |
| </p> | |
| <dl> | |
| <dt>Persistent Models</dt><dd> | |
| EMF and other Eclipse Content Type related storage facilities are used. | |
| <dt>Format conversion</dt><dd> | |
| The API will exploit existing Ecore/EMOF/UML conversions where available. | |
| <dt>Transformation Compilation or Execution</dt><dd> | |
| Transformation language-dependent tools are enabled. | |
| <dt>Transformation Sequencing</dt><dd> | |
| A problem too far for a 'simple' project.. | |
| </dl> | |
| <h2>Relationship with other Eclipse Projects</h2> | |
| <ul> | |
| <li>EMF Registry will be built on top of EMF.</li> | |
| <li>As EMF Registry will be generic, it will be usable by any | |
| modeling project, not depending on the specific modeling language. | |
| </li> | |
| <li>EMF/Index is expected to use EMF Registry to support location of the models | |
| and meta-models for which element indexing servicves are provided. | |
| </li> | |
| <li>MDT/OCL will use EMF Registry to support location of meta-models for | |
| semantic validations and completions within, for instance, the OCL editor. | |
| </li> | |
| <li>M2M/QVT Declarative will use EMF Registry to support location of | |
| meta-models for semantic validations and completions within, for instance, the | |
| QVT Relations and QVT Core editors and compilers. | |
| </li> | |
| <li>M2M/QVT Operational is expected to use EMF Registry to support location of | |
| meta-models for semantic validations and completions within, for instance, the | |
| QVT Operational editors and compilers. | |
| </li> | |
| <li>It is expected that the functionality of the M2M/QVT Operational model | |
| browser will be provided by the EMF Registry UI. | |
| </li> | |
| <li>It is expected that the transformation registration functionality of the | |
| GMT/AM3 ATLAS MegaModel Management will be supported by the Model Registry allowing | |
| transformation composition tools to exploit accurate type signatures and | |
| transformation execution tools to invoke transformations in a variety | |
| of technologies. | |
| </li> | |
| <li>GMT/UMLX will use EMF Registry to support location of | |
| meta-models for semantic validations and completions within, for instance, the | |
| UMLX editors. | |
| </li> | |
| <li>It is expected that a variety of other modeling projects will benefit | |
| from this shared functionality. | |
| </li> | |
| </ul> | |
| <h2>Organization</h2> | |
| <h3>Mentors</h3> | |
| <ul> | |
| <li>Sven Efftinge (itemis AG, Germany)</li> | |
| <li>Cédric Brun (Obeo)</li> | |
| </ul> | |
| <h3>Proposed initial committers</h3> | |
| <ul> | |
| <li>Ed Willink (Thales, UK), lead </li> | |
| </ul> | |
| <h3>Interested parties</h3> | |
| <p>The M2M/QVT Declarative Model Registry and M2M/QVT Operational Model Browser | |
| were discussed at the Modeling BoF at the EclipseCon 2008. | |
| </p> | |
| <p>Parties indicating interest are | |
| </p> | |
| <ul> | |
| <li>AMMA, Jean Bézivin</li> | |
| <li>Epsilon, Richard Paige</li> | |
| <li>Topcased, Marc Pantel</li> | |
| <li>Viatra, István Ráth</li> | |
| </ul> | |
| <h3>Code contributions</h3> | |
| <p>The initial code contribution will be a set of plug-ins from the | |
| M2M/QVT Declarative Eclipse project. | |
| </p> | |
| </div> | |
| </div> | |
| <?php | |
| $html = ob_get_contents(); | |
| ob_end_clean(); | |
| # Generate the web page | |
| $App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html); | |
| ?> |