| <?xml version="1.0" encoding="ISO-8859-1" ?> |
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> |
| <html xmlns="http://www.w3.org/1999/xhtml"> |
| <head> |
| <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> |
| <meta name="GENERATOR" content="IBM Software Development Platform" /> |
| <title>Eclipse Webtools Architecture Overview</title> |
| </head> |
| <body> |
| <div align="center"> |
| <table border="1" cellpadding="10" height="50%" width="70%"> |
| <tbody> |
| <tr align="left" valign="middle"> |
| <td valign="middle" align="left"> |
| <blockquote style=""> |
| <p><cite>The background and status of this document:</cite></p> |
| <p><cite>This version is a second draft of WTP Architecture Overview |
| and has incorporated comments received. Comments to wtp-dev list are welcome. </cite></p> |
| <p><cite> Version 0.3 December 2, 2004. </cite></p> |
| </blockquote> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| <h1>Eclipse Webtools Architecture Overview</h1> |
| <p>The <a href="http://www.eclipse.org/webtools/main.html">Web Tooling |
| Platform (WTP) Project</a> is made up of two subprojects, <a |
| href="http://www.eclipse.org/webtools/wst/main.html">Web Standard Tools |
| (WST)</a> and <a href="http://www.eclipse.org/webtools/jst/main.html">J2EE |
| Standard Tools (JST)</a>.</p> |
| <p>The <a href="http://www.eclipse.org/webtools/wst/components.html">list |
| of components for WST</a> and the<a |
| href="http://www.eclipse.org/webtools/jst/components.html"> list of |
| components for JST</a> give descriptions of the components and |
| [eventually will contain] links to that component's specific design |
| documents. |
| <p>This document describes the <b>subsystems</b> that these components |
| form. These divisions into subsystems are important because they form |
| the basis of what is available to other projects, and end-user update |
| manager features, and features for maintenance streams. Also, it allows |
| a high level description of internal and external dependancies.</p> |
| |
| <p>For end-users, there is currently only one news group, <a |
| href="news:org.eclipse.dev/eclipse.webtools">eclipse.webtools</a>. For |
| developers, there are currently three mailing lists <a |
| href="mailto:wtp-dev@eclipse.org">wtp-dev</a>, <a |
| href="mailto:wtp-wst-dev@eclipse.org">wtp-wst-dev</a>, and <a |
| href="mailto:wtp-jst-dev@eclipse.org">wtp-jst-dev</a>. As the project |
| continues, if traffic seems "heavy" for a particular component, then new |
| mailing lists and/or news groups will be created as needed.</p> |
| |
| <p>This document decribes the <a href="#subsystemview">Subsystem View</a>, <a |
| href="#eclipsedependancies">Dependancies on the Eclipse Project</a>, <a |
| href="#toolsdependancies">Dependancies on Tools Projects</a>, <a |
| href="#relationtootherprojects">Relation to other Projects and Products</a>, <a |
| href="#graphicalsummary">Summary in Graphical form</a>, and <a |
| href="#deployrmentview">Deployment View</a>.</p> |
| <h1><a name="subsystemview">Subsystem View</a></h1> |
| <h2>WST Project</h2> |
| |
| <h3>Build and Test Subsystem</h3> |
| <p>For completeness, I'll mention our build and test component, highly |
| modeled after the base Eclipse build and test components.</p> |
| <ul> |
| <li>org.eclipse.wtp.releng</li> |
| </ul> |
| |
| <h3>Common Subsystem</h3> |
| <p>Components in this subsystem have no dependancies on other webtooling |
| components and are not specific to web tooling functionality, but are |
| needed by other web tooling components. |
| <ul> |
| <li>Common Component |
| <ul> |
| <li>Extensible Navigator</li> |
| <li>Tabbed Property View</li> |
| <li>Snippets View</li> |
| <li>Extensible URI Resolver</li> |
| </ul> |
| </li> |
| <li>Validation Framework Component</li> |
| <li>Command Framework Component</li> |
| </ul> |
| |
| <h3>Server Subsystem</h3> |
| <ul> |
| <li>Server Component</li> |
| <li>Internet Component</li> |
| </ul> |
| <h3>Database Subsystem</h3> |
| |
| <p>Will be an update manager feature.</p> |
| <ul> |
| <li>RDB/SQL</li> |
| </ul> |
| <h3>XML Subsystem</h3> |
| <p>Will be an update manager feature.</p> |
| |
| <ul> |
| <li>XML Component</li> |
| <li>Schema Component</li> |
| <li>DTD Component</li> |
| <li>SSE Component</li> |
| </ul> |
| |
| <h3>Web Services Subsystem</h3> |
| |
| <ul> |
| <li>WS Component</li> |
| <li>WSDL Component</li> |
| <li>WSI Component</li> |
| </ul> |
| |
| <h3>Web Resources Subsystem</h3> |
| |
| <ul> |
| <li>HTML Component</li> |
| <li>CSS Component</li> |
| <li>JavaScript Component</li> |
| </ul> |
| <h3>Generic Web Module Subsystem</h3> |
| |
| <ul> |
| <li>Web Component</li> |
| </ul> |
| |
| <h2>JST Project</h2> |
| |
| <h3>Server Subsystem</h3> |
| |
| <ul> |
| <li>Server Component</li> |
| </ul> |
| |
| <h3>JSP Resources Subsystem</h3> |
| |
| <p>Will be an update manager feature.</p> |
| <ul> |
| <li>JSP Component</li> |
| </ul> |
| |
| |
| <h3>Basic J2EE Subsystem</h3> |
| |
| <ul> |
| <li>Servlet Component</li> |
| <li>J2EE Component</li> |
| </ul> |
| |
| <h3>Advanced J2EE Subsystem</h3> |
| |
| <ul> |
| <li>EJB Component</li> |
| <li>WS Component</li> |
| </ul> |
| |
| <h1><a name="eclipsedependancies">Dependancies on the Eclipse Project</a></h1> |
| <h2>Platform</h2> |
| <p>All components pervasively required by both WST and JST. Note, there |
| might be a few not required in short term, such as debug component, but |
| long term it is easily imagined to be needed.</p> |
| <h2>JDT</h2> |
| <p>Not required by WST, but required by JST. Note: we don't rule out |
| that we might require it someday in WST ... but no known cases |
| currently.</p> |
| <h2>PDE</h2> |
| <p>Not required, though obviously want to verify co-existence.</p> |
| <h2>WebDav</h2> |
| <p>While not an official platform project or component, we do want to |
| verify co-existence.</p> |
| <h1><a name="toolsdependancies">Dependancies on Tools Projects</a></h1> |
| <p>In addition to the base Eclipse, the following projects/packages are |
| prerequisites of the Webtooling Platform. GEF, EMF, and XSD are |
| pre-req'd by enough of WST to say its always required. The JEM package |
| is only pre-req'd by JST.</p> |
| <h2>EMF</h2> |
| <p>EMF, <a href="http://www.eclipse.org/emf/" target="_top">Eclipse |
| Modeling Framework</a>, is a way to define meta models, and then |
| instantiate specific instances of those models. Its particularly famous |
| for being useful to maintain models across multiple products, especially |
| when the model may change from one release to another (the way that |
| deployment descriptors and J2EE specs change from version to version.</p> |
| <h2>XSD</h2> |
| <p>The <a href="http://www.eclipse.org/xsd/" target="_top">XSD, XML |
| Schema Infoset Model, Project</a> provides a model and API for querying |
| detailed information about schemas and manipulating them. [Note: |
| technically XSD Infoset is part of Technology Project, but is |
| distributed with EMF]</p> |
| <h2>GEF</h2> |
| <p>GEF, <a href="http://www.eclipse.org/gef/" target="_top">Graphical |
| Editing Framework</a>, is a framework "on top" of SWT that |
| makes it easier to develop sophisticated, highly customizable user |
| interfaces that go beyond typical widgets .</p> |
| <h2>JEM Package</h2> |
| <p>The JEM package, Java EMF Model, is actually part of the <a |
| href="http://www.eclipse.org/vep/" target="_top">VE Project</a>. The VE |
| team has recently made it available as separate download from their <a |
| href="http://download.eclipse.org/tools/ve/downloads/drops/S-1.0M2-200407301410/index.html" |
| target="_top">VE build pages</a>. In addition to allowing easier |
| interaction with other EMF models, it also incorporates BeanInfo into |
| its models (not just reflection). We use it in connection to our J2EE |
| EMF-based models. From what I hear, there's no ISV documentation for |
| this package, but the rose models that are used to create the meta model |
| can be found in CVS on dev.eclipse.org<br /> |
| /home/tools<br /> |
| under<br /> |
| /org.eclipse.jem/rose<br /> |
| To load into rose (from workspace) you'd also have to have |
| org.eclipse.emf.ecore in workspace, and define, in Rose, an EditPathMap |
| of WorkspaceRoot as what ever your workspace root is on your filesystem |
| (then it can find included files/models automatically).</p> |
| |
| <h2>Others</h2> |
| <p><b>Xerces</b>. We currently ship Xerces binaries within plugin's |
| runtimes that require them. [There's been some discussion that with OSGI |
| classloading of PPS (Platform (bootloader), Pre-reqs, Self), that it |
| should be easier to provide a common Xerces plugin, as long as there's |
| no version requirements conflicts, and no custom class loaders involved, |
| and appropriate factories used to "get" the specific parts of |
| Xerces needed that are not part of the platforms runtime].</p> |
| |
| <h1><a name="relationtootherprojects">Relation to other Projects</a> and Products</h1> |
| <h2>J2EE Servers</h2> |
| <ul> |
| <li>Apache Tomcat</li> |
| <li>JBoss</li> |
| <li>(Jonas)b </li> |
| </ul> |
| <h2>Database Servers</h2> |
| <ul> |
| <li>Apache Derby (Cloudscape)</li> |
| <li>With adapters for other products as well, db2.iseries, db2.luw, db2.zseries, informix, oracle, sqlserver, sybase</li> |
| </ul> |
| |
| <h1><a name="graphicalsummary">Summary in Graphical form</a></h1> |
| <p>The following diagrams summarize the subsystem and relationships |
| described above.</p> |
| <p></p> |
| <p><img src="images/wstandjstdependancies.png" width="867" height="454" |
| border="2" /></p> |
| <p><br /> |
| The darker shaded subsystems are accessible by end-users and other |
| components via update manager.</p> |
| <p><img src="images/wstsubsystems.png" width="606" height="450" |
| border="2" /></p> |
| <p><br />The darker shaded subsystem (orange) is accessible by end-users and other |
| components via update manager. |
| <br />The white subsytems indicate the "links" into the WST subsystem. The JDT and JEM components indicate two <br />components from other projects required in JST, but not required in WST. |
| </p> |
| <h1><img src="images/jstsubsystems.png" width="769" height="475" |
| border="2" /><a name="deployrmentview"><br /> |
| Deployment View</a></h1> |
| <p>This section makes explicit what is currently planned to be made available as deployable features via update manager. This is paritally driven by views expressed by community users, and partially dirven by the expressed needs of other projects. It may not be the perfect "slice and dice" of the whole package that would suit everyone, but the expecation is that other projects can always download more than they need, and pick and choose the exact components they want to re-distribute.</p> |
| <p>All deployment features below will have a "binary" runtime |
| version, and an SDK version, with all source and developer |
| documentation. </p> |
| <p>At the hightest level, is JST and WST seperately. (With JST requireing |
| WST). </p> |
| <p>Within JST, user's can choose all of JST, or JSP Subsystem. </p> |
| <p>Within WST, users's can choose all of WST, or the XML Subsystem |
| (includes Schema and DTD components), or the Data Subsystem </p> |
| <p>Of Course, at any point of a decision, the choosen "subcomponent" will still "pull allong" all that its dependent on. </p> |
| <p></p> |
| </body> |
| </html> |