AJAX Toolkit Framework Proposal

0.  Rationale

While the term AJAX (Asynchronous Javascript and XML) has only recently
been coined, the underlying web standards and technologies (JavaScript
a.k.a. ECMAScript, DOM, XML, SOAP, and so on) have been around for years.
Although the term is used in a variety of ways, AJAX typically describes
techniques towards developing interactive applications on the web client
including asynchronous messaging, use of XML grammar in client-side
applications, incremental page updates, and improved user interface
controls. AJAX applications combine the rich UI experience of programmed
clients with the low-cost lifecycle management of web-based applications.

AJAX has raised awareness of the high potential of web applications, it has
encouraged companies to adopt rich web-based interfaces over traditional
"fat" clients, and it has spawned development activity to create toolkits
and abstractions to make AJAX-style development easier and more powerful.
This is an important trend for open source.  The client itself can be
composed entirely of open-source parts, such as Mozilla's Firefox or KDE's
Konqueror, and does not require any particular operating system, helping to
make a more level playing field for all development.  More importantly,
AJAX is back-end agnostic as transactions are done over HTTP.  Keeping the
client open forces vendors to keep the communication channel open as well,
and this can only continue as long as the client technology keeps pace with
proprietary alternatives.  The open, standards based communications channel
is what drives many technologies inside Apache, so success of the open
client is vital to Apache.  The mission of this project is to encourage
innovation around enterprise-strength client runtimes and tools and build a
community which can select and nurture a select set which will be most
beneficial to the web.

0.1 Criteria


Apache was chosen for an incubator primarily because of the guidance the
community can provide.  The two subprojects put forth are among the first
attempts to formalize this style of development.  Additional ideas, tools
or entire runtimes may come forward and indeed would be welcomed to the
project, either wholesale as new subprojects or incorporated into the
existing code.


The contributed work was inspired by open source development but needs a
strong and diverse community to validate its mission and carry it forward.
A primary objective of the project is to build a vibrant community of users
and active contributors.

Core Developers:

All of the initial committers are members of Zimbra and IBM development
teams.  All developers have worked on open source projects before and have
experience and understanding of open source principles.


Initial implementation consists of two sub projects.

The AJAX Toolkit Framework will provide a strategic framework for
Interactive Development Environments (IDEs) for the many different AJAX
toolkit offerings in the market. It provides a rich set of tools for the
AJAX / DHTML developer including: a JavaScript editor with edit-time syntax
checking; Mozilla web browser; integrated DOM browser; integrated
JavaScript debugger; and wizards and development aides tuned to specific
libraries and toolkits.  The Framework is extensible to support other AJAX
toolkits and has a wizard-based tool to facilitate the integration of new
toolkits in the framework.

The AJAX Toolkit Framework has dependencies on  Mozilla XULRunner and
JavaConnect, and Eclipse WTP. AJAX Toolkit Framework is written as a set of
Plugin extensions to Eclipse. It embeds 4 other open source components:
Rhino, JSLint, Rico and Zimbra.  No code modifications will be made to the
4 open source components specified. They are incorporated to accommodate
Eclipse plugin architecture and distributed as-is by repackaging them as
part of the AJAX Toolkit Framework.

The Zimbra AJAX Development Toolkit, the first toolkit integrated into the
framework, provides a rich client library, similar in style to traditional
object-oriented widget libraries like Eclipse's SWT.  This toolkit hides
implementation details and browser quirks and makes web development more
accessible to the enterprise developer.  It provides

 * User interface development
 * Network communications (both synchronous and asynchronous)
 * SOAP programming
 * XML document creation and manipulation
 * UI event handling and management

For further information, please see the Zimbra AjaxTK whitepaper:

0.2  Warning signs

Orphaned products:

The initial code submission is based on colloborative work between IBM and
Zimbra to provide a toolkit and a framework to embed the toolkit in IDE
environment and provide additional enhancements. Both the companies believe
that taking a joint approach and making it available through open source
will make it widely accepted and create a community and unify Industry
momentum to consolidate requirements and accelerate community growth and
enhance the toolkit to ease development of AJAX applications.

Inexperience with open source:

Both the companies and several of the commiters are very experienced in
Open Source environment. All efforts will be made to ensure that the work
done and momentum will be in strict adherence to open source guidelines.

Homogenous developers:

The current list of committers includes developers who are geographically
distributed.  They are experienced with working in a distributed
environment, and with resolving technical differences.

Reliance on salaried developers:

All of the initial developers are paid by their employers to contribute to
this project and the employers track records for ongoing investment in open
source communities well known.

No ties to other Apache products:

The initial codebase will be licensed under the Apache License 2.0.The
dependencies on other external projects are defined in the alignment
section.  While there are no direct build dependencies on other Apache
projects, the development of AJAX clients will often be driven by Apache
middleware and will have a positive impact on the open source movement as
described in the "Rationale" section.

A fascination with the Apache brand:

The committers are intent on developing a strong open source community. We
believe that the Apache Software Foundation's emphasis on community
development makes it the most suitable choice.

1. Scope of the subprojects

The subprojects will include development tools necessary to encourage
browser-based, AJAX-style development for individual users as well as in
the enterprise.  The tools will be driven by an extensible IDE Framework
and may include utilities to assist in code development, analysis, and
testing.  The tools will be adaptable to different AJAX runtimes, some of
which will also be subprojects in the incubator.  The initial submission
includes an IDE and one such runtime.

These initial projects are intended merely as starting points and should
not be taken as bounding the scope of the project as a whole. Some other
potential projects may include:

 * WYSIWYG tools for building AJAX-style interfaces
 * Declarative grammars or abstractions for AJAX programming
 * A common data model to facilitate efficient server communication with
Javascript or DOM access

2. Identify the initial source from which the subprojects are to be

AJAX Toolkit Framework was developed at IBM as a set of plugins based on
the Eclipse Framework and WebTools Project.  Zip files containing snapshots
of CVS directories are provided with this proposal at
http://www.apache.org/~rubys/ajax/ajaxtk-framework-ibm.tgz and

The Zimbra AjaxTK is available today in open source, and can be downloaded
as part of the Zimbra Collaboration Suite (choose the source code version)
http://www.zimbra.com/community/downloads.php.  A snapshot of the AJAX
toolkit code is provided at http://www.apache.org/~rubys/ajax/Ajax.tar.gz

2.1 External Dependencies of the project

AJAX Toolkit Framework has dependencies on Mozilla XULRunner and
JavaConnect, and Eclipse WTP. AJAX Toolkit Framework is written as a set of
Plugin extensions to Eclipse. It embeds four other open source components
Rhino, JSLint, Rico and Zimbra.  No code modifications will be made to the
four open source components specified. They are incorporated to accommodate
Eclipse plugin architecture and distributed as is by repackaging them as
part of AJAX Toolkit Framework. In the future any AJAX toolkit that is to
be supported can be included as another plugin.

3. Identify the ASF resources to be created

3.1 mailing list(s)

    * ajaxtk-ppmc
    * ajaxtk-dev
    * ajaxtk-commits
    * ajaxtk-user

3.2 Subversion repository

    * [WWW] https://svn.apache.org/repos/asf/incubator/ajaxtk

3.3 Bugzilla


4. Identify the initial set of committers:

    * Craig Becker
    * Leugim Bustelo
    * Andrew Clark
    * Conrad Damon
    * Ross Dargahi
    * Becky Gibson
    * Javier Pedemonte
    * Adam Peller
    * Roland Schemers
    * Donald Sedota
    * Parag Shah
    * Greg Solovyev

5. Identify Apache sponsoring individual

We request that the Apache Incubator PMC sponsor the AJAX Toolkit Framework
as an
incubating project, with the eventual goal of graduation as a TLP.  The
initial contributors feel the scope of the project doesn't clearly
overlap with any existing TLP, and is broad enough to justify eventual
TLP status.

Champion:    Sam Ruby

Mentors:     ??

To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to