Difference between revisions of "Ajax Client"

From ADempiere
Jump to: navigation, search
This Wiki is read-only for reference purposes to avoid broken links.
(Resource)
(Architecture)
Line 1: Line 1:
 
==Architecture==
 
==Architecture==
The server serves mostly static files (HTML, CSS, JS, images), which constitute a static framework of the web application. The client accesses the server to get static files, and to get dynamic data using REST conventions, and renders proper HTML. A Javascript client framework like [http://dojotoolkit.org/ Dojo] or [http://qooxdoo.org/ Qooxdoo] will be used to build the AJAX client base on the existing Swing client structure. Servlet will be used to served the dynamic data needed by client using REST convention. Alternatively, Javascript RPC can be use for transfer of data between server and client. There should be no changes required on the current ADempiere core.
+
Thick javascript client base on the existing Swing client architecture. Rendering of UI will be done on the client side using advance javascript GUI framework like [http://dojotoolkit.org/ Dojo] or [http://qooxdoo.org/ Qooxdoo]. The server-side is exposed to the javascript client as RESTian or JSON-RPC endpoint to served and process dynamic data. The primary motivation of this approach is to produce richer, more performant UI experience than the Thin Client.
 +
There should be minimum changes required on the current ADempiere core.
  
 
==Dynamic Data Format==
 
==Dynamic Data Format==

Revision as of 09:09, 24 February 2007

Architecture

Thick javascript client base on the existing Swing client architecture. Rendering of UI will be done on the client side using advance javascript GUI framework like Dojo or Qooxdoo. The server-side is exposed to the javascript client as RESTian or JSON-RPC endpoint to served and process dynamic data. The primary motivation of this approach is to produce richer, more performant UI experience than the Thin Client. There should be minimum changes required on the current ADempiere core.

Dynamic Data Format

JSON instead of XML is use as it produces more compact representation , it is blazingly fast to parse on a client — essentially simple JavaScript eval() would do, and it is very simple to parse on a server too.

Transport

  • XMLHttp
The XMLHttp transport is the default transport. It works well in most cases, but it cannot transfer files.
  • IFrame
The IFrame I/O transport is useful because it can upload files to the server.

Proof Of Concept

A prototype should be build as a POC. The prototype should demonstrate the following features:

  • Login
  • Tree Menu
  • Opening of window
  • Preview of report

Schedule

Current plan is to build a POC and demonstrate at the ADempiere Europe Conference this May.

Resource

Team Members

  • (pls add your name here - pros only)