Content Management System
Content Management Systems ("CMS") are software systems aimed at helping people, dynamically create and maintain web sites. They are generally "ready-to-go" softwares that end-users can deploy without coding. They have many functionalities and specific characteristics :
- Dynamic content management (based on flat files or databases) ;
- User management (with access policies) ;
- Expandability (by adding modules, plugins, templates, etc) ;
- File sharing (especially for softwares or multimedia content) ;
- Sometimes specific functions like publishing workflows, version control, statistics, private messaging...
- Customization (layout, colors, fonts, ...)
They are now used for personal purposes or for commercial activities (in that case, they are often called Enterprise Content Management).
They are divided in two parts : a front end and an administration section. The front end is what any end user can see (sometimes through rights and habilitation filtering). The actions that an end-user can carry out (like adding content, comments, etc) depends on the rights he owns. The administration section (which is generally protected) handles administrative tasks, like users and rights management.
Technical Framework
There is no typical framework for Content Management System. What is needed is :
- A web server (for intranet or extranet), like Apache or IIS ;
- A programming language (that can be handled by the web server) like PHP, Perl, Python, VB.NET ;
- A file system or a database to store data (the content).
Many CMS are open source, although that does not mean that they are free of charge (though they generally are) but that they can be read and modified by anyone (provided the user respects the license agreement). Most of CMS are based on the LAMP architecture, for which you can easily (and at low cost) find providers for web hosting.
Usage of CMS is growing due to the expansion of web usage, especially with Web 2.0 that allows web sites to interact with others web sites.
Different types of CMS
CMS can have different main purposes :
- Document publication, sometimes within a workflow process
- Blogs
- Photo or images galleries
- Wikis
- Forums
- Knowledge Management
- e-Learning
- e-Commerce
Most widespread CMS are open source, even if some editors have developed commercial versions. Some editors have both free and commercial versions, depending on the usage of the web site (in that case, the licence agreement allows often a free use of the software for personal use or for non-profit organizations).