|Deletions are marked like this.||Additions are marked like this.|
|Line 1:||Line 1:|
|= XAP - eXtensible Ajax Platform =
'''An Ajax-based Rich Internet Application framework'''
April 2006, Coach Wei (cwei at nexaweb dot com)
== PROJECT PROPOSAL ==
A basic principal of XAP is to leverage existing Ajax toolkits such as Apache Kabuki and Dojo, as well as W3C's standardization efforts in the Rich Client area. It aims to be pluggable with various Ajax toolkits, lower development complexity, and provide feedback to W3C's working groups.
== 0. Rationale ==
Ajax is a widely recognized approach for building richer, dynamic, more interactive web applications, known as "Rich Internet Application" (RIA). RIA combines the richness of desktop software with the universal deployment advantages of the web, representing the next evolution of application development.
There are many possible solutions to address these challenges and each approach can solve the challenges to a different degree. On the one side, open source community has responded with [http://incubator.apache.org/projects/kabuki.html Apache Kabuki] and Eclipse [http://www.eclipse.org/atf/ openAjax] projects. On the other side, W3C has started a working group (Web Application Formats) aimed at creating a declarative format for applications and user interfaces as part of W3C's Rich Web Client Activity. A higher level abstraction via a declarative format helps solve the Ajax development challenges by reducing the need for scripting while providing a straightforward way of building rich user interfaces, but also provides a mechanism to combine the above mentioned community efforts together for greater benefits.
Building on these vibrant community efforts already underway, the proposed project is to create an extensible software framework for building and deploying Ajax-powered rich internet applications declaratively. The project is "pluggable" with client side Ajax toolkits such as Kabuki, works with openAjax as well as supports W3C's declarative format effort. The mission of this project is to encourage innovation around declarative Ajax development, build a community, and provide feedback to W3C's Web Application Formats Working Group so that we can create the appropriate standards
This project seeks to provide
* XML markup that provides a declarative format for Ajax-based rich user interface, separating presentation and behavior;
* Declarative data binding that links user interface components with data sources, separating presentation and data;
* Declarative modification syntax for updating the user interface;
* A "bridge" mechanism that allows easy plug-in of existing UI Ajax toolkits.
* A framework that ties everything together; enabling asynchronous update and event handling;
In addition, further down the road, this proposal seeks to provide a reference implementation of the W3C Web Application Formats working group specification that provides a declarative format for applications and user interfaces.
The architecture of this proposal embraces existing Ajax toolkits, such as Apache Kabuki and Dojo. At the core of the architecture is the concept of "bridges" that allow declarative tags to be connected to any toolkit and allow the toolkits to be easily interchanged. It also supports "plugins", allowing tags to be easily added or extended to support custom widgets and behavior.
* Built in support for data binding
* Simplifies application development and maintenance
== 0.1 Criteria ==
=== Meritocracy: ===
We plan to do everything possible to encourage an environment that supports meritocracy. We know that meritocracies don't just evolve from good intentions; they require actively asking the community for help, listing/specifying the work that needs to be done, and keeping track of and encouraging members of the community who make any contributions.
=== Community: ===
We are committed to building a strong community around the proposed project. The committers will supply example code and documentation to help bring new members up to speed as to the current functionality of the code and how it is organized and maintained. In addition, the committers plan to spend the time necessary to answer user and developer questions. Along with our plans to encourage meritocracy (mentioned above), we hope these efforts will eventually create a user and development community that can live beyond the contribution of any one person and beyond the goals of any contributor’s employer.
=== Core Developers: ===
More than half of the initial committers are key members of Nexaweb's development, test, and project management team. The rest are developers who have had significant experience with the framework or the technologies it is built upon. Some of these committers are contributing to this project on behalf of their employer, some of them are self-employed consultants, and some of them are just contributing as individuals.
Two of the initial committers are part of W3C's Web Application Format Working Group (Cliff Schmidt and Coach Wei).
=== Alignment: ===
The project is a pure client-side implementation. It should support any server side infrastructure. The initial code base is targeted to support the following environments:
* Client side: Internet Explorer and Firefox initially. We expect support for other browsers in the future.
* Server side: any web server environment (Tomcat, Geronimo, Apache, .NET, PHP, etc.).
For further information, please see http://www.nexaweb.com/open/xap
== 0.2 Warning signs ==
=== Orphaned products: ===
The initial code contribution is being developed specifically for the developer community and is not an orphaned product. The committers have long term interest to develop and maintain the code.
=== Inexperience with open source: ===
Only a few of the initial committers have contributed to open source projects; however, all of the initial committers have been reading Apache process documents, the incubator general mailing list, and the dev lists of current Apache projects. We’ve also spent time with ASF members and at ApacheCon to prepare ourselves as much as possible.
=== Homogenous developers: ===
The initial list of developers consists primarily of paid employees of the donating company. The donating company has reached out and will continue to reach out to build a diverse and vibrant community. The remaining initial committers are independent. They have had experience with the technology before and are personally passionate about the technology.
The committers are geographically distributed. They are experienced with working in a distributed environment.
=== Reliance on salaried developers: ===
Some of the initial committers are salaried developers employed by [http://www.nexaweb.com/ Nexaweb]. Nexaweb is committed to open source and committed to building a community for this project. The remaining developers are individual volunteers who are passionate about the technology. The donating company has reached out and will continue to reach out in its effort to build a diverse community.
=== No ties to other Apache products: ===
This proposal is related to many ongoing projects at Apache, such as Kabuki and MyFaces, and it fits into the overall vision of that set of projects. There is an optional dependency on Kabuki.
=== A fascination with the Apache brand: ===
The committers are intent on developing a strong open source community around the XAP framework whether Apache is the right place or not; however, we believe that the project's current use of Apache projects, the potential for future synergies, and the Apache way of developing software make the ASF the ideal host community.
== 1. Scope ==
Provide declarative syntax and framework for writing Ajax applications.
The initial commit will contain:
* XML processing abstraction
* XPath support - limited support initially
* Incremental Update - remove, set-attribute and append
* UI Component Library bridges
* Declarative framework
* Open XML specification and schema
* Samples and documentation
For further technical or background information, please see:
== 2. Identify the initial source from which the subprojects are to be populated ==
The initial source will be denoted by Nexaweb Technologies Inc..The donating company will make code available after the proposal is accepted and necessary infrastructure has been set up. For further background or technical infomation, please see http://www.nexaweb.com/open/xap for more details.
== 2.1 External Dependencies of the project ==
== 3. Identify the ASF resources to be created ==
== 3.1 mailing list(s) ==
* xap-ppmc (with moderated subscriptions)
== 3.2 Subversion repository ==
== 3.3 Bugzilla ==
== 4. Identify the initial set of committers: ==
* Atsuko Pien
* Scott Boyd
* Robert Buffone
* Cliff Schmidt
* Coach Wei
* Peter Eacmen
* Animesh Kumar
* Jonathan Levin
== 5. Identify Apache sponsoring individual ==
We request that the Apache Incubator PMC sponsor XAP as an incubating project. There is not currently another TLP that would be an obvious fit as sponsor for this project. As the project approaches graduation, we would reevaluate possible TLP destinations and work with others at Apache to consider whether a new TLP is warranted to include XAP and possibly other related Apache projects.