A web publishing taxonomy

by Gisle Hannemyr

This chapter introduces some of the terms you may come across in descriptons of web publishing tools. It also describes six different types of web publishing tools.

noteThis chapter contains links to Wikipedia. While Wikipedia is often helpful by providing definitions, explanations and other useful information in plain language, it is not an authoritative source. Content on Wikipedia may be misleading and erronous. Use Wikipedia to read up on and get acquainted with an unfamiliar subject, but do not rely on it being factual. Citing Wikipedia in essays and other scholarly writings is deprecated.

Table of contents

Introduction

The web (also known as the world wide web) is an online information space where individual web pages are located by Uniform Resource Locators (URLs), interlinked by hypertext links, and accessible via the Internet.

Web publishing is the process of publishing content (e.g. text, images, video, audio, and other types of media) on the web. It entails creating and managing a website.

A website is a set of interlinked web pages that is regarded as a single entity. It is usually owned and managed by a single organization or group as a collection of information about a single topic or closely related topics.

The terms “front end” and “back end” is sometimes used to refer to the two main portions of a web publishing system. The “front end” refers to the components that make up the client part of the system (i.e. HTML, CSS and JavaScript), and “back end” to the components that make up the server part (i.e. the web server, the database server, the search server, and the computer programs that ties together the services provided by these servers to produce a presentation of the website on the web.

Some small, personal websites are managed by the owner creating and editing the content, along with the required HTML, CSS, JavaScript, with no other tool than a plain text editor (e.g. Sublime text, MS NotePad, nano, vim or emacs) to produce a functional website in a location on the web host where it can be found by the web server.

If some type of techonlogy more advanced than a plain text editor is used to mange the content of a website, it is sometimes referred to as a “Web Content Management System” or WCMS.

There is, however, no clear definition of what constitutes a Web Content Management System. Some organizations reserve the term for enterprise information portal software (see below), others use it to refer to any software that is used to manage and publish content on the web.

Most site builders use some web publishing tool to create and manage a website. Roughly speaking, there are six different types of web publishing tools:

  1. Template-based approaches
  2. Static site generators
  3. Flat file WCMSes
  4. Database WCMSes
  5. Rich web applications
  6. Web Enterprise Portals

Below, you'll find a brief description og each type.

Template-based approaches

A number of hosting companies, social websites and entrepreneurs offer frameworks where end users may publish content on the web by filling in a form with text, upload images and videos, having it inserted in a pre-made template that provides the styling, and have it automatically published on the web.

The means to publish may be offered as a service on a social website (e.g.: Blogger, Facebook, and MySpace), or sold as a “kit” that lets the end user construct a complete stand-alone website (e.g.: SquareSpace and Wix).

These tools are designed to allow people with no knowledge about web-design, HTML, CSS or JavaScript to publish contents on the web with very little effort.

See alsoSome sites provide an API (e.g.: Facebook API) that lets an outside developer create custom applications or plug-ins to enhance contents that is published on the site. Some provide hooks that may be used by advanced users for customizing of content (see, for example, Hacking MySpace).

Static site generators

These tools are very similar to the plain text editors mentioned in the introduction, but provides a layer that hide the actual HTML, CSS and JavaScript from the user. Instead they provide a graphical user interface (GUI) that lets the user edit and style the content as text and images.

The editor is either WYSIWYG (What You See Is What You Get), or it lets the user preview the website under development by means of a built-in web-server. It may also embed upload tools such as SCP/SFTP or uses tools such as WebDAV for synchronising the development and production versions of the website.

A static site generator will have a publishing step where the author publishes a web page. At this point, static HTML is generated and put on the public web server.

Because no dynamic content is created, and there are no database lookups, static sites require few resources and generally faster than sites based upon more complex technologies.

Some popular static site generators are: KompoZer, SoftQuad HoTMetaL and Adobe Dreamweaver.

Flat file WCMSes

A flat file web content management system, like a a static site generator, uses flat text files (typically marked up with static HTML or Markdown) to store contents (i.e. there is no database). The difference, compared to a static site generator, is that a flat file WCMS may use technologies such as PHP or Perl to read the contents from those files and build cached pages that is made available by the web server as anonymous users request them.

With no database, SQL injection is no longer a posible vulnerability and database queries, pages should load fast.

However, without a database the site usually need to be designed without access control (except for a few website administrators and content editors), and with primitive or no tools for searching and sorting.

Some popular flat file WCMSes are: Grav, Kirby, Jekyll, Flextype and Pico.

Database WCMSes

A database web content management system uses a database to store the content.

In this ebook, I shall use the following definition:

  1. A Content Management System (CMS) is a computer system that allows an organisation or a group of collaborating authors to Create, Read (i.e. present), Update and Delete (CRUD) contents that is stored on a database in a consistent and organised fashion.
  2. The system supports user login and there are access control mechanisms to protect content from being accessed by uses without access privileges.
  3. The content may be searched, sorted and presented in different aggregates without any duplication in the database.
  4. A Web Content Management System (WCMS) is a CMS that exists on a web server, and allows publishing content on the web.

Note: The term “CMS” is frequently used to refer to a “WCMS”.

WCMSs first started to appear in the mid-1990ies, when companies started to use the web as a corporate publishing platform and discovered that most of their staff writers was not up to learning markup languages, file transfer, and other computer skills that was then a prerequisite for web publishing. Instead, these companies hired programmers to create in-house web publishing software that became the first WCMSs. Most of these were simple, template-based designs (see previous section) were users could pick a template that dictated the layout, and then add contents by filling in fields on a webform.

Since then, WCMSs has become much more powerful and much more diverse. There are several hundred companies and software publishers that are offering free or proprietary products targeted towards Web Content Management. In addition, many web hosting companies offer one or more WCMSes as SaaS (Software as a Service).

A WCMS keeps its content in a database. To render this content as a web page, it does the following: When a page is requested by the client, the WCMS starts up a program on the server to extract the requested content from the database, add the HTML, CSS and Javascript to assemble marked-up content, push it to the client (i.e. the web browser) for rendering, and then dies. The cycle starts again when the next web page is requested. This process is quite resource intensive and may result in slow page loads, unless the web pages are cached. Caching may be done by the WCMS itself, or provided by a separate caching layer, such as Memcached or Varnish.

Today a large number of different WCMSs exist, spanning from extensible blogging tools (e.g. Wordpress), via tools to maintain create and maintain wikis (e.g. Mediawiki), to rich and very complex frameworks to administer and distribute digital contents (e.g. Atlassian Confluence).

Here is a very incomplete list of some popular WCMSs with links to articles in Wikipedia about them (provided one exists), and what programming language they use for the back-end.

See alsoFor a much larger list, see Wikipedia's lists of CMSs. Wikipedia also has longer articles on Content Management Systems and Web Content Management Systems. For news and reviews, see CMS Review, CMS Critic and opensourceCMS.

Rich web applications

The term rich web application (RWA) is not in common use. I have adopted it from this blog post by John Papa (who, btw., ends up rejecting it). In most literature the term “single page application” (SPA) is the term used for this type of web publishing tool. Initially SPAs were used to create web applications that looked and felt like native apps on smart phones and other mobile devices. These apps usually only consisted of a single web page that was self-contained with no remote database.

However, today, the same technology is used to publish large websites with complex back ends. These may or may not consist of a single page – hence using the term RWA to refer to a client-server application for publishing content on the web, where the content is stored on one or more back end servers, while the presentation of the content handled by the client side by manipulating the Document Object Model (DOM) in response to the user's interaction with the RWA.

Unlike WCMSes, where the web pages are built on the server (i.e. the back end) and then transmitted and reloaded by the browser for every new page request, RWAs manipulate front end HTML, CSS and JavaScript on to create fluid and responsive applications without page reloads. This means that the front end does the heavy lifting. There exists a number of “web application frameworks” that provides library functions to do this. Some of the most popular are: Angular 2, Ember.js, Meteor.js, and ReactJS.

What these frameworks have in common is that is based upon the model-view-viewmodel (MVVM) – or sometimes model-view-whatever – software architectural pattern that is derived from Trygve Reenskaug's model-view-controller (MVC) pattern to decouple the front end (presentation) from the back end (business logic).

I.e. RWAs works with the front end and the back end decoupled and asynchronously communicating. This also means that the site builder has greater flexibility when choosing a back end than when working with a WCMS.

The back end seen most often with Angular 2 and ReactJS is NodeJs (including Express.js. This combo is sometimes referred to as the MEAN stack. Ember.js is often combined with a RESTful API. Meteor.js is a full-stack framework that comes with its own back end.

tipDecoupling the front end and back end is currently quite fashionable. There are efforts underway to adapt traditional (W)CMSes to do this. This is often called a “headless CMS” or “decoupled CMS”). A headless CMS is like a traditional (W)CMS but without a front end. What remains is a backend used as a content repository interfacing to a front end using a RESTful API. See also: How to decouple Drupal in 2018.

Web Enterprise Portals

An enterprise portal, also known as an enterprise information portal, goes beyond a WCMS. An enterprise portal provides a framework for integrating information, people and processes. It provides an unified access point to de-centralized content creation and content management, and aggregates and personalizes information from many underlying software system, usually through plug-ins in the form of application-specific software components called “portlets”. The Java Portlet Specification (JSR168, JSR286, JSR 362) enables interoperability for portlets between different web enterprise portals.

A enterprise portal accessible through the web is called a web enterprise portal.

Examples of web enterprise portals are Liferay (Wikipedia) written in java, Oracle Webcenter (Wikipedia) written in java, and Microsoft SharePoint (Wikipedia) written in c#.

An web enterprise portal is highly configurable for a number of different uses, such as an internal document management system, a web content management system, and a group collaboration platform.

Final word

For the sake of completeness, it should be mentioned that a technology known as XSL transformations (XSLT, based upon XML) has also been used as a tool for generating static site website. However, this approach is now outdated, and it differs so much from other static site generators mentioned above that it is just attached as an afterthought in this final section.

Using XSLT as a tool to build and manage websites was an idea that surfaced around 2002 and peaked around 2005. While projects using it still exists (e.g. DocBook and some legacy web services), it is not much used in 2020.

The main idea behind XSLT was to use XML to represent contents including its semantic component) with a high level of abstraction, and then use transformations to be able serialize this abstraction into a number of alternative output formats. For instance, one output format would place the contents into a single PDF-file, another output format would be Braille, and a third would be a set of interlinked statix HTML web pages (i.e. a website).

Back in 2005, using client side XSLT to manipulate the DOM was also suggested as a means to enhance responsiveness and user experience of an interactive website. However, browser support for XML and XSLT was poor, and the syntax made front end templates bloated and hard to understand, so this idea never got of the ground. Much later, rich web applications reintroduced DOM manipulation as a site building tool with considerable more succcess.

If you for some reason you still want to explore this approach to site building, Altova XML spy is an XML and XSLT editor with an integrated development environment (IDE).


Last update: 2020-02-01 [gh].