An introduction to the Tiny Marbles Framework

If you like the Tiny Marbles CMS it might be interesting to get a deeper look at the technology behind the system. All features of the Tiny Marbles CMS are internally organized from the viewpoint of a developer as libraries and frameworks. In fact, the idea is very simple: take the best Java Open Source frameworks for web applications which are available on the market and create your own libraries on top of them. This is exactly what happened in the last couple of years. You can find the most important Open Source libraries of Tiny Marbles Framework here.

uml_components_big.png All these modules are combined in a logical order, the dependencies you can see in the component model in the drawing on the left. The website manager (WSM) has included all modules, and it is called 'Tiny Marbles CMS'. On the other hand, all modules can be used independently. You are looking for an authorization engine for your project: you could use Talos for that. You need a user management system? In this case you could try out MUM. Or check out the Repository in case you would like to organize your database access upon the DAO pattern and Hibernate. If you like to care about the website layout yourself, you could use the CMS module without the website manager (WSM).

The complete set of modules from the view point of a developer for independent usage is called the 'Tiny Marbles Framework'. The framework is solid, well tested and is used in a variety of running public web applications.

Here an overview over the modules of the Tiny Marbles Framework:

Luigi aims to provide Lucene's full-text search in a highly configurable and loosely coupled library. The engine provides a layer of services on top of Lucene that can be configured and managed through Spring beans. More information here.

Talos is an authorization engine designed for easy and efficient management of access rights. You can check access rights and change them in single-line commands, directly from the code, without dealing with external XML, policy files, and classpath. More information here.

The package 'repository' provides access to Hibernate using the DAO pattern. The generic repository handles for instance the database session, all basic database procedures like 'get', 'list', 'save', 'update' and generic result like a PagedResult.

The package 'webcore' provides a set of useful basic methods for web application upon Struts, Spring and Freemarker. It also includes the packages 'Luigi', 'Talos' and the package 'repository'. On top of the module 'webcore' you can easily build new web applications based on Java with intuitive search, authorization and database access.

Usermanagement (MUM)
The package MUM includes the package 'webcore' and is not a framework anymore. It is a real web application with only one purpose: user, group, role, authorization and zone administration. You can work with MUM itself and you can create your own web application on top of MUM very easily based using the underlying Tiny Marbles Framework 'Luigi', 'Talos', 'repository' and 'webcore'.

Content manager (CMS)
The package CMS includes 'MUM' and therefore the complete underlying Tiny Marbles Framework: 'Luigi', 'Talos', 'repository', 'webcore' and 'MUM'. The content manager provides all features for the content administration. But you still have to take care about the website and the layout yourself.

Website manager (WSM)
The website management system (WSM) includes the package 'CMS'. The website manager provides all features to manage and display websites. Included are three basic layout schemes, called 'Flexible layout', 'Horizontal tab system' and 'Financial theme'. It is possible to work with the website manager out of the box. The website manager is called 'Tiny Marbles CMS'.

Right now the documentation is not complete. So in the next few months a series of blog entries will appear to explain the most important features of the framework and the usage from the perspective of a developer. The majority of the code is organized based on the action framework Struts. Therefore the API of the modules Webcore, MUM, CMS and WSM is very easy to understand, and with the help of the Eclipse all methods and properties can be used in an intuitive way. All modules of the 'Tiny Marbles Framework' are Open Source (Apache License 2.0) and you can download them here.

Stay tuned.