The Rich AJAX Platform RAP Project is a proposed open source project under the Eclipse Technology Project.
This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process document) and is written to declare its intent and scope. This proposal is written to solicit additional participation and input from the Eclipse community. You are invited to comment on and/or join the project. Please send all feedback to the http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology newsgroup.
With the recent ubiquity of AJAX technologies, web applications can provide the user experience end-users have demanded for a long time. Rich Client and web applications are converging with regard to functionality and usability - web applications are becoming "Rich" with respect to UI capabilities, Rich Client applications are offering better deployment and management functionality.
Eclipse has successfully entered the Rich Client world with its Rich Client Platform (RCP). RCP offers a flexible, extensible platform that is operating-system-independent while providing a user experience that is consistent with that of the native operating system. RCP also offers built in functionality to extend and update client installations.
The RAP project aims to enable developers to build rich, AJAX-enabled Web applications by using the Eclipse development model, plug-ins and a Java-only API.
See http://rap.innoopract.com/webworkbench for a demonstration of the usability and look and feel of such an application.
RAP will offer the ease of development of Eclipse, Eclipse extensibility and user experience by reusing Eclipse technology for distributed applications and by encapsulating AJAX technologies into simple-to-use Java components (as SWT encapsulates native widgets).
Web applications remain the appropriate approach for many usage scenarios, e.g. for applications with zero-install access requirements. With centralized installation and administration, web applications offer low administration and production costs. Furthermore, they can provide high scalability and good performance.
But associated with the classic approach of HTML-based web applications is a higher expenditure of resources during the development and maintenance process due to the technology mix that is involved. With AJAX this becomes an even bigger problem.
By encapsulating the AJAX technologies in a component library one major road block to a more efficient development model can be eliminated. By offering a plugin model on the server and providing Eclipse workbench UI capabilities developers can leverage their experience with Rich Client Applications and profit from the proven Eclipse development model to create Rich Internet Applications in a streamlined fashion.
With the proposed Rich AJAX Platform Eclipse enters the Area of Rich Internet Applications.
The objectives of the RAP project are to:
It is about enabling programmers to develop powerful, AJAX Web applications "the eclipse way" - using the plug-in mechanism, a java widget toolkit and workbench services. - without having to actually hand-code AJAX.
RAP addresses the same kind of applications like RCP, and complements RCP technology with respect to serving as a thin client for distributed applications. RAP is targeted to enterprise applications and can be employed independently of RCP.
|Plugin Model||OSGi||OSGi on the server (inside a webapp)|
|Widget Toolkit||SWT||WWW Widget Toolkit (W4T)|
|Model View Controller||JFace||JFace (adapted, as standard JFace has references to SWT)|
|UI Framework||Workbench||Web Workbench|
The development model of both toolkits is very similar. There are two main differences:
The project aims for enabling as much reuse of RCP application components as possible. However, for the first release of RAP a part of the UI of existing RCP applications needs to be rewritten (which means that core plug-ins can be reused, as long as they are multi-user capable). It shall be possible to reuse Content and Labelproviders.
Because it is not possible - yet. JSF does currently not offer a generic support for AJAX, and although it is possible to use JSF with Java components only, there is no implementation available right now.
We believe that the core achievement of JSF is its Lifecyle handling. W4T lifecycle handling is very closely aligned with the JSF lifecycle handling, and it will be possible to move to JSF in the future.
Eclipse is about "extensible platforms and exemplary tools" - and we take that seriously. The widget library can be extended with more widgets, much the same way as SWT requires knowledge of the "native" (meaning AJAX) technologies. As the Web Workbench will be built on the plug-in model, it is extensible by design.
The initial committers will focus on evolving and hardening the RAP model by delivering support for Java development. Our agile development process will follow eclipse.org's standards for openness and transparency. Our goal is to provide the infrastructure and APIs needed to integrate task and degree-of-interest-centric UIs to any Eclipse plug-ins whose user-experience information overload. As such we will actively encourage contributions to RAP. We also plan to help improve the Eclipse platform by submitting patches and extension point suggestions. The initial committers are:
Innoopract will make an initial code contribution that will encompass some of the core functionality for a Rich AJAX Platform including: " a rich set of UI components with a Java API " event-driven program control " a generic mechanism for updating arbitrary UI elements of a web UI based on AJAX " a Lifecycle handling comparable to the one used in Java Server Faces " a mechanism for browser detection " rendering kits that enable to adapt to browser capabilities (NoScript, Script, AJAX). Developer community We expect to extend the initial set of committers by actively supporting a developer community. Our goal is to have the initial developer community harden the core RAP functionality. As most of our planned API shall be identical to existing Eclipse API, we will make it easy for interested parties to take an active role in the project by making our planning and process transparent and remotely accessible.
RAP is a new technology that promises to bring the Eclipse user interface and interaction model to web applications. As such, supporting and soliciting feedback from a large user community of developers is critical to creating a scalable platform and usable UIs. We plan on doing this by using the standard eclipse.org mechanisms of supporting an open project and community of early adopters.
2006-06 v0.1: Java component library for UI development
2006-09 v0.2: Basic WebWorkbench implementation, OSGi running exemplary inside web applications on selected open source servers
2007-02 v0.5: Provide all API for Release 1.0
2007-06 v1.0: Release 1.0
Back to the top