Helma Logo
main list history
previous version  overview  next version

Version 7 by hannes on 28. September 2009, 17:14

Since in The Helma NG the *JavaScript runtime* Web Framework 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 application framework written mostly in JavaScript built on top of the Helma 1 web framework, but there are tendencies to look towards Python and Ruby for inspirationRuntime.

=== DiscussionTo run the demo application that is part of Helma NG run the following command:

Some threads discussing web frameworks on the Helma NG *mailing list*:    helma apps/demo/main.js

* *ticket #18 - how django did it|http://groups.google.com/group/helma-ng/browse_frm/thread/a74688aee46d71a9/89cdbd2470b5f42f?lnk=gst*This starts and serves the demo web app on port 8080:
* *Django middleware vs. Servlet filters|http://groups.google.com/group/helma-ng/browse_frm/thread/4db34fff5bab4e48*

Related trac issue:  <http://localhost:8080/>

* *Decouple The demo app showcases a number of tools and libraries to build web framework from servlet API|https://devapps.helma As Helma NG is still pretty young, many features found in Helma 1.org/trac/helma/ticket/24*6 are still missing, most notably a persistence layer. These features are currently being implemented.

=== 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.

     removed
     added