Helma Logo
main list history
previous version  overview  next version

Version 6 by hannes on 20. February 2009, 20:26

Since in Helma NG the *JavaScript runtime* is separated from libraries and application frameworks, it provides a much more flexible basis for implementing JavaScript web frameworks than *Helma 1*. The current design is inspired by the Helma 1 web framework, but there are tendencies to look towards Python and Ruby for inspiration.

=== Discussion

Some threads discussing web frameworks on the Helma NG *mailing list*:

* *ticket #18 - how django did it|http://groups.google.com/group/helma-ng/browse_frm/thread/a74688aee46d71a9/89cdbd2470b5f42f?lnk=gst*
* *Django middleware vs. Servlet filters|http://groups.google.com/group/helma-ng/browse_frm/thread/4db34fff5bab4e48*

Related trac issue:

* *Decouple web framework from servlet API|https://dev.helma.org/trac/helma/ticket/24*

=== Web Connectors

Connectors are the low level part of web frameworks. They define how webservers talk to the framework, and how the framework can access and manipulate the HTTP requests and responses.

* *Servlet API|http://java.sun.com/products/servlet/* - the standard web server API in the Java world.
* *WSGI|http://www.wsgi.org/wsgi/* - the standard web server connector in the Python world.
* *Jack|http://jackjs.org/* - a relatively new project to do for JavaScript what WSGI/Rack do for Python/Ruby.

Along with the web connector functionality, all three framework provide a standard interface to plug in additional code between the web server and the web application. In WSGI, this is called *Middleware* and uses the concept of functional composition, meaning that the middleware wraps the web app, exposing the same WSGI interface to the web server. The Servlet API, uses a similar approach with Filters.