Magritte — Meta-Described Web Application Development

Lukas Renggli. Magritte — Meta-Described Web Application Development. Master's thesis, University of Bern, jun 2006.

Abstract

Developing applications that end users can customize is a challenge, since end users are domain experts but still have concrete requirements. In this master thesis we present how we used a meta-driven approach to support the end user customization of Web applications. We present Magritte, a recursive meta-data meta-model integrated into the Smalltalk reflective meta-model. The adaptive model of Magritte enables to not only describe existing classes but also let end users build their own meta-models on the fly. Further on we describe how meta-interpreters automatically build views, reports, validating editors and persistency mechanisms. As a complete example of how we applied a meta-model to a Web application we present Pier, the second version of a fully object-oriented implementation of a content management system and Wiki engine. Pier is implemented with objects from the top to the bottom and is designed to be customizable to accommodate new needs. The integration of a powerful meta-description layer makes it a breeze to extend the running system with new functionality without having to patch the core engine. We describe the lessons learned from using the Magritte meta-model to build applications. Both projects described in this thesis are open source and can be downloaded from the Web site of the author.