Revision as of 14:28, 3 November 2012

A Content Management System (CMS) is a software package that allows users with a limited technical knowledge of website production to input, store and share information online. A pre-programmed server-side script connects a database ‘back end’ to an HTML user interface allowing point-and-click creation of web pages that run on a private server. CMS programs are available from both open and proprietary sources, with benefits and drawbacks to each.

Purpose

Content Management Systems are designed to simplify the creation of websites by reducing or eliminating the need for programming knowledge in the creator. They feature ready-made ‘blocks’ (for example a calendar, image, or message board) that appear as visual objects, rather than lines of code, which a user can drag and drop into the desired position without needing to program the HTML or CSS, or even to understand how they work. Entering information into the database also utilizes a graphical user interface (GUI) that is far easier and more intuitive to use than a command line prompt such as MySQL employs. A CMS is meant to be straightforward and simple tool for building web pages, enabling those who are not technically inclined to share information on the Internet.

For businesses or institutions, Content Management Systems are a convenient way to keep information collected and organized, even if the goal is not to share it with the general public. The database provides a single place where records can be stored (instead of being spread across many individual hard drives), while the user interface provides access to that data by all authorized persons. These users can also retrieve information remotely rather than being tied to a particular workstation.

CMS programs moreover enable simultaneous collaboration on projects by as many people as the server housing the system can handle. Multiple users can add, revise, and remove information concurrently with near real-time updating on the screen. In all environments where joint work is necessary, including businesses, schools and social groups, Content Management Systems eliminate the need for physical proximity of team members, while also allowing work to be done communally, rather than sequentially as it would be with emails and file-uploading services.

Components

There are three necessary parts of a Content Management System: a so-called ‘back end’ system that holds the information to be displayed, an interface through which users can access that information, and a platform that connects the other two components. The forms these pieces take, however, vary both between and within CMS products.

Databases and Back End Systems

Most of the available CMS programs (see next section) can use any one of a variety of data storage systems, but by far the most common method for storing records is in a database, usually one run on Structured Query Language (SQL). A nearly universally accepted version of SQL software among Content Management Systems is MySQL. Indeed for numerous types of CMS software this is the only accepted database. The benefits of using a database as the back end storage system include organization of records, quick retrieval, and the ability to easily compare and manipulate data.

For a select number of Content Management Systems, information can also be stored in a ‘flat file’ format, which is effectively tables on a word processor document, or in an XML tagged document. Data sets saved in these designs can be retrieved by some CMS, but are not as readily transformed for analysis.

Platforms

The platform of a CMS refers to the type of code used to connect the database and user interface. It is responsible for retrieving, manipulating and presenting information by, for example, translating user input from HTML forms into MySQL commands, and MySQL responses back into HTML code. The sophistication of the platform is what sets CMS apart from each other. Each Content Management System employs a single type of script and while there are numerous options in use, including Java, [1], Python, and Ruby, the overwhelming majority utilize a PHP based platform.

User Interface

If a CMS is meant to share information on the Internet, then it invariably uses an HTML or XHTML interface that is interpreted by a browser. Some businesses and organizations also use a software-based Content Management System that communicates via an intranet and is installed only on select computers whose users have need of it. Either way, the purpose of the user interface is to provide a graphical display on which:
-‘Web masters’ or CMS administrators can add, remove, and rearrange elements using simple point-and-click or drag-and-drop commands;
-Users can input and retrieve information using menus and forms.

When these three components are well designed, a Content Management System allows even a novice Internet user to create a functioning web page that stores and disperses the information they wish to relate.

Types of Content Management Systems

There are three broad categories of CMS programs available, which differ mainly in what is included with the system, and what the users must provide themselves. A fairly comprehensive (if somewhat outdated) list of existing Content Management Systems is available on Wikipedia. What follows is instead a brief summary of the benefits and drawbacks of each type of CMS, and a few representative examples, chosen based on popularity, usability, or notable designers.

Open Source

The basic programs are free and downloadable from the Internet (although some more advanced features must be purchased if desired)

As with other open source software, a user can alter the code at will, making these CMS completely customizable and limited only by the abilities and knowledge of the programmer

The user must supply a server to host the program, or purchase use of a server from the CMS provider or another source (eg. Amazon Web Services)

Issues

There are several considerations and issues regarding which of the three above noted categories of Content Management Systems is preferable. Ultimately the choice between them depends on numerous factors, including the purpose for which they are meant, the amount of data they need to hold, and the programming knowledge of the user. The following, however, are discussions of a few notable aspects of CMS programs.

The supposed pros and cons of each of these types of Content Management Systems are fairly clear: open source products are free and completely customizable, but require time to create and do not come with technical support; proprietary systems, conversely, can be expensive and are comparatively rigid in design (often requiring additional payments if changes are desired), but they can be installed and put into use immediately and help is provided for any problems that arise with the programming. The reality, however, is less clear-cut. Some of the ‘advanced’ features of open source CMS programs, for example video boxes in Wordpress, must be purchased, while others may simply not exist for download if they have not been shared by their programmers. As much as these systems are designed for users without technical expertise, a certain level of knowledge about coding scripts is needed to include complex functions on web pages. There has developed, though, a network of online forums and tutorials (eg. this Drupal tutorial) that instruct novice users how to do specific tasks with the CMS coding. While these solutions are perhaps not as simple as handing the program to a support person, for those who cannot afford proprietary systems there is still help available.

Pre-Existing vs. Purpose Made

For those who are willing and able to invest in proprietary or SaaS Content Management Systems, the choice remains between buying a pre-existing, generically focused program, or one designed and built specifically for a user’s purposes. The latter of these is invariably the more expensive option, but this is only one consideration between the two, and both options can result in a poor CMS if care is not taken. Choosing a ready-made product will invariably result in some level of compromise in how information is created and used by a company and how it is stored and retrieved by the system. Sufficient research must be done to ensure that these are not unreasonably at odds, or the implemented CMS could actually reduce productivity. Alternatively a company could spend a great deal of money on a custom Content Management System without adequately determining and relating their needs to the designer, again resulting in a program that does not function as required. The best place to start, therefore, when selecting a CMS program, is “…by building a good understanding of content management issues…” within the business in question.[2]