← Back to team overview

openerp-expert-framework team mailing list archive

RFC Using the new web client as a set openerp-server module

 

We are currently wsgifying the openerp-server:

https://code.launchpad.net/~openerp-dev/openobject-server/trunk-xmlrpc-vmt/+merge/71827

Openerp-server only listen to 8069 and any module is able to map a an url to it's own wsgi handler. /openerp is a reserved namespace and the following routes is setup by default.

/openerp/jsonrpc -> jsonrpc api dispacher
/openerp/xmlrpc -> xmlrpc api dispacher

For example the webdav module will register to route:

/webdav -> webdav wsgi handler

The trunk webclient is currently using cherrypy as http server, http request object and http session object, we plan to switch to werkzeug (branch to merge). The file openerp-web.py simply setup a cherrpy http server and dispatch request to the 'base' web module (i plan to rename base* into web*).

http://bazaar.launchpad.net/~openerp/openerp-web/trunk/view/head:/openerp-web.py

Once the openerp-server is wsgi ready we could put the webmodules in addons-path and have the 'base' web module register a wildcard route

/ -> web handler

In this mode the rpc communication between the web client and openerp server is replaced by direct function calls. See the files backendrpc.py vs. backendlocal.py here:

http://bazaar.launchpad.net/~openerp/openerp-web/trunk/files/head:/addons/base/common/

The advantages are:

- speed rpc replace by function calls
- no more downloading modules from openerp-server as zip file into web addons (something i really dislike), the 'web' module scans for other addons in addons-path. - in multiprocessing mode workers are managed by the same dispatcher as the regular openerp-server worker - there is only one openerp-server. it's an http server. no more confusing name like 'web client'.

Of course the standalone mode is still available, so it's the best of both world.

Any feedback ?

Antony Lesuisse


Follow ups