Originally posted at WiseTome.Com - Content Management Systems by Mahesh
This is an article to understand the basics of Content Management System (CMS). It would briefly look into the origins and advent of CMS. It would also look into few of the variations and the technology involved in the design of CMS. This article would be focusing on the CMS from the perspective as a website, but it must be noted that similar technology and design principles go into a CMS for a in-house or intranet based CMS for any organization.
Content Management System (CMS) is just that - what the words mean. If an attempt has to be made to define or describe it, it can be made by saying that it is a system to gather, store, organize, present and make changes to information or content. The Internet is filled with information and content, and in the early days, they were just put there with out much thought on how one could reach it when there would be just too many of them. This did give market to many Search Engine based companies, but every webmasters’ aim was to present the content on his or her website in a logical and convenient manner. This called for the role of CMS. It came to be used not just by the webmasters of the websites hosted on the internet, but also the information managers of organizations that generated a lot of data that had to be retrieved and presented to its employees.
Content Management System from a web based perspectives needs to provide certain basic features that would promote it to such a system. A very basic CMS would require a facility to put content into it. Content can be anything that the CMS is designed to handle. It could be plain text documents or images. It could be music or video or even binary data that would be used by some other systems. The CMS should be able to take the content and store it at a designated place. Also, the CMS should let a user retrieve the content which was put into the system earlier. The CMS would be of no use if it was not able to retrieve the content. Another basic necessity would be to control who puts the content into the CMS and who gets it out of the system. These basic features are required by any CMS.
A Content Management System is able to control the content based on the roles or designation of the user. Most of the time it is also required to do changes to the content - this too is governed by the role of the user. There are other features that it may provide and it will be looked into a little later.
There are different types of content that needed to be published on the internet. The requirement was there and still exists. Whatever may be the type of content – be it text, images, music, video or any combination of those – many choices are presented by the technology present today.
In early days, the webmaster or the designers and developers of the website were did not have the luxury of having technology that facilitated Content Management System. They had to put all the content in hand coded HTML (Hyper-Text Markup Language) pages. All these pages once put up on the internet became static pages. These pages had content that never changed on its own. If anything had to be changed in any particular page, the webmaster had to do those changes on the corresponding HTML source code of that page, and then upload them to the server.
These changes, if small and isolated to one or few pages did not present with any problem, but to do a website wide change – for example, include another menu item – required to insert the HTML code to all the pages. It turned out to be a hassle to do such trivial changes and was a nightmare for webmasters of large websites. Various tools were developed to handle such a case. WYSIWYG (What You See Is What You Get) Editors were used to generate the HTML page offline and then upload it to the servers.
Speaking theoretically a Content Management System could have been designed in terms of process. Content could have been stored offline and people with designated roles could add or edit to those stored content. Periodically, the content could be converted to HTML pages and uploaded to the server overwriting the earlier version. Though such a system could have been possible, and may have been employed, it would not truly have been dynamic websites.
But this method of creating content and publishing on the internet is still viable for very small website or single page websites where the content is stand alone and there requires absolutely or very minimal changes to it periodically. Another advantage of flat HTML pages is that they are fast loading websites. They have no computations to be done in the back stage. All the content is in the form that browsers are capable of rendering the content without further alteration.
Before we can look into the advent of Content Management Systems, the email groups and the bulletin boards would demand inspection. The email or the electronic mail grew along with the internet. The email was a medium of exchanging information or content, quite similar to what website did. But websites were targeted on many audience where as email was a one-to-one communication. In that sense, email groups were a step towards a one-to-many communication. Here, a list of email was made up as a group, and whenever one person mailed to the group email address, it was received by all that subscribed to that group.
Bulletin boards though, took another step towards a dynamic website. Here, the messages (or the content) that was put up by one person was stored in a server and it could be viewed by all. A public bulletin board, thus served as a website with dynamic content. But the bulletin boards are usually a chaos and it requires considerable amount of patience to keep track of things that one is interested in. The technology to have such a bulletin board as a website on a server is required to be more advanced than a server that has to just serve flat HTML files.
The requirement of more controlled way to manage the content called for CMS. The technology that could create a bulletin board was just enough to create Content Management Systems. The email groups and the bulletin boards could be said to have influenced the advent of CMS.
There are several variations of CMS. Most of them are simple systems that allow adding, editing and viewing content based on roles specified. One or few people are given access rights to do the adding and editing of content. This content is presented to everyone in most cases. In some cases, all or part of the website may be restricted to the public and made available only to a group of people.
In this point of view, forums can be considered as CMS for several reasons. Most of the forum softwares are bulletin board systems with increased control on the access based on roles.
A specialized variation of CMS is a Blog. Blog stands for web log. The blogs are a topic that is worth discussing separately, but from the point of view of a CMS, they are quite definitive in their structure. Blog software allows for content to be added periodically (and also edit them later). The latest few posts – the content of a blog – are presented in the front page. Archive links are generated to provide access for posts made earlier and have gone out of the front page as new posts were made by the author. Some blog softwares also allow for multi-authors to publish in a blog.
A full blown CMS though would be capable of doing all that and more. It would allow the webmaster or the site administrator to choose how the content is organized – a way to categorize all the content so that the retrieval and presentation of the information may be done conveniently. It would let them create user groups that would be assigned roles and given specific access rights. It would allow them to move the blocks of navigation and content elements around on the pages so that they can modify the way the website presents the content. It would allow the site administrator to integrate other modules or functions with the website that would be required by the organization that owns the website.
There are various technology that are available that would make the design of CMS possible. The CMS may be coded in CGI scripts, Perl, ASP, JSP or PHP with any database (Oracle, MySQL, PostgreSQL to name a few). A very common and popular setup of PHP with MySQL or PostgreSQL as the backend database is used for relatively smaller websites.
It may be noted here that there are two types of CMS based on a subtle concept on how the content is presented from the point of view of technology. One of them is that when content is added to the CMS, it is parsed and then published as a flat HTML page. Another method is where content stored in database and retrieved in the HTML format when requested for. The two methods have their own advantages and disadvantages. The first method requires lesser database access, and the HTML pages are retrieved much faster than the other method. Moreover they are considered to be more crawlers friendly and the search engines find them easier to index. On the other hand, the editing of content may be a problem. In the other method, it is not a problem and the presentation can be changed, per person basis, as the content is stored in the database. But the second method requires more database access than the first.
There are two options for webmasters to choose from when they decide to go for a CMS to manage the content of the website – custom built or pre-designed CMS software. The custom CMS option is a very flexible solution and can be opted for by a large organization that has resources to go on such an endeavor. But when that is not the case, a off the shelf CMS can be opted for. There are many commercial as well as Open Source CMS available. Some of the Open Source CMS are phpNuke, Drupal, Mambo and Joomla.
Choosing a off the shelf or the pre-designed option is also good in terms that implementing most of the functionalities of the system required by a website would be reinventing the wheel. Moreover, if opted for a Open Source CMS, one always has the option of customizing it to their needs.
OK. I have been working quite a bit for my website and have been striving towards getting good content for my site. I have been involved in the ins and outs of CMS these few days, and the above article is what I came up with. The website is hosted in my astahost account, and to show my gratitude, I would like to make the article available here also.
Please do review it - for I know that there are more exprienced people here - and give me the feedback. I would be working on more articles, and when I write more articles related to technology, I would be posting it here at Asta Host forums too.