OpenCms Architecture

OpenCms has a modular architecture centered on a VFS. The file system is considered virtual as it resides inside a database and not on a hard disk. The VFS is similar to a real file system that supports folders, file types, and permissions. Access permission masks on the files and folders, and controls access that users and groups have to the files. The OpenCms VFS also provides a feature very similar to symbolic links in a Unix file system. A link is a directory entry that contains meta-information which is kept separate from the file contents.

The core also provides support for basic features such as publishing, access control, and revisions. Layered above this are application level features such as configuration, the user interface, and module support. Module support is a key feature of OpenCms, providing the ability to extend and modify it. Module support is layered on top of OpenCms. A logical view looks like this:

MODULE MODULE MODULE MODULE MODULE MODULE

Your Content Your Delivery Framework 3rd party frameworks (Struts/JSF/Velocity)

User extensions (Widgets, Caching, etcì

CMS Feature Support (Photo Albums, FCK Editor, etc)

User Interface/ End user CMS Application

M o d u I e M a n agem ent/ Sy st em Ext ens i b i I it y

Your Content Your Delivery Framework 3rd party frameworks (Struts/JSF/Velocity)

User extensions (Widgets, Caching, etcì

User Interface/ End user CMS Application

Virtual File System Base Repository API (Revision/ACL/History/Publishing/etc)

It is interesting to note that although OpenCms is a web application, it comes with a shell application that provides an interpretive interface to the API from a Java command line interface! Furthermore, it is possible to script this interface to install content into the VFS.

Most of our development will center around using, or extending these core features. While working on our project, we will strive to work within the framework that OpenCms provides, rather than modify any OpenCms source code.

0 0

Post a comment

  • Receive news updates via email from this site