company
home
Contents
Welcome

Download
User Guide
Developers Guide
Download & Installation
Corporate To-Do List Tutorial
Corporate Blog Tutorial
Script Packages

XML Tutorial
Scripting Reference (DTD)

Terms of use
Contact us
Developers Guide

Webflow is a software system that allows an XML script to control the use and application of a relational database so that the developer can easily design the presentation, workflow and entry/retrieval of the data stored therein.

At its most basic level Webflow is a system that connects a database to a web server to create a website. There are a number of heavily marketed alternative ways of doing this available to the developer today and the purpose of this chapter is to explore the advantages of the Webflow approach. They are:

  • Rapid development - hours rather than weeks or months.
  • Easy. Programmers are not required.
  • Large scale. Webflow systems can handle up to a million or more items.
  • Collaborative. Browser viewable Webflow systems naturally lend themselves to use by more than one person at a time.
  • Web based. Once written, an application can be used by anyone with a web browser.

These are radical claims, particularly the first two. The reason we feel confident in making them is in the unusual approach that Webflow takes to Relational Databases.

Relational Databases

Relational Databases were introduced by E. F. Codd in 1970 although it was several decades until they became very widely available. These days most commercially available database systems take this approach. The fundamental advantage to relational database systems is that once a database has been set up it can produce reports and be queried in ways that the original designers did not envisage, which makes them an excellent choice for large scale applications with very long projected lifetimes.

From the academic point of view, relational databases also are based on an elegant and consistent formalism. This makes them an excellent subject for both research and teaching purposes.

Modern database systems offer lots of features and can be scaled to huge systems; if set up properly it is possible to query them in ways that the original designers did not predict. However accomplishing this requires a sound education in IT and a good working knowledge of the particular database chosen. Most companies who are serious about their databases actually employ full time database administrators to ensure that the - often very expensive - systems are being used appropriately.

We've been involved in the creation of software systems for small and medium sized companies for the last ten years and during this period it's become clear that in many cases the modern relational database is simply overkill.

  • Most businesses can't afford a full time, or even part time, database administrator.
  • IT graduates are expensive and scarce. Good skills in this area are still a rarity.
  • The flexibility of unlimited querying is not actually often required. People have a fixed set of reports and questions they need regularly answering and these rarely change.
  • To be useful around an office an application needs to play nicely with email systems, spreadsheets, MS Word documents, calendars and so on. Database systems ignore these. Webflow does not.

The Webflow Approach to data storage

Webflow applications are generally built around the storage, selection, and manipulation of facts, that is representations of aspects of the real world. Facts can be as diverse as the fact that somebody needs to accomplish a task set by someone else, or the fact that a comment has been made on some subject in a blog and there have been a set of additional comments on the same issue, or the fact that a piece of software has been sold after a set of sales contacts were made.

There are countless ways to represent a fact in a computer system, and over the years, a variety of different data structures and abstractions have been used. In the case of Webflow, we have returned to an old choice. We store facts as hierarchies; trees in the computer science sense of the word, for example:


In computer science trees grow from the top rather than the bottom. Its an old idea - organising knowledge on a hierarchical basis has its roots in early philosophy and theological disputes where attempts to organise nature with God and the angels at the top and man somewhat down the tree were very common. You can find more on this subject in the Wikipedia at http://en.wikipedia.org/wiki/Hierarchichal and http://en.wikipedia.org/wiki/Tree_data_structure.

In Webflow all data is organised in a tree structure. Each node is a collection of information and can contain text, numbers, documents, pictures, and so on. Every node can have a single parent, although if the parent is missing the node represents the root of the tree (like node 1 in the above diagram). A node can also have zero or more subordinates hanging off it.

There's a standard way of talking about nodes in a tree. In the above diagram, we would refer to nodes 2 and 3 as the child nodes, or children of node 1. In the same sense 4 and 5 are the children of 2. As you might expect, node 2 is therefore the parent of 4 and 5, and node 3 is the parent of 6. Occasionally we might refer to 2 and 3 as siblings, and we could talk about 4 and 5 in the same way.

There's one special case of a tree that we ought to take a look at:

Node 9 is also a tree, albeit a rather strange one. Because is doesn't have any parents it is a root. It also doesn't have any children. Despite this, it does fit our informal definition of a tree which is a collection of nodes with zero or one parents and zero or more children. 'Trees' like node 9 are treated the same way as other more conventional trees in Webflow.

It is quite remarkable how easy it is to represent facts using trees. For example, if node 1 in the above diagram represented a blog, and nodes 2 and 3 represented comments in that blog, then nodes 4 and 5 would naturally represent additional comments on the entry represented by 2, and node 6 would naturally represent a single additional comment made on entry 3.

Later on in this manual we will examine exactly how trees are stored and manipulated. However, data storage is only part of the story.

Webflow Architecture

The Webflow system combines a number of functions over and above the storage of information in the form of trees. It also handles office documents - Spreadsheets, Microsoft WordTM files, Adobe's PDF format and a number of others. When a document is added to an Webflow application it is examined so that it can be rapidly searched by its contents in the future. This process is called indexing.

Webflow applications are also capable of sending out emails to alert people to changes in the business environment, or remind them of items that need to be handled or deadlines that must be met.

All of this functionality is controlled by a script. Webflow scripts are written in a format called XML. If you have never had to deal with this before there is an introduction in the XML Tutorial section. Installing a new script, or deciding which of several scripts is controlling system behavior is managed by the script management module.

This module also controls the branding of the resulting system. Whenever you create an Webflow application you can add logos and brand names. Its also possible for you to radically modify the look and feel of an application by supplying a cascading style sheet for the application to use.

We have provided this so that developers can produce applications without the underlying technology intruding on the user experience. This is to make it easy for you to sell your work onto others carrying your own particular style and approach. If you produce an application in Webflow that you would like to resell, please take note of our license conditions in the Terms of use. We have tried to keep this as simple and commercially effective as possible.

© Copyright 2006 SafeDataCo.com