Makumba (framework)
Encyclopedia
Makumba is a query-centric application framework using the model-view-controller
Model-view-controller
Model–view–controller is a software architecture, currently considered an architectural pattern used in software engineering. The pattern isolates "domain logic" from the user interface , permitting independent development, testing and maintenance of each .Model View Controller...

 pattern and designed to develop data driven web applications. It provides a custom JSP
JavaServer Pages
JavaServer Pages is a Java technology that helps software developers serve dynamically generated web pages based on HTML, XML, or other document types...

 tag-library as a main interface, but leaves API open for advanced access. It is implemented in Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

.

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
Royal Institute of Technology
The Royal Institute of Technology is a university in Stockholm, Sweden. KTH was founded in 1827 as Sweden's first polytechnic and is one of Scandinavia's largest institutions of higher education in technology. KTH accounts for one-third of Sweden’s technical research and engineering education...

, as part of a larger project aiming to help amateur and voluntary communities to design and implement their own software . The main setting for use of Makumba is the pan-European voluntary student organisation called BEST (Board of European Students of Technology
Board of European Students of Technology
Board of European Students of Technology is an international, non-governmental, non-political, non-profit student organisation comprising 90 Local BEST Groups in 30 countries around Europe with more than 3000 active members....

), 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
    JavaServer Pages
    JavaServer Pages is a Java technology that helps software developers serve dynamically generated web pages based on HTML, XML, or other document types...

     taglib that generates HTML
    HTML
    HyperText Markup Language is the predominant markup language for web pages. HTML elements are the basic building-blocks of webpages....

     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
    Model-view-controller
    Model–view–controller is a software architecture, currently considered an architectural pattern used in software engineering. The pattern isolates "domain logic" from the user interface , permitting independent development, testing and maintenance of each .Model View Controller...

     based framework
  • Support of Object Query Language and Hibernate Query Language

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK