The Rich Ajax Platform (RAP) is an Eclipse open source platform for developing desktop and web applications based on a unified code base. The communication with the server is done by using the web technology Ajax. RAP is based on the Rich Client Platform( RCP) model - a framework for developing plug-in based applications. The important aspect of the uniform code basis in the development of RAP is also called single sourcing. Currently, version 1.2 is available for download at the link below. In addition, numerous examples are available that demonstrate the use of RAP.
Since the implementation of RAP is based on the Javaprogramming language and the runtime environment is therefore the Java Virtual Machine( JVM), RAP supports important target platforms such as Windows, Linux as well as MacOS X. Alternative possibilities for the development of Web applications are beside the Google Web Toolkit( GWT) also the numerous freely available frameworks, which do not support however a single sourcing necessarily. RAP was developed by the company Innopract and is part of the so-called Galileo Release Train, a project of the Eclipse Foundation to offer users of RAP a version that is coordinated with the other participating Eclipse projects.
Like Rich Client Platform (RCP), the Rich Ajax Platform is based on plug-ins. This refers to software modules that can be combined with other modules in a manner comparable to a construction kit and that also communicate with these modules via predefined interfaces. For this purpose, RAP offers the application development interfaces known from the rich client platform - the component model (Equinox) based on the OSGi specification, extension points, JFace, the system library and the UI workbench, which forms the framework for the application with perspectives, views, actions and editors.
Plug-ins for the various programming interfaces
The real difference to RAP is now the plug-in Rich Widget Toolkit (RWT), a replica of the Standard Widget Toolkit( SWT) used in RCP. RWT offers the same Application Programming Interface( API) as SWT, but the widgets are now only displayed in the browser. The elements known from SWT, such as menus with submenus, tabs, views, icons and many others can be used in the graphical interface of the web application without any problems, so that it clearly resembles the interface of an RCP application. Just as with an RCP application, the entire workbench can be moved or the views can be resized. The dialog windows open when a button is pressed or it is possible to switch between the perspectives as in the RCP applications. However, it must be added restrictively that not all widgets of the SWT also have corresponding HTML widgets for interaction with the web browser.
By the employment of the Rich Ajax platform (RAP) the programming models for Desktop as well as for Web applications are not to differ any longer, so that beyond that no expenditure develops for example for the singular development of Ajax programs. In addition, both applications should be based on the same Java code structure - this is also known as single sourcing. In order to make the gap between desktop and web ever smaller, single sourcing will be an important aspect of future developments.
For the software developer, the first advantages of using RAP are as follows:
- The concepts of RCP are transferred to Web applications.
- RAP is open and extensible as open source software.
- RAP development is supported by the Eclipse IDE.
- Clear focus on Java, special knowledge of web technologies such as HTML, Java or Ajax are helpful but not absolutely necessary.
These are offset by a high level of familiarization with the complex structures of RCP technology. The developer who is only looking for a Java-based framework for the development of Web 2.0 applications can certainly find more suitable alternatives such as the Google Web Toolkit. The starting point for implementing a Web application based on the Rich Ajax Platform should actually be an existing RCP application - in other words, a classic migration task. Even then, the task will still involve complex adaptations and modifications in some cases - especially for larger projects - since only part of the SWT is supported by RAP.