This project is unfrozen in jul 2003 by the projectleader.
Over the next month I will update this page to a complete project page again.
I've attached a work document that will be turned into the english design document.
The way I hope to save the project is by splitting it into several parts (also see the old intro). Instead of a large project that tried to solve everything in one go i will first design and build a framework that handles packaging
and distrobution of 'parts' of mmbase apps. Once this is done we can handle each 'type' of package as a different problem and solve them one by one. What this means for the users is that we will probably see a system that is able to 'install/update' more and more parts of applications as we move from revision to revision instead of a magical app2 project that never happend.
If you feel this is still a little vage you are 100% right expect this page to be updated soon and a design-document to be attached with pictures and screenshots. If you allready have questions feel free to mail me.
Let us begin with what we have Applications 1.0 (MMBase 1.4) enables you to install/save a cloud from a description file and additional data files. These apps1.0 applications consist of two parts: structure builders and relations, will be called CloudLayout) and data (will be called DataSet). The CloudLayout contains information about which builders and relations should be loaded. The DataSet is a representation of the application's object cloud. From within the Admin tool applications can be installed (if the conditions are good), and saved.
Let us continue with what we want for the next phase Apps2.0 will be an extension of Apps1.0 (that means apps2.0 will contain the same functionality as apps1.0 and more). Apps2.0 should make MMBase more easy for administrators, and developers.
This means that administrators and developers can simple do: Installing/upgrading/deleting pieces of functionality. Merge data from an application with already existing data. Make backups. Make mirror sites. Synchronize parts of clouds with other sites. Develop an application that can be provided to clients. Make updates with certain interval. Apply bug/security fixes. Administrator can choice to install SCAN or JSP pages.
The idea is that a MMBase server is able to use (run) applications. But it's also able to provide applications. MMBase.org will become an application provider that provides application as: Community application, XMLImport application, IRCApplication, MailApplication, etc. A new distribution will only exists of the necessary parts to run MMBase. Additional functionality can be downloaded as applications from sites. This enables everybody to easily provide MMBase functionality (MMBase developers, but also commercial developers).
Apps1.0 is a nice example of making your live easier, but unfortunately it is not complete. Apps2.0 will try to fill in the missing parts. Apps1.0 manages builders and relations (CloudLayout) and data (DataSet). In addition to that apps2.0 will also provide a DisplayComponent and apps2.0 makes it possible to easily add more components. Components available in prototype:
a) DisplayComponent: HTML, JSP, Flash, Editors, Admin tools, Documentation. This component bundles web files. A display component can contain more elements, in this way it's possible to install JSP, Flash, english documentation, and not SCAN. All files in a display component have a MD5 stamp. This enables the application to detect changes between your components and a component made available by a provider. e.g. With this mechanism you can synchronize HTML pages build by an other organization, or sent a page to a mirror site.
b) CloudLayout: Structure of objects and relations The CloudLayout will ensure that MMBase has all needed parts for running your application. Most of the time this will be builders and relations. Our prototype is able to install and load everything dynamic. But the CloudLayout component should also guide an administrator by the process of merging builders.
c) DataSet: Data
The DataSet component contains also elements. This enables you to provide different sets of data in an application.
I hope that this short message gives you an idea about how we think about applications and hopefully you like the idea. During the last weeks we have been building a prototype that contains a lot of the functionality described above. We know that a lot of developers have nice additional code, and that the xmlimport project is a must for this application project.
We attached some screenshots to this article, so you can see how the prototype looks like (this is in no way going to be the final look).