Helma Object Publisher

Helma Object Publisher is an open source web application framework. It is often shorted to Helma.

Helma is written in Java and employs Javascript for its server-side scripting environment. Helma uses Rhino as its scripting engine giving you instant access to leverage the whole wealth of Java libraries out there. In addition to use any JDBC-accessible database, such as MySQL, PostgreSQL and Oracle, Helma provides its own XML based embedded database.


History

Helma was and is mainly developed by Hannes Wallnoefer with the help of some enthusiastic contributors from around the world. Helma was initially developed for the Austrian Broadcasting Corporation. Since then it has been used for other large public websites such as TwoDay.net (a large German speaking weblog hosting site) and the National Gallery of Victoria The first Release of Helma was in Summer 2001. Helma Version 1.6.2 has been released in April 2008.

Philosophy

The main focus of Helma is to create elegant, easy to read, understand and maintain web applications. Very strict separation between logic and presentation is of utmost importance. Helma supports you with everything so your coding experience feels very straight forward and natural.


Actions, Skins and Macros

Helma divides the responsibility of serving a request and generating a response among several components.

Actions are in charge of handling the request. Every request in Helma is mapped to exactly one Action. If the Action does nothing, nothing happens and an empty response is written back to the client. If no Action can be found to handle a particular request, an HTTP 404 Not Found response is generated. Thus, Actions control the whole processing of each request. In the Model-View-Controller Pattern (MVC), they are the Controller.

Skins are parts and pieces of layout. They are rendered by Actions and other application code to generate a response. Skins are parts of static layout markup and can contain special Macro Tags that are replaced with dynamic content when the Skin is rendered. There is no possibility to add logic (like loops or even if-statement to the skin. In the MVC pattern, Skins constitute the View.

Finally, Macros are those pieces of application code that expose application data to Skins. Macros serve as bridges between the Skins and the application code.


Database Support

You can either use Helma's internal object-oriented XML-based database or choose your own database. It supports any JDBC-accessible database, such as MySQL, PostgreSQL and Oracle. The relational database can be substituted at any point by any other JDBC-accessible database.

The mapping between the application objects and the database is done by Helmas codeless Object-relational mapping.
 
< Prev   Next >