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 Meritocracy: 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. Community: 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. Alignment: 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: http://www.zimbra.com/pdf/Zimbra%20AJAX%20TK%20Whitepaper.pdf 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 populated 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 http://www.apache.org/~rubys/ajax/ajaxtk-framework-contrib.tgz 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) at 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 * AJAXTK (AJAXTK) 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]