Flow Core System
This post is a long work in progress but…
On this site, you may hear us mentioning a product called flow. This product is our core platform, which powers website we develop on.
The code behind flow could be described as an MVC-like structure but some things we do are different.
Before I go further into this. There are 2 quite different stable versions of this platform: version 1 runs on Westminster Abbey’s website and version 2 which runs on Wireworks and Material Heaven. Version 3 is the new one which we like to talk about quite a bit. Though we’ll try and backport worthy features to our other customers, copyright law providing.
Modular file storage
Flow is a completely modular system - even the document management systems at the back-end can be swapped around and altered.
Flow 1
For example, Westminster Abbey uses a highly flexible XML format system for content. This system uses 4 XML formats:
- Metadata
- CXML - Concise XML
- SXML - Services XML
- OTML - Opening Times XML
Our flow-specific meta format. This is the heart of any file stored on flow. It contains information for building indexes, labels, authors, start/expiry dates, version numbers, title. With the exception of the title, no actual content is stored in these files.
CXML is our article workhorse, it essentially borrows most of XHMTL, like p, b, i (please see further posts about why we don’t use strong and em). But has some other useful characteristics. For example if you include an image article (e.g. <article source=”654321″/>) that related article can be imported directly in. Should you want to be more specific about what you’re including, like a reference to an article, you can put this in the appendix tag. (e.g. <appendix><article source=”654321″/><article source=”543210″/></appendix>)
Then depending of these are images or other CXML files, your viewers can use the information in different ways. This article includes both -note how if it’s text we display the title in a ‘See also’ part, but if it’s an image we display them with an ‘image view’ picker viewer (what a mouthful).
I’ll talk further about CXML another time since we’re working on more in depth documentation with examples of how to develop decent viewers with the format.
Both SXML and OTML are Abbey specific formats, one controls the semantics of service data, like <piece><composer/><title/></piece> and the other: opening times, like <opening-times><date/><item><location/><open/><close/><notes/></opening-times>.
At the time of writing the Abbey site is storing about 5700 files and the number goes up every day as information is added.
Flow 2
Material Heaven’s and Wireworks’ sites work very differently. We didn’t need to think about large stores of content with these sites, since they are much smaller (though the system behind them is just as flexible).
