Makumba (framework)

Makumba (framework)
Makumba
Makumba-logo.gif
Initial release 2001
Stable release 0.8.2.5.1 / December 23, 2009; 22 months ago (2009-12-23)
Written in Java, PL/SQL
Operating system Cross-platform
Type software framework
License LGPL
Website http://www.makumba.org

Makumba is a query-centric application framework using the model-view-controller pattern and designed to develop data driven web applications. It provides a custom JSP tag-library as a main interface, but leaves API open for advanced access. It is implemented in Java.

Contents

Background

Makumba is an open-source infrastructure technology helping its users to put together data-driven web applications for medium and large audiences in a rapid, architecturally-sound and sustainable manner. Makumba is aimed towards communities of programmers of varying competencies, from HTML, through SQL, procedural programming, to object-oriented programming in Java. Many of its users have followed this learning path from simple scripting to professional programming, and later built on this experience, finding jobs in IT consulting companies.

Makumba was designed and partly implemented in the context of a PhD thesis at KTH, as part of a larger project aiming to help amateur and voluntary communities to design and implement their own software [1]. The main setting for use of Makumba is the pan-European voluntary student organisation called BEST (Board of European Students of Technology), present in 90 technical universities across Europe. The organisation runs applications for its members (over 1500 users) and for its student "customers" (around 10000 users every year, a third of whom attend the 1-2 week courses organised by BEST). Applications are of varying natures: document sharing, membership databases, registering and processing applications to internal and external events, shared calendars, virtual job fair, etc. The applications are designed, developed and maintained by the "IT group", a distributed group with no physical premises, meeting several times a year. Like in the rest of the organisation, students come in and out of the group on a regular basis, as people finish studies or run into family or job obligations after finishing studies. In this context, it is a challenge for the IT group to sustain long-term activities such as application design and development, which sometimes span several generations of voluntary members. Attracting new members in itself (i.e. sustaing the whole group) is a challenge.

Since the adoption of Makumba in 2002, the IT group size stayed steadily over 20. A large number of new sub-applications are proposed, prototyped (using e.g. PowerPoint) and implemented on a regular basis, and the common database allows them to be fully integrated with the Makumba-based system of the organisation, which now features around 100 data types, 1500 JSP scripts and 150 Java modules.

Design features

Makumba has been designed specifically to answer the needs of groups and communities as the one described previously. Its main design principles are:

  • low learning threshold that prospective users have to face. It is commonly believed that a prospective member of a community using Makumba can start to contribute to the larger system after a 3 hour training. By contribution it is meant accessing the database and displaying results in a meaningful manner for the other members.
  • separation of learning tasks. This allows people who do not yet know professional-level languages to join, and learn them later from or together their peers. Makumba supports a "graceful learning path"
  • the architecture that allows several subgroups to work on several parts of the system, and also enforces a model-view-controller separation, leading to a robust system over the long term, despite frequent membership changes

Key features

  • Easy readable
  • Property based data definition types
  • JSP taglib that generates HTML based on the data type and operation (listing, adding, editing, etc.)
  • Optional Business Logic in Java that gives the developers access to advanced features
  • MVC based framework
  • Support of Object Query Language and Hibernate Query Language

See also

Notes

  1. ^ Cristian Bogdan (2003) (PDF). IT Design for Amateur Communities. http://www.nada.kth.se/%7Ecristi/thesis/final.pdf. 

External links


Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Look at other dictionaries:

  • Spring Framework — У этого термина существуют и другие значения, см. Spring. Spring Framework Тип Application framework Разработчик SpringSource Написана на …   Википедия

  • ZK Framework — ZK Simple and Rich Тип Ajax веб фреймворк Разработчик …   Википедия

  • Zend Framework — Тип Программный каркас для создания веб приложений Разработчик Zend Technologies Операционная система Кроссплатформенное программное обеспечение Последняя версия …   Википедия

  • Spry framework — Spry JavaScript Framework Тип JavaScript библиотека Разработчик Adobe Systems ОС …   Википедия

  • ASP.NET MVC Framework — Тип Веб фреймворк Разработчик Microsoft Написана на C# Операционная система Кроссплатформенное ПО Аппаратная платформа .NET Framework, Mono …   Википедия

  • Lift (framework) — У этого термина существуют и другие значения, см. Lift. Lift Тип Фреймворк для разработки веб приложений Разработчик Lift Team …   Википедия

  • GAE framework — Логотип Тип веб фреймворк Разработчик Anton Danilchenko Написана на Python Операционная система …   Википедия

  • Django (web framework) — Django The default Django page Developer(s) Lawrence Jou …   Wikipedia

  • ColdSpring Framework — ColdSpring is a web application framework for the ColdFusion application programming language, based on the Java Spring Framework. It was originally created by Dave Ross and Chris Scott. The framework provides Dependency injection, inversion of… …   Wikipedia

  • Nitro (web framework) — Nitro Developer(s) George Moschovitis Stable release 0.41 / December 12, 2006; 4 years ago (2006 12 12) Operating system Cross platform …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”