blob: 5579a9deed68e0fca2c36211e76a4fff6c32ccb4 [file] [log] [blame]
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../wtp.xsl"?>
<html>
<head>
<title>the web standard tools subproject</title>
</head>
<body>
<h1>wst</h1>
<h2>Project Vision</h2>
<p>
The project vision is to extend eclipse
platform with support for building multi-tier Web applications. The
project will grow the community of eclipse users, and grow the
community of developers that create Web applications based on Open
Standards and Technologies. In this way, we will help make eclipse the
industry standard tool integration platform for development based on
Open Standards and Technologies. The project must preserve the eclipse
value proposition by providing integration, ease-of-use, function, and
"coolness". Web artifacts must be first class citizens with respect to
the capabilities that eclipse users expect. Servers must be first class
execution environments, including both Open and Commercial
implementations, therefore encourage support of eclipse by server
vendors.
</p>
<h3><a href="components.html">WST Components</a></h3>
<p>
The proposed components and component leads.
</p>
<h2>Project Context</h2>
<p>
Support of Web standards in the scope of the Web Standard
Tools subproject includes languages and specifications published by
open-standard bodies (e.g. W3C, IETF, ECMA, OASIS, WS-I, ANSI) that are
commonly used by Web-centric applications (e.g. HTML, CSS, JavaScript,
XML, XSD, XSLT, SVG, SOAP, WSDL, UDDI, SQL).
</p>
<p>
This subproject will provide support for integrating Web
servers into
Eclipse as first-class execution environments for Web applications.
This support will include the ability to configure Web servers and
assocaite them with Web projects. Examplar tools for supporting popular
Open Source Web servers, such as Apache, are in scope.
</p>
<p>
Support of <a class="external" href="http://www.jcp.org/"
target="_blank">JCP standards</a> are explicitly outside the scope of
this project and should be covered by the <a class="external"
href="http://www.eclipse.org/jdt" target="_top">Java Development Tools
(JDT) project</a> or by the <a class="wikipage" href="../jst/main.html">J2EE
Standard Tools (JST) subproject</a>.
</p>
<p>
The subproject will provide tools that directly support the
base standards and that are also extensible. For example, the HTML
editor will be extensible to support HTML-based template languages such
as PHP and JSP. While a JSP editor is in the scope of the JST
subproject, exemplar tools for popular Open Source languages such as
PHP are in scope.
</p>
<p>
The goal of this project is to provide both tools for
Web application developers and a platform for tool developers.
</p>
<h3>Some Architectural Principles</h3>
<ul>
<li>Seamlessly extend the eclipse user experience </li>
<li>Accommodate common project directory layouts </li>
<ul>
<li>Avoid need for migration </li>
</ul>
<li>Apply capabilities orthogonally to source artifacts: </li>
<ul>
<li>Syntax Coloring </li>
<li>Code Assist </li>
<li>Quick Fixes </li>
<li>Refactoring </li>
<li>Etc. </li>
</ul>
<li>Extend the Run command to Web artifacts, e.g. HTML </li>
<li>Enable hybrid source editing: </li>
<ul>
<li>HTML in Java </li>
<li>SQL in Java </li>
<li>Etc. </li>
</ul>
<li>Enable extension of editors with value-add </li>
<ul>
<li>Graphical views </li>
<li>Form based views </li>
</ul>
</ul>
<h3>Some Use Cases</h3>
<ul>
<li>Develop and publish a static HTML site </li>
<li>Develop Web pages based on JavaScript and CSS </li>
<li>Deploy an applet on a given HTTP server </li>
<li>Develop SQL statements and generate static Web pages from
database queries </li>
<li>Develop XSD and XSLT for XML based Web pages and Web
services </li>
<li>Develop and publish WSDL schema on UDDI registries </li>
<li>Explore UDDI registries and dynamically test Web services
via WSDL </li>
<li>Test Web services for WS-I compliance </li>
</ul>
<h2>Goals for Project Structure and Web Core Model</h2>
<p>These structures will provide common facilities required by
most Web tool builders. A common and flexible project model is required
as well as a common basis for web artifacts and editors. Our goals are:
</p>
<ul>
<li>Divide and Conquer: Lots of components, so divide the work
using the classical principle of hierarchy </li>
<li>Layer Build Dependencies: J2EE Standards builds on the Web
Standards, the Extensions build on the Standards </li>
<li>The structure of software reflects the structure of the
organization that built it: We are building a platform and need to
validate our API. </li>
</ul>
<h2>Web Core Model</h2>
<p>
This is a set of frameworks, and models, which provide the
necessary abstractions and APIs to work and develop with Web Tools, and
to build IDEs and tools to support these activities. WCM is not just an
adaptation of language specification, but it will focus on the
additional requirements of developers and tool builders. WCM address at
a minimum the following areas:
</p>
<h3>Project Model</h3>
<p>Development of Web applications is done in a variety of ways;
It can be divided across multiple related projects, or it can be
factored into one project that can host multiple artifacts. The core
Web project model will extend the eclipse project model and will have
intelligence to recognize and work with Web artifacts, and support the
build activities related to these artifacts. </p>
<h3>Editor Model</h3>
<p>The Editor Model will offer developers a set of APIs to access
Web models, participate in build and refactoring activities, and allow
them to easily create various text, and graphical editors. Support for
a Content based selection of Editors will be integrated into the Editor
Model. This model will encompass editors in a broad sense, i.e.
editors, validators and document generators for a wide range of
standard languages corresponding to Web Artifacts taken into account. </p>
<h3>Web Artifacts</h3>
<p>These models will represent Web standard models. They will at
minimum include or reference existing models for: </p>
<ul>
<li>XML family languages (XML itself, HTML, XHTML, WML, XSD,
DTD, XSLT, SVG, ...) </li>
<li>JavaScript/ECMAScript </li>
<li>CSS </li>
<li>Web Services languages (SOAP, WSDL, UDDI, WSIL, ...) </li>
<li>Database languages (SQL, ...). </li>
<li>Other models: DDL, ... </li>
</ul>
<h3>Server Models</h3>
<p>Servers are first class execution environments, they provide
the runtime environment, where the web artifacts are tested, deployed
and executed. Server models must be flexible to accommodate open and
commercial implementations. </p>
<ul>
<li>Support different applications servers and server versions </li>
<li>Start, stop and restart servers </li>
<li>Run server processes in the Eclipse debugger </li>
<li>Package, deploy, remove, import, export, accessing/testing
modules </li>
<li>Extensible framework for server administration </li>
</ul>
<h2>Web Standard Tools</h2>
<p>
Web Standard Tools will provide extensible tools for the
development of Web Applications and support development, testing and
debugging with various servers. The following tools will be made
available:
</p>
<ul>
<li>Server tools, Internet preferences, TCP/IP monitor </li>
<li>HTML (fragments), XML, CSS, JavaScript source editors </li>
<li>XML/DTD/XSD utilities </li>
<li>WSDL/XSD graphical editors, Web service UDDI/WSDL Explorer </li>
<li>SQL Query graphical editor </li>
<li>Associated natures, builders, validators and EMF models</li>
</ul>
</body>
</html>