blob: 8a99b69cc0df380dad210ca1889440aef96c8b55 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1" />
<title>Eclipse Tools - EMF Project - Architectural
Overview</title>
</head>
<body>
<link rel="stylesheet"
href="http://www.eclipse.org/default_style.css"
type="text/css" />
<link rel="stylesheet" type="text/css"
href="http://www.eclipse.org/tools/architecture/eclipse_style.css" />
<table width="709" cellspacing="0" bordercolor="#111111"
style="border-collapse: collapse;" border="0">
<tr>
<td width="709" colspan="3" valign="top">
<div id="page_header">EMF</div>
<div id="page_sub_header">Project architecture</div>
</td>
</tr>
</table>
<div id="section_header">EMF Project Information</div>
<br /><br /><br />
EMF is a modeling framework and code generation facility for
building tools and other applications based on a structured data
model. From a model specification described in XMI, EMF provides
tools and runtime support to produce a set of Java classes for
the model, a set of adapter classes that enable viewing and
command-based editing of the model, and a basic editor. Models
can be specified using annotated Java, XML documents, or modeling
tools like Rational Rose, then imported into EMF. Most important
of all, EMF provides the foundation for interoperability with
other EMF-based tools and applications, by exposing their models
through a rich metadata that can be used to read and modify the
objects.
<br /><br />
EMF includes an EMF-based implementation of Service Data
Objects (SDO). SDO is a framework that simplifies and unifies
data application development in a service oriented architecture
(SOA). It supports and integrates XML and incorporates J2EE
patterns and best practices.
<br /><br />
EMF optionally includes the XML Schema Definition (XSD).
XSD is a reference library for use with any code that examines,
creates or modifies XML Schemas (standalone or as part of other
artifacts, such as XForms or WSDL documents).
<br /><br />
Refer to the
<a href="http://www.eclipse.org/emf/">EMF Website</a>,
the
<a href="http://www.eclipse.org/emf/sdo/">SDO Website</a>
and the
<a href="http://www.eclipse.org/xsd/">XSD Website</a>
for additional project information.
<br /><br />
<div id="section_header">Project architecture</div>
<br /><br /><br />
<table border="0">
<tr>
<td rowspan="10">
<img src="images/../architecture-summary.gif" width="447"
height="406" border="0" alt="EMF Architectural Diagram" />
<br />
<span class="img_caption">Figure 1. &lt;EMF Architecture
Diagram&gt;</span>
</td>
<td rowspan="10">&nbsp;</td>
<td>
<table>
<tr>
<td>
<br />
<b>Runtime features:</b>
</td>
</tr>
<tr>
<td>
<b style="color:#aa0000">&#149;</b>
Rich metadata</td>
</tr>
<tr>
<td>
<b style="color:#aa0000">&#149;</b>
XMI serialization &amp; deserialization</td>
</tr>
<tr>
<td>
<b style="color:#aa0000">&#149;</b>
Change monitoring</td>
</tr>
<tr>
<td>
<b style="color:#aa0000">&#149;</b>
Validation framework</td>
</tr>
<tr>
<td>
<br />
<b>Generator features:</b>
</td>
</tr>
<tr>
<td>
<b style="color:#aa0000">&#149;</b>
Customizable JSP-like templates (JET)</td>
</tr>
<tr>
<td>
<b style="color:#aa0000">&#149;</b>
Command-line, Ant, or integrated with Eclipse JDT</td>
</tr>
<tr>
<td>
<b style="color:#aa0000">&#149;</b>
Fully supports regeneration and merge</td>
</tr>
<tr>
<td>
<br />
<br />
<br />
<br />
<br />
<br />
* requires Eclipse workbench or RCP to run
<br />
<br />
<br />
</td>
</tr>
</table>
</td>
</tr>
</table>
<div id="section_header">Status</div>
<br /><br /><br />
EMF is being used in several existing commercial products. For
more information on the current status of EMF, please see the
<a
href="http://www.eclipse.org/emf/docs.php#plandocs"
target="_self">Project Plan.</a>
<br /><br />
<div id="section_header">Platforms</div>
<br /><br /><br />
The plugins are written in Java with no native code and thus may
be ported to any platform supported by Eclipse.
<br /><br />
<div id="section_header">Content</div>
<br /><br /><br />
The following plugins are included.
<br />
<table cellspacing="0" cellpadding="3">
<tr valign="top">
<td colspan="3">
<br />
<b>EMF:</b>
</td>
</tr>
<tr valign="top">
<td>
<b style="color:#aa0000">&#149;</b>
org.eclipse.emf.codegen</td>
<td>-</td>
<td>Java Emitter Templates (JET) and JMerge code generation
components</td>
</tr>
<tr valign="top" bgcolor="#EEEEEE">
<td>
<b style="color:#aa0000">&#149;</b>
org.eclipse.emf.codegen.ui</td>
<td>-</td>
<td>workbench support for JET</td>
</tr>
<tr valign="top">
<td>
<b style="color:#aa0000">&#149;</b>
org.eclipse.emf.codegen.ecore</td>
<td>-</td>
<td>Generator model and headless generator and model
conversion tools</td>
</tr>
<tr valign="top" bgcolor="#EEEEEE">
<td>
<b style="color:#aa0000">&#149;</b>
org.eclipse.emf.codegen.ecore.ui</td>
<td>-</td>
<td>workbench-based code generator and model conversion
tools</td>
</tr>
<tr valign="top">
<td>
<b style="color:#aa0000">&#149;</b>
org.eclipse.emf.common</td>
<td>-</td>
<td>command and notification frameworks and utilities used
throughout EMF</td>
</tr>
<tr valign="top" bgcolor="#EEEEEE">
<td>
<b style="color:#aa0000">&#149;</b>
org.eclipse.emf.common.ui</td>
<td>-</td>
<td>extensions to SWT and JFace used in other EMF UI
plug-ins</td>
</tr>
<tr valign="top">
<td>
<b style="color:#aa0000">&#149;</b>
org.eclipse.emf.ecore</td>
<td>-</td>
<td>Ecore model and implementation, persistence framework,
and utilities</td>
</tr>
<tr valign="top" bgcolor="#EEEEEE">
<td>
<b style="color:#aa0000">&#149;</b>
org.eclipse.emf.ecore.edit</td>
<td>-</td>
<td>
<i>sample</i>
edit support for Ecore</td>
</tr>
<tr valign="top">
<td>
<b style="color:#aa0000">&#149;</b>
org.eclipse.emf.ecore.editor</td>
<td>-</td>
<td>
<i>sample</i>
Ecore editor</td>
</tr>
<tr valign="top" bgcolor="#EEEEEE">
<td>
<b style="color:#aa0000">&#149;</b>
org.eclipse.emf.ecore.change</td>
<td>-</td>
<td>Change model and change recorder utility</td>
</tr>
<tr valign="top">
<td>
<b style="color:#aa0000">&#149;</b>
org.eclipse.emf.ecore.change.edit</td>
<td>-</td>
<td>
<i>sample</i>
edit support for Change model</td>
</tr>
<tr valign="top" bgcolor="#EEEEEE">
<td>
<b style="color:#aa0000">&#149;</b>
org.eclipse.emf.ecore.xmi</td>
<td>-</td>
<td>default XML/XMI resource implementations</td>
</tr>
<tr valign="top">
<td>
<b style="color:#aa0000">&#149;</b>
org.eclipse.emf.edit</td>
<td>-</td>
<td>UI-independent portion of the EMF.Edit framework</td>
</tr>
<tr valign="top" bgcolor="#EEEEEE">
<td>
<b style="color:#aa0000">&#149;</b>
org.eclipse.emf.edit.ui</td>
<td>-</td>
<td>Eclipse UI portion of EMF.Edit</td>
</tr>
<tr valign="top">
<td>
<b style="color:#aa0000">&#149;</b>
org.eclipse.emf.mapping</td>
<td>-</td>
<td>UI-independent portion of the EMF Mapping framework</td>
</tr>
<tr valign="top" bgcolor="#EEEEEE">
<td>
<b style="color:#aa0000">&#149;</b>
org.eclipse.emf.mapping.ui</td>
<td>-</td>
<td>Eclipse UI portion of the EMF Mapping framework</td>
</tr>
<tr valign="top">
<td>
<b style="color:#aa0000">&#149;</b>
org.eclipse.emf.mapping.ecore2.ecore</td>
<td>-</td>
<td>support for mapping between Ecore models</td>
</tr>
<tr valign="top" bgcolor="#EEEEEE">
<td>
<b style="color:#aa0000">&#149;</b>
org.eclipse.emf.mapping.ecore2.ecore.editor</td>
<td>-</td>
<td>
<i>sample</i>
Ecore mapping editor</td>
</tr>
<tr valign="top">
<td colspan="3">
<br />
<b>SDO:</b>
</td>
</tr>
<tr valign="top">
<td>
<b style="color:#aa0000">&#149;</b>
org.eclipse.emf.commonj.sdo</td>
<td>-</td>
<td>Service Data Objects (SDO) specification interfaces</td>
</tr>
<tr valign="top" bgcolor="#EEEEEE">
<td>
<b style="color:#aa0000">&#149;</b>
org.eclipse.emf.ecore.sdo</td>
<td>-</td>
<td>EMF model and implementation of SDO</td>
</tr>
<tr valign="top">
<td>
<b style="color:#aa0000">&#149;</b>
org.eclipse.emf.ecore.sdo.edit</td>
<td>-</td>
<td>
<i>sample</i>
edit support for SDO</td>
</tr>
<tr valign="top" bgcolor="#EEEEEE">
<td>
<b style="color:#aa0000">&#149;</b>
org.eclipse.emf.ecore.sdo.editor</td>
<td>-</td>
<td>
<i>sample</i>
SDO datagraph editor</td>
</tr>
<tr valign="top">
<td colspan="3">
<br />
<b>XSD:</b>
</td>
</tr>
<tr valign="top">
<td>
<b style="color:#aa0000">&#149;</b>
org.eclipse.emf.mapping.xsd2ecore</td>
<td>-</td>
<td>support for mapping between XML Schema and Ecore</td>
</tr>
<tr valign="top" bgcolor="#EEEEEE">
<td>
<b style="color:#aa0000">&#149;</b>
org.eclipse.emf.mapping.xsd2ecore.editor</td>
<td>-</td>
<td>
<i>sample</i>
XML Schema-Ecore mapping editor</td>
</tr>
<tr valign="top">
<td>
<b style="color:#aa0000">&#149;</b>
org.eclipse.xsd</td>
<td>-</td>
<td>XML Schema Inforset model and implementation</td>
</tr>
<tr valign="top" bgcolor="#EEEEEE">
<td>
<b style="color:#aa0000">&#149;</b>
org.eclipse.xsd.edit</td>
<td>-</td>
<td>
<i>sample</i>
edit support for XML Schema</td>
</tr>
<tr valign="top">
<td>
<b style="color:#aa0000">&#149;</b>
org.eclipse.xsd.editor</td>
<td>-</td>
<td>
<i>sample</i>
XML Schema editor</td>
</tr>
<tr valign="top" bgcolor="#EEEEEE">
<td>
<b style="color:#aa0000">&#149;</b>
org.eclipse.xsd.test</td>
<td>-</td>
<td>tests and example code for XML Schema model</td>
</tr>
</table>
<br />
<div id="section_header">License</div>
<br /><br /><br />
This project is licensed under the Common Public License.
<br /><br />
<div id="section_header">More Information</div>
<br /><br /><br />
EMF is part of the
<a href="http://www.eclipse.org/tools/index.html">Eclipse Tools
Project</a>.
For more information about the Eclipse Tools Project,
<a href="http://www.eclipse.org/tools/eclipsetools-charter.html">
click here</a>.
<br /><br />
For more information about EMF, SDO &amp; XSD, please visit:
<br />
<table border="0" cellspacing="3">
<tr valign="top">
<td colspan="1">
<br />
&nbsp;&nbsp;
<b>EMF:</b>
</td>
<td rowspan="5">&nbsp;</td>
<td colspan="1">
<br />
&nbsp;&nbsp;
<b>SDO:</b>
</td>
<td rowspan="5">&nbsp;</td>
<td>
<br />
&nbsp;&nbsp;
<b>XSD:</b>
</td>
</tr>
<tr valign="top">
<td>
<b style="color:#aa0000">&#149;</b>
<a href="http://www.eclipse.org/emf/" target="_self"
class="category">Website</a>
</td>
<td>
<b style="color:#aa0000">&#149;</b>
<a href="http://www.eclipse.org/emf/sdo/" target="_self"
class="category">Website</a>
</td>
<td>
<b style="color:#aa0000">&#149;</b>
<a href="http://www.eclipse.org/xsd/" target="_self"
class="category">Website</a>
</td>
</tr>
<tr valign="top">
<td>
<b style="color:#aa0000">&#149;</b>
<a href="http://www.eclipse.org/emf/faq/" target="_self"
class="category">FAQ</a>
</td>
<td>
<b style="color:#aa0000">&#149;</b>
<a href="http://www.eclipse.org/emf/faq/faq.php?FAQ=SDO"
target="_self" class="category">FAQ</a>
</td>
<td>
<b style="color:#aa0000">&#149;</b>
<a href="http://www.eclipse.org/emf/faq/faq.php?FAQ=XSD"
target="_self" class="category">FAQ</a>
</td>
</tr>
<tr valign="top">
<td colspan="1">
<b style="color:#aa0000">&#149;</b>
<a
href="http://www.eclipse.org/emf/docs.php#overviews"
class="category" target="_self">Documents</a>
</td>
<td colspan="1">
<b style="color:#aa0000">&#149;</b>
<a
href="http://www.eclipse.org/emf/docs.php#sdo"
class="category" target="_self">Documents</a>
</td>
<td>
<b style="color:#aa0000">&#149;</b>
<a
href="http://www.eclipse.org/emf/docs.php#xsd"
class="category" target="_self">Documents</a>
</td>
</tr>
<tr valign="top">
<td colspan="1">
<b style="color:#aa0000">&#149;</b>
<a href="news://news.eclipse.org/eclipse.tools.emf"
class="category" target="_top">Newsgroup</a>
</td>
<td colspan="1">
<b style="color:#aa0000">&#149;</b>
<a href="news://news.eclipse.org/eclipse.tools.emf"
class="category" target="_top">Newsgroup</a>
</td>
<td>
<b style="color:#aa0000">&#149;</b>
<a href="news://news.eclipse.org/eclipse.technology.xsd"
class="category" target="_top">Newsgroup</a>
</td>
</tr>
</table>
<p>
<i>
<small>Last updated: $Date: 2008/05/21 20:09:05 $</small>
</i>
</p>
</body>
</html>