This software is OSI Certified Open Source Software. OSI Certified is a certification mark of the Open Source Initiative.
The license (Mozilla version 1.0) can be read at the MMBase site. See http://www.mmbase.org/license
Table of Contents
Abstract
This document offers to technical and non technical people, operating at management level, insights in the use of MMBase as a 'web publishing system' or a 'web content management system'. First a high level overview of the MMBase product is supplied, followed by a short overview of the underlying concepts and technologies. As MMBase is an open source product, this document also outlines the consequences that come with running open source software in your organization.
Derived from the open source philosophy, the community thrives certain version and release management principles. For potential users and decision makers, a clear insight in this process is very important.
To support the product, a community has been setup. This document also covers the organizational structure of this community and its official spokesman and their specific roles within the community
[todo: this section should provide a management summary of the overall document]
MMBase is a content management system that can be used for publishing websites. What is a content management system? What is content? Content is stuff that we use to construct websites. As technology advanced, websites evolved from simple static 'text-like websites' to complex multi-media products with streaming media like video and sound. All these pieces - text, pictures and video - are considered content and should be managed is someway.
When working with content, eventually every site will feel the need for an automated system to manage all these pieces in an easy and user friendly way without having to worry about the technological impact of each content piece. A content management system offers its users (editors, publishers, designers) tailored functions to maintain a website and keep its contents alive.
MMBase in such a system. It covers the whole spectrum needed to: import, manage, maintain, export and publish content for your websites. To achieve this MMBase contains tools for editorial people to insert and maintain web content. To support web designers, MMBase offers an easy to learn language for publishing the content to the websites.
By using MMBase as the content management system for your websites, you can separate the content from the way it appears (the design) in your websites. The main advantage of separating content and design is that all information is stored only once. For example, if you have information on a certain product on your website, and the product specs change, you only have to change the specs once and all websites that use this information will reflect the changes. This is a welcome contrast to "hardcoded" webpages, where you might have to review each individual web pages to validate the specs.
MMBase models its information as objects. MMBase creates objects that are a representation of content items and MMBase maintains objects that specify the possible relations between these content items. This structure results in a web of content pieces and their relations, also known in MMBase as "the content cloud". A music band, for example, can have a relation called "plays on" the festival called "Pinkpop", and this relation indicates that the band is displayed on the Pinkpop site. If you want to remove the band from the site because they do not appear on Pinkpop, you can simply remove the relation and the band will not be published on the website anymore. If you want to publish the band on another site (with another design), you can simply add a relation that indicates that the band needs to be displayed on another website.
The content cloud offers optimal flexibility on use and reuse of content, while in the meantime it doesn't impose any constraints on the layout of the site that refers to the content in the cloud. For example, you could easily create a large single content cloud and publish this cloud, or parts of it, to several different websites, each site presenting their own unique layout.
MMBase strictly separates content from design, which means that content can be reused in different designs. When creating a web page, for example, you can use HTML tags to create the appropriate design for that individual page. By using HTML tags your sites is restricted to the possibilities of HTML. Showing the information on an IMode phone or publishing it to a PDF document becomes a very tough job. By strictly separating content from design, information can be reused in different websites, displayed on a different devices, broadcast, sent as e-mail, published on an IRC channel, or exported as XML.
Another import aspect of MMBase is that it is able to communicate with various types of hardware and software products that are frequently used for publishing information like CD players and image scanners. If a song of a band has to be published, you can insert a CD into a CD player and use your editors to relate a specific track to the band, at which point the song will be published on your website. No saving of the CD, converting of formats, or copying to a server is necessary. MMBase has automated these frequently recurring actions.
Another example is a photo placed in a scanner. The editors can be used to tell MMBase which relations that image has, and you can give the image a title and a description. For other actions such as converting the image to a JPG, resizing the image is needed. Relating an image with a band will cause the website to show that image on the band's page.
MMBase integrates a lot of external software. This means that you don't have to encode music file to different file formats, or convert image formats, etc. MMBase also contains internal software agents that are able to automatically broadcast audio, save audio from the radio, check information within MMBase, etc. MMBase has a great deal of functionality, and the MMBase community will create more and more of this in the future.
Information can be added to MMBase in a number of ways, the most important of which are the MMBase editors. The MMBase editors allow people to insert, manipulate, and delete information. The editors are based on a web interface, and can be run in a web browser such as Netscape or Internet Explorer.
The advantage of a web-enabled editor is that you don't need to install additional programs to edit the information, and you can maintain the information from any workplace that's enabled with web access. Editors don't need to have any knowledge of website design. They are only involved in the process of managing information.
Graphical designers can publish information maintained within MMBase in any format they wish. They can publish the information at a website, in multiple websites, on a mobile terminal, in Flash, or can broadcast the information maintained by MMBase. MMBase provides a language that enable designers to retrieve the MMBase information. The information can also be retrieved with other languages, such as PHP, and JSP. MMBase can even give the information as XML.
To support the use of MMBase, an organization consisting of several entities, each with its own responsibilities has been setup. Key in this setup is the Open Source licensing model.
The MMBase developer community consist of software engineers doing day-to-day development on the MMBase product. They are the core part of the MMBase project. Without these people there would be no MMBase project. The roles and responsibilities that people assume within the project are based on personal merit. Everyone can help regardless of their role. However, in order to keep the project manageable, the MMBase Developer Community is divided into three roles: the MMBase management committee (MMC), the Committers, and the Developers.
The MMBase Management Committee, short the MMC, consists of people who have done a lot for MMBase as a product and who have in depth knowledge of the product. The MMC coordinates the Open Source process, coordinates the MMBase projects, and coordinates which code additions and changes will actually be added to the central MMBase code repository.
MMBase Committers are developers who have frequently added valuable code to MMBase. Committers are people who have in-depth knowledge of the internal workings of MMBase. Based on this knowledge, they have access to the central repository of MMBase and are allowed to add new programs to the MMBase repository.
Developers are all people involved in the MMBase process. Developers inform us about bugs and try to solve these bugs. All people seriously working on MMBase can obtain the status of developer. If a developer frequently submits code that is valuable to MMBase, the status of the developer will be upgraded to committer.
The MMBase Foundation has initiated the MMBase process, and accompanies the MMBase community. The foundation performs tasks needed to further mature MMBase as an Open Source project, focusing on task that cannot or should not be performed by developers. The foundation has two principal tasks. First, the foundation gives presentations on MMBase, communicates with the press and act as a central point of communication. Second the foundation tries to create an environment in which the MMBase developers can flourish. This relates to availability of an MMBase website where all relevant information on MMBase is centralized (www.mmbase.org), availability of a central repository for MMBase programs and documentation. The foundation also provides for the site's hardware.
Configuration management of MMBase is currently implemented on a best effort basis. This means that there's no formal requirement by the MMBase community to deliver releases according to a predefined release schedule.
All relevant MMBase artifacts, such as program source, compiled code, documentation and samples are all maintained in a central repository. This repository is based on a common accepted standard (CVS, Concurrent Versions Systems) and is read-only accessible for anyone through a documented procedure. This approach offers, within the available resources of the MMBase community, the best solution for easy spread of the MMBase source and object code.
Although version and release management is performed on a best effort basis, the MMBase community targets two to three minor releases each year. A minor release is indicated by the dot in the release number (for example release 1.6). The latest minor release was release 1.7.
Conforming to general software practices, the minor releases focus primarily on bug fixing and backward compatibility. These issues are frequently discussed on the MMBase developer mailing list.
Planning of new (minor) releases is always communicated through the MMBase developer mailing list. Depending on the amount of work, the delivery of such a release can be anywhere between a couple of weeks to two to three months.
MMBase is founded on Java technologies, specifically the J2EE flavor of MMBase. This part of Java focuses on delivering the features of Java on a server oriented platform. By using Java/J2EE technologies, MMBase can run on any platform that supports the Java/J2EE platform.
Note that it's a common misconception that Java/J2EE doesn't run on Microsoft platforms. Microsoft's announcement that it will not support Java, has only impact on the availability of Microsoft engineered Java support in their operating system. Fortunately other companies, like Sun and IBM, offer extensive support for Java and J2EE technologies on the Microsoft Windows platforms, on clients as well as on servers.
MMBase has a layered architecture. Each layer in this architecture has its own responsibilities. For example the core layer of MMBase is responsible for access to the database. Through this approach it's fairly easy to add additional support for new databases or extend support for specific features in specific databases.
To gain more insight in the actual layering of the architecture, an graphical overview of the architecture is provided.
In the above picture, the green components are plugin-like parts of MMBase. By using a common set of access points and negotiating the security layer of MMBase, these plugins can actually communicate with the core components of MMBase. Samples of core components are for example the actual content elements (nodes) stored in MMBase.
Using the plugin structure, the base functionality of MMBase can be extended without having impact on the other components. This is an important feature and benefit of the layered architecture of MMBase.
The core components of MMBase are implemented using Java server software. An important benefit of this technology is that these components are scalable "by design". What does this mean? This means that websites, implemented with MMBase as content management system, can scale up without the need for additional programming. Of course your machine running your MMBase website will eventually run out of CPU cycles as it processes more and more visitors. But, without having to change a line of MMBase code, you can easily add additional hardware to beef up your site's performance. This ability is inherent to the Java/J2EE technologies used by MMBase.
To be able to run MMBase and benefit from this scalability feature, you have to have a runtime server component, also known as an Application Server. There are several commercial products available (IBM's WebSphere or BEA's WebLogic), but also Open Source products are available. Currently the Tomcat product from the Jakarta organization is a popular and robust product to run your MMBase websites.
Eventually, when you collected content for your website, you'll want to publish this content to your website in an attractive way. This is typically the moment the page or template designer comes in.
MMBase has a comprehensive set of tags (a.k.a. the MMBase Tag Library) that support page designers in retrieving content from MMBase. These tags are comparable to the standard HTML used to build a static webpage. The major difference is that by using the MMBase tags, you can spice up your pages with content available in MMBase like images, up-to-date news items provided by news editors or even streaming media like music or video.
The learning curve for page designers proficient with HTML covers probably not more than 5 to 10 days depending on their experience. To get up to speed quickly, there's a tutorial available for page designers on how to apply this technology.
The MMBase Tag Library is based on the JSP Tag Lib technology, a common technology used to develop dynamic websites in a Java/J2EE environment.
By offering this library, it's also possible to integrate the development of websites with MMBase in popular page design tools like Dreamweaver by Macromedia.
[todo: This section focuses on the availability of editors, edit wizards and the possibility of "easy customization" of these tools.]
[todo: Here we should elaborate on the principal business benefits of running Open Source software in a commercial environment.]
[todo: Add some specifics about the MMBase license and the do's and dont's that this accompanies.]
[todo: Supply information on the companies that support MMBase. Maybe refer to an addendum where updated profiles of the supporting companies are available.]
[todo: Describe the possibility of adding features to MMBase or customize its working behavior because the full source code is available through the OSS license model. Also describe that adding features to MMBase can be donated by the author to MMBase, thus contributing to the functional richness of the product.
This is part of the MMBase documentation.
For questions and remarks about this documentation mail to: [email protected]