Helma Object Publisher
From Wikipedia, the free encyclopedia
Helma Object Publisher is an open source software package that provides JavaScript based server-side scipting language.
Helma Object Publisher | |
![]() |
|
Latest release: | 1.5.3 / November 10, 2006 |
---|---|
OS: | Cross-platform |
Use: | Web application framework |
License: | Helma License version 2.0 |
Website: | www.helma.org |
Helma is an open source web application framework for fast and efficient scripting and serving of your websites and Internet applications.
Helma is written in Java and employs Javascript for its server-side scripting environment, removing the need for compilation cycles and reducing development costs while giving you instant access to leverage the whole wealth of Java libraries out there.
Helma pioneered the simple and codeless mapping of application objects to database tables, which has only recently come into vogue with other web frameworks. In addition, an embedded object-oriented database performs automatic data persistence of unmapped objects.
Helma has proven itself to be stable and fast, capable of serving high traffic sites with hundreds of thousands of dynamic pages per day. The Austrian Broadcasting Corporation, popular weblog hosting sites such as antville.org, twoday.net, and blogger.de, among many others, have successfully been deploying Helma for several years.
Contents |
[edit] Philosophy
The first generation of Web frameworks usually provided ways to include dynamic content into static Web pages through the insertion of scripts or other code. While this seemed like a cool idea back then, by now just about everybody knows the problems that come with this approach. Mixing code and layout leads to unreadable, unmaintainable code very quickly. Many frameworks have kept the original way of mixing code and layout for backwards compatibility, while augmenting them with alternative ways of writing Web applications.
In Helma, the original concept of "server pages" has been completely dumped and replaced with a mechanism that guarantees total separation of application logic and layout. The three basic constituents of this mechanism - Actions, Skins and Macros - are introduced in the next section.
[edit] 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, a 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. In the MVC pattern, Skins constitute the View.
Finally, Macros are those pieces of application code that expose application date to Skins. Macros serve as bridges between the Skins and the application code.
[edit] 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.
The first Release of Helma was in Summer 2001. Helma was constantly evolving over the last years. So it is quite mature code right now. In spring 2007 Helma Version 1.6 is expected to be released. This is supposedly the last version based on the old codebase.
Helma 2 is also in development right now. It is a complete rewrite of Helma and will be the next evolution of Helma. For information about the progress of Helma 2 you can visit dev.helma.org
[edit] Database Support
You can either use Helma's internal object-oriented XML-based database or choose your own database. Supports any JDBC-accessible database such as MySQL, PostgreSQL and Oracle. Relational database becomes substitutable at any point by any other JDBC-accessible database.
[edit] Helma Projects
Projects using Helma:
- Gobi - Wikiesque web site framework
- Antville - Antville is an expandable weblog hosting system built on Helma that has some of the features of a full grown content management system.
Some major websites running on Helma:
- helma.org - the projects website (based on antville)
- orf.at - official website of federal Austrian television
- futurezone.orf.at - technologie site of Austrian television
- fm4.orf.at - alternative radio station in Austria
- twoday.net - blogging platform (one of the biggest in the German-speaking part of Europe)
- blogr.com - international blogging, podcast, video-podcast platform
- shnitzl.org - event managing website
- blogger.de - blogging platform